/* tunado.app: the Light Tunnel style (docs/spec/design.md v2) for reading. Dark only, like the app. */
@font-face{font-family:Michroma;font-weight:400;font-display:swap;src:url(/fonts/michroma-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Hanken;font-weight:100 900;font-display:swap;src:url(/fonts/hanken-grotesk-latin-wght-normal.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:Hanken;font-weight:100 900;font-display:swap;src:url(/fonts/hanken-grotesk-latin-ext-wght-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C0}

@font-face{font-family:Kufi;font-weight:100 900;font-display:swap;src:url(/fonts/noto-kufi-arabic-arabic-wght-normal.woff2) format('woff2')}
@font-face{font-family:'Plex Arabic';font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2) format('woff2')}
@font-face{font-family:'Plex Arabic';font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2) format('woff2')}

:root{
  --lacquer:#0B1522; --lacquer-2:#0F1C2D; --panel:#14243A; --line:#22364F;
  --led:#EEF4FF; --text:#D5DEEA; --steel:#9DB0C8; --steel-2:#7F93AD;
  --ice:#1C3754; --ice-ink:#D4E9FF; --stop:#3A1518; --stop-ink:#FFB4AE; --ok:#123326; --ok-ink:#A9E8C6; --glow:rgba(170,205,255,.6);
  --display:Michroma,system-ui,sans-serif; --ui:Hanken,system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:dark;
}
[dir=rtl]{--display:Kufi,system-ui,sans-serif; --ui:'Plex Arabic',Hanken,system-ui,sans-serif}
*{box-sizing:border-box}
html{background:var(--lacquer);-webkit-text-size-adjust:100%;overflow-x:clip}   /* the ceiling is wider than the page; clip it, in RTL too */
body{margin:0;background:var(--lacquer);color:var(--led);font:400 17px/1.6 var(--ui);-webkit-font-smoothing:antialiased;overflow-x:clip;position:relative}
a{color:var(--ice-ink);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:#fff}
a:focus-visible{outline:2px solid var(--led);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:16px;top:-60px;padding:10px 14px;background:var(--ice);border-radius:12px;z-index:9}
.skip:focus{top:12px}

/* Hex LED ceiling, in perspective, fading out before the content */
.ceiling{position:absolute;left:-40%;right:-40%;top:72px;height:300px;perspective:520px;pointer-events:none;z-index:0;opacity:.5;
  -webkit-mask:linear-gradient(180deg,#000 10%,transparent 92%);mask:linear-gradient(180deg,#000 10%,transparent 92%)}
.ceiling svg{width:100%;height:100%;transform:rotateX(58deg);transform-origin:50% 0;filter:drop-shadow(0 0 3px rgba(225,238,255,.9)) drop-shadow(0 0 14px rgba(150,190,255,.4))}
.ceiling line{stroke:#F4F8FF;stroke-width:4;stroke-linecap:round}
body:not(.home) .ceiling{height:150px;opacity:.3}

.bar,main,footer{position:relative;z-index:1;max-width:760px;margin:0 auto;padding-inline:20px}
.bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;min-height:72px;padding-block:16px}
.brand{display:flex;align-items:center;gap:12px;color:var(--led);text-decoration:none;font:400 16px/1 Michroma,system-ui,sans-serif;letter-spacing:.04em}   /* the wordmark stays Latin in every language */
.brand img{border-radius:10px;box-shadow:0 0 0 1px rgba(238,244,255,.12)}
nav{display:flex;flex-wrap:wrap;gap:4px 18px}
nav a{color:var(--steel);text-decoration:none;font-weight:500;font-size:15px;padding-block:10px}
nav a[aria-current]{color:var(--led);box-shadow:inset 0 -2px 0 var(--led)}
nav a:hover{color:var(--led)}

/* Reading pages */
.doc{padding-block:72px 64px;max-width:68ch}
.doc h1{font:400 30px/1.25 var(--display);margin:0 0 8px;letter-spacing:-.005em}
.doc h1 + p{color:var(--steel-2);font-size:15px;margin-top:0}
.doc h2{font:700 21px/1.3 var(--ui);margin:48px 0 12px;padding-top:20px;border-top:1px solid var(--line)}
.doc h3{font:700 17px/1.35 var(--ui);margin:28px 0 8px}
.doc p,.doc li{color:var(--text)}
.doc strong{color:var(--led);font-weight:650}
.doc ul,.doc ol{padding-inline-start:22px}
.doc li{margin-block:6px}
.doc li::marker{color:var(--steel-2)}
code{font:500 .9em/1 ui-monospace,Menlo,monospace;background:var(--panel);padding:2px 6px;border-radius:6px}
.table{overflow-x:auto;margin:16px 0 8px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5}
th,td{text-align:start;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
thead th{background:var(--lacquer-2);color:var(--steel);font-weight:600;font-size:14px}
tbody th{color:var(--led);font-weight:600;min-width:9em}
tbody tr:last-child>*{border-bottom:0}

/* Home */
.hero{padding-block:120px 48px;text-align:center}
.ledword{display:block;width:min(100%,640px);height:auto;margin:0 auto 12px;overflow:visible}
.ledword text{font:400 120px/1 var(--display);fill:none;stroke:var(--led);stroke-width:1.6px;letter-spacing:.02em;filter:drop-shadow(0 0 8px var(--glow))}
.hero h1{font:400 clamp(30px,6vw,46px)/1.15 var(--display);margin:0 0 16px;letter-spacing:-.01em}
.lead{color:var(--steel);font-size:19px;max-width:56ch;margin:0 auto 28px}
.play{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 28px;border-radius:16px;position:relative;
  background:var(--ice);color:var(--ice-ink);font-weight:650;font-size:17px;text-decoration:none;transition:transform .15s var(--ease)}
.play::before{content:"";position:absolute;inset-inline:18px;top:0;height:1.5px;background:var(--led);opacity:.8;box-shadow:0 0 12px 2px var(--glow)}
.play:active{transform:scale(.98)}
.fine{color:var(--steel-2);font-size:14px;margin-top:14px}
.steps,.facts{padding-block:28px;border-top:1px solid var(--line)}
.steps h2,.facts h2{font:400 21px/1.3 var(--display);margin:8px 0 16px}
.steps ol{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}
.steps li{counter-increment:s;display:grid;grid-template-columns:40px 1fr;gap:12px;color:var(--text)}
.steps li::before{content:counter(s);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:600 15px/1 var(--ui);
  background:var(--panel);color:var(--led);box-shadow:inset 0 0 0 1px rgba(238,244,255,.12)}
.steps strong,.facts strong{color:var(--led)}
.facts ul{margin:0;padding-inline-start:20px;color:var(--text)}
.facts li{margin-block:8px}

/* Deletion flow */
.del{margin:20px 0 8px;padding:20px;border-radius:14px;background:var(--lacquer-2);box-shadow:inset 0 0 0 1px var(--line)}
.del p{margin:0 0 12px}
.del .row{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:0;border-radius:16px;
  font:650 16px/1 var(--ui);cursor:pointer;transition:transform .15s var(--ease),opacity .2s var(--ease)}
.btn:active{transform:scale(.98)}
.btn:focus-visible{outline:2px solid var(--led);outline-offset:3px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.ice{background:var(--ice);color:var(--ice-ink)}
.btn.stop{background:var(--stop);color:var(--stop-ink)}
.btn.ghost{background:transparent;color:var(--steel);box-shadow:inset 0 0 0 1.5px var(--line)}
.check{display:flex;gap:12px;align-items:flex-start;color:var(--text);cursor:pointer}
.check input{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--ice-ink)}
.hint{color:var(--steel-2);font-size:14px;margin-top:12px!important}
.err{color:var(--stop-ink);background:var(--stop);padding:10px 14px;border-radius:12px;margin:12px 0 0}
.busy{color:var(--steel)}

/* Email-link handler (/auth/action/): one task, one panel, centred under the ceiling */
body.bare{min-height:100dvh;display:flex;flex-direction:column}
body.bare main{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;padding-block:72px 32px}
body.bare .ceiling{top:72px;height:120px;opacity:.28}
body.bare .bar{width:100%;justify-content:center}   /* a single task: the wordmark sits over the panel */
.auth{width:100%;max-width:420px;text-align:center}
.auth h1{font:400 24px/1.3 var(--display);margin:20px 0 10px;letter-spacing:-.005em;outline:none}
[dir=rtl] .auth h1{font-weight:700;font-size:26px;line-height:1.45}
.auth .body{color:var(--steel);font-size:17px;line-height:1.55;margin:0 auto;max-width:36ch;overflow-wrap:anywhere}
.mark{width:72px;height:72px;margin:0 auto;border-radius:50%;background:var(--lacquer-2);box-shadow:inset 0 0 0 1px var(--line)}
.mark svg{width:100%;height:100%;display:block;overflow:visible}
.mark .ring{fill:none;stroke:var(--led);stroke-width:2;opacity:.9;filter:drop-shadow(0 0 6px var(--glow))}
.mark .glyph{fill:none;stroke:var(--led);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.mark[data-kind=busy] .ring{stroke-dasharray:34 98;transform-origin:24px 24px;animation:spin 1.1s linear infinite}
.mark[data-kind=ok]{background:var(--ok)}.mark[data-kind=ok] .ring,.mark[data-kind=ok] .glyph{stroke:var(--ok-ink)}
.mark[data-kind=error]{background:var(--stop)}.mark[data-kind=error] .ring,.mark[data-kind=error] .glyph{stroke:var(--stop-ink);filter:none}
.mark[data-kind=lock]{background:var(--ice)}.mark[data-kind=lock] .ring,.mark[data-kind=lock] .glyph{stroke:var(--ice-ink)}
@keyframes spin{to{transform:rotate(360deg)}}
.pw{margin-top:28px;text-align:start}
.pw label{display:block;font-weight:600;font-size:15px;margin-bottom:8px;color:var(--led)}
.field{position:relative;display:flex;align-items:center}
.field input{width:100%;min-height:52px;padding:0 16px;padding-inline-end:92px;border-radius:14px;border:0;background:var(--panel);color:var(--led);
  font:500 17px/1 var(--ui);box-shadow:inset 0 0 0 1.5px var(--line);transition:box-shadow .2s var(--ease)}
.field input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--ice-ink),0 0 0 4px rgba(212,233,255,.12)}
.field input[aria-invalid=true]{box-shadow:inset 0 0 0 2px var(--stop-ink)}
.reveal{position:absolute;inset-inline-end:6px;min-height:40px;min-width:76px;padding:0 12px;border:0;border-radius:10px;background:transparent;
  color:var(--ice-ink);font:600 14px/1 var(--ui);cursor:pointer}
.reveal:focus-visible{outline:2px solid var(--led);outline-offset:1px}
.pw .hint{color:var(--steel-2);font-size:14px;margin:8px 0 0}
.pw .err{margin:10px 0 0;text-align:start}
.btn.wide{width:100%;margin-top:20px;min-height:52px}
.actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.actions:empty{display:none}
.actions .btn{width:100%;min-height:52px;text-decoration:none}
.auth-foot{display:flex;justify-content:center;gap:20px;margin:40px 0 0;font-size:14px}
.auth-foot a{color:var(--steel-2)}

footer{padding-block:28px 48px;border-top:1px solid var(--line);color:var(--steel-2);font-size:14px}
footer p{margin:0 0 8px}
footer nav a{font-size:14px}

@media (max-width:480px){
  body{font-size:16px}
  .ceiling{top:112px}
  .doc h1{font-size:24px}
  .hero{padding-top:48px}
  .lead{font-size:17px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.mark[data-kind=busy] .ring{animation:none;stroke-dasharray:none;opacity:.5}}
