@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Noto+Sans+JP:wght@400;500;700;900&display=swap";:root{color:#173448;font-synthesis:none;background:#dcedfa;font-family:Noto Sans JP,sans-serif}*{box-sizing:border-box}body{overscroll-behavior:none;margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;border:0}button:focus-visible{outline-offset:4px;outline:3px solid #7d42dc}[hidden]{display:none!important}#game{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#vignette{pointer-events:none;position:fixed;inset:0;box-shadow:inset 0 -100px 120px -95px #14738855}#impact{pointer-events:none;opacity:0;z-index:8;position:fixed;inset:0;box-shadow:inset 0 0 100px #ff4f36}#boostFx{pointer-events:none;opacity:0;background:radial-gradient(#0000 48%,#5cd5f235);transition:opacity .15s;position:fixed;inset:0}#boostFx.on{opacity:1}#hud{pointer-events:none;z-index:3;justify-content:space-between;gap:24px;display:flex;position:fixed;inset:24px 30px auto}.route{filter:drop-shadow(0 1px 4px #fff);width:280px}small,.eyebrow,.edition,.speed,.alt,.route,.resultStats,.choices,.menuMark,#scoreHud{font-family:Barlow Condensed,Noto Sans JP,sans-serif}.route small{letter-spacing:.12em;font-size:20px;font-weight:700}.progress{background:#164b6820;border-radius:9px;height:5px;margin:8px 0 4px;overflow:hidden}.progress i{background:#0e9fb8;width:0;height:100%;transition:width .1s;display:block}.route>span{letter-spacing:.05em;font-size:14px}.topRight{pointer-events:auto;gap:8px;display:flex}.topRight button{color:#184658;background:#ffffffcf;border:1px solid #2b71852b;border-radius:8px;width:54px;height:42px;font-size:13px;font-weight:700}#pause{font-size:20px}#readout{pointer-events:none;z-index:3;text-shadow:0 1px 9px #fff;align-items:flex-end;gap:24px;display:flex;position:fixed;bottom:32px;left:30px;right:30px}.speed{align-items:baseline;gap:9px;line-height:1;display:flex}.speed strong{letter-spacing:-.02em;min-width:90px;font-size:78px;font-weight:700}.speed small{color:#406a80;font-size:20px}.vitals{gap:10px;width:165px;display:grid}.vitals label{letter-spacing:.12em;flex-wrap:wrap;justify-content:space-between;font-size:10px;display:flex}.vitals b{font-variant-numeric:tabular-nums}.vitals span{background:#22597c20;width:100%;height:5px;margin-top:5px}.vitals i{background:#138fa5;width:100%;height:100%;display:block}.vitals label+label i{background:#8052df}.alt{text-align:right;margin-left:auto;display:grid}.alt small{letter-spacing:.15em;font-size:12px}.alt strong{font-size:36px}.alt strong span{font-size:16px}#scoreHud{letter-spacing:.1em;pointer-events:none;text-shadow:0 1px 5px #fff;gap:5px;font-size:18px;display:grid;position:fixed;top:120px;left:30px}#scoreHud b{font-size:26px}#chain{color:#6f3bc6;font-size:20px;font-weight:700}#notice{letter-spacing:.08em;text-shadow:0 1px 12px #fff;color:#176784;pointer-events:none;white-space:nowrap;opacity:0;z-index:4;font-size:clamp(18px,4vw,35px);font-weight:900;transition:opacity .15s;position:fixed;top:24%;left:50%;transform:translate(-50%)}#notice.show{opacity:1}#hint{pointer-events:none;color:#547689;white-space:nowrap;background:#ffffffc9;border-radius:24px;padding:6px 14px;font-size:11px;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.screen{z-index:5;background:linear-gradient(90deg,#f9fcfffa 0%,#f9fcfff0 32%,#edf8ff22 77%);align-items:center;padding:5vw;display:flex;position:fixed;inset:0}#menu:before{content:"";z-index:-2;background:url(/assets/white-sky.png) 60%/cover;position:absolute;inset:0}#menu:after{content:"";z-index:-1;background:linear-gradient(90deg,#f7fbfffc 0%,#f7fbfff1 27%,#f7fbff60 54%,#f7fbff00 85%);position:absolute;inset:0}.menuCard{width:460px;max-width:100%}.eyebrow{color:#298da4;letter-spacing:.22em;margin-bottom:24px;font-size:14px}h1{letter-spacing:-.025em;margin:0;font-family:Barlow Condensed,Impact,sans-serif;font-size:clamp(62px,7.2vw,116px);font-weight:800;line-height:.8}h1 em{color:#7c4ada;font-style:normal}.edition{letter-spacing:.5em;color:#46788b;margin:23px 0 30px;font-size:22px;font-weight:600}.intro{margin:0 0 12px;font-size:23px;font-weight:900}.desc{color:#5d7b8b;margin-bottom:25px;font-size:13px;line-height:1.9}.choices{letter-spacing:.12em;gap:5px;margin-bottom:12px;display:flex}.choices button{color:#5c7c8c;background:#fff9;border:1px solid #aac5d0;flex:1;padding:10px;font-weight:600}.choices button.selected{color:#137790;background:#e9f2fa;border-color:#198ea7;box-shadow:inset 0 -2px #1a97ab}.primary{text-align:left;color:#fff;background:#173e52;border-radius:3px;justify-content:space-between;align-items:center;width:100%;padding:17px 25px;font-size:16px;font-weight:700;display:flex;box-shadow:0 8px 24px #17475a25}.primary:hover{background:#24617a}.primary span{font-size:23px}.instructions{color:#436b7d;flex-wrap:wrap;gap:10px;margin:23px 0 12px;font-size:10px;display:flex}kbd{background:#fff9;border:1px solid #99b6c1;border-radius:3px;margin-right:2px;padding:2px 5px;font-family:inherit;display:inline-block}.fine{color:#587786;font-size:10px;line-height:1.8}.quality{color:#668596;align-items:center;gap:5px;margin-top:12px;font-size:11px;display:flex}.menuMark{color:#fff;text-shadow:0 2px 15px #12577d;align-items:center;gap:17px;display:flex;position:absolute;bottom:40px;right:45px}.menuMark span{font-size:54px;font-weight:700}.menuMark b{letter-spacing:.2em;font-size:13px;font-weight:500}#overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#edf7ffc9;justify-content:center}.resultCard{background:#fff9;border:1px solid #fff;width:100%;max-width:470px;padding:35px;box-shadow:0 20px 100px #416b8b20}.resultCard>small{letter-spacing:.2em;color:#168da4;font-size:18px}h2{color:#233f51;margin:15px 0;font-family:Barlow Condensed,Noto Sans JP,sans-serif;font-size:clamp(30px,5vw,54px)}.resultCard>p{color:#617b8d;font-size:13px;line-height:1.9}.resultStats{justify-content:space-between;gap:10px;margin:26px 0;font-size:16px;display:flex}.resultStats strong{color:#7752cd;font-size:33px;display:block}.secondary{color:#5b7a8b;background:0 0;width:100%;margin-top:8px;padding:15px;font-size:13px}#touch{bottom:max(20px,env(safe-area-inset-bottom));z-index:4;pointer-events:none;justify-content:space-between;display:flex;position:fixed;left:18px;right:18px}#touch button{pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#24546b;touch-action:none;background:#f2fcffb8;border:1px solid #ffffffea;border-radius:14px;min-width:65px;height:65px;font-weight:700;box-shadow:0 3px 18px #285f8120}#touch button.held{background:#b9e9fa}.steering,.actions{gap:10px;display:flex}#touch #boost{color:#fff;background:#7150d9cf;padding:0 18px}#touch small{opacity:.8;font-family:inherit;font-size:9px;display:block}#touch #nova{font-size:11px}#error{z-index:20;color:#b04132;background:#fff;padding:30px;position:fixed;inset:25% 10% auto}@media (pointer:coarse){#readout{bottom:112px}#hint{bottom:96px}.instructions{display:none}}@media (width<=600px){#hud{gap:14px;inset:16px 16px auto}.route{width:185px}.route small{font-size:16px}.topRight button{width:40px;height:36px;font-size:11px}#scoreHud{font-size:13px;top:98px;left:16px}#scoreHud b{font-size:21px}#readout{gap:17px;bottom:112px;left:16px;right:16px}.speed strong{min-width:72px;font-size:54px}.speed small{font-size:15px}.vitals{gap:8px;width:110px}.alt strong{font-size:28px}.alt small{font-size:9px}.screen{padding:26px 24px}.eyebrow{letter-spacing:.16em;margin-bottom:20px;font-size:10px}h1{font-size:76px}.edition{margin:20px 0 24px;font-size:16px}.intro{font-size:20px}.desc{margin-bottom:20px;font-size:12px}.menuCard{max-width:355px}#menu:before{background-position:68%}#menu:after{background:linear-gradient(90deg,#f8fcfff5,#f8fcffba 65%,#f8fcff70)}.menuMark,.instructions{display:none}.fine{font-size:10px}.resultCard{padding:25px}#hint{font-size:9px;bottom:96px}#touch button{min-width:57px;height:61px}.steering,.actions{gap:7px}#touch{left:12px;right:12px}#touch #boost{padding:0 12px}#notice{font-size:20px;top:28%}#chain{font-size:15px}}.topRight button{white-space:nowrap;padding:0}#boostFx:after{content:"";background:repeating-conic-gradient(at 50% 48%,#0000 0deg 11.8deg,#26b8e646 11.9deg 12deg);animation:.5s linear infinite rush;position:absolute;inset:-12%;-webkit-mask-image:radial-gradient(#0000 48%,#000 85%);mask-image:radial-gradient(#0000 48%,#000 85%)}@keyframes rush{0%{opacity:.35;transform:scale(.96)}to{opacity:.8;transform:scale(1.08)}}@media (pointer:coarse),(width<=600px){#hint{display:none}}@media (height<=640px){.screen{padding:20px 5vw}.eyebrow{margin-bottom:12px}h1{font-size:68px}.edition{margin:15px 0}.intro{font-size:18px}.desc{margin-bottom:12px}.instructions{margin-top:12px}.fine,.quality{margin-top:6px}.primary{padding:12px 20px}}@media (prefers-reduced-motion:no-preference){#aim[data-state=tracking] .aim-orbit{animation:.75s ease-in-out infinite alternate aimPulse}#aim[data-state=lock] .aim-corners{animation:.35s ease-out both aimLock}}#aim{pointer-events:none;z-index:7;filter:drop-shadow(0 1px 2px #fff);--aim:#d84419;width:72px;height:72px;position:fixed;transform:translate(-50%,-50%)}#aim .aim-orbit{border:2px solid var(--aim);border-radius:50%;position:absolute;inset:9px;box-shadow:inset 0 0 0 2px #fff9,0 0 0 1px #fff}#aim .aim-corners{background:linear-gradient(var(--aim),var(--aim)) left top/17px 3px no-repeat,linear-gradient(var(--aim),var(--aim)) left top/3px 17px no-repeat,linear-gradient(var(--aim),var(--aim)) right top/17px 3px no-repeat,linear-gradient(var(--aim),var(--aim)) right top/3px 17px no-repeat,linear-gradient(var(--aim),var(--aim)) left bottom/17px 3px no-repeat,linear-gradient(var(--aim),var(--aim)) left bottom/3px 17px no-repeat,linear-gradient(var(--aim),var(--aim)) right bottom/17px 3px no-repeat,linear-gradient(var(--aim),var(--aim)) right bottom/3px 17px no-repeat;position:absolute;inset:0}#aim .aim-point{background:var(--aim);border-radius:50%;width:4px;height:4px;position:absolute;top:calc(50% - 2px);left:calc(50% - 2px);box-shadow:0 0 0 2px #fff}#aim b{color:#fff;letter-spacing:.12em;white-space:nowrap;background:#143849e8;border-radius:3px;padding:1px 5px;font:700 10px/1.3 Barlow Condensed,Noto Sans JP,sans-serif;position:absolute;top:-12px;left:50%;transform:translate(-50%)}#aim[data-state=edge] b{background:#143849db}@keyframes aimPulse{0%{opacity:.7;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@keyframes aimLock{0%{opacity:.65;transform:scale(1.18)}to{opacity:1;transform:scale(1)}}#aim .aim-orbit{border-width:3px;inset:17px;box-shadow:inset 0 0 0 3px #fff,0 0 0 3px #071c28}#aim .aim-corners{background:linear-gradient(var(--aim),var(--aim)) left top/24px 4px no-repeat,linear-gradient(var(--aim),var(--aim)) left top/4px 24px no-repeat,linear-gradient(var(--aim),var(--aim)) right top/24px 4px no-repeat,linear-gradient(var(--aim),var(--aim)) right top/4px 24px no-repeat,linear-gradient(var(--aim),var(--aim)) left bottom/24px 4px no-repeat,linear-gradient(var(--aim),var(--aim)) left bottom/4px 24px no-repeat,linear-gradient(var(--aim),var(--aim)) right bottom/24px 4px no-repeat,linear-gradient(var(--aim),var(--aim)) right bottom/4px 24px no-repeat;filter:drop-shadow(0 1px 2px #071c28)}#aim .aim-point{border:2px solid #fff;width:9px;height:9px;top:calc(50% - 4.5px);left:calc(50% - 4.5px);box-shadow:0 0 0 2px #071c28}#aim b{letter-spacing:.14em;border:1px solid #fff;padding:3px 8px;font-size:12px;top:-17px;box-shadow:0 0 0 2px #0b2635,0 2px 6px #0008}#aim{z-index:7;filter:drop-shadow(0 0 1px #fff);--aim:#9e3517;width:28px;height:28px}#aim .aim-orbit{border-width:1.5px;animation:none;inset:5px;box-shadow:0 0 0 1px #fff9}#aim[data-state=tracking] .aim-orbit{animation:none}#aim .aim-corners,#aim b{display:none}#aim .aim-point{background:var(--aim);border:0;width:3px;height:3px;top:calc(50% - 1.5px);left:calc(50% - 1.5px);box-shadow:0 0 0 1px #fff}#aim[data-state=lock]{--aim:#603aab}#aim[data-state=lock] .aim-orbit{border-width:2px;box-shadow:0 0 0 1px #fff}#aim[data-state=lock] .aim-point{width:4px;height:4px;top:calc(50% - 2px);left:calc(50% - 2px)}#aim[data-state=edge] .aim-orbit{border-style:dashed}@media (pointer:coarse),(width<=600px){#hint{color:#345b70;background:#ffffffb8;padding:4px 10px;font-size:10px;display:block;bottom:94px}}
