:root{--cream:#F1EBDF;--cream-2:#E7DFCE;--burgundy:#571A26;--burgundy-2:#742836;--green:#1C3A29;--blush:#E7B6BF;--blush-2:#F2D4D9;--gold:#C9A96A;--blue:#7E9BB8;--ink:#1E1B18;--sans:"Futura","Avenir Next","Century Gothic","Trebuchet MS",system-ui,sans-serif;--mono:"Courier New","Courier",monospace}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden;background:var(--cream);font-family:var(--sans);overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0}canvas{display:block}#grade{position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(ellipse at 50% 42%,transparent 55%,rgba(46,16,22,.3) 100%),linear-gradient(to bottom,rgba(255,214,170,.07),transparent 30%)}.logo{font-weight:700;letter-spacing:.12em;color:var(--ink);line-height:1}.logo .district{display:block;font-size:.28em;letter-spacing:.55em;font-weight:600;text-align:right;margin-top:.18em;opacity:.85}.logo.light{color:var(--cream)}.overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}.hidden{display:none!important}#startScreen{background:var(--cream);background-image:linear-gradient(45deg,var(--cream-2) 25%,transparent 25%,transparent 75%,var(--cream-2) 75%),linear-gradient(45deg,var(--cream-2) 25%,transparent 25%,transparent 75%,var(--cream-2) 75%);background-size:64px 64px;background-position:0 0,32px 32px}.start-card{background:var(--burgundy);color:var(--cream);width:min(410px,92vw);padding:42px 30px 34px;border-radius:6px;text-align:center;position:relative;box-shadow:0 30px 60px -20px #571a268c}.start-card:after{content:"";position:absolute;inset:10px;border:1px solid rgba(241,235,223,.35);border-radius:3px;pointer-events:none}.start-card .logo{font-size:54px;color:var(--cream)}.eyebrow{font-size:10px;letter-spacing:.5em;text-transform:uppercase;opacity:.75;margin-bottom:16px}.game-title{font-size:13px;letter-spacing:.42em;text-transform:uppercase;margin:20px 0 8px;color:var(--blush)}.tagline{font-family:var(--mono);font-size:12px;opacity:.85;margin-bottom:22px}.mission{margin:0 auto 26px;max-width:280px;text-align:left;font-size:10.5px;letter-spacing:.08em;line-height:2;text-transform:uppercase}.mission b{color:var(--gold);margin-right:8px;font-weight:700}.btn{display:inline-block;background:var(--cream);color:var(--burgundy);border:none;cursor:pointer;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.35em;text-transform:uppercase;padding:16px 34px 15px 38px;border-radius:3px}.btn:active{transform:scale(.97)}.credit{margin-top:22px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--burgundy);opacity:.55}#countdown{background:transparent;pointer-events:none;z-index:15}#countNum{font-size:120px;font-weight:700;color:var(--burgundy);text-shadow:0 4px 0 var(--blush)}#hud{position:fixed;top:0;left:0;right:0;z-index:10;pointer-events:none;padding:calc(12px + env(safe-area-inset-top)) 14px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hud-pill{background:var(--burgundy);color:var(--cream);border-radius:3px;padding:9px 13px 8px;box-shadow:0 6px 18px -6px #571a2680}#wavePill .wave-eyebrow{font-size:8px;letter-spacing:.34em;text-transform:uppercase;opacity:.7}#wavePill .wave-name{font-size:14px;font-weight:700;letter-spacing:.2em;margin-top:2px}#totalPill{text-align:right;background:var(--green)}#totalPill .t-label{font-size:8px;letter-spacing:.34em;text-transform:uppercase;opacity:.7}#totalPill .t-val{font-family:var(--mono);font-size:17px;font-weight:700;margin-top:2px}#waveBar{position:fixed;top:calc(6px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:70px;height:3px;background:#571a262e;border-radius:2px;z-index:10}#waveBarFill{height:100%;width:100%;background:var(--burgundy);border-radius:2px}#objective{position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;z-index:10;pointer-events:none;background:var(--green);color:var(--cream);border-radius:3px;padding:10px 18px 9px;text-align:center;box-shadow:0 6px 18px -6px #1c3a2980;transform:translate(-50%)}#objective .o-label{font-size:8px;letter-spacing:.4em;text-transform:uppercase;opacity:.7}#objective .o-text{font-size:12px;font-weight:700;letter-spacing:.22em;margin-top:3px}#mapWrap{position:fixed;left:calc(14px + env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));z-index:10;pointer-events:none}#mmap{width:148px;height:148px;border-radius:50%;display:block;box-shadow:0 10px 30px -8px #1e1b1880,0 0 0 3px var(--gold),0 0 0 6px #571a26eb}#mapZone{position:absolute;left:50%;transform:translate(-50%);bottom:-6px;background:var(--burgundy);color:var(--cream);font-size:8px;letter-spacing:.28em;text-transform:uppercase;padding:4px 10px 3px;border-radius:2px;white-space:nowrap}#joyBase{position:fixed;width:110px;height:110px;border-radius:50%;z-index:9;border:2px solid rgba(87,26,38,.45);background:#f1ebdf38;backdrop-filter:blur(2px);pointer-events:none;display:none}#joyKnob{position:fixed;width:48px;height:48px;border-radius:50%;z-index:9;background:var(--burgundy);box-shadow:0 4px 12px #571a2680;pointer-events:none;display:none}#waveBanner{position:fixed;top:34%;left:0;right:0;z-index:12;text-align:center;pointer-events:none;opacity:0}#waveBanner .aisle{font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--burgundy);opacity:.8}#waveBanner .name{font-size:44px;font-weight:700;letter-spacing:.24em;color:var(--burgundy);margin:6px 0 4px}#waveBanner .desc{font-family:var(--mono);font-size:12px;color:var(--ink);opacity:.7;font-style:italic}#toast{position:fixed;bottom:24%;left:0;right:0;text-align:center;z-index:11;pointer-events:none;opacity:0}#toast span{display:inline-block;background:var(--cream);border:1px solid var(--burgundy);color:var(--burgundy);font-family:var(--mono);font-size:11px;padding:7px 14px;border-radius:2px}#toast.bad span{background:var(--burgundy);color:var(--cream)}#toast.gold span{background:var(--gold);border-color:var(--gold);color:var(--burgundy);font-weight:700}#flash{position:fixed;inset:0;background:var(--burgundy);opacity:0;pointer-events:none;z-index:14}#endScreen{background:#1e1b1873;backdrop-filter:blur(4px);overflow:hidden}#receiptWrap{width:min(360px,90vw);max-height:82vh;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;border-radius:2px;box-shadow:0 40px 80px -20px #00000080;transform:translateY(110vh)}#receipt{background:#fdfbf6;color:var(--ink);font-family:var(--mono);font-size:11.5px;padding:26px 22px 30px;position:relative}.r-head{text-align:center;margin-bottom:14px}.r-head .logo{font-size:34px;font-family:var(--sans)}.r-title{font-size:13px;font-weight:700;letter-spacing:.2em;margin-top:8px}.r-sub{font-size:10px;opacity:.65;margin-top:3px;font-style:italic}.r-meta{margin:12px 0;line-height:1.7;font-size:10.5px}.r-dash{border:none;border-top:1px dashed rgba(30,27,24,.4);margin:10px 0}.r-line{display:flex;justify-content:space-between;gap:8px;line-height:1.9;opacity:0}.r-line .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r-line .tag{font-size:8px;background:var(--blush-2);color:var(--burgundy);padding:2px 5px;border-radius:2px;margin-left:6px;letter-spacing:.05em;white-space:nowrap}.r-line.credit .tag{background:#dce5d3;color:var(--green)}.r-line .pr{white-space:nowrap}.r-line.neg{color:var(--burgundy)}.r-totals{margin-top:6px;line-height:2}.r-totals .row{display:flex;justify-content:space-between}.grand{font-size:20px;font-weight:700;display:flex;justify-content:space-between;align-items:baseline;margin-top:6px}.grand .val{position:relative}.grand .val:after{content:"";position:absolute;left:-4px;right:-4px;bottom:2px;height:7px;background:var(--blush);z-index:-1;transform:skew(-8deg)}.r-notes{margin-top:14px;font-size:10px;line-height:1.8;opacity:.8}.r-thanks{text-align:center;font-weight:700;letter-spacing:.14em;margin-top:14px}.barcode{margin:16px auto 0;width:78%;height:38px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px)}.stamp{position:absolute;font-family:var(--sans);font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 6px;border-radius:50%;width:64px;height:64px;display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(-12deg)}.stamp.pink{background:var(--blush-2);color:var(--burgundy);top:16px;left:10px}.stamp.greenish{background:#dce5d3;color:var(--green);top:16px;right:10px;transform:rotate(10deg)}#endActions{margin-top:18px;display:flex;gap:12px;opacity:0}
