 :root{
  --bg:#061018;--bg2:#0c1a26;--panel:#0e1d2d;--panel2:#12273c;--line:#1f4a66;--accent:#59e1ff;--accent2:#b7ff5a;--ink:#d8f3ff;--muted:#8db3c4;--danger:#ffb374;
}
*{box-sizing:border-box}html,body{margin:0;padding:0}img,svg{max-width:100%;height:auto}h1,h2,h3,strong,a,pre,p,li,span,small,label,button,input,textarea,td,th{overflow-wrap:anywhere}body{min-height:100vh;background:radial-gradient(circle at top right, rgba(89,225,255,.12), transparent 28%),linear-gradient(180deg,#07111a,#091725 55%,#050c13);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}pre,input,textarea,button{font:inherit}
.site-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.side-rail{padding:1.2rem 1rem;border-right:1px solid rgba(89,225,255,.14);background:linear-gradient(180deg,#07111a,#09131f)}.brand{display:grid;gap:.32rem;padding:1rem;border:1px solid rgba(89,225,255,.16);background:rgba(255,255,255,.02)}.brand-mark{font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}.brand strong{font-size:1.25rem;text-transform:uppercase;letter-spacing:.08em}.brand small{color:var(--muted);line-height:1.6}.rail-nav{display:grid;gap:.55rem;margin-top:1rem}.rail-nav a{padding:.75rem .85rem;border:1px solid rgba(89,225,255,.16);background:rgba(255,255,255,.02);text-transform:uppercase;font-size:.78rem;letter-spacing:.14em}.rail-nav a:hover{background:rgba(89,225,255,.07)}.rail-note{margin-top:1rem;padding:1rem;border-left:3px solid var(--accent2);background:rgba(183,255,90,.06);color:#cceeb0;line-height:1.7}
.page-shell{padding:1.4rem 1.4rem 2rem}.drop-home,.spots-layout{display:grid;gap:1rem}.drop-home{grid-template-columns:minmax(0,1.12fr) 340px}.map-stage,.dock-card,.ledger-page,.faq-page,.spots-page,.drop-page,.empty-page{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid rgba(89,225,255,.16);box-shadow:0 18px 42px rgba(0,0,0,.24)}.map-stage{padding:1.25rem;position:relative;overflow:hidden}.map-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(183,255,90,.06),transparent 40%);pointer-events:none}.stage-head h1,.page-head h1{margin:.35rem 0 0;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.04}.eyebrow{margin:0;color:var(--accent2);font-size:.74rem;text-transform:uppercase;letter-spacing:.24em}.lead{margin:.9rem 0 0;max-width:62ch;line-height:1.76;color:var(--muted)}.city-map,.route-map{display:block;width:100%;margin-top:1rem;border:1px solid rgba(89,225,255,.2);background:#071018}.note-ribbon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}.note-ribbon article{padding:.85rem;border-left:3px solid var(--accent);background:rgba(6,14,24,.55);line-height:1.7;color:#d4edf8}
.dock-stack{display:grid;gap:1rem}.dock-card{padding:1rem}.dock-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;padding-bottom:.7rem;border-bottom:1px solid rgba(89,225,255,.12)}.dock-head h2{margin:0;text-transform:uppercase;letter-spacing:.08em}.dock-head span{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.11em}.dock-form{display:grid;gap:.65rem;margin-top:.8rem}.dock-form label{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}input,textarea{width:100%;padding:.9rem 1rem;border:1px solid rgba(89,225,255,.18);background:#071018;color:var(--ink)}textarea{min-height:180px;resize:vertical}.check-row{display:flex;gap:.55rem;align-items:center}.check-row input{width:auto}button{padding:.92rem 1rem;border:none;background:linear-gradient(90deg,#0ea9c7,#15d0f2);color:#051018;text-transform:uppercase;font-weight:700;letter-spacing:.12em;cursor:pointer}button:hover{filter:brightness(1.05)}.result-box{display:none;white-space:pre-wrap;padding:1rem;border:1px solid rgba(89,225,255,.16);background:#071018;line-height:1.68;color:#dcf8ff}
.spot-strip,.spot-grid,.faq-list,.ledger-list{display:grid;gap:.8rem}.spot-strip{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem}.spot-strip article,.spot-grid article,.faq-list article,.ledger-row,.empty-card,.drop-viewer{padding:1rem;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.01));border:1px solid rgba(89,225,255,.14)}.spot-strip strong,.spot-grid strong,.faq-list strong,.ledger-row strong{display:block;text-transform:uppercase;letter-spacing:.08em}.spot-strip span,.spot-grid span,.subhead{display:block;margin-top:.3rem;color:var(--accent);font-size:.76rem;text-transform:uppercase;letter-spacing:.11em}.spot-strip p,.spot-grid p,.faq-list p,.ledger-row p{margin:.45rem 0 0;line-height:1.72;color:var(--muted)}
.page-head{margin-bottom:1rem}.spots-layout{grid-template-columns:320px minmax(0,1fr)}.ledger-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.ledger-row span{white-space:nowrap}.drop-viewer .target-line{margin:0 0 .8rem;color:var(--muted)}.drop-viewer .target-line a{color:var(--accent)}.drop-preview{margin:0;white-space:pre-wrap;min-height:240px;max-height:420px;overflow:auto;padding:1rem;border:1px solid rgba(89,225,255,.14);background:#061018;color:#dcf8ff;line-height:1.68}.burn-banner{margin-bottom:1rem;padding:.8rem 1rem;border-left:3px solid var(--danger);background:rgba(255,179,116,.08);color:#ffd4ab}.back-link{display:inline-flex;padding:.85rem 1rem;border:1px solid rgba(89,225,255,.16);text-transform:uppercase;letter-spacing:.12em}
@media(max-width:1020px){.site-shell{grid-template-columns:1fr}.side-rail{border-right:none;border-bottom:1px solid rgba(89,225,255,.14)}.drop-home,.spots-layout,.note-ribbon,.spot-strip{grid-template-columns:1fr}}

@media(max-width:720px){.dock-head{align-items:flex-start;flex-direction:column}.ledger-row{flex-direction:column}.back-link{width:100%;justify-content:center}}

.drop-home > *, .spots-layout > *, .dock-stack > *, .spot-strip > *, .spot-grid > *, .faq-list > *, .ledger-list > * { min-width: 0; }
.note-ribbon article, .spot-strip article, .spot-grid article, .faq-list article, .ledger-row, .drop-viewer, .dock-card { overflow: hidden; }
.drop-preview { word-break: break-word; }
