:root{--ink:#fff5df;--muted:#b9b0c4;--night:#08060b;--panel:#15101c;--line:rgba(255,245,223,.16);--slime:#c7ff3f;--orange:#ff641e;--purple:#8f45ff;--blood:#ea2f24;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding-bottom:76px;color:var(--ink);background:radial-gradient(circle at 90% 10%,rgba(143,69,255,.16),transparent 28rem),radial-gradient(circle at 5% 45%,rgba(255,100,30,.1),transparent 25rem),var(--night);font:16px/1.6 Inter,system-ui,sans-serif}a{color:inherit}.shell{width:min(calc(100% - 36px),var(--max));margin:auto}.page-head{position:relative;overflow:hidden;padding:34px 0 42px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,#190b22,#09070b 55%,#251009)}.page-head:after{content:"419";position:absolute;right:-.03em;top:-.35em;color:rgba(199,255,63,.035);font:18rem/1 "Bebas Neue",sans-serif;pointer-events:none}.head-row{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px}.mini-brand{display:block;width:118px;height:118px}.mini-brand img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.66)) drop-shadow(0 0 12px rgba(234,47,36,.25))}.head-copy{flex:1}.kicker{margin:0;color:var(--orange);font-weight:900;letter-spacing:.13em;text-transform:uppercase}.page-head h1,.section-title{margin:8px 0 0;font:clamp(3.2rem,8vw,6rem)/.88 "Bebas Neue",sans-serif;text-transform:uppercase}.head-copy p:last-child{max-width:680px;margin:12px 0 0;color:var(--muted)}main{padding:42px 0 80px}.panel{padding:26px;border:1px solid rgba(255,245,223,.2);background:rgba(10,8,13,.86);box-shadow:8px 8px 0 rgba(143,69,255,.17)}.panel h2,.panel h3{margin:0;font:clamp(2rem,4vw,3.3rem)/.92 "Bebas Neue",sans-serif;text-transform:uppercase}.panel>p{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 20px;border:1px solid var(--ink);border-radius:2px;background:transparent;color:var(--ink);font:800 1rem/1 Inter,sans-serif;text-decoration:none;cursor:pointer;transition:.2s}.btn-primary{border-color:var(--orange);background:var(--orange);color:#14060b}.btn:hover,.btn:focus-visible{outline:none;transform:translateY(-2px);box-shadow:0 7px 0 var(--slime)}.btn[disabled]{cursor:not-allowed;opacity:.45;transform:none;box-shadow:none}.form-status{min-height:24px;margin:8px 0 0;color:var(--slime);font-size:.88rem;font-weight:800}.field{display:grid;gap:6px}.field label{font-size:.86rem;font-weight:800}.field input,.field select,.field textarea{width:100%;min-height:47px;padding:10px 12px;border:1px solid rgba(255,245,223,.25);border-radius:0;background:#0b090d;color:var(--ink);font:inherit}.field textarea{min-height:86px;resize:vertical}.mobile-nav{position:fixed;left:50%;bottom:12px;z-index:100;display:grid;grid-template-columns:repeat(4,1fr);width:min(calc(100% - 24px),620px);transform:translateX(-50%);border:1px solid rgba(255,245,223,.22);background:rgba(9,7,11,.95);box-shadow:0 14px 44px rgba(0,0,0,.55);backdrop-filter:blur(12px)}.mobile-nav a{display:grid;place-items:center;min-height:58px;padding:7px 4px;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.mobile-nav a[aria-current="page"]{background:rgba(199,255,63,.12);color:var(--slime);box-shadow:inset 0 3px 0 var(--slime)}.mobile-nav span{display:block;font-size:1.15rem;line-height:1}.toast{position:fixed;right:18px;bottom:88px;z-index:110;padding:14px 18px;background:var(--slime);color:#0c120d;font-weight:900;transform:translateY(180%);transition:.25s;box-shadow:0 12px 36px rgba(0,0,0,.35)}.toast.show{transform:translateY(0)}.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.stack{display:grid;gap:18px}.progress{height:12px;overflow:hidden;border:1px solid rgba(255,245,223,.24);background:#070609}.progress>span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--orange),var(--slime));transition:.25s}.scan-row,.identity-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0}.identity-row input{flex:1 1 240px;min-height:50px;padding:10px 13px;border:1px solid rgba(255,245,223,.28);background:#09070b;color:var(--ink);font:700 1rem Inter}.passport-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.passport-stop{min-height:72px;padding:10px;border:1px solid rgba(255,245,223,.17);background:#130f16;color:var(--ink);font:800 .78rem/1.25 Inter;text-align:left}.passport-stop small{display:block;margin-bottom:5px;color:var(--orange);letter-spacing:.07em}.passport-stop.checked{border-color:var(--slime);background:rgba(199,255,63,.11);color:var(--slime)}.badge-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:20px}.badge{display:grid;place-items:center;align-content:center;min-height:92px;padding:8px;border:1px solid rgba(255,245,223,.14);background:#110d14;color:#716878;text-align:center}.badge span{font-size:1.35rem;filter:grayscale(1);opacity:.4}.badge strong{font-size:.68rem;line-height:1.15;text-transform:uppercase}.badge.on{border-color:var(--slime);color:var(--slime);background:rgba(199,255,63,.1)}.badge.on span{filter:none;opacity:1}.score{display:flex;align-items:center;justify-content:space-between;margin:18px 0;padding:13px 15px;border:1px solid rgba(199,255,63,.28);background:rgba(199,255,63,.07)}.score span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.score strong{color:var(--slime);font:2rem/1 "Bebas Neue"}.mission{margin-top:16px;padding:16px;border-left:4px solid var(--purple);background:rgba(143,69,255,.12)}.mission small{display:block;color:var(--orange);font-weight:900;text-transform:uppercase}.mission strong{display:block;margin-top:4px}.leader-list{display:grid;gap:8px;margin-top:16px}.leader{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;min-height:48px;padding:8px 11px;border:1px solid rgba(255,245,223,.13);background:#110d14}.leader.you{border-color:var(--slime);background:rgba(199,255,63,.08)}.leader b:first-child{color:var(--orange);font:1.35rem/1 "Bebas Neue"}.leader-score{color:var(--slime);font-weight:900;text-align:right}.leader-score small{display:block;color:var(--muted);font-size:.65rem;text-transform:uppercase}.empty{padding:24px;border:1px dashed rgba(255,245,223,.24);color:var(--muted);text-align:center}.wheel{position:relative;width:min(260px,78vw);aspect-ratio:1;margin:20px auto;border:10px solid #110d14;border-radius:50%;background:conic-gradient(var(--orange) 0 30deg,var(--purple) 30deg 60deg,var(--slime) 60deg 90deg,#e62f26 90deg 120deg,#f5bc31 120deg 150deg,#5fd1c9 150deg 180deg,var(--orange) 180deg 210deg,var(--purple) 210deg 240deg,var(--slime) 240deg 270deg,#e62f26 270deg 300deg,#f5bc31 300deg 330deg,#5fd1c9 330deg 360deg);transition:transform 2.8s cubic-bezier(.15,.72,.13,1);box-shadow:0 0 0 2px var(--ink)}.wheel:before{content:"";position:absolute;left:50%;top:-20px;border-left:13px solid transparent;border-right:13px solid transparent;border-top:25px solid var(--ink);transform:translateX(-50%)}.wheel:after{content:"15\A STOPS";white-space:pre;position:absolute;inset:33%;display:grid;place-items:center;border:4px solid var(--ink);border-radius:50%;background:#100b14;color:var(--slime);font:1.3rem/1 "Bebas Neue"}.qr-dialog{width:min(92vw,520px);padding:0;border:1px solid var(--slime);background:#0c0910;color:var(--ink)}.qr-dialog::backdrop{background:rgba(4,3,6,.84);backdrop-filter:blur(5px)}.qr-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.qr-close{width:42px;height:42px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:1.4rem}.qr-wrap{padding:18px}#qrReader{overflow:hidden;background:#fff;color:#111}.map-wrap{padding:12px;border:1px solid rgba(255,100,30,.55);background:linear-gradient(135deg,rgba(255,100,30,.1),rgba(143,69,255,.12));box-shadow:8px 8px 0 rgba(143,69,255,.22)}#crawlMap{height:590px;border:1px solid rgba(255,245,223,.25);background:#17101d}.crawl-marker-wrap{background:transparent;border:0}.crawl-marker-shell{position:relative;width:34px;height:38px;filter:drop-shadow(0 4px 3px rgba(0,0,0,.48))}.crawl-marker-zombie{display:grid;place-items:center;width:24px;height:24px;border:1.5px solid #14060b;border-radius:8px;background:var(--purple);box-shadow:3px 3px 0 var(--slime)}.crawl-marker-number{position:absolute;left:-2px;bottom:2px;display:grid;place-items:center;min-width:15px;height:15px;border:1px solid #14060b;border-radius:50%;background:var(--orange);color:#14060b;font:900 .5rem Inter}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#110d14;color:var(--ink)}.venue-grid,.crowd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.venue-card{display:flex;flex-direction:column;min-height:292px;padding:20px;border:1px solid rgba(255,245,223,.17);background:rgba(15,10,18,.9)}.venue-brand{display:grid;grid-template-columns:102px 1fr;gap:13px;align-items:center}.venue-logo{width:102px;height:76px;padding:0;border:0;background:transparent;object-fit:contain;filter:drop-shadow(0 0 1px rgba(255,255,255,.95)) drop-shadow(0 0 6px rgba(255,245,223,.28)) drop-shadow(0 8px 12px rgba(0,0,0,.68))}.venue-card h3{margin:0;font:1.75rem/1 "Bebas Neue";text-transform:uppercase}.venue-address{color:var(--muted);font-size:.87rem}.special{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line)}.special small{display:block;color:var(--orange);font-weight:900;text-transform:uppercase}.venue-card a{margin-top:auto;padding-top:17px;color:var(--slime);font-weight:900;text-decoration:none}.pulse{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:10px 12px;border:1px solid rgba(255,245,223,.14);background:#110d14}.pulse-dot{width:10px;height:10px;border-radius:50%;background:#655e69}.pulse[data-level="Stirring"] .pulse-dot{background:#f5bc31}.pulse[data-level="Swarming"] .pulse-dot{background:var(--orange)}.pulse[data-level="Overrun"] .pulse-dot{background:var(--blood);box-shadow:0 0 0 5px rgba(234,47,36,.14)}.pulse b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.pulse small{color:var(--muted);font-weight:900;text-transform:uppercase}.upload-grid,.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.upload-form{display:grid;gap:12px;margin-top:18px}.consent{display:flex;gap:9px;color:var(--muted);font-size:.8rem}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.photo-card{overflow:hidden;border:1px solid rgba(255,245,223,.18);background:#110d14}.photo-card img{width:100%;aspect-ratio:4/5;object-fit:cover;background:#1b1420}.photo-copy{padding:12px}.photo-copy p{min-height:2.6em;margin:5px 0;color:var(--muted);font-size:.82rem;line-height:1.35}.photo-actions{display:flex;justify-content:space-between;gap:7px}.mini{min-height:34px;padding:0 9px;border:1px solid rgba(255,245,223,.25);background:transparent;color:var(--ink);font-weight:800}.mini.vote{border-color:var(--slime);color:var(--slime)}.category{display:block;margin-bottom:6px;color:var(--orange);font-size:.7rem;font-weight:900;text-transform:uppercase}.section-gap{margin-top:34px}@media(max-width:760px){body{padding-bottom:82px}.page-head{padding:22px 0 30px}.mini-brand{width:90px;height:90px}.head-row{align-items:flex-start}.page-head h1{font-size:3.5rem}.two-col,.upload-grid{grid-template-columns:1fr}.panel{padding:20px}.passport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.venue-grid,.crowd-grid{grid-template-columns:1fr}#crawlMap{height:500px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{bottom:8px}.mobile-nav a{min-height:56px;font-size:.66rem}.head-copy p:last-child{font-size:.92rem}}
