
:root{
  --snow:#FBFDFE; --frost:#E8F1F6; --frost-2:#D5E4EE; --line:#C9DAE6;
  --ink:#0E2233; --ink-2:#3B5266; --muted:#5D7286;
  --glacier:#1F5F8B; --glacier-2:#174a6d; --cyan:#7FC4D8;
  --verified:#2F7D5B; --verified-bg:#E3F2EA;
  --disputed:#8A4B3C; --disputed-bg:#F6E9E4;
  --unverified:#5B5A8C; --unverified-bg:#EBEAF6;
  --spec:#9A6516; --spec-bg:#FBF0DC; --spec-line:#E3B867;
  --serif:"Spectral", Georgia, "Times New Roman", serif;
  --sans:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --r-sm:6px; --r-md:12px; --r-lg:22px;
  --shadow:0 1px 2px rgba(14,34,51,.06), 0 8px 24px -12px rgba(14,34,51,.18);
  color-scheme: light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto} *{animation:none!important;transition:none!important}}
body{margin:0;background:var(--snow);color:var(--ink);font-family:var(--serif);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--glacier);text-underline-offset:3px}
a:hover{color:var(--glacier-2)}
:focus-visible{outline:3px solid var(--glacier);outline-offset:2px;border-radius:4px}
button,input,select,textarea{font:inherit;color:inherit}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:var(--r-sm);z-index:100}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- header / nav ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top, 0px);z-index:41;background:var(--snow)}
header.top{position:sticky;top:env(safe-area-inset-top, 0px);z-index:40;background:rgba(251,253,254,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:20px;padding-block:10px;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--sans);font-weight:800;font-stretch:80%;font-size:1.2rem;letter-spacing:-.01em;white-space:nowrap}
.brand svg{flex:none}
nav.main{margin-left:auto}
nav.main ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}
nav.main a{display:block;padding:8px 11px;border-radius:999px;font-family:var(--sans);font-size:.92rem;font-weight:550;color:var(--ink-2);text-decoration:none}
nav.main a:hover{background:var(--frost)}
nav.main a[aria-current="page"]{background:var(--ink);color:#fff}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-family:var(--sans);font-weight:600;cursor:pointer}
@media (max-width:1060px){
  .menu-btn{display:block}
  nav.main{position:fixed;inset:57px 0 auto 0;background:var(--snow);border-bottom:1px solid var(--line);display:none;margin:0}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column;padding:8px 12px 16px}
  nav.main a{padding:12px 14px;font-size:1rem;border-radius:var(--r-sm)}
}
main{min-height:70vh}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
section.page{display:none}
section.page.active{display:block}
.page-head{padding:44px 0 18px;max-width:760px}
.page-head h1{font-family:var(--sans);font-stretch:78%;font-weight:800;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1;letter-spacing:-.02em;margin:0 0 12px}
.page-head p{margin:0;color:var(--ink-2);font-size:1.12rem}
h2{font-family:var(--sans);font-stretch:85%;font-weight:750;font-size:1.55rem;line-height:1.15;letter-spacing:-.01em;margin:0 0 10px}
h3{font-family:var(--sans);font-weight:700;font-size:1.08rem;line-height:1.25;margin:0 0 6px}

/* ---------- evidence labels: the colour system ---------- */
.ev{flex:none;justify-self:start;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:.78rem;font-weight:650;padding:3px 9px 3px 7px;border-radius:999px;white-space:nowrap;line-height:1.4}
.ev::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.ev.verified{color:var(--verified);background:var(--verified-bg)}
.ev.disputed{color:var(--disputed);background:var(--disputed-bg)}
.ev.unverified{color:var(--unverified);background:var(--unverified-bg)}
.ev.speculative{color:var(--spec);background:var(--spec-bg)}
.ev.search{color:var(--ink-2);background:var(--frost)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:#06121d;color:#fff;min-height:600px;display:grid;align-items:end}
.hero-img{position:absolute;inset:0;background:radial-gradient(ellipse 30% 34% at 72% 50%,#e9f3f8 0 55%,#9fc3d6 70%,transparent 72%),radial-gradient(circle at 72% 50%,#123a5c 0,#06121d 60%)}
.hero-img img{position:absolute;right:-12%;top:50%;transform:translateY(-50%);height:132%;width:auto;max-width:none;opacity:.94}
@media (max-width:760px){.hero-img img{right:-45%;height:105%;top:38%}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,18,29,.94) 0%,rgba(6,18,29,.72) 40%,rgba(6,18,29,0) 75%),linear-gradient(0deg,rgba(6,18,29,.85),rgba(6,18,29,0) 45%)}
.hero-copy{position:relative;z-index:2;padding-block:64px 56px;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));max-width:1240px;margin:0 auto;width:100%}
.hero h1{font-family:var(--sans);font-stretch:75%;font-weight:800;font-size:clamp(3.4rem,11vw,8.6rem);line-height:.86;letter-spacing:-.03em;margin:0 0 22px;max-width:9ch}
.hero p.lede{font-size:clamp(1.08rem,2vw,1.3rem);max-width:34ch;color:#dbe8f1;margin:0 0 28px}
.hero .credit{position:absolute;right:16px;bottom:10px;z-index:2;font-family:var(--sans);font-size:.72rem;color:#9fb5c6}
.hero .credit a{color:#cfe2ee}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:650;font-size:.98rem;padding:12px 20px;border-radius:999px;border:1px solid transparent;text-decoration:none;cursor:pointer;background:var(--glacier);color:#fff}
.btn:hover{background:var(--glacier-2);color:#fff}
.btn.ghost{background:transparent;border-color:currentColor;color:inherit}
.hero .btn.ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.hero .btn.ghost:hover{background:rgba(255,255,255,.1)}
.btn.small{padding:8px 14px;font-size:.88rem}
.btn.quiet{background:var(--frost);color:var(--ink)}
.btn.quiet:hover{background:var(--frost-2);color:var(--ink)}

/* ---------- start here ---------- */
.mission{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;padding:56px 0 28px;align-items:start}
.mission p{max-width:62ch}
@media (max-width:860px){.mission{grid-template-columns:1fr;gap:24px}}
.legend-box{background:var(--frost);border-radius:var(--r-lg);padding:24px}
.legend-box ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}
.legend-box li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:.97rem}
.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:12px 0 64px}
.area{position:relative;display:flex;flex-direction:column;border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);min-height:250px}
.area .art{height:130px;background:var(--frost)}
.area .art svg{width:100%;height:100%}
.area .txt{padding:14px 16px 18px}
.area p{margin:0;color:var(--ink-2);font-size:.97rem}
.area:hover{border-color:var(--glacier)}
.area:hover h3{color:var(--glacier)}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:8px 0 64px;counter-reset:s}
.how div{border-top:2px solid var(--ink);padding-top:14px}
.how div::before{counter-increment:s;content:"Step " counter(s);font-family:var(--sans);font-weight:700;font-size:.85rem;color:var(--glacier)}
@media (max-width:760px){.how{grid-template-columns:1fr}}

/* ---------- vaults ---------- */
.controls{position:sticky;top:calc(57px + env(safe-area-inset-top, 0px));z-index:20;background:rgba(251,253,254,.96);backdrop-filter:blur(8px);padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:22px}
.controls .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.search{flex:1 1 280px;position:relative}
.search input{width:100%;padding:11px 14px 11px 40px;border:1px solid var(--line);border-radius:999px;background:#fff;font-family:var(--sans);font-size:1rem}
.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
select.sel{padding:10px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-family:var(--sans);font-size:.93rem}
.chips{display:flex;gap:6px;overflow-x:auto;padding:10px 0 2px;scrollbar-width:thin}
.chip{flex:none;font-family:var(--sans);font-size:.88rem;font-weight:550;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink-2)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.count{font-family:var(--sans);font-size:.9rem;color:var(--muted);margin:0 0 12px}

.spotlight{margin:0 0 28px}
.spot-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.spot-head p{margin:0;font-family:var(--sans);font-size:.88rem;color:var(--muted)}
.spot-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,420px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.spot{scroll-snap-align:start;position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:250px;background:var(--ink);color:#fff;text-align:left;border:0;padding:0;cursor:pointer;display:block}
.spot .thumb{position:absolute;inset:0}
.spot .thumb img,.spot .thumb svg{width:100%;height:100%;object-fit:cover}
.spot .cap{position:absolute;inset:auto 0 0 0;padding:60px 18px 16px;background:linear-gradient(0deg,rgba(6,18,29,.94),rgba(6,18,29,0))}
.spot .thumb svg text{display:none}
.spot .cap h3{font-size:1.25rem;font-stretch:85%;margin:6px 0 2px}
.spot .cap p{margin:0;font-size:.9rem;color:#cddbe6;font-family:var(--sans)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;padding-bottom:72px}
.card{display:flex;flex-direction:column;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;padding:0;cursor:pointer}
.card:hover{border-color:var(--glacier)}
.card .thumb{aspect-ratio:4/3;background:var(--frost);position:relative;overflow:hidden}
.card .thumb img,.card .thumb svg{width:100%;height:100%;object-fit:cover}
.card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.card .meta{font-family:var(--sans);font-size:.82rem;color:var(--muted)}
.card p{margin:0;font-size:.95rem;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}
.star{position:absolute;top:10px;left:10px;font-family:var(--sans);font-size:.75rem;font-weight:700;background:#fff;color:var(--ink);padding:3px 9px;border-radius:999px}
.rights{position:absolute;bottom:8px;right:8px;font-family:var(--sans);font-size:.7rem;background:rgba(255,255,255,.92);color:var(--ink-2);padding:2px 8px;border-radius:999px}
.empty{padding:40px;text-align:center;background:var(--frost);border-radius:var(--r-lg);font-family:var(--sans)}

/* ---------- detail dialog ---------- */
dialog.detail.linkbox{width:min(520px,calc(100vw - 24px))}
dialog.detail{border:0;padding:0;border-radius:var(--r-lg);width:min(920px,calc(100vw - 24px));max-height:calc(100vh - 24px);box-shadow:0 30px 80px -20px rgba(6,18,29,.5);background:var(--snow);color:var(--ink)}
dialog.detail::backdrop{background:rgba(6,18,29,.55)}
.d-hero{position:relative;background:var(--ink);aspect-ratio:21/9;max-height:330px;overflow:hidden}
.d-hero img,.d-hero svg{width:100%;height:100%;object-fit:cover}
.d-credit{position:absolute;left:0;right:0;bottom:0;padding:22px 16px 8px;background:linear-gradient(0deg,rgba(6,18,29,.85),rgba(6,18,29,0));color:#dbe8f1;font-family:var(--sans);font-size:.78rem}
.d-credit a{color:#fff}
.d-close{position:absolute;top:12px;right:12px;z-index:3;background:#fff;border:0;border-radius:999px;width:40px;height:40px;cursor:pointer;font-size:1.3rem;line-height:1;box-shadow:var(--shadow)}
.d-body{padding:22px 26px 28px;display:grid;grid-template-columns:1fr 260px;gap:28px}
@media (max-width:760px){.d-body{grid-template-columns:1fr;padding:18px}}
.d-body h2{font-size:1.9rem;font-stretch:80%}
.d-body h4{font-family:var(--sans);font-size:.95rem;font-weight:700;margin:22px 0 6px;color:var(--ink)}
.d-body ul{padding-left:20px;margin:0}
.d-body li{margin-bottom:6px}
.facts{font-family:var(--sans);font-size:.88rem;background:var(--frost);border-radius:var(--r-md);padding:14px 16px;align-self:start}
.facts dl{margin:0;display:grid;gap:10px}
.facts dt{font-weight:700;color:var(--ink)}
.facts dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.thread{display:flex;flex-wrap:wrap;gap:8px}
.thread button{text-align:left;font-family:var(--sans);font-size:.88rem;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.thread button:hover{border-color:var(--glacier);color:var(--glacier)}
.thread .k{font-size:.72rem;color:var(--muted)}
.callout{border-left:4px solid var(--spec-line);background:var(--spec-bg);padding:10px 14px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:.95rem;margin:14px 0}
.callout.v{border-color:var(--verified);background:var(--verified-bg)}
.trail{position:fixed;left:calc(12px + env(safe-area-inset-left, 0px));bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:30;font-family:var(--sans);font-size:.82rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 14px;box-shadow:var(--shadow);display:none;align-items:center;gap:8px;max-width:calc(100vw - 24px)}
.trail.on{display:flex}
.trail ol{list-style:none;margin:0;padding:0;display:flex;gap:4px;overflow-x:auto}
.trail li button{border:0;background:var(--frost);border-radius:999px;padding:4px 10px;cursor:pointer;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}

/* ---------- map ---------- */
.map-shell{display:grid;grid-template-columns:1fr;gap:12px;padding-bottom:64px}
.map-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.seg{display:inline-flex;background:var(--frost);border-radius:999px;padding:4px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:transparent;border-radius:999px;padding:8px 14px;font-family:var(--sans);font-weight:600;font-size:.9rem;cursor:pointer;color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.stage{position:relative;height:min(72vh,680px);min-height:420px;border-radius:var(--r-lg);overflow:hidden;background:#0a1824;touch-action:none;user-select:none}
.view{position:absolute;inset:0;display:none}
.view.on{display:block}
.mode-flag{position:absolute;top:12px;left:12px;z-index:6;font-family:var(--sans);font-size:.8rem;font-weight:700;padding:6px 12px;border-radius:999px;background:#fff;display:flex;align-items:center;gap:6px;max-width:calc(100% - 120px)}
.mode-flag.verified{color:var(--verified)} .mode-flag.historical{color:var(--unverified)} .mode-flag.speculative{color:#fff;background:var(--spec)}
.mode-flag::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}
.zoom{position:absolute;right:12px;top:12px;z-index:6;display:flex;flex-direction:column;gap:6px}
.zoom button{width:40px;height:40px;border-radius:12px;border:0;background:#fff;font-size:1.3rem;cursor:pointer;box-shadow:var(--shadow);font-family:var(--sans)}
.tiles{position:absolute;inset:0;cursor:grab}
.tiles:active{cursor:grabbing}
.tiles img{position:absolute;max-width:none;image-rendering:auto;pointer-events:none}
.overlay{position:absolute;inset:0;pointer-events:none}
.mk{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:var(--glacier);box-shadow:0 0 0 4px rgba(31,95,139,.35);cursor:pointer;display:grid;place-items:center;color:#fff;font-family:var(--sans);font-weight:800;font-size:.75rem}
.mk.hist{background:#3e5b78}
.mk.sel{background:#fff;color:var(--ink);box-shadow:0 0 0 6px rgba(127,196,216,.6)}
.mk-label{position:absolute;transform:translate(14px,-50%);font-family:var(--sans);font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 3px #000;white-space:nowrap;pointer-events:none}
.attrib{position:absolute;right:10px;bottom:8px;z-index:6;font-family:var(--sans);font-size:.7rem;color:#c8d8e4;background:rgba(6,18,29,.55);padding:3px 8px;border-radius:6px}
.attrib a{color:#fff}
.notice{position:absolute;inset:auto 12px 40px 12px;z-index:7;background:#fff;border-radius:var(--r-md);padding:12px 14px;font-family:var(--sans);font-size:.9rem;display:none;box-shadow:var(--shadow)}
.notice.on{display:block}
.popup{position:absolute;z-index:8;right:12px;top:64px;width:min(380px,calc(100% - 24px));max-height:calc(100% - 80px);overflow:auto;background:var(--snow);border-radius:var(--r-lg);box-shadow:0 20px 50px -18px rgba(0,0,0,.6);display:none}
.popup.on{display:block}
@media (max-width:640px){.popup{right:8px;left:8px;width:auto;top:auto;bottom:8px;max-height:58%}.popup .ph{display:none}.popup .pb{padding-right:50px}}
.popup .ph{position:relative;height:140px;background:var(--ink)}
.popup .ph img,.popup .ph svg{width:100%;height:100%;object-fit:cover}
.popup .pb{padding:14px 16px 18px;font-size:.96rem}
.popup .pb h3{font-size:1.2rem;font-stretch:85%;margin:8px 0}
.popup .pb h4{font-family:var(--sans);font-size:.88rem;margin:12px 0 4px}
.popup .pb ul{margin:0;padding-left:18px}
.popup .x{position:absolute;right:10px;top:10px;border:0;border-radius:999px;width:34px;height:34px;background:#fff;cursor:pointer;font-size:1.1rem}
.canvas3d{position:absolute;inset:0;cursor:grab}
.canvas3d canvas{display:block;width:100%!important;height:100%!important}
.hist-wrap{position:absolute;inset:0;overflow:hidden;cursor:grab;background:#1b2a36}
.hist-wrap img{position:absolute;left:50%;top:50%;transform-origin:0 0;max-width:none}
.hist-pick{position:absolute;left:12px;bottom:12px;z-index:6;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 24px)}
.hist-pick button{font-family:var(--sans);font-size:.82rem;border:0;border-radius:999px;padding:6px 12px;background:rgba(255,255,255,.9);cursor:pointer}
.hist-pick button[aria-pressed="true"]{background:var(--ink);color:#fff}
.world-pick{position:absolute;left:12px;bottom:12px;z-index:6;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 24px)}
.world-pick button{font-family:var(--sans);font-size:.82rem;border:1px solid var(--spec-line);border-radius:999px;padding:6px 12px;background:var(--spec-bg);color:var(--spec);cursor:pointer;font-weight:600}
.world-pick button[aria-pressed="true"]{background:var(--spec);color:#fff}
.theory-strip{display:grid;grid-auto-flow:column;grid-auto-columns:156px;gap:10px;overflow-x:auto;padding-bottom:6px}
.tstrip{border:1px solid var(--line);background:#fff;border-radius:var(--r-md);overflow:hidden;text-align:left;padding:0;cursor:pointer}
.tstrip .thumb{height:84px;background:var(--frost)}
.tstrip .thumb img,.tstrip .thumb svg{width:100%;height:100%;object-fit:cover}
.tstrip span{display:block;font-family:var(--sans);font-size:.82rem;font-weight:600;padding:8px 10px;line-height:1.25}
.tstrip[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}
.map-key{display:flex;flex-wrap:wrap;gap:8px 16px;font-family:var(--sans);font-size:.85rem;color:var(--ink-2)}

/* ---------- watch ---------- */
.vcard .thumb .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center}

/* ---------- take action / community / editorial ---------- */
.steps{display:grid;gap:22px;padding-bottom:40px;counter-reset:st}
.step{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg)}
.step::before{counter-increment:st;content:counter(st);font-family:var(--sans);font-stretch:75%;font-weight:800;font-size:2.6rem;line-height:1;color:var(--glacier)}
@media (max-width:640px){.step{grid-template-columns:1fr;gap:6px}}
.step p{margin:0 0 10px;max-width:68ch}
.linklist{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
.linklist a{font-family:var(--sans);font-weight:600}
.linklist small{display:block;color:var(--muted);font-family:var(--sans)}
.form{display:grid;gap:12px;max-width:720px}
.form label{font-family:var(--sans);font-weight:600;font-size:.92rem;display:grid;gap:5px}
.form label{min-width:0}
.form input,.form select,.form textarea{width:100%;max-width:100%;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-family:var(--sans);font-size:1rem}
.form textarea{min-height:120px;resize:vertical}
.form .hint{font-weight:400;color:var(--muted);font-size:.85rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.row2{grid-template-columns:1fr}}
pre.letter{white-space:pre-wrap;background:var(--frost);border-radius:var(--r-md);padding:16px;font-family:var(--serif);font-size:.98rem;max-width:720px}
.preview-banner{display:flex;gap:12px;align-items:flex-start;background:var(--spec-bg);border:1px solid var(--spec-line);color:#5a3c0b;border-radius:var(--r-md);padding:14px 16px;font-family:var(--sans);font-size:.93rem;margin-bottom:22px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}
.tabs button{border:0;background:none;padding:10px 14px;font-family:var(--sans);font-weight:600;cursor:pointer;color:var(--ink-2);border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.panel{display:none}
.panel.on{display:block}
.thread-list{display:grid;gap:10px;margin-top:18px}
.post{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
.post .pm{font-family:var(--sans);font-size:.82rem;color:var(--muted)}
.plan{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin:16px 0 40px}
.plan div{background:var(--frost);border-radius:var(--r-md);padding:16px 18px}
.plan p,.plan ul{margin:0;font-size:.95rem}
.plan ul{padding-left:18px}
.prose{max-width:72ch;padding-bottom:64px}
.prose h2{margin-top:36px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom, 0px));transform:translateX(-50%);background:var(--ink);color:#fff;font-family:var(--sans);padding:10px 18px;border-radius:999px;z-index:90;display:none}
.toast.on{display:block}

footer{background:var(--frost);border-top:1px solid var(--line);padding:36px 0 90px;font-family:var(--sans);font-size:.9rem;color:var(--ink-2)}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:28px}
footer a{color:var(--ink)}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
@media (max-width:760px){footer .cols{grid-template-columns:1fr}}
