/* Elf O'Clock site: shared styles (Midnight Workshop tokens from src/styles/tokens.css) */
/* Baloo 2 and Figtree (Google Fonts, SIL Open Font Licence) served from this site: no request to Google */
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/baloo-2-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/baloo-2-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/figtree-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Figtree';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/figtree-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Figtree';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/figtree-latin-700-normal.woff2) format('woff2')}
:root{
  /* The app's own Midnight Workshop tokens (src/styles/tokens.css) */
  --night:#1B2340;--night-deep:#151B33;--wall:#2A3354;--night-line:#3A4468;
  --night-ink:#F4EFE4;--night-muted:#B5BBD0;
  --lamp:#F2B35B;--lamp-hot:#FFD992;--lamp-ink:#3A3F58;
  --paper:#F4EFE4;--paper-2:#EAE3D4;--card:#FFFFFF;--ink:#1B2340;--muted:#555B76;--line:#DCD3C1;
  --display:'Baloo 2','Trebuchet MS',system-ui,sans-serif;--body:Figtree,'Segoe UI',system-ui,sans-serif;
  --shadow-paper:0 1px 0 rgba(27,35,64,.06),0 22px 40px -22px rgba(27,35,64,.45);
  --shadow-night:0 34px 60px -26px rgba(6,8,22,.85);
  --ease-pop:cubic-bezier(.3,1.5,.6,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .12 0 0 0 0 .2 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--night);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.55;overflow-x:hidden}
h1,h2,h3{font-family:var(--display);font-weight:800;margin:0;letter-spacing:-.005em}
p{margin:0}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--lamp);outline-offset:3px;border-radius:6px}
.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 20px}
@media (min-width:720px){.wrap{padding:0 40px}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* ---------- top bar ---------- */
.top{position:relative;z-index:4;background:var(--night);color:var(--night-ink)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.mark{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:800;font-size:22px;text-decoration:none;line-height:1}
.mark img,.made img{width:36px;height:36px;border-radius:9px;box-shadow:0 0 0 1px rgba(244,239,228,.14)}
.mark span{padding-top:3px}
.top-link{font-weight:700;font-size:16px;text-decoration:none;color:var(--lamp);padding:12px 0}
.top-link:hover{text-decoration:underline;text-underline-offset:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 26px;border-radius:16px;font-weight:700;font-size:17px;text-decoration:none;transition:transform .2s var(--ease-pop),box-shadow .2s}
.btn:active{transform:scale(.96)}
.btn svg{width:22px;height:22px;flex:none}
.btn-lamp{background:var(--lamp);color:var(--night);box-shadow:0 0 0 0 rgba(242,179,91,0),0 16px 30px -14px rgba(242,179,91,.55)}
.btn-lamp:hover{box-shadow:0 0 0 6px rgba(242,179,91,.18),0 16px 30px -14px rgba(242,179,91,.55)}
/* FAQ */
.faq{padding:80px 0 84px}
.faq h2{font-size:clamp(30px,7vw,40px);line-height:1.08;max-width:14ch}
.faq-list{margin-top:28px;border-top:2px solid var(--line)}
.faq-list details{border-bottom:2px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:16px 0;font-family:var(--display);font-weight:700;font-size:21px;line-height:1.25}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .ic{flex:none;width:38px;height:38px;border-radius:12px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease-pop),background .2s,color .2s}
.faq-list summary .ic svg{width:16px;height:16px}
.faq-list summary:hover .ic{background:var(--line)}
.faq-list details[open] summary .ic{transform:rotate(45deg);background:var(--night);color:var(--lamp)}
.faq-a{overflow:hidden}
.faq-a p{padding:0 0 22px;max-width:60ch;font-size:17px;line-height:1.6}
.faq-a a{font-weight:700;text-underline-offset:3px}
@media (min-width:900px){.faq .wrap{display:grid;grid-template-columns:1fr 2fr;gap:56px;align-items:start}.faq-list{margin-top:6px}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
/*SHARED-EXTRA*/

/* ---------- store badges (dashed placeholders until launch) ---------- */
.stores{margin-top:34px;display:flex;flex-direction:column;gap:12px}
.stores-note{font-size:15px;font-weight:700;color:var(--night-ink)}
.badges{display:flex;gap:12px;flex-wrap:wrap}
.badge{display:flex;flex-direction:column;justify-content:center;gap:1px;width:min(176px,calc(50% - 6px));height:54px;padding:0 14px;border-radius:12px;border:2px dashed var(--night-line);color:var(--night-muted);font-size:12px;line-height:1.25;text-decoration:none}
.badge b{display:block;color:var(--night-ink);font-size:15px}
.stores-line{font-size:16px;color:var(--night-muted);max-width:38ch}
.btn-night{background:var(--night);color:var(--night-ink);box-shadow:0 16px 28px -16px rgba(27,35,64,.7)}
.btn-night:hover{box-shadow:0 0 0 6px rgba(27,35,64,.12),0 16px 28px -16px rgba(27,35,64,.7)}

/* ---------- footer ---------- */
footer{background:var(--night);color:var(--night-ink);padding:52px 0 44px}
footer .privacy{font-family:var(--display);font-weight:800;font-size:clamp(26px,6.4vw,36px);line-height:1.1;max-width:20ch}
.foot-grid{margin-top:32px;display:grid;gap:12px 40px;color:var(--night-muted);font-size:16px}
@media (min-width:900px){.foot-grid{grid-template-columns:auto 1fr;align-items:start}.foot-grid .social{grid-column:2}}
.foot-name{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:800;font-size:20px;color:var(--night-ink)}
.foot-name img{width:28px;height:28px;border-radius:7px}
.foot-grid nav{display:flex;flex-wrap:wrap;gap:0 24px}
.foot-grid a{display:inline-flex;align-items:center;min-height:44px;color:var(--night-ink);text-decoration:none;font-weight:700}
.foot-grid a:hover{text-decoration:underline;text-underline-offset:4px}
.foot-grid .social{font-size:15px}
.foot-grid .social span{display:inline-flex;align-items:center;min-height:44px;color:var(--night-muted)}
.credit{margin-top:20px;color:var(--night-muted);font-size:15px}

/* ---------- inner pages: privacy, terms, support, press, app ---------- */
.inner{background:var(--paper);color:var(--ink)}
.inner-head{background:var(--night);color:var(--night-ink);padding:28px 0 44px}
.inner-head h1{font-size:clamp(38px,9vw,56px);line-height:1.04;max-width:16ch}
.inner-head .sub{margin-top:14px;font-size:19px;color:var(--night-muted);max-width:44ch}
.inner-body{padding:48px 0 80px}
.prose{max-width:68ch}
.prose h2{font-size:clamp(24px,5.4vw,30px);line-height:1.15;margin:40px 0 10px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{font-size:17px;line-height:1.65}
.prose p{margin:0 0 14px}
.prose ul{margin:0 0 16px;padding-left:22px}
.prose li{margin:4px 0}
.prose a{font-weight:700;text-underline-offset:3px;overflow-wrap:anywhere}
.prose .meta{color:var(--muted);font-size:16px}
.prose .lead{font-size:19px}
.prose hr{border:0;border-top:2px solid var(--line);margin:36px 0}

.mail-big{display:flex;align-items:center;justify-content:center;gap:12px;min-height:72px;padding:0 28px;border-radius:20px;background:var(--lamp);color:var(--night);font-family:var(--display);font-weight:800;font-size:clamp(22px,6vw,30px);text-decoration:none;box-shadow:0 16px 30px -14px rgba(242,179,91,.55);overflow-wrap:anywhere;text-align:center}
.mail-big:hover{box-shadow:0 0 0 6px rgba(242,179,91,.25),0 16px 30px -14px rgba(242,179,91,.55)}
.mail-big svg{width:28px;height:28px;flex:none}
.reply{margin-top:14px;color:var(--muted);font-size:17px}
.support-grid{max-width:760px}
.support-grid .faq-list{margin-top:36px}
.devices{margin-top:32px;font-size:17px;color:var(--muted)}

.facts{display:grid;margin:0;border-top:2px solid var(--line);max-width:760px}
.facts div{display:grid;gap:2px 24px;padding:14px 0;border-bottom:2px solid var(--line)}
@media (min-width:640px){.facts div{grid-template-columns:200px 1fr}}
.facts dt{font-weight:700;color:var(--muted);font-size:16px}
.facts dd{margin:0;font-size:18px}
.dl-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;max-width:760px}
.dl-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 18px;border-radius:14px;background:var(--card);box-shadow:var(--shadow-paper);text-decoration:none;font-weight:700}
.dl-list a span{font-weight:400;color:var(--muted);font-size:15px;white-space:nowrap}
.dl-list a:hover{outline:3px solid var(--lamp)}
.press-sec{margin-top:48px}
.press-sec>h2{font-size:clamp(26px,6vw,34px);margin-bottom:16px}

.app-card{max-width:520px;margin:0 auto;text-align:center}
.app-card .stores{align-items:center}
.app-card .badges{justify-content:center}
.app-card .stores-note,.app-card .stores-line{color:var(--ink)}
.app-card .badge{border-color:var(--line);color:var(--muted)}
.app-card .badge b{color:var(--ink)}
