:root{--bg:#14110F;--surface:#221C18;--ink:#F5E9DA;--muted:#B9A897;--accent:#FF8C2B;--accent2:#C7432A;--rule:#3A302A;--display:"Young Serif",Georgia,serif;--body:"Schibsted Grotesk",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.06rem/1.7 var(--body);overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");z-index:50}
a{color:var(--accent)}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--bg);padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;margin:0 0 .6em}
h1{font-size:clamp(2.4rem,7vw,5.4rem)}
h2{font-size:clamp(1.7rem,4vw,2.8rem)}
h3{font-size:1.4rem}
p{margin:0 0 1.1em;max-width:62ch}
.topline{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem clamp(1rem,4vw,3rem);border-bottom:1px solid var(--rule);background:rgba(20,17,15,.88);backdrop-filter:blur(6px)}
.brand{font-family:var(--display);color:var(--ink);text-decoration:none;font-size:1.15rem;display:flex;align-items:center;gap:.55rem}
.flame{width:12px;height:18px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#ffd08a,var(--accent) 45%,var(--accent2));display:inline-block}
.here{color:var(--muted);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;display:none}
@media(min-width:700px){.here{display:block}}
.lightbtn{font:600 .9rem var(--body);background:none;color:var(--ink);border:1px solid var(--accent);padding:.55rem 1rem;border-radius:999px;cursor:pointer;display:flex;gap:.5rem;align-items:center}
.lightbtn:hover{background:var(--accent);color:var(--bg)}
.overlay{position:fixed;inset:0;z-index:90;background:radial-gradient(circle at 80% 0%,rgba(255,140,43,.22),transparent 55%),var(--bg);display:none;flex-direction:column;padding:clamp(1rem,4vw,3rem);overflow:auto}
.overlay.open{display:flex;animation:fade .35s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.overlay .close{align-self:flex-end}
.overlay ol{list-style:none;margin:2rem 0 0;padding:0}
.overlay li{border-top:1px solid var(--rule)}
.overlay li a{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 1rem;padding:1rem 0;text-decoration:none;color:var(--ink)}
.overlay li a span:first-child{font-family:var(--display);font-size:clamp(1.8rem,6vw,3.6rem)}
.overlay li a span:last-child{color:var(--muted);font-size:.95rem}
.overlay li a:hover span:first-child,.overlay li a[aria-current] span:first-child{color:var(--accent)}
.overlay .olabel{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;margin:0}
main{display:block}
.wrap{width:min(1100px,100% - 2rem);margin:0 auto}
.narrow{width:min(720px,100% - 2rem);margin:0 auto}
.kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:600;margin-bottom:1rem}
/* cave */
.cave{position:relative;min-height:calc(100dvh - 60px);display:grid;place-items:center;overflow:hidden;--x:50%;--y:45%;cursor:crosshair}
.wall{position:absolute;inset:0;display:grid;grid-template-rows:repeat(3,1fr);padding:clamp(1.5rem,6vw,5rem);background:repeating-linear-gradient(115deg,#1b1714 0 3px,#14110F 3px 11px)}
.wall p{font-family:var(--display);font-size:clamp(1.6rem,4.5vw,3.6rem);line-height:1.12;max-width:16ch;margin:0;color:var(--ink)}
.wall p:nth-child(1){align-self:start}
.wall p:nth-child(2){justify-self:end;align-self:center;text-align:right}
.wall p:nth-child(3){align-self:end;justify-self:center;text-align:center;max-width:20ch}
.wall em{color:var(--accent);font-style:normal}
.dark{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle 230px at var(--x) var(--y),transparent 0,rgba(20,17,15,.18) 45%,rgba(20,17,15,.35) 100%)}
.cave-title{position:absolute;top:0;left:0;right:0;z-index:2;text-align:center;pointer-events:none;padding:.5rem 1rem;background:var(--bg)}
.wall{padding-top:9rem}
.cave-title h1{font-size:clamp(1.1rem,2.4vw,1.5rem);font-family:var(--body);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.cave-title p{margin:0 auto;color:var(--muted);font-size:.9rem}
.essay{padding:clamp(4rem,10vw,8rem) 0}
.essay p:first-of-type::first-letter{font-family:var(--display);float:left;font-size:4.6rem;line-height:.85;padding:.3rem .6rem 0 0;color:var(--accent)}
.essay h2{margin-top:2.6rem}
.ember-rule{height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);border:0;margin:3rem 0}
.paths{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);margin:2.4rem 0}
.paths a{background:var(--bg);padding:1.3rem 1.4rem;text-decoration:none;color:var(--ink);display:grid;gap:.2rem}
.paths a strong{font-family:var(--display);font-weight:400;font-size:1.35rem}
.paths a span{color:var(--muted)}
.paths a:hover{background:var(--surface)}
.paths a:hover strong{color:var(--accent)}
@media(min-width:760px){.paths{grid-template-columns:1.4fr 1fr}.paths a:first-child{grid-row:span 2}}
/* page head */
.phead{padding:clamp(3rem,9vw,7rem) 0 2.5rem;border-bottom:1px solid var(--rule)}
.phead p{color:var(--muted);font-size:1.15rem}
section{padding:3.2rem 0}
/* wireframe */
.wire-wrap{display:grid;gap:2rem;align-items:start}
@media(min-width:900px){.wire-wrap{grid-template-columns:1.25fr 1fr}}
.wire{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:1rem;position:relative}
.wire svg{width:100%;height:auto;display:block}
.wire .pin{cursor:pointer}
.wire .pin circle{fill:var(--accent);transition:transform .2s}
.wire .pin text{fill:var(--bg);font:700 13px var(--body)}
.wire .pin:hover circle,.wire .pin.on circle{fill:#ffd08a}
.notes{list-style:none;margin:0;padding:0;counter-reset:none}
.notes li{border-left:2px solid var(--rule);padding:.4rem 0 .4rem 1.1rem;margin-bottom:1rem;transition:border-color .2s}
.notes li.on{border-color:var(--accent)}
.notes button{all:unset;cursor:pointer;font-family:var(--display);font-size:1.2rem;display:flex;gap:.6rem;align-items:center}
.notes button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.notes .tag{font:700 .75rem var(--body);background:var(--accent);color:var(--bg);border-radius:50%;width:1.5rem;height:1.5rem;display:inline-grid;place-items:center}
.notes p{color:var(--muted);margin:.3rem 0 0;font-size:.98rem}
.def{display:grid;gap:1.4rem}
@media(min-width:760px){.def{grid-template-columns:repeat(2,1fr)}}
.def div{border-top:1px solid var(--accent);padding-top:1rem}
/* purpose panels */
.panels{display:grid;gap:1.2rem}
.panel{background:var(--surface);border-radius:4px;padding:clamp(1.4rem,4vw,2.6rem);position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(255,140,43,.25),transparent 70%)}
@media(min-width:860px){.panels{grid-template-columns:repeat(6,1fr)}.panel:nth-child(1){grid-column:span 4}.panel:nth-child(2){grid-column:span 2}.panel:nth-child(3){grid-column:span 2}.panel:nth-child(4){grid-column:span 4}.panel:nth-child(5){grid-column:span 6}}
.panel ul{padding-left:1.1rem;margin:0}
.panel li{margin-bottom:.35rem}
/* journal */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 0}
.filters button{font:500 .9rem var(--body);background:none;border:1px solid var(--rule);color:var(--ink);padding:.45rem .9rem;border-radius:999px;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.articles{list-style:none;margin:0;padding:0}
.articles li{display:grid;gap:.4rem;padding:1.6rem 0;border-bottom:1px solid var(--rule)}
@media(min-width:760px){.articles li{grid-template-columns:9rem 1fr}}
.articles .topic{color:var(--accent);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;padding-top:.4rem}
.articles h2{font-size:1.55rem;margin:0}
.articles p{color:var(--muted);margin:.2rem 0 0}
.articles .state{font-size:.78rem;color:var(--muted);border:1px dashed var(--rule);padding:.1rem .5rem;border-radius:3px;justify-self:start;display:inline-block;margin-top:.5rem}
.articles li[hidden]{display:none}
/* find us */
.lantern{display:grid;gap:2rem;padding:3rem 0}
@media(min-width:900px){.lantern{grid-template-columns:1fr 1.15fr}}
.card{background:radial-gradient(circle at 30% 0%,rgba(255,140,43,.28),transparent 60%),var(--surface);border:1px solid var(--rule);border-radius:14px;padding:clamp(1.4rem,4vw,2.4rem);align-self:start}
.card dl{margin:0}
.card dt{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin-top:1.1rem}
.card dd{margin:.2rem 0 0;font-size:1.08rem;overflow-wrap:anywhere}
.card .name{font-family:var(--display);font-size:1.7rem}
form{display:grid;gap:1.1rem}
label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
label small{font-weight:400;color:var(--muted)}
input,textarea,select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:.75rem .85rem;width:100%}
input:focus,textarea:focus{border-color:var(--accent)}
textarea{min-height:9rem;resize:vertical}
.btn{font:600 1rem var(--body);background:var(--accent);color:var(--bg);border:0;border-radius:999px;padding:.85rem 1.4rem;cursor:pointer;justify-self:start}
.btn:hover{background:#ffb067}
.status{min-height:1.5em;color:var(--accent)}
.fine{color:var(--muted);font-size:.9rem}
footer{border-top:1px solid var(--rule);padding:2.5rem 0 3rem;color:var(--muted);font-size:.9rem;margin-top:3rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
footer a{color:var(--muted)}
.prose h2{font-size:1.6rem;margin-top:2.2rem}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
