#app{z-index:2;position:relative}#cam{z-index:1;background:var(--ink);visibility:hidden;position:fixed;inset:0}#cam.on{visibility:visible}#cam video,#cam canvas,#cam svg{width:100%;height:100%;position:absolute;inset:0}#cam video{object-fit:cover}#cam canvas,#cam svg{pointer-events:none}body.scanning{background:var(--ink)}.cover-title{font-size:clamp(4rem,24vw,6rem);line-height:.9}.cover-title .hl{margin:0;padding:0 .1em 0 .02em}.cover .mascot{width:min(56vw,220px);height:auto;margin:var(--s-5) auto var(--s-4);rotate:-4deg}.nametag{border:var(--stroke-bold) solid var(--ink);background:var(--paper-card);box-shadow:var(--shadow-ink);border-radius:22px;overflow:hidden;rotate:-1.5deg}.nametag-head{padding:var(--s-3) var(--s-4) var(--s-2);background:var(--hl-pink);border-bottom:var(--stroke-bold) solid var(--ink);text-align:center}.nametag-head strong{font:400 var(--t-2xl) / 1 var(--font-marker);display:block}.nametag-head span{font-size:var(--t-sm)}.nametag-body{padding:var(--s-4)}.nametag .input{box-shadow:none;border:0;border-bottom:var(--stroke) dashed var(--ink);text-align:center;font-size:var(--t-2xl);background:0 0;border-radius:0}.ticket{gap:var(--s-2);padding:var(--s-5) var(--s-4);border:var(--stroke-bold) solid var(--ink);background:var(--hl-yellow);box-shadow:var(--shadow-ink);border-radius:14px;justify-items:center;display:grid;position:relative;rotate:1.5deg}.ticket:before,.ticket:after{content:"";background:var(--paper);border:var(--stroke-bold) solid var(--ink);border-radius:50%;width:26px;height:26px;margin-top:-13px;position:absolute;top:50%}.ticket:before{clip-path:inset(0 0 0 50%);left:-15px}.ticket:after{clip-path:inset(0 50% 0 0);right:-15px}.ticket-code{font:400 clamp(2.75rem, 16vw, 4rem) / 1 var(--font-marker);letter-spacing:.12em;font-variant-numeric:tabular-nums}.ticket-label{font-size:var(--t-sm)}.howto{gap:var(--s-4);counter-reset:step;margin:0;padding:0;list-style:none;display:grid}.howto li{counter-increment:step;gap:var(--s-3);grid-template-columns:52px 1fr;align-items:start;display:grid}.howto li:before{content:counter(step);border:var(--stroke) solid var(--ink);border-radius:var(--rough-pill);background:var(--hl-teal);width:44px;height:44px;font:400 var(--t-xl) / 1 var(--font-marker);place-items:center;display:grid;rotate:-4deg}.howto strong{font:400 var(--t-lg) / 1.15 var(--font-marker);display:block}.howto p{color:var(--ink-2);font-size:var(--t-md)}.fineprint{gap:var(--s-2);font-size:var(--t-sm);color:var(--ink-2);margin:0;padding:0;list-style:none;display:grid}.radar-screen{gap:var(--s-3)}.radar-wrap{margin-top:var(--s-2);position:relative}.buddy{align-items:flex-end;gap:var(--s-2);pointer-events:none;z-index:3;display:flex;position:absolute;bottom:-58px;left:-6px}.buddy .mascot{flex:none;width:84px;height:84px}.buddy .bubble{max-width:13.5em;font-size:var(--t-sm);margin-bottom:30px}.target-card{margin-top:76px}.target-card h2{font-size:var(--t-xl)}.target-card p{margin-top:var(--s-1);color:var(--ink-2)}.status-line{align-items:center;gap:var(--s-2) var(--s-3);font-size:var(--t-sm);color:var(--ink-2);flex-wrap:wrap;display:flex}.status-line .sticker{font-size:var(--t-sm);min-height:30px;rotate:-2deg}.lock-stamp{z-index:4;position:absolute;top:16%;right:-2%}.radar-readout .num{white-space:nowrap}.radar-readout .num .word{letter-spacing:0;font-size:.5em}.radar.is-stale .radar-svg,.radar.is-stale .radar-readout{opacity:.4}.sheet{z-index:40;max-height:70dvh;padding:var(--s-5) var(--gutter) max(var(--s-5), env(safe-area-inset-bottom));border-top:var(--stroke-bold) solid var(--ink);background:var(--paper-card);box-shadow:0 -6px 0 var(--ink);animation:sheet-in var(--dur-2) var(--ease-out) both;border-radius:26px 26px 0 0;position:fixed;inset:auto 0 0;overflow:auto}.sheet-scrim{z-index:39;background:#11111159;position:fixed;inset:0}@keyframes sheet-in{0%{opacity:0;translate:0 40px}}.pick{gap:var(--s-1) var(--s-3);width:100%;min-height:64px;padding:var(--s-3) var(--s-4);border:var(--stroke) solid var(--ink);border-radius:var(--rough-a);background:var(--paper);color:var(--ink);text-align:left;font:inherit;cursor:pointer;grid-template-columns:1fr auto;align-items:center;display:grid}.pick[aria-current=true]{background:var(--hl-yellow)}.pick strong{font:400 var(--t-lg) / 1.1 var(--font-marker)}.pick span{font-size:var(--t-sm);color:var(--ink-2)}.scanner{color:var(--ink);min-height:100dvh;padding:max(var(--s-3), env(safe-area-inset-top)) var(--gutter) max(var(--s-4), env(safe-area-inset-bottom));gap:var(--s-3);flex-direction:column;display:flex}.scanner .topbar .sticker{rotate:-2deg}.hint-card{background:var(--paper-card);width:100%;min-height:44px;color:var(--ink);border:var(--stroke) solid var(--ink);border-radius:var(--rough-b);box-shadow:var(--shadow-ink-sm);text-align:left;font:inherit;cursor:zoom-in;gap:2px;margin-top:6px;padding:18px 14px 10px;display:grid;position:relative;rotate:-1deg}.hint-card:active{box-shadow:none;translate:3px 3px}.hint-tape{font:400 var(--t-sm) / 1.3 var(--font-marker);white-space:nowrap;background:#fff4b4f2;border-left:1px dashed #1111114d;border-right:1px dashed #1111114d;padding:2px 14px;position:absolute;top:-13px;left:50%;translate:-50%;rotate:-3deg}.hint-name{white-space:nowrap;text-overflow:ellipsis;font:400 var(--t-lg) / 1.2 var(--font-marker);overflow:hidden}.hint-text{-webkit-line-clamp:2;font:400 var(--t-sm) / 1.4 var(--font-body);color:var(--ink-2);text-wrap:pretty;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.hint-card.big{inset:12dvh var(--gutter) auto;z-index:30;width:auto;padding:var(--s-6) var(--s-4) var(--s-4);cursor:zoom-out;margin:0;position:fixed;rotate:0deg}.hint-card.big .hint-tape{font-size:var(--t-md)}.hint-card.big .hint-name{white-space:normal;font-size:var(--t-2xl);line-height:1.08}.hint-card.big .hint-text{font-size:var(--t-lg);color:var(--ink);display:block}.scan-quad path{fill:none;stroke-linecap:round;stroke-linejoin:round}.scan-quad .q-band{stroke:var(--hl-yellow);stroke-width:11px;stroke-opacity:.9}.scan-quad .q-ink{stroke:var(--ink);stroke-width:3.5px}.scan-quad .q-arrow{stroke:var(--ink);stroke-width:2.2px}.scan-quad .q-note{font:400 18px var(--font-marker);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:7px;stroke-linejoin:round}.scan-hint{align-self:flex-start}.scanner .bottom{margin-top:auto}.scan-talk{position:relative}.scan-talk .bubble{max-width:none;font-size:var(--t-sm);margin-right:52px}.scan-talk .bubble:before{bottom:14px;left:auto;right:-11px;rotate:225deg}.scan-buddy{position:absolute;bottom:-6px;right:-4px}.scan-buddy .mascot{width:56px;height:56px}.page-frame{z-index:0;pointer-events:none;border:10px solid var(--paper);box-shadow:inset 0 0 0 2.5px var(--ink);border-radius:26px 20px 30px 18px/18px 28px 20px 30px;position:fixed;inset:0}.page-frame i{z-index:3;background:#fff096f2;border:1.5px solid #1111118c;border-radius:3px;width:104px;height:30px;position:absolute;box-shadow:0 2px #11111140}.page-frame .tape-a{top:2px;right:-18px;rotate:38deg}.page-frame .tape-b{top:46%;left:-34px;rotate:-76deg}.scanner>:not(.page-frame){z-index:1;position:relative}.scanner>.page-frame{z-index:3}.scanner:before,.scanner:after{content:"";z-index:0;opacity:0;pointer-events:none;border-radius:26px 20px 30px 18px/18px 28px 20px 30px;position:fixed;inset:0}.scanner:before{transition:opacity var(--dur-2) var(--ease-out);box-shadow:inset 0 0 0 18px #ffe84de6,inset 0 0 0 28px #2dd4bf66,inset 0 0 10px 28px #2dd4bf33}.scanner:after{box-shadow:inset 0 0 0 30px #ffe84df2,inset 0 0 0 44px #2dd4bf73,inset 0 0 14px 44px #2dd4bf40}.scanner.is-locked:before{opacity:1}.scanner.is-locked:after{animation:lock-flare .6s var(--ease-out) both}@keyframes lock-flare{30%{opacity:1}}@media (prefers-reduced-motion:reduce){.scanner.is-locked:after{animation:none}}.found-stamp{margin:var(--s-5) 0 var(--s-2);align-self:center}.found .mascot{width:150px;height:auto;margin:0 auto}.board{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.board th{text-align:left;font:400 var(--t-md) / 1 var(--font-marker);padding:var(--s-2) var(--s-2);border-bottom:var(--stroke) solid var(--ink)}.board td{padding:var(--s-3) var(--s-2);border-bottom:1.5px dashed #11111159}.board td:first-child{width:3ch;font-family:var(--font-marker);font-size:var(--t-lg)}.board td:last-child,.board th:last-child{text-align:right;font-family:var(--font-marker);font-size:var(--t-lg)}.board tr.me td{font-weight:700}.board tr.me td:nth-child(2) span{background:var(--swipe-yellow) center / 100% 100% no-repeat;padding:.04em .3em}.board-empty{padding:var(--s-5) 0;color:var(--ink-2)}.rotate{z-index:100;place-content:center;gap:var(--s-3);padding:var(--s-5);text-align:center;background:var(--paper);display:none;position:fixed;inset:0}@media (orientation:landscape) and (height<=520px){.rotate{display:grid}}.cover-note{justify-content:center;align-items:flex-start;gap:var(--s-1);margin-top:var(--s-4);color:var(--ink);display:flex}.cover-note .note{text-align:right;max-width:12em;rotate:-4deg}.cover-arrow{width:90px;height:60px;margin-top:12px}.found-sticker{margin:var(--s-2) 0 0;border:var(--stroke-bold) solid var(--ink);width:min(52vw,210px);box-shadow:var(--shadow-ink);background:#fff;border-radius:18px;align-self:center;padding:10px 10px 12px;position:relative;rotate:-5deg}.found-sticker .mascot{display:block}.found-sticker figcaption{font:400 var(--t-md) / 1.1 var(--font-marker);text-align:center;margin-top:8px}.slots{justify-content:center;gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.slot{border:var(--stroke) dashed var(--ink-3);border-radius:var(--rough-pill);width:40px;height:40px;color:var(--ink);place-items:center;display:grid}.slot.on{border-style:solid;border-color:var(--ink);background:var(--hl-teal);rotate:-6deg}.slot svg{width:22px;height:22px}
