:root {
  color-scheme: dark;
  --color-bg:#0b0b0a; --color-bg-elevated:#11110f; --color-bg-subtle:#171713;
  --color-text:#e8e5dc; --color-text-muted:#99968d; --color-text-faint:#66645d;
  --color-border:#2b2a25; --color-border-strong:#464238;
  --color-accent:#c58b3a; --color-accent-bright:#d9a355; --color-accent-muted:#80623a;
  --color-accent-surface:rgba(197,139,58,.08); --color-danger:#b7675c; --color-success:#87966b;
  --page-max:1440px; --content-max:1180px; --reading-max:720px; --gutter:clamp(20px,4vw,64px);
  --mono:"IBM Plex Mono","JetBrains Mono","Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --radius:2px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-height:100vh; overflow-x:hidden; background:var(--color-bg); color:var(--color-text); font-family:var(--mono); line-height:1.65; }
body::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.16; background-image:linear-gradient(to right,var(--color-border) 1px,transparent 1px); background-size:calc((100vw - 2 * var(--gutter))/12) 100%; mask-image:linear-gradient(to bottom,#000,transparent 72%); }
::selection { background:var(--color-accent); color:var(--color-bg); }
a { color:var(--color-accent-bright); text-underline-offset:.25em; text-decoration-thickness:1px; }
a:hover { color:var(--color-text); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--color-accent-bright); outline-offset:3px; }
.shell { width:min(var(--content-max),calc(100% - 2 * var(--gutter))); margin-inline:auto; }
.skip-link { position:fixed; z-index:100; top:0; left:var(--gutter); transform:translateY(-140%); padding:.7rem 1rem; background:var(--color-text); color:var(--color-bg); }
.skip-link:focus { transform:none; }
.site-header { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-bottom:1px solid var(--color-border); }
.brand { display:flex; align-items:center; gap:.8rem; color:var(--color-text); text-decoration:none; font-weight:600; letter-spacing:.02em; }
.brand-mark { color:var(--color-accent); }
.brand-status { color:var(--color-text-faint); font-size:.68rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase; }
.brand-status::before { content:""; display:inline-block; width:5px; height:5px; margin-right:.45rem; background:var(--color-accent); vertical-align:.1em; }
.site-header nav { display:flex; gap:clamp(1rem,3vw,2.5rem); font-size:.8rem; }
.site-header nav a { color:var(--color-text-muted); text-decoration:none; }
.site-header nav a:hover { color:var(--color-accent-bright); }
.section-label,.eyebrow { margin:0 0 1rem; color:var(--color-text-muted); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; }
.section-label::before { content:"[ "; color:var(--color-accent-muted); }.section-label::after { content:" ]"; color:var(--color-accent-muted); }
h1,h2,h3,p { overflow-wrap:anywhere; }
h2 { margin:0; font-size:clamp(1.65rem,3.2vw,2.5rem); font-weight:500; line-height:1.18; letter-spacing:-.035em; }
.hero { position:relative; min-height:calc(100vh - 72px); display:grid; grid-template-columns:minmax(0,8fr) minmax(220px,4fr); align-content:center; gap:clamp(3rem,8vw,8rem); padding-block:clamp(6rem,12vw,10rem); }
.hero-copy { max-width:850px; }
.hero h1 { max-width:850px; margin:.25rem 0 1.8rem; font-size:clamp(2.8rem,7vw,6.6rem); font-weight:400; line-height:.94; letter-spacing:-.07em; text-wrap:balance; }
.hero h1 span { color:var(--color-text-muted); }
.lede { max-width:54ch; margin:0; color:var(--color-text-muted); font-size:clamp(1rem,1.7vw,1.2rem); }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; margin-top:2.5rem; }
.button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:.65rem 1rem; border:1px solid var(--color-accent-muted); border-radius:var(--radius); background:var(--color-accent); color:#0b0b0a; font:600 .82rem/1 var(--mono); text-decoration:none; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.button:hover { background:var(--color-accent-bright); color:#0b0b0a; }
.button.secondary { border-color:var(--color-border-strong); background:transparent; color:var(--color-text); }
.button.secondary:hover { border-color:var(--color-accent); color:var(--color-accent-bright); }
.button.disabled { border-color:var(--color-border); background:var(--color-bg-elevated); color:var(--color-text-faint); cursor:not-allowed; }
.route-sketch { position:relative; min-height:340px; border-left:1px solid var(--color-border); color:var(--color-text-faint); font-size:.65rem; }
.route-sketch::before { content:""; position:absolute; top:8%; bottom:8%; left:38%; border-left:1px dashed var(--color-border-strong); transform:rotate(9deg); }
.route-node { position:absolute; left:calc(38% - 4px); width:9px; height:9px; border:1px solid var(--color-accent-muted); background:var(--color-bg); }
.route-node:nth-child(1){top:8%}.route-node:nth-child(2){top:48%;left:calc(43% - 4px)}.route-node:nth-child(3){bottom:8%;left:calc(48% - 4px);background:var(--color-accent)}
.route-sketch p { position:absolute; margin:0; white-space:nowrap; }.route-sketch .route-start{top:5%;left:47%}.route-sketch .route-middle{top:45%;right:0}.route-sketch .route-end{bottom:5%;left:57%;color:var(--color-accent)}
.story,.privacy { display:grid; grid-template-columns:3fr 8fr; gap:clamp(2rem,8vw,8rem); padding-block:clamp(6rem,12vw,10rem); border-top:1px solid var(--color-border); }
.story-copy,.privacy-copy { max-width:var(--reading-max); }.story-copy p,.privacy-copy p { color:var(--color-text-muted); font-size:1.06rem; }
.story-sequence { margin-top:2.5rem; padding-top:1rem; border-top:1px solid var(--color-border); color:var(--color-text-muted); font-size:.8rem; word-spacing:.5em; }
.story-sequence b { color:var(--color-accent); font-weight:400; }
.stats { padding-block:3.5rem clamp(7rem,12vw,10rem); }
.stats dl { display:grid; grid-template-columns:repeat(4,1fr); margin:1.5rem 0 0; border-top:1px solid var(--color-border-strong); border-bottom:1px solid var(--color-border); }
.stats dl div { min-width:0; padding:1.5rem 1.2rem 1.5rem 0; }
.stats dt { color:var(--color-text-faint); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.stats dd { margin:.35rem 0 0; color:var(--color-text); font-size:clamp(1.6rem,3vw,2.6rem); line-height:1.15; }
.stats dd.date { color:var(--color-accent-bright); font-size:clamp(.9rem,1.6vw,1.15rem); line-height:2.8; }
.logs,.feed,.how { padding-block:clamp(6rem,10vw,9rem); border-top:1px solid var(--color-border); }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:3rem; }
.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--color-border); }
.visit-card { position:relative; min-width:0; border-bottom:1px solid var(--color-border); }
.card-grid .visit-card { padding:1.25rem; border-right:1px solid var(--color-border); }.card-grid .visit-card:nth-child(3n){border-right:0}
.featured { margin-bottom:3rem; }.featured .visit-card { display:grid; grid-template-columns:7fr 5fr; border:1px solid var(--color-border-strong); background:var(--color-bg-elevated); }.featured .visit-body { padding:clamp(1.5rem,4vw,3rem); }
.record-index { margin-bottom:1rem; color:var(--color-text-faint); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.shot { display:block; aspect-ratio:16/10; overflow:hidden; border:1px solid var(--color-border); background:#080807; }.featured .shot { border:0; border-right:1px solid var(--color-border); }
.shot img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.72); transition:filter .2s; }.visit-card:hover .shot img { filter:saturate(.95); }
.shot-empty { display:grid; place-items:center; color:var(--color-text-faint); background:repeating-linear-gradient(135deg,#0b0b0a,#0b0b0a 12px,#11110f 12px,#11110f 13px); font-size:.72rem; }
.visit-body { padding:1.25rem 0 .35rem; }.visit-meta,.visit-foot { display:flex; justify-content:space-between; gap:1rem; color:var(--color-text-faint); font-size:.7rem; }.visit-meta span { color:var(--color-accent-bright); text-transform:uppercase; }
.note { white-space:pre-wrap; overflow-wrap:anywhere; }.visit-card .note { min-height:4.9em; color:var(--color-text-muted); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.visit-foot { padding-top:1rem; border-top:1px solid var(--color-border); }.visit-foot a { text-decoration:none; }
.empty { padding:3rem; border:1px dashed var(--color-border-strong); color:var(--color-text-muted); }.terminal-line { color:var(--color-accent-bright); }
.how ol { list-style:none; padding:0; margin:3rem 0 0; display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--color-border); }
.how li { min-height:150px; padding:1.6rem; border-right:1px solid var(--color-border); color:var(--color-text-muted); }.how li:last-child{border:0}.how li b { display:block; margin-bottom:1.5rem; color:var(--color-accent-muted); font-weight:400; }.how strong { display:block; margin-bottom:.4rem; color:var(--color-text); font-weight:500; }
.privacy-notice { padding:1.5rem; border-left:2px solid var(--color-accent-muted); background:var(--color-accent-surface); }
.download { display:grid; grid-template-columns:3fr 5fr 3fr; gap:2rem; align-items:center; margin-block:2rem 9rem; padding:2rem 0; border-block:1px solid var(--color-border-strong); }.download h2 { font-size:clamp(1.35rem,2.8vw,2rem); }.download-status { color:var(--color-text-muted); font-size:.76rem; }.download-status b { display:block; color:var(--color-accent); font-weight:400; }
footer { min-height:110px; display:flex; justify-content:space-between; align-items:center; gap:2rem; border-top:1px solid var(--color-border); color:var(--color-text-faint); font-size:.72rem; }
.page-intro { padding-block:clamp(6rem,11vw,9rem) 4rem; }.page-intro h1 { margin:.1rem 0 1rem; font-size:clamp(3rem,8vw,6rem); font-weight:400; line-height:1; letter-spacing:-.065em; }.page-intro>p:last-child { color:var(--color-text-muted); }.title-dot { color:var(--color-accent); }
.feed { padding-top:0; border:0; }.pagination { display:flex; justify-content:center; align-items:center; gap:1.5rem; margin-top:3rem; color:var(--color-text-muted); font-size:.8rem; }
.visit-page { padding-block:4rem 9rem; }.back { display:inline-block; margin-bottom:4rem; }.visit-page header { padding-bottom:2rem; border-bottom:1px solid var(--color-border); }.visit-page h1 { margin:.2rem 0; font-size:clamp(2.5rem,7vw,5.5rem); font-weight:400; line-height:1; letter-spacing:-.05em; }.visit-page figure { margin:3rem 0; }.visit-page figure img { display:block; width:100%; max-height:75vh; object-fit:contain; border:1px solid var(--color-border); background:#080807; }.message { max-width:var(--reading-max); margin:4rem auto 0; }.message .note { color:var(--color-text); font-size:1.2rem; line-height:1.8; }
/* authentication */
.auth { min-height:calc(100vh - 180px); display:grid; align-content:center; padding-block:5rem; }.auth-card { width:min(100%,620px); padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--color-border-strong); background:var(--color-bg-elevated); }.auth h1 { margin:.2rem 0 1rem; font-size:clamp(2rem,5vw,3.5rem); font-weight:400; line-height:1.05; letter-spacing:-.05em; }.auth-note,.auth-card>p { color:var(--color-text-muted); }.auth form,.auth-form { display:grid; gap:1rem; margin-top:2rem; }.auth label { display:grid; gap:.4rem; color:var(--color-text-muted); font-size:.76rem; }.auth input,.auth select { width:100%; min-height:44px; padding:.65rem .75rem; border:1px solid var(--color-border-strong); border-radius:0; background:var(--color-bg); color:var(--color-text); font:inherit; }.auth .button { width:max-content; margin-top:.5rem; }.form-error { padding:1rem; border-left:2px solid var(--color-danger); background:rgba(183,103,92,.09); color:#d6a29b; }
/* administration */
.admin-site>.site-header,.admin-site>footer { display:none; }.admin-shell.shell { width:100%; max-width:var(--page-max); min-height:100vh; display:grid; grid-template-columns:230px minmax(0,1fr); margin:0 auto; }
.admin-nav { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:2rem 1.25rem; border-right:1px solid var(--color-border-strong); background:var(--color-bg-elevated); }.admin-nav strong { display:block; overflow-wrap:anywhere; font-size:.8rem; font-weight:500; }.console-state { display:block; margin-top:.4rem; color:var(--color-success); font-size:.65rem; }.console-state::before { content:"■"; margin-right:.5rem; font-size:.5rem; }.admin-nav nav { display:grid; gap:.2rem; margin-top:3rem; }.admin-nav nav a { padding:.6rem .7rem; border-left:1px solid var(--color-border); color:var(--color-text-muted); text-decoration:none; font-size:.78rem; }.admin-nav nav a:hover { border-color:var(--color-accent); background:var(--color-accent-surface); color:var(--color-text); }.admin-nav form { margin-top:auto; }
.text-button { padding:0; border:0; background:transparent; color:var(--color-accent-bright); font:inherit; text-decoration:underline; text-underline-offset:.25em; cursor:pointer; }.admin-content { min-width:0; padding:2rem clamp(1.25rem,4vw,4rem) 6rem; }.admin-heading { min-height:120px; display:flex; align-items:end; justify-content:space-between; gap:2rem; padding-bottom:1.5rem; border-bottom:1px solid var(--color-border-strong); }.admin-heading h1 { margin:.15rem 0; font-size:clamp(2rem,4vw,3.5rem); font-weight:400; line-height:1; letter-spacing:-.05em; }.admin-heading p { margin:.2rem 0; color:var(--color-text-muted); font-size:.8rem; }
.metric-grid { display:grid; grid-template-columns:repeat(3,1fr); margin:2rem 0; border:1px solid var(--color-border); }.metric-grid>* { display:grid; gap:.5rem; padding:1.2rem; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); color:var(--color-text-muted); text-decoration:none; font-size:.72rem; }.metric-grid strong { color:var(--color-text); font-size:2rem; font-weight:400; }.metric-grid a:hover strong { color:var(--color-accent); }.metric-warning strong { color:var(--color-danger); }
.admin-section { margin-top:3rem; }.admin-section h2,.facts h2,.submission-note h2,.decision-panel h2 { font-size:1.15rem; letter-spacing:0; }.activity-list { border-top:1px solid var(--color-border); }.activity-list a { display:grid; grid-template-columns:7rem 1fr 1fr auto; gap:1rem; align-items:center; padding:.85rem; border-bottom:1px solid var(--color-border); color:var(--color-text); text-decoration:none; font-size:.76rem; }.activity-list a:hover { background:var(--color-bg-elevated); }.activity-list time,.technical { color:var(--color-text-faint); font-size:.68rem; }
.status { display:inline-flex; width:max-content; padding:.15rem .45rem; border:1px solid var(--color-border-strong); color:var(--color-text-muted); font-size:.62rem; font-weight:500; letter-spacing:.07em; text-transform:uppercase; }.status-pending { border-color:var(--color-accent-muted); color:var(--color-accent-bright); }.status-approved { border-color:#596247; color:#a4af88; }.status-rejected { border-color:#70463f; color:#c98278; }
.filter-panel { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:1rem; align-items:end; margin:1.5rem 0; padding:1.25rem; border:1px solid var(--color-border); background:var(--color-bg-elevated); }.filter-panel label,.decision-panel label { display:grid; gap:.35rem; color:var(--color-text-muted); font-size:.7rem; }.filter-panel input,.filter-panel select,.decision-panel textarea,.admin-actions select { width:100%; min-height:40px; padding:.5rem; border:1px solid var(--color-border-strong); border-radius:0; background:var(--color-bg); color:var(--color-text); font:inherit; }
.queue-list { border-top:1px solid var(--color-border-strong); }.queue-item { display:grid; grid-template-columns:120px minmax(0,1fr) auto; gap:1.2rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--color-border); }.queue-item h2 { margin:.3rem 0; font-size:1.15rem; letter-spacing:0; }.queue-shot { display:grid; place-items:center; height:80px; overflow:hidden; border:1px solid var(--color-border); color:var(--color-text-faint); text-decoration:none; background:#080807; font-size:.65rem; }.queue-shot img { width:100%; height:100%; object-fit:cover; }.note-preview { margin:.25rem 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.8rem; }
.detail-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:1.5rem; margin-top:2rem; }.admin-full-shot { display:grid; place-items:center; width:100%; min-height:260px; max-height:70vh; object-fit:contain; border:1px solid var(--color-border); background:#080807; color:var(--color-text-faint); }.submission-note,.facts,.decision-panel { padding:1.25rem; margin-top:1.5rem; border:1px solid var(--color-border); background:var(--color-bg-elevated); }.facts { margin-top:0; align-self:start; }.facts dl{margin:0}.facts dt{margin-top:1rem;color:var(--color-text-faint);font-size:.65rem;text-transform:uppercase}.facts dd{margin:.15rem 0;overflow-wrap:anywhere;font-size:.78rem}.decision-panel form{display:grid;gap:1rem}.decision-actions{display:flex;gap:.75rem}.button.approve{border-color:#596247;background:var(--color-success)}.button.reject{border-color:#70463f;background:var(--color-danger);color:#130706}.button[disabled]{opacity:.5;cursor:wait}.flash-success{padding:1rem;border-left:2px solid var(--color-success);background:rgba(135,150,107,.09)}
.history { list-style:none; margin:1rem 0; padding:0; border-top:1px solid var(--color-border); }.history li { display:grid; grid-template-columns:8rem 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--color-border); }.history p{margin:.2rem 0;color:var(--color-text-muted)}.table-scroll{overflow-x:auto}.admin-table{width:100%;min-width:60rem;border-collapse:collapse}.admin-table th,.admin-table td{padding:.8rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);font-size:.75rem}.admin-table th{color:var(--color-text-faint);font-size:.64rem;letter-spacing:.05em;text-transform:uppercase}.admin-table small,.invitation-list small{display:block;color:var(--color-text-muted)}.admin-actions{display:grid;gap:.5rem}.admin-actions form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.danger{color:#c98278}.confirmation{color:var(--color-accent-bright);font-size:.65rem}.invitation-list article,.audit-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--color-border)}.audit-row{grid-template-columns:10rem minmax(12rem,1fr) 2fr}.moderation-result{margin-top:1rem}
@media (max-width:900px){.hero{grid-template-columns:1fr}.route-sketch{display:none}.card-grid{grid-template-columns:repeat(2,1fr)}.card-grid .visit-card:nth-child(3n){border-right:1px solid var(--color-border)}.card-grid .visit-card:nth-child(2n){border-right:0}.filter-panel{grid-template-columns:repeat(2,1fr)}.admin-shell.shell{grid-template-columns:190px minmax(0,1fr)}.detail-grid{grid-template-columns:1fr}}
@media (max-width:680px){body::before{display:none}.site-header{min-height:64px}.brand-status{display:none}.hero{min-height:auto;padding-block:6rem}.hero h1{font-size:clamp(2.8rem,14vw,4.5rem)}.story,.privacy{grid-template-columns:1fr;gap:1.25rem;padding-block:6rem}.stats dl{grid-template-columns:1fr 1fr}.featured .visit-card{display:block}.featured .shot{border-right:0}.card-grid{grid-template-columns:1fr}.card-grid .visit-card{padding-inline:0;border-right:0!important}.how ol{grid-template-columns:1fr}.how li{border-right:0;border-bottom:1px solid var(--color-border)}.download{grid-template-columns:1fr;align-items:start}.section-head{align-items:start}.admin-shell.shell{display:block}.admin-nav{position:static;height:auto;border-right:0;border-bottom:1px solid var(--color-border-strong)}.admin-nav nav{grid-template-columns:repeat(2,1fr);margin-top:1.5rem}.admin-nav form{margin-top:1.5rem}.admin-content{padding:1.25rem 1rem 5rem}.admin-heading{align-items:start;flex-direction:column;min-height:auto;padding-block:1.5rem}.metric-grid{grid-template-columns:repeat(2,1fr)}.filter-panel{grid-template-columns:1fr}.queue-item{grid-template-columns:80px minmax(0,1fr)}.queue-item>.button{grid-column:1/-1}.activity-list a{grid-template-columns:6rem 1fr}.activity-list time{grid-column:2}.decision-actions{flex-direction:column}.history li{grid-template-columns:1fr}.auth-card{padding:1.25rem}.visit-meta{flex-direction:column;gap:.2rem}footer{padding-block:2rem;align-items:start;flex-direction:column}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.shot img,.button{transition:none}}
