/* Lantern Stall microsite — shared styles (home chrome + reading pages) */
/* Self-hosted fonts (SIL Open Font License, see /assets/fonts/OFL-*.txt) */
@font-face{font-family:'Bangers';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/bangers-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Bangers';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/bangers-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Caveat';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/caveat-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Caveat';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/caveat-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  color-scheme:dark;
  --night:#0f0d19;--ink:#1b1430;--plum:#2c2347;--plum-2:#3a2d5c;
  --paper:#f6e7c8;--paper-2:#efd9ad;--paper-3:#e3c48d;--muted:#cdbfa3;--ink-on-paper:#2b1d14;
  --amber:#ffb445;--gold:#f4c552;--red:#c9372b;--red-deep:#8e1f16;--jade:#4fc39a;--cyan:#5fd6e8;
  --wood:#b06a2c;--wood-light:#d99a4e;--wood-dark:#5c3418;
  --arcade:'Bangers',Impact,'Arial Narrow Bold','Helvetica Neue',sans-serif;
  --hand:'Caveat','Marker Felt','Chalkboard SE','Bradley Hand',cursive;
  --body:'Avenir Next',Avenir,'Segoe UI',system-ui,-apple-system,sans-serif;
  --shadow-ink:0 2px 0 #2b1d14,0 4px 0 #2b1d14,0 6px 14px rgba(0,0,0,.55);
  --focus:0 0 0 3px var(--night),0 0 0 6px var(--jade);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--night)}
body{margin:0;background:var(--night);color:var(--paper);font:17px/1.6 var(--body);overflow-x:clip}
img{max-width:100%;height:auto;display:block}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;border-radius:0}
a{color:inherit;text-underline-offset:.2em}
a:hover{color:var(--amber)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
::selection{background:var(--amber);color:var(--night)}
h1,h2,h3,p,dl,ol,ul{margin-top:0}
.skip{position:absolute;top:-200px;left:16px;z-index:50;background:var(--paper);color:var(--ink-on-paper);padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}

/* Arcade display type: painted lettering with an ink outline */
.arcade{font-family:var(--arcade);font-weight:400;letter-spacing:.02em;line-height:.95;text-transform:uppercase;color:var(--gold);
  text-shadow:-2px -2px 0 #3a1a08,2px -2px 0 #3a1a08,-2px 2px 0 #3a1a08,2px 2px 0 #3a1a08,0 5px 0 #3a1a08,0 9px 18px rgba(0,0,0,.6)}
.arcade span{display:block;color:var(--paper);font-size:.72em}
.hand-note{font-family:var(--hand);font-weight:700;font-size:1.35rem;line-height:1.15;color:var(--paper);text-shadow:0 2px 6px rgba(0,0,0,.8);margin:0}

/* Top bar */
.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:8px clamp(12px,3vw,32px);
  background:linear-gradient(#1a1326,#120e1c);border-bottom:2px solid #000;box-shadow:0 2px 0 #3a2a4a,0 6px 22px rgba(0,0,0,.5)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--arcade);font-size:1.4rem;letter-spacing:.04em;text-decoration:none;color:var(--gold);text-shadow:0 2px 0 #3a1a08}
.brand img{width:40px;height:40px;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.6)}
.brand:hover{color:var(--amber)}
.ticker{overflow:hidden;min-width:0;mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker-track{display:flex;gap:22px;white-space:nowrap;width:max-content;font-family:var(--hand);font-weight:700;font-size:1.2rem;color:var(--paper-2);animation:ticker 48s linear infinite}
.ticker-track em{color:var(--red);font-style:normal}
@keyframes ticker{to{transform:translateX(-50%)}}
.topbar nav{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;justify-content:flex-end}
.topbar nav a{font-weight:700;text-decoration:none;font-size:.95rem;padding:6px 2px}
.toggle{display:inline-flex;align-items:center;gap:7px;border:2px solid #4a3a5c;background:#211838;color:var(--paper);border-radius:999px;padding:8px 12px 8px 8px;min-height:38px;font-size:.85rem;font-weight:700;line-height:1}
.toggle-dot{width:14px;height:14px;border-radius:50%;background:#5a4a6a;box-shadow:inset 0 1px 2px rgba(0,0,0,.6);transition:background .2s}
.toggle[aria-pressed=true] .toggle-dot{background:var(--jade);box-shadow:0 0 8px var(--jade)}
.toggle:hover{border-color:var(--amber)}

/* Painted wooden buttons */
.wood-button{position:relative;font-family:var(--arcade);font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase;color:#fff4dc;
  background:linear-gradient(#d08a3f,#a85b22 55%,#8a4418);border:2px solid #4a250d;border-radius:10px;padding:9px 18px 8px;
  box-shadow:inset 0 2px 0 #f3bf7a,inset 0 -3px 0 #6a3412,0 4px 0 #3a1a08,0 8px 14px rgba(0,0,0,.5);text-shadow:0 2px 0 #4a250d;
  transition:transform .08s,box-shadow .08s}
.wood-button:hover{filter:brightness(1.08)}
.wood-button:active{transform:translateY(3px);box-shadow:inset 0 2px 0 #f3bf7a,inset 0 -3px 0 #6a3412,0 1px 0 #3a1a08,0 3px 6px rgba(0,0,0,.5)}
.wood-button.subtle{background:linear-gradient(#5e4a7a,#3d2f55 55%,#2b2140);box-shadow:inset 0 2px 0 #8a76a8,inset 0 -3px 0 #221a33,0 4px 0 #14101f,0 8px 14px rgba(0,0,0,.5);text-shadow:0 2px 0 #221a33;border-color:#1a1327}
.wood-button.subtle:active{box-shadow:inset 0 2px 0 #8a76a8,inset 0 -3px 0 #221a33,0 1px 0 #14101f}
.counter-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}

/* Footer */
.market-footer{position:relative;padding:48px clamp(16px,5vw,64px) 56px;text-align:center;background:linear-gradient(#0f0d19,#070610);border-top:3px solid #2a1f3d}
.market-footer p{font-family:var(--hand);font-size:1.5rem;font-weight:700;color:var(--paper-2);margin-bottom:18px}
.market-footer small{display:block;font-size:1.1rem;color:var(--muted);margin-top:4px}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px;font-weight:700;margin-bottom:18px}
.footer-fine{font-family:var(--body)!important;font-size:.85rem!important;font-weight:400!important;color:var(--muted)!important;max-width:60ch;margin:0 auto}
.noscript{margin:0;padding:12px;background:var(--red);color:#fff;text-align:center}
.announcer{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Reading pages (support, privacy): paper on the counter */
.reading-page{background:#120e1c url('/assets/bg/counter.jpg') center top/cover no-repeat fixed}
@supports (background-image:url('a.webp')){.reading-page{background-image:url('/assets/bg/counter.webp')}}
.reading-page::before{content:'';position:fixed;inset:0;background:linear-gradient(rgba(10,8,18,.72),rgba(10,8,18,.88));z-index:-1}
.reading-page .topbar{position:static}
.reading{position:relative;max-width:820px;margin:40px auto 80px;padding:clamp(28px,5vw,56px) clamp(20px,5vw,60px);background:var(--paper);color:var(--ink-on-paper);
  border-radius:4px;box-shadow:0 30px 60px rgba(0,0,0,.6),0 0 0 1px rgba(0,0,0,.4);transform:rotate(-.4deg)}
.reading::before{content:'';position:absolute;top:-14px;left:50%;width:30px;height:30px;margin-left:-15px;background:url('/assets/ui/ticket-red-pin.png') center/contain no-repeat;filter:drop-shadow(0 3px 3px rgba(0,0,0,.5))}
.reading>*{transform:rotate(.4deg)}
.reading .eyebrow{display:block;font-family:var(--hand);font-weight:700;font-size:1.5rem;color:var(--red);margin-bottom:4px}
.reading h1{font-family:var(--arcade);font-size:clamp(2.6rem,7vw,4.2rem);line-height:.95;letter-spacing:.02em;color:#3a1a08;margin-bottom:16px}
.reading h2{font-family:var(--arcade);font-size:1.9rem;letter-spacing:.03em;color:#8e1f16;margin:44px 0 10px;padding-bottom:6px;border-bottom:3px dashed #d9b98a}
.reading p,.reading li{font-size:1.05rem;line-height:1.6;color:#3b2a1c}
.reading .intro{font-size:1.25rem;color:#2b1d14;font-weight:600}
.reading a{color:#9a2a1c;font-weight:700}
.reading a:hover{color:#c9372b}
.reading .actions{margin:22px 0 10px}
.reading .button{display:inline-block;font-family:var(--arcade);font-size:1.25rem;letter-spacing:.04em;text-decoration:none;color:#fff;background:linear-gradient(#e0523f,#b52f22);border:2px solid #6a160e;border-radius:10px;padding:10px 22px 8px;box-shadow:0 4px 0 #6a160e,0 8px 14px rgba(0,0,0,.3);text-shadow:0 2px 0 #6a160e}
.reading .button:hover{filter:brightness(1.08);color:#fff}
.reading .fine{font-size:.95rem;color:#6b5540}
.reading details{border-top:2px dashed #d9b98a;padding:16px 0}
.reading details:last-of-type{border-bottom:2px dashed #d9b98a}
.reading summary{font-weight:800;font-size:1.12rem;cursor:pointer;color:#2b1d14;list-style:none;display:flex;gap:10px;align-items:flex-start}
.reading summary::-webkit-details-marker{display:none}
.reading summary::before{content:'▸';color:var(--red);flex:none;transition:transform .15s}
.reading details[open] summary::before{transform:rotate(90deg)}
.reading details p{margin:12px 0 0 22px}
.reading .notice{margin-top:36px;padding:18px 20px;background:#efd9ad;border:2px dashed #c9a46a;border-radius:6px}
.reading .toc{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 10px}
.reading .toc a{display:inline-block;padding:6px 12px;background:#efd9ad;border-radius:999px;text-decoration:none;font-size:.95rem}
.reading .stamp{display:inline-block;font-family:var(--arcade);font-size:1.1rem;letter-spacing:.08em;color:var(--jade);border:3px solid var(--jade);border-radius:6px;padding:2px 10px 0;transform:rotate(-6deg);opacity:.85}
.reading-page .market-footer{background:transparent;border-top:0}

@media (max-width:900px){
  .topbar{grid-template-columns:auto 1fr;grid-template-areas:"brand nav" "ticker ticker";row-gap:4px}
  .brand{grid-area:brand}.ticker{grid-area:ticker}.topbar nav{grid-area:nav}
}
@media (max-width:520px){
  .brand span{display:none}
  .topbar nav{gap:4px 8px}
  .topbar nav a{font-size:.9rem}
  .toggle{padding:9px 10px 9px 7px;font-size:.8rem;min-height:40px}
  .topbar nav a{padding:10px 2px}
  .reading{margin:20px 12px 60px;transform:none}
  .reading>*{transform:none}
}
.motion-off .ticker-track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
[id]{scroll-margin-top:120px}
.reading .email-line{font-size:1.2rem;margin:0 0 14px}

/* Support form (shared with the launch-notify card) */
.reading .back-link{display:inline-block;font-weight:700;text-decoration:none;margin-bottom:14px}
.reading .help-heading{margin-top:52px}
.contact-card{margin:30px 0 10px;padding:22px 22px 18px;background:#efd9ad;border:2px dashed #c9a46a;border-radius:8px}
.contact-card h2{margin-top:0!important;border-bottom:0!important;padding-bottom:0!important}
.support-context{font-weight:700;color:#1f6b4f;margin:0 0 12px}
.support-topic{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.topic-btn{border:2px solid #c9a46a;background:var(--paper);color:#3b2a1c;border-radius:999px;padding:9px 14px;font-weight:800;font-size:.95rem;min-height:44px}
.topic-btn[aria-pressed=true]{background:#8e1f16;border-color:#6a160e;color:#fff}
.topic-btn:hover:not([aria-pressed=true]){border-color:#8e1f16}
.field{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;border:0;padding:0;min-width:0}
.field label,.field legend{font-weight:800;color:#2b1d14;font-size:1rem;padding:0}
.field .hint{font-weight:500;color:#6b5540;font-size:.9rem}
.field input[type=text],.field input[type=email],.field textarea{font:inherit;font-size:16px;color:#2b1d14;background:#fffaf0;border:2px solid #c9a46a;border-radius:8px;padding:10px 12px;width:100%}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px rgba(79,195,154,.3)}
.field [aria-invalid=true]{border-color:#c9372b}
.field.choice label{font-weight:600;display:flex;gap:8px;align-items:center;min-height:32px}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.support-actions{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:6px}
.support-actions .button{border:2px solid #6a160e;cursor:pointer;font-family:var(--arcade);font-size:1.25rem;letter-spacing:.04em;color:#fff;background:linear-gradient(#e0523f,#b52f22);border-radius:10px;padding:10px 22px 8px;box-shadow:0 4px 0 #6a160e}
.support-actions .button:disabled{opacity:.7;cursor:progress}
.support-direct{margin:0!important;font-size:.98rem}
.support-status{margin:14px 0 0!important;padding:10px 14px;border-radius:8px;font-weight:700}
.support-status.is-ok{background:#d6f2e6;color:#14523b}
.support-status.is-error{background:#f8d7cf;color:#7a1a10}
