:root{
  --ink:#1b1a17; --paper:#f4ecd8; --paper2:#ece0c2; --red:#c1272d; --stamp:#b3201f;
  --desk1:#1d2a24; --desk2:#0f1713; --gold:#d9b25a;
  --typewriter:'Special Elite','Courier Prime',monospace; --mono:'Courier Prime',monospace; --hand:'Caveat',cursive; --head:'Oswald',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--paper);font-family:var(--mono);background:var(--desk2);min-height:100vh;overflow-x:hidden}
a{color:inherit}
button{font:inherit;cursor:pointer}
.desk{position:fixed;inset:0;z-index:-2;background:
  radial-gradient(ellipse at 50% 0%,rgba(255,236,170,.10),transparent 60%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 2px,transparent 2px 6px),
  linear-gradient(160deg,var(--desk1),var(--desk2))}
.desk::after{content:"";position:absolute;inset:0;opacity:.35;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='.6'/></svg>")}
.dust{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.dust i{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:rgba(255,240,200,.35);animation:rise linear infinite}
@keyframes rise{to{transform:translateY(-110vh) translateX(40px);opacity:0}}
#flash{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle 190px at var(--x,50%) var(--y,50%),transparent 0,transparent 60%,rgba(0,0,0,.93) 100%)}
body.flashlight #flash{opacity:1}

/* nav */
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,4vw,48px);backdrop-filter:blur(10px);background:linear-gradient(rgba(10,16,13,.85),rgba(10,16,13,.55));border-bottom:1px solid rgba(217,178,90,.2)}
.brand{font-family:var(--head);font-weight:700;font-size:26px;letter-spacing:.18em;text-decoration:none;position:relative;display:flex;flex-direction:column;line-height:1}
.brand-stamp{display:inline-block;color:var(--stamp);border:2px solid var(--stamp);padding:0 6px;margin-right:6px;transform:rotate(-6deg);font-size:14px;vertical-align:middle;letter-spacing:.3em}
.brand small{font-family:var(--mono);font-size:9px;letter-spacing:.35em;color:var(--gold);margin-top:5px;font-weight:400}
.nav nav{display:flex;align-items:center;gap:6px}
.nav nav a,.nav nav button{color:var(--paper);text-decoration:none;padding:8px 12px;border-radius:6px;background:none;border:0;font-size:14px;transition:.2s}
.nav nav a:hover,.nav nav button:hover{background:rgba(255,255,255,.08)}
.nav .btn-new{background:var(--stamp);font-weight:700;box-shadow:0 0 0 1px rgba(255,255,255,.15) inset}
.nav .btn-new:hover{background:#d92f2f;transform:translateY(-1px) rotate(-1deg)}
#btn-sound[aria-pressed=false]{opacity:.4}
#btn-flash[aria-pressed=true]{background:rgba(255,230,120,.25)}

main{padding:0 clamp(16px,4vw,56px) 90px;max-width:1500px;margin:0 auto;min-height:80vh}
.ribbon{position:fixed;left:0;right:0;bottom:0;z-index:15;overflow:hidden;white-space:nowrap;background:repeating-linear-gradient(-45deg,#d9b25a 0 14px,#17130b 14px 28px);height:26px;border-top:2px solid #000}
.ribbon span{display:inline-block;padding-left:100%;font:700 11px/26px var(--mono);letter-spacing:.25em;color:#fff;background:#000;animation:marq 40s linear infinite;padding-right:40px;height:100%;background:rgba(0,0,0,.86)}
@keyframes marq{to{transform:translateX(-100%)}}

/* hero */
.hero{text-align:center;padding:60px 0 28px;position:relative}
.hero h1{font-family:var(--head);font-size:clamp(46px,9vw,120px);letter-spacing:.14em;margin:0;line-height:.95;text-shadow:0 4px 0 rgba(0,0,0,.5);position:relative;display:inline-block}
.hero h1 .redact-word{background:#000;color:#000;padding:0 .12em;border-radius:3px;position:relative;cursor:pointer;transition:.4s}
.hero h1 .redact-word:hover{background:transparent;color:var(--stamp)}
.hero .stampy{position:absolute;right:-6%;top:-6%;transform:rotate(14deg);border:5px solid var(--stamp);color:var(--stamp);font:700 clamp(14px,2.2vw,30px) var(--head);letter-spacing:.2em;padding:4px 16px;opacity:.9;mix-blend-mode:screen;animation:slam .7s .4s both cubic-bezier(.2,1.6,.4,1)}
.hero p{max-width:640px;margin:18px auto 0;color:#cdbf9b;font-size:16px;line-height:1.6}
.counters{display:flex;gap:28px;justify-content:center;margin:26px 0 8px;flex-wrap:wrap}
.counters div{font-family:var(--head);letter-spacing:.15em;font-size:12px;color:var(--gold);text-transform:uppercase}
.counters b{display:block;font-size:34px;color:var(--paper);letter-spacing:.05em}
.typed{border-right:2px solid var(--gold);animation:caret .8s steps(1) infinite}
@keyframes caret{50%{border-color:transparent}}

/* controls */
.controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center;margin:26px 0 38px}
.search{position:relative}
.search input{width:min(360px,80vw);padding:12px 16px 12px 42px;border-radius:999px;border:1px solid rgba(217,178,90,.4);background:rgba(0,0,0,.4);color:var(--paper);font:16px var(--mono);outline:none;transition:.25s}
.search input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(217,178,90,.15);width:min(440px,80vw)}
.search::before{content:"🔍";position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:15px}
.chip{padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:var(--paper);font-size:13px;letter-spacing:.06em;transition:.2s}
.chip:hover{background:rgba(255,255,255,.12)}
.chip.on{background:var(--gold);color:#1b1a17;border-color:var(--gold);font-weight:700}

/* grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:56px 34px;padding-top:26px}
.empty{grid-column:1/-1;text-align:center;color:#9d9378;padding:60px 0;font-size:18px}

/* ===== FOLDER CARD ===== */
.folder{--f1:#e7c682;--f2:#cfa762;--tab:#d9b872;--lab:#fff8e1;position:relative;width:100%;aspect-ratio:1/1.12;display:block;text-decoration:none;color:var(--ink);perspective:900px;opacity:0;animation:deal .7s cubic-bezier(.2,.9,.3,1.1) forwards;animation-delay:calc(var(--i,0)*60ms);filter:drop-shadow(0 18px 18px rgba(0,0,0,.55))}
.folder[data-c="SECRET"]{--f1:#e2a77c;--f2:#c27f53;--tab:#d39367}
.folder[data-c="TOP SECRET"]{--f1:#4a5062;--f2:#2d3140;--tab:#3a4052;--lab:#1d1f27}
.folder[data-c="ULTRA MEGA SECRET"]{--f1:#f7d27a;--f2:#c96ab5;--tab:#e7a6c8;--lab:#fff1fb}
@keyframes deal{from{opacity:0;transform:translateY(60px) rotate(var(--r0,6deg)) scale(.9)}to{opacity:1;transform:none}}
.folder .tilt{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .25s ease-out}
.f-back{position:absolute;left:0;right:0;top:6%;bottom:0;background:linear-gradient(var(--f2),var(--f1));border-radius:6px 14px 10px 10px}
.f-back::before{content:"";position:absolute;left:0;top:-7.5%;width:44%;height:9%;background:var(--tab);border-radius:10px 14px 0 0;clip-path:polygon(0 0,86% 0,100% 100%,0 100%)}
.f-tabtxt{position:absolute;left:5%;top:-4.5%;font:700 10px var(--head);letter-spacing:.18em;color:rgba(0,0,0,.55);z-index:1}
.peek{position:absolute;inset:0;pointer-events:none}
.pk{position:absolute;bottom:56%;width:46%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.4);transition:transform .45s cubic-bezier(.2,1.4,.4,1);transform:translateY(0) rotate(var(--rot))}
.pk.photo{padding:5px 5px 18px;background:#fbf8ef}
.pk.photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#777;filter:contrast(1.05) saturate(.9)}
.pk.doc{background:#f9f4e6;aspect-ratio:3/4;padding:8px;font:700 7px var(--mono);color:#555;overflow:hidden}
.pk.doc i{display:block;height:3px;background:#bbb;margin:4px 0;border-radius:2px}
.pk.doc i:nth-child(3n){width:70%}.pk.doc b{display:block;border-bottom:2px solid #a33;margin-bottom:6px;padding-bottom:2px;color:#a33;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk:nth-child(1){left:6%;--rot:-9deg;z-index:1}
.pk:nth-child(2){left:27%;--rot:3deg;z-index:2;bottom:57%}
.pk:nth-child(3){left:48%;--rot:11deg;z-index:1}
.folder:hover .pk:nth-child(1){transform:translateY(-26px) rotate(-14deg)}
.folder:hover .pk:nth-child(2){transform:translateY(-38px) rotate(2deg)}
.folder:hover .pk:nth-child(3){transform:translateY(-24px) rotate(16deg)}
.f-front{position:absolute;left:0;right:0;top:42%;bottom:0;background:linear-gradient(170deg,var(--f1),var(--f2));border-radius:4px 10px 12px 12px;box-shadow:0 -2px 0 rgba(255,255,255,.35) inset,0 -8px 14px rgba(0,0,0,.18);transform-origin:bottom;transition:transform .4s cubic-bezier(.2,1.2,.4,1);overflow:hidden;z-index:5;padding:0 7% 5%}
.folder:hover .f-front{transform:rotateX(-10deg)}
.f-front::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/></filter><rect width='120' height='120' filter='url(%23n)' opacity='.25'/></svg>");mix-blend-mode:multiply;pointer-events:none}
.f-front::after{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(rgba(255,255,255,.4),transparent)}
.f-doc{position:relative;margin:-17% auto 0;width:74%;background:var(--paper);color:var(--ink);padding:8px 10px 10px;box-shadow:0 4px 10px rgba(0,0,0,.35);transform:rotate(-1.5deg);font:700 9px var(--mono);overflow:hidden}
.f-doc .hd{display:flex;justify-content:space-between;letter-spacing:.14em;font-size:8px;border-bottom:1.5px solid #222;padding-bottom:3px}
.f-doc .hd b{color:var(--stamp)}
.f-doc .ln{height:4px;background:#222;margin:5px 0;border-radius:1px;opacity:.85}
.f-doc .ln.s{width:60%;background:#999}
.f-doc .ln.m{width:82%}
.f-doc .cls{position:absolute;right:-10px;top:24px;transform:rotate(-18deg);border:2px solid var(--stamp);color:var(--stamp);padding:0 5px;font:700 12px var(--head);letter-spacing:.14em;opacity:.8}
.f-label{margin:11px auto 0;width:92%;background:var(--lab);border:1px solid rgba(0,0,0,.25);padding:7px 8px 6px;text-align:center;box-shadow:0 2px 4px rgba(0,0,0,.25);transform:rotate(.6deg);position:relative}
.folder[data-c="TOP SECRET"] .f-label{color:var(--gold);border-color:var(--gold)}
.f-label .nm{font-family:var(--typewriter);font-size:clamp(15px,1.5vw,19px);line-height:1.1;display:block;word-break:break-word;color:inherit}
.f-label small{display:block;font:700 8px var(--head);letter-spacing:.25em;margin-top:3px;opacity:.65}
.folder[data-c="ULTRA MEGA SECRET"] .f-front{background:linear-gradient(120deg,#f7d27a,#e9a2d1,#9bd7ff,#f7d27a);background-size:300% 300%;animation:holo 6s linear infinite}
@keyframes holo{to{background-position:300% 0}}
.f-stats{position:absolute;right:8%;bottom:4%;font:700 9px var(--head);letter-spacing:.14em;opacity:.65}
.f-case{position:absolute;left:8%;bottom:4%;font:700 9px var(--mono);opacity:.6}
.folder .shine{position:absolute;inset:0;z-index:9;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.28) 50%,transparent 60%);background-size:250% 100%;background-position:150% 0;transition:background-position .8s}
.folder:hover .shine{background-position:-50% 0}

/* ===== FILE VIEW ===== */
.opener{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:rgba(5,8,6,.94);perspective:1400px;transition:opacity .6s .1s}
.opener.done{opacity:0;pointer-events:none}
.big{position:relative;width:min(420px,80vw);aspect-ratio:1/1.3;transform-style:preserve-3d}
.big .pg{position:absolute;inset:0;border-radius:6px 14px 10px 10px}
.big .inner{background:var(--paper);box-shadow:0 20px 60px rgba(0,0,0,.7)}
.big .cover{background:linear-gradient(160deg,var(--f1,#e7c682),var(--f2,#cfa762));transform-origin:left center;transition:transform 1.1s cubic-bezier(.6,.05,.2,1) .35s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--ink);backface-visibility:hidden}
.big .cover::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/></filter><rect width='120' height='120' filter='url(%23n)' opacity='.3'/></svg>");mix-blend-mode:multiply;border-radius:inherit}
.big.open .cover{transform:rotateY(-165deg)}
.big .cover .tt{font:700 clamp(22px,4vw,34px) var(--head);letter-spacing:.2em;border:4px solid var(--stamp);color:var(--stamp);padding:4px 18px;transform:rotate(-8deg);position:relative}
.big .cover .nm{font:clamp(24px,4vw,36px) var(--typewriter);text-align:center;background:var(--paper);padding:10px 18px;transform:rotate(1deg);box-shadow:0 3px 8px rgba(0,0,0,.3);max-width:86%;position:relative}
.big .cover .cn{font:700 12px var(--mono);letter-spacing:.2em;opacity:.7;position:relative}
.opener .hint{position:absolute;bottom:8vh;font:12px var(--mono);letter-spacing:.4em;color:var(--gold);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.3}}

.dossier{max-width:1120px;margin:30px auto 0}
.back{display:inline-block;margin:26px 0 6px;text-decoration:none;color:var(--gold);letter-spacing:.1em;font-size:14px}
.back:hover{text-decoration:underline}
.sheet{position:relative;background:var(--paper);color:var(--ink);padding:clamp(22px,4vw,48px);box-shadow:0 24px 50px rgba(0,0,0,.55);border-radius:2px;background-image:repeating-linear-gradient(transparent 0 27px,rgba(0,0,0,.045) 27px 28px),radial-gradient(ellipse at 20% 10%,rgba(0,0,0,.05),transparent 60%);margin-bottom:34px;opacity:0;transform:translateY(40px) rotate(var(--sr,0deg));animation:sheetIn .8s cubic-bezier(.2,.9,.3,1.1) forwards;animation-delay:var(--d,0s)}
@keyframes sheetIn{to{opacity:1;transform:rotate(var(--sr,0deg))}}
.sheet::after{content:"";position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='.2'/></svg>");mix-blend-mode:multiply}
.sh-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-bottom:3px double var(--ink);padding-bottom:12px;margin-bottom:22px;font:700 13px var(--head);letter-spacing:.2em}
.sh-head .cl{color:var(--stamp);font-size:18px}
.dos-main{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:34px;align-items:start}
@media(max-width:760px){.dos-main{grid-template-columns:1fr}}
.mugshot{position:relative;background:#fff;padding:12px 12px 46px;box-shadow:0 6px 18px rgba(0,0,0,.35);transform:rotate(-2.5deg);cursor:zoom-in;transition:.3s}
.mugshot:hover{transform:rotate(0) scale(1.02)}
.mugshot img{width:100%;aspect-ratio:1/1.05;object-fit:cover;display:block;filter:sepia(.35) contrast(1.1)}
.mugshot .cap{position:absolute;left:0;right:0;bottom:8px;text-align:center;font:700 22px var(--hand);color:#333}
.mugshot.nophoto .ph{aspect-ratio:1/1.05;display:grid;place-items:center;font-size:90px;background:#d8d2bf;filter:grayscale(1)}
.tape{position:absolute;top:-14px;left:50%;width:100px;height:28px;margin-left:-50px;background:rgba(240,230,160,.7);transform:rotate(3deg);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.clip{position:absolute;top:-24px;right:20px;font-size:48px;transform:rotate(15deg);filter:drop-shadow(0 3px 2px rgba(0,0,0,.3))}
.nameplate h1{font:clamp(30px,5vw,56px) var(--typewriter);margin:0 0 4px;line-height:1.05;word-break:break-word}
.nameplate .code{font:700 15px var(--head);letter-spacing:.25em;color:var(--stamp);margin-bottom:18px}
.kv{display:grid;grid-template-columns:130px 1fr;gap:8px 14px;font-size:15px;margin:0 0 20px}
.kv dt{font:700 11px var(--head);letter-spacing:.2em;color:#6b6350;padding-top:3px}
.kv dd{margin:0;font-family:var(--typewriter)}
.threat{display:flex;gap:5px}.threat i{width:26px;height:12px;background:#d4cbb0;border:1px solid #8a8164;transform:skewX(-20deg)}.threat i.on{background:var(--stamp);animation:pulse 1.6s infinite}
.threat i.on:nth-child(2){animation-delay:.1s}.threat i.on:nth-child(3){animation-delay:.2s}.threat i.on:nth-child(4){animation-delay:.3s}.threat i.on:nth-child(5){animation-delay:.4s}
@keyframes pulse{50%{filter:brightness(1.4)}}
.summary{font:17px/1.8 var(--typewriter);margin:0}
.redact{background:#0b0b0b;color:#0b0b0b;padding:1px 4px;border-radius:2px;cursor:pointer;transition:color .3s,background .5s;user-select:none;position:relative}
.redact:hover,.redact.rev,.redact:focus{background:#fbe9a8;color:var(--ink);user-select:text}
.stamp-big{position:absolute;right:4%;top:16px;z-index:3;border:6px solid var(--stamp);color:var(--stamp);font:700 clamp(22px,4.5vw,50px) var(--head);letter-spacing:.14em;padding:2px 20px;transform:rotate(-12deg);opacity:0;mix-blend-mode:multiply;animation:slam .55s 1.5s both cubic-bezier(.2,1.8,.4,1);pointer-events:none;text-align:center;line-height:1.1}
@keyframes slam{0%{opacity:0;transform:rotate(-12deg) scale(3)}70%{opacity:1;transform:rotate(-12deg) scale(.94)}100%{opacity:.88;transform:rotate(-12deg) scale(1)}}
.sec-title{font:700 20px var(--head);letter-spacing:.25em;margin:0 0 18px;display:flex;align-items:center;gap:12px}
.sec-title::after{content:"";flex:1;height:2px;background:repeating-linear-gradient(90deg,var(--ink) 0 6px,transparent 6px 10px)}
.gallery{display:flex;flex-wrap:wrap;gap:34px 26px;justify-content:center;padding:10px 0 14px}
.polaroid{background:#fff;padding:10px 10px 44px;width:230px;box-shadow:0 6px 16px rgba(0,0,0,.35);position:relative;transform:rotate(var(--rot,0deg));transition:.35s cubic-bezier(.2,1.4,.4,1);cursor:zoom-in}
.polaroid:hover{transform:rotate(0) scale(1.12) translateY(-6px);z-index:4;box-shadow:0 18px 30px rgba(0,0,0,.45)}
.polaroid img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#888}
.polaroid span{position:absolute;left:8px;right:8px;bottom:8px;text-align:center;font:700 20px/1 var(--hand);color:#333}
.polaroid .tape{width:70px;height:22px;margin-left:-35px;top:-11px}
.exhibits{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px}
.ex{background:#fffdf5;border:1px solid #cfc6a8;padding:18px;box-shadow:0 5px 12px rgba(0,0,0,.2);position:relative;transform:rotate(var(--rot,0deg));transition:.3s}
.ex:hover{transform:rotate(0) translateY(-4px)}
.ex .tag{position:absolute;top:-11px;left:14px;background:var(--ink);color:var(--paper);font:700 10px var(--head);letter-spacing:.2em;padding:3px 10px}
.ex h4{margin:8px 0 12px;font:700 13px var(--head);letter-spacing:.12em;color:var(--stamp)}
.ex .body{font:15px/1.7 var(--typewriter);white-space:pre-wrap;margin:0}
.ex.receipt{background:#fff;font-family:var(--mono);border:0;clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),95% 100%,90% calc(100% - 8px),85% 100%,80% calc(100% - 8px),75% 100%,70% calc(100% - 8px),65% 100%,60% calc(100% - 8px),55% 100%,50% calc(100% - 8px),45% 100%,40% calc(100% - 8px),35% 100%,30% calc(100% - 8px),25% 100%,20% calc(100% - 8px),15% 100%,10% calc(100% - 8px),5% 100%,0 calc(100% - 8px));padding-bottom:28px}
.ex.receipt .body{font:14px/1.9 var(--mono)}
.ex.statement{background:#f3efe0;background-image:repeating-linear-gradient(transparent 0 25px,#bcd0e8 25px 26px)}
.ex.statement .body{line-height:26px;font-family:var(--hand);font-size:23px}
.ex.memo{border-top:6px solid var(--ink)}
.chatlog{display:flex;flex-direction:column;gap:8px}
.bub{max-width:82%;padding:8px 12px;border-radius:16px;font:14px/1.4 var(--mono);background:#e5e5ea;align-self:flex-start;opacity:0;transform:translateY(8px);animation:pop .4s forwards}
.bub.me{align-self:flex-end;background:#2d8cff;color:#fff}
.bub b{display:block;font-size:10px;opacity:.6;letter-spacing:.1em}
@keyframes pop{to{opacity:1;transform:none}}
.timeline{position:relative;padding-left:30px;margin:0}
.timeline::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:3px;background:repeating-linear-gradient(var(--stamp) 0 8px,transparent 8px 14px)}
.timeline li{list-style:none;margin-bottom:18px;position:relative;font:16px var(--typewriter)}
.timeline li::before{content:"";position:absolute;left:-29px;top:4px;width:15px;height:15px;border-radius:50%;background:var(--paper);border:3px solid var(--stamp)}
.timeline li b{font:700 12px var(--head);letter-spacing:.16em;color:var(--stamp);display:block}
.reacts{display:flex;gap:14px;flex-wrap:wrap}
.react{background:none;border:3px solid;padding:8px 16px;font:700 17px var(--head);letter-spacing:.14em;transform:rotate(var(--rot,-3deg));transition:.2s;background:rgba(255,255,255,.4)}
.react:hover{transform:rotate(0) scale(1.08)}
.react:active{transform:scale(.9)}
.react em{font-style:normal;margin-left:8px;font-family:var(--mono);font-size:13px;opacity:.8}
.react.busted{color:#b3201f}.react.sus{color:#b77300}.react.legend{color:#1d7a3f}.react.confirmed{color:#1f4fa5}
.notes{display:flex;flex-direction:column;gap:12px;margin:0 0 18px}
.note{background:#fff7a8;padding:12px 14px;box-shadow:0 3px 8px rgba(0,0,0,.25);transform:rotate(var(--rot,0deg));font:700 20px/1.2 var(--hand);max-width:520px}
.note small{display:block;font:11px var(--mono);opacity:.6;margin-top:4px}
.noteform{display:flex;gap:10px;flex-wrap:wrap}
.noteform input{padding:10px;border:2px solid var(--ink);background:#fffdf0;font:15px var(--mono)}
.noteform input[name=text]{flex:1;min-width:200px}
.btn{background:var(--ink);color:var(--paper);border:0;padding:11px 20px;font:700 14px var(--head);letter-spacing:.15em;transition:.2s}
.btn:hover{background:var(--stamp);transform:translateY(-2px)}
.btn.ghost{background:none;color:var(--ink);border:2px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:40px}
.actions .btn{background:rgba(255,255,255,.08);color:var(--paper);border:1px solid rgba(255,255,255,.2)}
.actions .btn:hover{background:var(--stamp)}
.shred{animation:shred 1.1s forwards}
@keyframes shred{0%{clip-path:inset(0)}100%{clip-path:inset(0 0 100% 0);transform:translateY(120px) scaleY(.2);opacity:0}}

/* form */
.formwrap{display:grid;grid-template-columns:1fr minmax(280px,380px);gap:44px;align-items:start;padding-top:36px}
@media(max-width:960px){.formwrap{grid-template-columns:1fr}.previewcol{order:-1}}
.formwrap h1{font:700 clamp(32px,5vw,54px) var(--head);letter-spacing:.14em;margin:0 0 6px}
.formwrap .sub{color:#b9ad8a;margin:0 0 28px}
.fcard{background:rgba(0,0,0,.35);border:1px solid rgba(217,178,90,.25);padding:22px;margin-bottom:20px;border-radius:6px}
.fcard h3{margin:0 0 14px;font:700 14px var(--head);letter-spacing:.25em;color:var(--gold)}
label{display:block;font-size:12px;letter-spacing:.14em;color:#b9ad8a;margin:12px 0 5px;text-transform:uppercase}
.fcard input[type=text],.fcard select,.fcard textarea{width:100%;padding:11px 12px;background:#0e1511;border:1px solid rgba(255,255,255,.18);color:var(--paper);font:15px var(--mono);border-radius:4px;outline:none;transition:.2s}
.fcard input:focus,.fcard select:focus,.fcard textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,178,90,.15)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hintt{font-size:12px;color:#8f866c;margin-top:5px}
.drop{border:2px dashed rgba(217,178,90,.5);border-radius:8px;padding:28px;text-align:center;cursor:pointer;transition:.25s;color:#cdbf9b}
.drop:hover,.drop.over{background:rgba(217,178,90,.1);border-color:var(--gold);transform:scale(1.01)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:14px}
.th{position:relative;background:#fff;padding:5px 5px 6px;animation:pop .3s forwards;opacity:0}
.th img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.th input{width:100%;border:0;border-bottom:1px solid #aaa;font:15px var(--hand);margin-top:4px;background:none;color:#222;outline:none}
.th button{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:0;background:var(--stamp);color:#fff;font-weight:700;line-height:1}
.repeat{border:1px solid rgba(255,255,255,.14);padding:12px;margin-bottom:12px;border-radius:4px;position:relative;background:rgba(255,255,255,.03)}
.repeat .rm{position:absolute;top:6px;right:8px;background:none;border:0;color:#d77;font-size:18px}
.add{background:none;border:1px dashed rgba(217,178,90,.6);color:var(--gold);padding:9px 14px;border-radius:4px;font-size:13px;letter-spacing:.1em}
.add:hover{background:rgba(217,178,90,.12)}
.agree{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.5;color:#cdbf9b;text-transform:none;letter-spacing:0;margin:0}
.agree input{margin-top:4px;width:18px;height:18px;accent-color:var(--stamp)}
.submit{width:100%;padding:18px;font:700 20px var(--head);letter-spacing:.3em;background:var(--stamp);color:#fff;border:0;border-radius:4px;transition:.25s;box-shadow:0 6px 0 #6d1212}
.submit:hover{transform:translateY(-2px);box-shadow:0 8px 0 #6d1212}
.submit:active{transform:translateY(5px);box-shadow:0 1px 0 #6d1212}
.submit:disabled{opacity:.5}
.previewcol{position:sticky;top:90px}
.previewcol .folder{opacity:1;animation:none;max-width:340px;margin:0 auto}
.previewcol h3{text-align:center;font:700 12px var(--head);letter-spacing:.3em;color:var(--gold)}
.rules{max-width:760px;margin:50px auto;line-height:1.8}
.rules h1{font:700 44px var(--head);letter-spacing:.14em}
.rules li{margin-bottom:12px}
.rules .ok{color:#7fd69a}.rules .no{color:#f08b8b}

/* lightbox, toast */
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.9);display:grid;place-items:center;align-content:center;gap:14px;cursor:zoom-out;animation:fade .25s}
.lightbox[hidden]{display:none}
.lightbox img{max-width:90vw;max-height:78vh;background:#fff;padding:12px 12px 12px;box-shadow:0 20px 80px #000;animation:zoom .35s cubic-bezier(.2,1.3,.4,1)}
.lightbox p{font:700 28px var(--hand);margin:0;color:#fff}
@keyframes zoom{from{transform:scale(.6) rotate(-6deg);opacity:0}}
@keyframes fade{from{opacity:0}}
.toast{position:fixed;left:50%;bottom:50px;transform:translate(-50%,30px);background:var(--paper);color:var(--ink);padding:12px 22px;font:700 14px var(--head);letter-spacing:.14em;opacity:0;pointer-events:none;z-index:70;transition:.35s;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media print{.nav,.ribbon,.desk,.dust,.actions,.noteform,.back,.opener,.reacts,#flash{display:none!important}body{background:#fff}.sheet{box-shadow:none;animation:none;opacity:1}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important;transition-duration:.01s!important}}
