:root{--pink: #ff2e93;--purple: #b452ff;--yellow: #ffd93d;--blue: #37c9ff;--green: #3dffb0;--night: #0b0620;--night-2: #160a33;--ink: #f4efff;--muted: #b9a9d9;--card: rgba(22, 10, 51, .82);--font-display: Impact, "Arial Black", "Helvetica Neue", system-ui, sans-serif;--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(ellipse at top,#2b0b3f 0%,var(--night-2) 45%,var(--night) 100%) fixed;line-height:1.55}a{color:var(--blue)}a:hover{color:var(--yellow)}img{max-width:100%}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.2rem;flex-wrap:wrap}.brand{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.04em;text-decoration:none;color:var(--pink);text-shadow:0 0 14px rgba(255,46,147,.8)}.brand span{color:var(--yellow);text-shadow:0 0 14px rgba(255,217,61,.8)}.site-nav{display:flex;gap:.2rem .9rem;flex-wrap:wrap;font-size:.95rem}.site-nav a{color:var(--muted);text-decoration:none;padding:.3rem .2rem}.site-nav a:hover,.site-nav a[aria-current]{color:var(--ink);border-bottom:2px solid var(--pink)}main.page{max-width:820px;margin:0 auto;padding:1rem 1.2rem 3rem}.page h1{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.2rem);line-height:1.05;margin:.6rem 0 1rem;color:var(--yellow);text-shadow:0 0 20px rgba(255,217,61,.5)}.page h2{font-family:var(--font-display);color:var(--pink);margin-top:2rem;font-size:1.6rem;letter-spacing:.02em}.page h3{color:var(--blue);margin-top:1.4rem}.page p,.page li{color:#e6dcff}.lead{font-size:1.15rem;color:var(--ink)}.card{background:var(--card);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.1rem 1.3rem;margin:1rem 0;box-shadow:0 10px 40px #00000059}.notice{border-left:4px solid var(--yellow)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.kbd{display:inline-block;font-family:ui-monospace,monospace;background:#24143f;border:1px solid #4a2d7a;border-bottom-width:3px;border-radius:6px;padding:.05rem .5rem;color:var(--yellow)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid rgba(255,255,255,.08)}th{color:var(--muted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:700 1rem var(--font);padding:.8rem 1.4rem;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:transform .08s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent;user-select:none}.btn:active{transform:scale(.97)}.btn--primary{background:linear-gradient(135deg,var(--pink),#ff6bb5);color:#fff;box-shadow:0 0 24px #ff2e938c,0 8px 24px #00000059}.btn--primary:hover{color:#fff;box-shadow:0 0 34px #ff2e93e6,0 8px 24px #00000059}.btn--ghost{background:#ffffff0f;color:var(--ink);border-color:#ffffff2e}.btn--ghost:hover{color:var(--ink);border-color:var(--blue)}.btn--yellow{background:var(--yellow);color:var(--night);box-shadow:0 0 24px #ffd93d73}.btn--yellow:hover{color:var(--night)}.btn--big{font-size:1.35rem;padding:1rem 2.4rem;font-family:var(--font-display);letter-spacing:.08em}.cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.4rem 0}.site-footer{max-width:820px;margin:0 auto;padding:1.5rem 1.2rem 3rem;color:var(--muted);font-size:.85rem;border-top:1px solid rgba(255,255,255,.08)}.site-footer nav{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-bottom:.8rem}.site-footer a{color:var(--muted)}.projects{margin:2rem 0 0}.projects__title{font-size:1.1rem;color:var(--ink);font-family:var(--font)}.projects__list{padding-left:1.1rem}.ad-slot{min-height:0;margin:1.5rem auto;text-align:center;color:transparent;overflow:hidden}.ad-slot[data-rendered]{min-height:100px}.s6r-consent{position:fixed;inset:auto 0 0;z-index:9000;padding:.8rem;display:flex;justify-content:center}.s6r-consent--modal{inset:0;align-items:center;background:#05020fb3}.s6r-consent__box{width:min(640px,100%);background:#170b34;border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:1rem 1.2rem;box-shadow:0 20px 60px #0009;color:var(--ink)}.s6r-consent__title{font-weight:800;margin:0 0 .4rem;font-size:1.05rem}.s6r-consent__text{margin:0 0 .9rem;font-size:.9rem;color:var(--muted)}.s6r-consent__row{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;margin:.5rem 0;color:var(--muted)}.s6r-consent__row input{margin-top:.25rem}.s6r-consent__actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.s6r-consent .btn{padding:.55rem 1rem;font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.faq{border-top:1px solid rgba(255,255,255,.12);padding:.55rem 0}.faq summary{cursor:pointer;font-weight:700}.faq p{margin:.45rem 0 .2rem;color:var(--muted)}html,body{height:100%;overflow:hidden}body{background:var(--night);overscroll-behavior:none;touch-action:none}#app{position:fixed;inset:0}#game{position:absolute;inset:0}#game canvas{display:block;width:100%;height:100%}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));pointer-events:none}.overlay[hidden]{display:none}.overlay>*{pointer-events:auto}.overlay--dim{background:radial-gradient(ellipse at center,#0b06208c,#0b0620e6)}.overlay--scroll{overflow-y:auto;justify-content:flex-start}.title{font-family:var(--font-display);text-align:center;line-height:.92;margin:0}.title__soi{display:block;font-size:clamp(3.2rem,17vw,7rem);color:var(--pink);text-shadow:0 0 18px rgba(255,46,147,.9),0 0 60px rgba(255,46,147,.5);letter-spacing:.04em;animation:neon 3.2s infinite}.title__runner{display:block;font-size:clamp(2.2rem,12vw,5rem);color:var(--yellow);text-shadow:0 0 18px rgba(255,217,61,.9),0 0 60px rgba(255,184,0,.5);letter-spacing:.1em}@keyframes neon{0%,92%,to{opacity:1}93%{opacity:.55}95%{opacity:1}97%{opacity:.7}}.tagline{margin:.8rem 0 1.6rem;font-weight:700;letter-spacing:.25em;color:var(--blue);text-transform:uppercase;font-size:clamp(.8rem,3.4vw,1.05rem);text-shadow:0 0 12px rgba(55,201,255,.8)}.menu{display:flex;flex-direction:column;align-items:center;gap:.9rem;width:min(420px,100%)}.menu .btn--big{width:100%;max-width:320px;font-size:clamp(1.4rem,6vw,1.9rem);padding:1rem 2rem}.menu__row{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}.menu__row .btn{padding:.6rem 1rem;font-size:.9rem}.menu__hint{color:var(--muted);font-size:.85rem;text-align:center;margin:0}.menu__hint .kbd{font-size:.8rem}.best{color:var(--yellow);font-weight:700;margin:0;font-size:.95rem}.board-preview{width:100%;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.6rem .9rem;font-size:.9rem}.board-preview__title{display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.3rem}.board-preview ol{margin:0;padding:0;list-style:none}.board-preview li{display:flex;justify-content:space-between;gap:.6rem;padding:.15rem 0}.board-preview li b{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-preview li span{color:var(--yellow);font-variant-numeric:tabular-nums}.icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#0b062099;color:#fff;font-size:1.25rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent}.icon-btn[aria-pressed=false]{opacity:.55}.top-right{position:absolute;top:max(.7rem,env(safe-area-inset-top));right:.7rem;display:flex;gap:.5rem;pointer-events:auto}#hud{position:absolute;inset:0;pointer-events:none}.hud-top{position:absolute;top:max(.6rem,env(safe-area-inset-top));left:.8rem;right:.8rem;display:flex;justify-content:space-between;align-items:flex-start;font-variant-numeric:tabular-nums}.stat{background:#0b06208c;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:.3rem .7rem;backdrop-filter:blur(6px);min-width:5.2rem}.stat small{display:block;font-size:.6rem;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}.stat b{font-size:clamp(1rem,4.5vw,1.4rem);font-family:var(--font-display);letter-spacing:.04em}.stat--score b{color:var(--yellow);text-shadow:0 0 10px rgba(255,217,61,.6)}.stat--dist b{color:var(--blue)}.stat--clock b{color:#fff;letter-spacing:.05em}.go__hour{margin:-.2rem 0 .2rem;color:var(--yellow);font-weight:800;letter-spacing:.08em;text-align:center}.start-hour{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:center;font-size:.85rem;color:var(--muted);max-width:320px;margin:0 auto}.start-hour select{max-width:230px}.start-hour small{flex-basis:100%;text-align:center;font-size:.7rem}body.is-running .s6r-consent:not(.s6r-consent--modal){display:none!important}.start-hour select{background:#0b0620b3;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.2rem .5rem;font-weight:700}.stat--baht b{color:var(--green)}@media(max-width:400px){.hud-top{gap:.3rem;left:.5rem;right:.5rem}.stat{min-width:0;flex:1 1 0;padding:.25rem .45rem}.stat small{letter-spacing:.06em;font-size:.55rem}}.hud-center{position:absolute;top:18%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.4rem}.badge{padding:.25rem .8rem;border-radius:999px;font-weight:800;font-size:.8rem;letter-spacing:.12em;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);animation:pop .25s ease-out}.badge--event{background:linear-gradient(90deg,var(--pink),var(--purple));color:#fff;box-shadow:0 0 20px #ff2e9399}.badge--effect{background:#37c9ff33;color:var(--blue);border-color:var(--blue)}.badge--combo{background:var(--yellow);color:var(--night);font-family:var(--font-display);font-size:1.1rem}.badge--shield{background:#b452ff4d;color:#e8ccff;border-color:var(--purple)}.badge[hidden]{display:none}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.toasts{position:absolute;left:0;right:0;top:11%;display:flex;flex-direction:column;align-items:center;gap:.35rem;pointer-events:none}.toast{padding:.25rem .75rem;border-radius:999px;font-weight:800;font-size:clamp(.7rem,2.4vw,.85rem);background:#0b0620cc;border:1px solid rgba(255,255,255,.15);color:#fff;animation:toast 1.8s ease-out forwards;text-align:center;max-width:90%}.toast--good{color:var(--green);border-color:var(--green)}.toast--bad{color:#ffb3b3;border-color:#ff4d4d}.toast--event{background:linear-gradient(90deg,var(--pink),var(--purple));border-color:transparent;letter-spacing:.08em}@keyframes toast{0%{transform:translateY(12px) scale(.9);opacity:0}12%{transform:none;opacity:1}80%{opacity:1}to{transform:translateY(-16px);opacity:0}}.callout{position:absolute;bottom:12%;left:0;right:0;margin:0 auto;width:fit-content;background:#fff;color:var(--night);font-weight:800;padding:.3rem .75rem;max-width:min(80vw,420px);border-radius:16px 16px 16px 4px;font-size:clamp(.9rem,4vw,1.15rem);line-height:1.2;text-align:center;box-shadow:0 6px 20px #0006;animation:toast 1.6s ease-out forwards;pointer-events:none}@media(orientation:landscape)and (max-height:500px){.callout{bottom:auto;top:34%}}.callout small{display:block;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#7a5aa8;font-weight:700}.touch-controls{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;pointer-events:none}.touch-controls[hidden]{display:none}.touch-controls button{pointer-events:auto;background:#ffffff0a;border:1px dashed rgba(255,255,255,.12);color:#ffffff80;font-size:1.6rem;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.touch-controls button:active{background:#ff2e9340}.touch-controls .tc-left{grid-row:1 / 3}.touch-controls .tc-right{grid-row:1 / 3;grid-column:3}.touch-controls .tc-jump{grid-column:2;grid-row:1}.touch-controls .tc-duck{grid-column:2;grid-row:2}.go{width:min(460px,100%);display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;margin:auto}.go__title{font-family:var(--font-display);font-size:clamp(2.2rem,11vw,3.6rem);color:var(--pink);text-shadow:0 0 20px rgba(255,46,147,.8);margin:0;letter-spacing:.06em}.go__cause{color:var(--muted);margin:0;font-style:italic;font-size:.95rem}.go__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;width:100%}.go__stats .stat{text-align:center;min-width:0}.rank{background:var(--card);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:.8rem 1rem;width:100%}.rank small{display:block;color:var(--muted);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}.rank b{display:block;font-family:var(--font-display);font-size:clamp(1.6rem,7vw,2.3rem);color:var(--yellow);text-shadow:0 0 14px rgba(255,217,61,.6);letter-spacing:.04em}.rank p{margin:.3rem 0 0;color:var(--ink);font-size:.95rem}.rank .rank__meta{margin-top:.4rem;color:var(--blue);font-size:.85rem;font-weight:700}.rank .rank__meta span{color:var(--green)}.ach{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.ach span{background:#3dffb026;border:1px solid var(--green);color:var(--green);border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:700}.ach[hidden]{display:none}.go__actions{display:flex;flex-direction:column;gap:.6rem;width:100%}.go__actions .btn--big{width:100%}.go__actions .row{display:flex;gap:.6rem}.go__actions .row .btn{flex:1}@media(max-width:480px){.go__actions .row{display:grid;grid-template-columns:1fr 1fr}.go__actions .row .btn{min-width:0}}.share-preview{width:min(240px,60vw);border-radius:12px;border:1px solid rgba(255,255,255,.15);box-shadow:0 10px 30px #00000080}.share-preview[hidden]{display:none}.modal{width:min(520px,100%);max-height:100%;background:#170b34;border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:1rem 1.1rem 1.2rem;box-shadow:0 30px 80px #0009;display:flex;flex-direction:column;gap:.8rem;overflow:hidden}.modal__head{display:flex;align-items:center;justify-content:space-between}.modal__head h2{margin:0;font-family:var(--font-display);color:var(--yellow);letter-spacing:.06em;font-size:1.5rem}.tabs{display:flex;gap:.3rem;background:#ffffff0f;padding:.25rem;border-radius:999px}.tabs button{flex:1;border:0;background:transparent;color:var(--muted);font-weight:700;padding:.45rem;border-radius:999px;cursor:pointer;font-size:.85rem}.tabs button[aria-selected=true]{background:var(--pink);color:#fff}.board{overflow-y:auto;flex:1;min-height:120px}.board table{font-size:.9rem}.board td:first-child{color:var(--muted);width:2.4rem}.board td.num{text-align:right;font-variant-numeric:tabular-nums;color:var(--yellow)}.board tr.me td{background:#3dffb01f;color:var(--green)}.board .empty{color:var(--muted);text-align:center;padding:1.5rem .5rem}.field{display:flex;flex-direction:column;gap:.35rem}.field input{font:700 1.15rem var(--font);padding:.8rem 1rem;border-radius:12px;border:2px solid rgba(255,255,255,.18);background:#ffffff0f;color:#fff;outline:none}.field input:focus{border-color:var(--blue)}.field .err{color:#ff8a8a;font-size:.85rem;min-height:1.2em;margin:0}.field .help{color:var(--muted);font-size:.8rem;margin:0}.settings label{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.settings input[type=range]{width:45%;accent-color:var(--pink)}.switch{appearance:none;width:46px;height:26px;border-radius:13px;background:#3a2a5a;position:relative;cursor:pointer}.switch:checked{background:var(--pink)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.switch:checked:after{left:23px}.small-links{color:var(--muted);font-size:.78rem;text-align:center;margin:.2rem 0 0}.small-links a{color:var(--muted);margin:0 .3rem}.pause{text-align:center}.pause h2{font-family:var(--font-display);font-size:2.4rem;color:var(--yellow);margin:0 0 .5rem;letter-spacing:.1em}.rotate-hint{display:none}@media(orientation:landscape)and (max-height:420px){.title__soi{font-size:3rem}.title__runner{font-size:2rem}.tagline{margin:.3rem 0 .8rem}.menu{gap:.5rem}.board-preview{display:none}}.controls{width:100%;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.4rem .9rem;font-size:.85rem;color:var(--muted)}.controls summary{cursor:pointer;font-weight:700;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center}.controls summary::-webkit-details-marker{display:none}.controls summary:after{content:"▾";color:var(--muted);transition:transform .15s}.controls[open] summary:after{transform:rotate(180deg)}.controls__grid{display:grid;gap:.5rem;margin-top:.5rem}.controls__grid div{display:flex;flex-direction:column;gap:.15rem}.controls__grid b{color:var(--blue);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}.controls__grid .kbd{font-size:.75rem}.hud-controls{position:absolute;left:50%;transform:translate(-50%);bottom:max(4.2rem,calc(env(safe-area-inset-bottom) + 4rem));display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;background:#0b0620b3;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:.35rem .9rem;font-size:.8rem;color:#fff;backdrop-filter:blur(6px);animation:pop .25s ease-out;pointer-events:none}.hud-controls em{font-style:normal;color:var(--muted)}.hud-controls[hidden]{display:none}.go__tip{margin:0;color:var(--yellow);font-size:.9rem;font-weight:600;max-width:34ch}.go__tip:empty{display:none}@media(orientation:landscape)and (max-height:420px){.controls{display:none}}.name-chip{margin-top:.5rem;background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:var(--ink);border-radius:999px;padding:.35rem .9rem;font:700 .9rem var(--font);cursor:pointer;display:inline-flex;gap:.4rem;align-items:center}.name-chip:hover{border-color:var(--yellow)}.name-chip__edit{color:var(--yellow);font-weight:600;font-size:.8rem}.name-row{display:flex;gap:.5rem;align-items:stretch}.name-row input{flex:1;min-width:0}.name-row .icon-btn{width:52px;height:auto;border-radius:12px;font-size:1.5rem}.brick-parts summary{cursor:pointer;font-weight:700;color:var(--ink)}.brick-parts ul{list-style:none;padding:0;margin:.4rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.25rem .8rem;font-size:.85rem;max-height:30vh;overflow-y:auto}.brick-parts li{display:flex;align-items:center;gap:.4rem;color:var(--ink)}.brick-parts li i,.brick-palette i{width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.3);display:inline-block;flex:none}.brick-parts li span,.brick-palette span{color:var(--muted);font-size:.8rem}.brick-palette{display:flex;flex-wrap:wrap;gap:.3rem .8rem;margin-top:.4rem}.brick-palette span{display:inline-flex;align-items:center;gap:.3rem}.btn.small{padding:.4rem .7rem;font-size:.8rem}.help{color:var(--muted);font-size:.85rem;margin:.2rem 0}.silent-chip{background:#ffffff0f;border:1px solid rgba(255,255,255,.18);color:var(--muted);border-radius:999px;padding:.3rem .9rem;font:700 .8rem var(--font);cursor:pointer}.silent-chip[aria-pressed=true]{background:#ff2e9333;border-color:var(--pink);color:#fff}.gal{padding:0;align-items:stretch;justify-content:stretch}.gal__box{width:100%;height:100%;background:#12082b;display:flex;flex-direction:column;gap:.5rem;padding:max(.6rem,env(safe-area-inset-top)) .8rem max(.6rem,env(safe-area-inset-bottom));overflow:hidden}.gal .modal__head h2{font-size:1.3rem}.gal-strip{display:flex;gap:.4rem;overflow-x:auto;padding:.2rem;flex:none;scrollbar-width:thin}.gal-strip--wrap{flex-wrap:wrap;justify-content:center;max-height:50vh;overflow-y:auto}.gal-card{flex:none;width:92px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:.35rem .3rem;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.2rem;font:600 .68rem var(--font);text-align:center}.gal-card canvas,.gal-card img{max-width:80px;max-height:64px;width:auto;height:auto}.gal-card.is-active,.gal-card:hover{border-color:var(--yellow);background:#ffd93d1a}.gal-main{flex:1;min-height:0;display:grid;grid-template-columns:1fr 320px;gap:.6rem}.gal-viewport{position:relative;background:radial-gradient(ellipse at 50% 40%,#2b0f4d,#0b0620 75%);border-radius:14px;overflow:hidden;min-height:200px;touch-action:none}.gal-viewport canvas{display:block;width:100%!important;height:100%!important}.gal-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--yellow);font-weight:800;letter-spacing:.1em}.gal-side{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;padding-right:.2rem}.gal-side h3{margin:0;font-family:var(--font-display);color:var(--yellow);letter-spacing:.04em;font-size:1.3rem}.gal-steps{display:flex;align-items:center;gap:.4rem}.gal-steps input[type=range]{flex:1;accent-color:var(--yellow)}.gal-actions{display:flex;flex-wrap:wrap;gap:.4rem}.gal-diorama{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;min-height:1.8rem}.gal-diorama .chip{background:#ffffff14;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;display:inline-flex;gap:.3rem;align-items:center}.gal-diorama .chip button{background:none;border:0;color:var(--muted);cursor:pointer}.gal-walk{position:absolute;inset:0;touch-action:none;user-select:none}.gal-walk__top{position:absolute;top:.5rem;left:.5rem;right:.5rem;display:flex;gap:.6rem;align-items:center;color:#fff;font-size:.8rem;text-shadow:0 1px 4px #000;pointer-events:none}.gal-walk__top button{pointer-events:auto}.gal-walk__hint{position:absolute;bottom:.4rem;left:0;right:0;text-align:center;color:#ffffffb3;font-size:.75rem;margin:0;pointer-events:none}.gal-joy{position:absolute;width:120px;height:120px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:#ffffff0f;pointer-events:none}.gal-joy__knob{position:absolute;left:40px;top:40px;width:40px;height:40px;border-radius:50%;background:#ffd93dcc}.gal-pick{position:absolute;inset:0;background:#05020fcc;display:grid;place-items:center;padding:1rem}.gal-pick__box{background:#170b34;border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:1rem;width:min(680px,100%);display:flex;flex-direction:column;gap:.8rem;align-items:center}.gal-pick__box h3{margin:0;font-family:var(--font-display);color:var(--yellow);letter-spacing:.05em}.gal.is-walking .gal-strip,.gal.is-walking #gal-groups{display:none}.gal.is-walking .gal-main{grid-template-columns:1fr}.gal.is-walking .gal-side{display:none}@media(max-width:760px){.gal-main{grid-template-columns:1fr;grid-template-rows:minmax(220px,46vh) 1fr}}.prompt3d{position:absolute;font-family:var(--font-display);font-size:clamp(.85rem,3vw,1.3rem);letter-spacing:.04em;color:var(--yellow);text-shadow:0 0 6px #0b0620,0 0 2px #0b0620,0 2px 0 #0b0620;pointer-events:none;white-space:nowrap;will-change:transform}.flyer3d{position:absolute;top:14%;width:min(30vw,130px);aspect-ratio:3 / 4;background:var(--yellow);border:8px solid var(--pink);border-radius:14px;transform:translate(-50%) rotate(-6deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;font-family:var(--font-display);color:var(--night);animation:flyerIn .18s ease-out;box-shadow:0 20px 50px #00000080;pointer-events:none}.flyer3d b{font-size:1.5rem;color:var(--pink)}.flyer3d span{font-size:1.7rem}.flyer3d small{font-size:.55rem;letter-spacing:.1em}.flyer3d.out{opacity:0;transition:opacity .25s}@keyframes flyerIn{0%{transform:translate(-50%) scale(.2) rotate(-30deg)}to{transform:translate(-50%) scale(1) rotate(-6deg)}}#speedfx3d{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:repeating-conic-gradient(from 0deg at 50% 42%,transparent 0 3deg,rgba(255,255,255,.5) 3.2deg 3.6deg,transparent 3.8deg 7deg);-webkit-mask:radial-gradient(ellipse 70% 62% at 50% 42%,transparent 55%,#000 100%);mask:radial-gradient(ellipse 70% 62% at 50% 42%,transparent 55%,#000 100%);animation:speedfx .22s steps(3) infinite}@keyframes speedfx{0%{transform:rotate(0) scale(1)}50%{transform:rotate(1.2deg) scale(1.03)}to{transform:rotate(-.8deg) scale(1.015)}}@media(prefers-reduced-motion:reduce){#speedfx3d{display:none}}#flash3d{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s ease-out}.pause__tools{display:flex;gap:.5rem;justify-content:center;margin-top:.8rem;flex-wrap:wrap}.pause__tools[hidden]{display:none}.shot{margin-top:.8rem;background:#0b0620d9;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:.6rem;width:min(640px,92vw);max-height:60vh;overflow:auto;text-align:left}.shot img{width:100%;border-radius:8px;display:block}.shot__actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.shot pre{font:11px ui-monospace,Menlo,monospace;color:var(--yellow);white-space:pre-wrap;margin:0}.dbg-label{position:absolute;transform:translate(-50%,-100%);font:700 11px ui-monospace,Menlo,monospace;color:#fff;background:#000000a6;padding:1px 5px;border-radius:4px;pointer-events:none;white-space:nowrap;border:1px solid rgba(255,255,255,.25)}.dbg-label.is-me{color:var(--green);border-color:var(--green)}.dbg-label.is-pick{color:var(--yellow)}.badge--street{background:#0b0620b3;color:var(--yellow);border-color:var(--yellow);letter-spacing:.15em}.pause .badge{display:inline-block}.skip-intro{position:absolute;right:.8rem;top:max(4rem,calc(env(safe-area-inset-top) + 3.6rem));pointer-events:auto;background:#0b062099;backdrop-filter:blur(6px)}#hud.is-intro .hud-top,#hud.is-intro .hud-center,#hud.is-intro .hud-controls{visibility:hidden}.gal-map{flex:1;min-height:0;overflow:auto;padding:.2rem .4rem}.gal-legend{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.8rem;color:var(--muted);margin:.3rem 0 .6rem}.gal-legend span{display:inline-flex;align-items:center;gap:.3rem}.gal-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.gal-street{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.6rem .8rem;margin-bottom:.8rem}.gal-street h3{margin:0 0 .4rem;font-family:var(--font-display);color:var(--yellow);letter-spacing:.04em;font-size:1.1rem}.gal-street__end{color:var(--muted);font-size:.8rem;text-align:center;padding:.3rem;border:1px dashed rgba(255,255,255,.2);border-radius:8px;margin:.3rem 0}.gal-street__grid{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:.25rem .5rem}.gal-street__col{display:flex;flex-direction:column;gap:.25rem}.gal-street__road{display:flex;flex-direction:column;gap:.25rem;background:repeating-linear-gradient(to bottom,#1d1830 0 12px,#2a2340 12px 16px);border-radius:6px}.gal-street__m{height:30px;display:flex;align-items:center;justify-content:center;font:700 .65rem ui-monospace,monospace;color:var(--yellow)}.gal-chip{height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;font:700 .72rem var(--font);color:#0b0620;padding:0 .4rem;cursor:pointer;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gal-chip:hover{outline:2px solid #fff}.gal-chip--alley{background:transparent;border:1px dashed #888;color:var(--muted);cursor:default}.gal-chip--empty{background:transparent;color:#fff3;cursor:default}.gal #gal-groups{flex-wrap:wrap;border-radius:14px;align-items:center}.gal #gal-groups button{flex:none;padding:.35rem .7rem;font-size:.8rem}.gal #gal-groups button small{opacity:.6;font-weight:600;margin-left:.15rem}.gal-search{flex:1 1 180px;min-width:140px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:999px;color:var(--ink);padding:.35rem .8rem;font:600 .82rem var(--font)}.gal-search:focus{outline:2px solid var(--yellow)}.gal>.gal__box>.gal-strip{flex-wrap:wrap;max-height:25vh;overflow-y:auto;overflow-x:hidden;align-content:flex-start}.gal-where{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;background:#ffffff0d;border-radius:10px;padding:.4rem .6rem;margin-top:.3rem}.gal-where span{color:var(--muted)}.gal-where__go{background:none;border:0;padding:0;color:#37c9ff;font:600 .8rem var(--font);text-align:left;cursor:pointer}.gal-where__row{display:flex;align-items:center;gap:.4rem}.gal-where__walk{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:0 .4rem;cursor:pointer;font-size:.8rem;line-height:1.5}.gal-where__walk:hover{border-color:var(--yellow)}.gal-where__go:hover{text-decoration:underline}.gal-chip.is-found{outline:3px solid var(--yellow);box-shadow:0 0 18px var(--yellow)}.gal-landmarks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.25rem}.gal-chip small{font-weight:600;opacity:.7;margin-left:.2rem}.gal-jump{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:.3rem;padding:.35rem 0;background:#12082a}.gal-jump button{border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:var(--ink);border-radius:999px;padding:.25rem .7rem;font:700 .75rem var(--font);cursor:pointer}.gal-jump button:hover{border-color:var(--yellow);color:var(--yellow)}.gal-street{scroll-margin-top:2.6rem}@media(max-width:760px){.gal__box{overflow-y:auto;gap:.4rem}.gal #gal-groups{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex:none;padding:.25rem}.gal #gal-groups::-webkit-scrollbar{display:none}.gal #gal-groups .gal-search{position:sticky;left:0;z-index:1;flex:0 0 9.5rem;min-width:0}.gal #gal-groups button{white-space:nowrap}.gal>.gal__box>.gal-strip{flex-wrap:nowrap;max-height:none;overflow-x:auto;overflow-y:hidden}.gal-card{width:78px}.gal-card canvas,.gal-card img{max-width:66px;max-height:52px}.gal-main{flex:none;display:flex;flex-direction:column}.gal-viewport{flex:none;height:46vh;min-height:240px}.gal-side{overflow:visible}.gal-map{flex:none;overflow:visible}.gal-jump{top:-.6rem}.gal-street__grid{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:.2rem .3rem}.gal-chip{font-size:.66rem;padding:0 .25rem}}.gal-strip__head{flex:0 0 100%;font:700 .72rem var(--font);letter-spacing:.06em;color:var(--yellow);padding:.3rem .2rem .1rem}@media(max-width:760px){.gal-strip__head{flex:0 0 auto;writing-mode:vertical-rl;transform:rotate(180deg);padding:.2rem 0;max-height:100px;overflow:hidden;font-size:.6rem}}.gal-note{margin:0 0 .6rem;font-size:.82rem;color:var(--muted,#b8b0d0);line-height:1.35}.replay3d{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 14px) 12px 22px;font-family:var(--font-display);z-index:30}.replay3d__top{display:flex;flex-direction:column;gap:8px;align-items:center;width:100%}.replay3d__tag{background:#ff2e93e0;color:#fff;padding:5px 14px;border-radius:999px;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}.replay3d__info{background:#0b0620b8;color:#ffd93d;padding:6px 10px;border-radius:8px;font:12px ui-monospace,Menlo,monospace;text-align:center;white-space:pre-line;max-width:min(92%,520px)}.replay3d__info.is-hit{color:#ff5fa8}.replay3d__bar{height:4px;background:#fff3;border-radius:2px;overflow:hidden;width:min(90%,420px)}.replay3d__bar i{display:block;height:100%;background:#ffd93d;width:0}.replay3d__btns{display:flex;gap:8px;justify-content:center;pointer-events:auto;flex-wrap:wrap}.replay3d__btns button{background:#0b0620d9;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:9px 14px;font:inherit;font-size:.85rem;cursor:pointer}.replay3d__btns button:hover{border-color:#ffd93d}.radio{width:100%;max-width:420px;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.55rem .8rem .6rem;color:var(--ink);display:flex;flex-direction:column;gap:.35rem}.radio.is-playing{border-color:#ff2e938c;box-shadow:0 0 22px #ff2e932e}.radio[hidden],.radio-mini[hidden]{display:none}.radio__head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);letter-spacing:.06em}.radio__logo{color:var(--yellow, #ffd93d)}.radio__count{color:var(--muted);font-size:.8rem}.radio__track{display:flex;flex-direction:column;line-height:1.2;min-height:2.2em}.radio__track b{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radio__track small{color:var(--muted);font-size:.75rem}.radio__row{display:flex;align-items:center;gap:.45rem}.radio__btn{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#fff;font-size:1rem;cursor:pointer;flex:none}.radio__btn--main{width:48px;height:48px;background:var(--pink);border-color:var(--pink);font-size:1.2rem}.radio__btn:hover{border-color:var(--yellow, #ffd93d)}.radio__vol{flex:1;accent-color:var(--pink);min-width:60px}.radio__bar{height:3px;background:#ffffff1f;border-radius:2px;overflow:hidden}.radio__bar i{display:block;height:100%;width:0;background:var(--yellow, #ffd93d);transition:width .5s linear}.radio__hint{margin:0;font-size:.75rem;color:var(--muted)}.radio-mini{position:absolute;left:.7rem;bottom:max(.7rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.3rem;background:#0b0620b8;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.25rem;pointer-events:auto;max-width:min(58vw,300px,calc(100% - 12.2rem))}.radio-mini.is-playing{border-color:#ff2e9399}.radio-mini__btn{width:34px;height:34px;border-radius:50%;border:0;background:#ffffff14;color:#fff;font-size:.9rem;cursor:pointer;flex:none}.radio-mini__title{background:none;border:0;color:#fff;font:700 .8rem/1 var(--font-body, inherit);display:flex;align-items:center;gap:.35rem;min-width:0;cursor:pointer;padding:0 .3rem}.radio-mini__title b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34vw}.radio-mini.is-collapsed .radio-mini__title b,.radio-mini.is-collapsed #radio-mini-next,.radio-mini.is-collapsed #radio-mini-prev{display:none}.radio-mini__btn--main{background:#ff2e9359}.radio-mini.is-playing .radio-mini__btn--main{background:var(--pink)}.radio-mini__fm{font:italic 900 .7rem/1 var(--font-display);color:var(--yellow, #ffd93d);letter-spacing:.04em}.radio-card{position:absolute;left:.9rem;bottom:calc(max(.7rem,env(safe-area-inset-bottom)) + 48px);display:flex;flex-direction:column;line-height:1.1;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .5s ease,transform .5s ease;max-width:min(70vw,320px)}.radio-card.is-on{opacity:1;transform:none}.radio-card__station{font:italic 900 1.15rem/1 var(--font-display);color:var(--yellow, #ffd93d);letter-spacing:.05em;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 2px 8px rgba(0,0,0,.6)}.radio-card b{font-size:.85rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #000,0 0 8px rgba(0,0,0,.7)}.radio-card small{font-size:.7rem;color:#ffffffbf;text-shadow:0 1px 3px #000}.radio-card small:empty{display:none}.junction3d{position:absolute;bottom:13%;left:50%;transform:translate(-50%);display:flex;gap:.35rem;align-items:center;font-family:var(--font-display);pointer-events:none;z-index:20}.junction3d span{background:#0b062073;border:1px solid rgba(255,255,255,.14);color:#cfc8e6b3;padding:.12rem .45rem;border-radius:7px;font-size:clamp(.55rem,1.4vw,.68rem);letter-spacing:.05em;transition:all .2s}.junction3d span.is-on{background:#ff2e9359;border-color:#fff6;color:#fff}.junction3d small{display:block;font:600 .55rem/1.2 var(--font-body,inherit);letter-spacing:0;opacity:.8}.cheat3d{position:absolute;right:.6rem;top:22%;display:flex;flex-direction:column;gap:.3rem;pointer-events:auto;z-index:25}.cheat3d[hidden]{display:none}.cheat3d__tag{cursor:pointer;user-select:none}.cheat3d.is-collapsed>*:not(.cheat3d__tag){display:none}.cheat3d.is-collapsed .cheat3d__tag:after{content:" ▸"}.cheat3d button{background:#0b0620cc;border:1px solid rgba(255,217,61,.5);color:#ffd93d;border-radius:8px;padding:.35rem .55rem;font:700 .72rem/1 var(--font-body,inherit);cursor:pointer;text-align:left}.cheat3d button.is-on{background:#ffd93dd9;color:#0b0620}.cheat3d .cheat3d__tag{font:800 .65rem/1 var(--font-display);color:#ffd93d;letter-spacing:.1em;text-align:right}.cheat3d__hours{display:grid;grid-template-columns:repeat(4,1fr);gap:.2rem}.cheat3d__hours button{padding:.15rem .2rem;font-size:.7rem}.free3d{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:.5rem .8rem;background:linear-gradient(transparent,#0b0620e6);color:#f4f0ff;font:12px/1.4 system-ui,sans-serif;pointer-events:none}.free3d__pos{color:#ffd93d;font-weight:700;word-break:break-all}.free3d__help{color:#cbb;margin:.15rem 0 .3rem}.free3d__btns{display:flex;gap:.4rem;flex-wrap:wrap;pointer-events:auto}.free3d__btns button{background:#160d33;color:#f4f0ff;border:1px solid #2a1a55;border-radius:8px;padding:.3rem .6rem;cursor:pointer;font:inherit}body.is-free #hud,body.is-free .cheat3d,body.is-free .junction3d{display:none!important}.btn.is-loading{animation:s6r-loading .8s ease-in-out infinite alternate}@keyframes s6r-loading{0%{opacity:1}to{opacity:.55}}.ic{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));background:radial-gradient(ellipse at center,#0b0620d1,#0b0620f7);cursor:pointer;user-select:none;-webkit-user-select:none}.ic[hidden]{display:none}.ic__frame{position:relative;width:min(92vw,820px,calc((100dvh - 9rem)*1.6));aspect-ratio:8 / 5;border:4px solid #1b1030;border-radius:14px;outline:3px solid var(--yellow);outline-offset:2px;overflow:hidden;background:#2b0b3f;box-shadow:0 10px 40px #0009}.ic__panel{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .35s ease}.ic__panel svg{width:100%;height:100%;display:block}.ic__panel.is-on{opacity:1}.ic__panel.is-on svg{animation:ic-zoom 3.2s ease-out both}.ic__cap{margin:0;font-family:var(--font-display);font-size:clamp(1.1rem,4.6vw,1.7rem);color:var(--yellow);letter-spacing:.04em;text-align:center;background:#1b1030;border:3px solid var(--yellow);border-radius:8px;padding:.25rem .8rem}.ic__dots{display:flex;gap:.4rem}.ic__dots i{width:18px;height:8px;border-radius:3px;background:#fff3}.ic__dots i.is-on{background:var(--yellow)}.ic__skip{position:absolute;right:.8rem;top:max(.8rem,env(safe-area-inset-top))}@keyframes ic-zoom{0%{transform:scale(1.06)}to{transform:scale(1)}}.is-on .ic-bus{animation:ic-bump .28s ease-in-out infinite alternate}.is-on .ic-wheel{animation:ic-spin .5s linear infinite}.is-on .ic-speed{animation:ic-speed .5s linear infinite}.is-on .ic-dash{animation:ic-road .5s linear infinite}.is-on .ic-press{animation:ic-press .9s .25s ease-out both}.is-on .ic-arm{animation:ic-arm .9s .1s ease-out both}.is-on .ic-ring,.is-on .ic-spark{animation:ic-blink .3s .45s ease-in-out infinite alternate both}.is-on .ic-pop{transform-box:fill-box;transform-origin:center;animation:ic-pop .35s .4s cubic-bezier(.3,1.6,.5,1) both}.is-on .ic-coin{transform-box:fill-box;transform-origin:center;animation:ic-coin .5s .8s ease-in-out 2 both}.is-on .ic-give{animation:ic-give .7s ease-out both}.is-on .ic-taxi{animation:ic-taxi 3s linear both}.is-on .ic-hop{animation:ic-hop .45s ease-in-out infinite alternate}@keyframes ic-bump{to{transform:translateY(-3px)}}@keyframes ic-spin{to{transform:rotate(360deg)}}@keyframes ic-speed{0%{transform:translate(20px);opacity:.6}to{transform:translate(-40px);opacity:0}}@keyframes ic-road{to{transform:translate(-110px)}}@keyframes ic-arm{0%{transform:translate(60px,90px)}to{transform:none}}@keyframes ic-press{0%,40%{transform:none}55%{transform:translateY(8px)}to{transform:none}}@keyframes ic-blink{0%{opacity:.2}to{opacity:1}}@keyframes ic-pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes ic-coin{0%,to{transform:none}50%{transform:scaleX(.25)}}@keyframes ic-give{0%{transform:translate(-180px,60px)}to{transform:none}}@keyframes ic-taxi{0%{transform:translate(-30px)}to{transform:translate(40px)}}@keyframes ic-hop{to{transform:translateY(-6px)}}@media(prefers-reduced-motion:reduce){.ic *{animation:none!important}}#screen-revive{justify-content:flex-end;padding-bottom:max(18vh,env(safe-area-inset-bottom))}.revive{text-align:center;background:#0b0620d1;border:1px solid rgba(255,217,61,.45);border-radius:14px;padding:.8rem 1.1rem;max-width:min(92vw,360px)}.revive__title{margin:0;font-family:var(--font-display);color:var(--yellow);font-size:1.35rem;letter-spacing:.06em}.revive__hint{margin:.3rem 0 .6rem;font-size:.9rem;opacity:.9}.revive__bar{height:4px;border-radius:2px;background:#ffffff26;overflow:hidden;margin-bottom:.7rem}.revive__bar i{display:block;height:100%;width:100%;background:var(--yellow);transform-origin:left}.revive__actions{display:flex;gap:.5rem;justify-content:center;align-items:center;flex-wrap:wrap}@media(max-height:480px){#screen-revive{padding-bottom:max(.5rem,env(safe-area-inset-bottom))}.revive{padding:.45rem .9rem .55rem}.revive__title{font-size:1.05rem}.revive__hint{margin:.1rem 0 .35rem;font-size:.8rem}.revive__bar{margin-bottom:.45rem}}
