@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-800-normal-BKzMuPgK.woff2) format("woff2"),url(/assets/barlow-condensed-latin-800-normal-e9GbPXiK.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/barlow-condensed-latin-900-normal-SFh9ViAc.woff2) format("woff2"),url(/assets/barlow-condensed-latin-900-normal-Bz1RFETY.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff")}:root{font-family:DM Sans,system-ui,sans-serif;color:#fff4d5;background:#101c2b;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff6c9;outline-offset:4px}.hidden{display:none!important}#app{position:relative;width:100vw;height:100dvh;min-height:580px;overflow:hidden;background:#102137;isolation:isolate}#game{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}#game canvas{display:block}.grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.43'/%3E%3C/svg%3E");mix-blend-mode:screen}.frame-lines{position:absolute;inset:13px;border:1px solid #ffedd05c;z-index:3;pointer-events:none}.frame-lines:before,.frame-lines:after{content:"";position:absolute;width:31px;height:31px;border:3px solid #f4db99}.frame-lines:before{left:-2px;top:-2px;border-right:0;border-bottom:0}.frame-lines:after{right:-2px;bottom:-2px;border-left:0;border-top:0}.topbar{position:absolute;z-index:10;top:25px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:Barlow Condensed,sans-serif;font-size:16px;font-weight:800;letter-spacing:.14em;text-shadow:0 2px 8px #14263c}.brand{white-space:nowrap}.brand-mark{color:#f6b077;font-size:25px;vertical-align:-2px;margin-right:6px}.brand-sep{margin:0 8px;color:#ffb477}.top-action{border:1px solid #f9e7bb;background:#112a3e;color:#fff5da;min-height:44px;padding:0 14px;font-family:inherit;font-weight:800;font-size:16px;letter-spacing:.1em;white-space:nowrap}.top-action span{font-size:19px;margin-left:8px}.top-action.sound-on{background:#f5d38f;color:#142839}.overlay{position:absolute;z-index:5;inset:0}.menu{padding:clamp(80px,11vh,105px) max(50px,calc((100vw - 1180px)/2));background:linear-gradient(90deg,#10263df7,#10263de8 37%,#10263d00 76%)}.menu-copy{position:relative;z-index:2;width:min(690px,67vw)}.eyebrow,.course-label,.course-no,.course-meta,.best-line,.menu-side p,.menu-bottom,.panel-kicker,.result-stats span,.hud-kicker,.hud-center,.hud-combo,.instructions,.footer-right{font-family:Barlow Condensed,sans-serif;font-weight:800;letter-spacing:.15em}.eyebrow{display:flex;align-items:center;gap:11px;font-size:17px;color:#ffe5ac}.blink-dot{width:9px;height:9px;border-radius:50%;background:#f7a46c;box-shadow:0 0 14px #ffc07b}.eyebrow-rule{width:42px;height:1px;background:#f6dda5}h1,h2{font-family:Barlow Condensed,Impact,sans-serif;font-weight:900;font-stretch:condensed}h1{font-size:clamp(104px,10.6vw,146px);line-height:.67;letter-spacing:-.028em;margin:36px 0 17px -7px;transform:skew(-6deg);color:#fff5d9;text-shadow:8px 8px 0 #ef6e5f,14px 14px 0 #0a344b}h1 span{display:block}h1 .title-second{color:#ffe0a0;white-space:nowrap}h1 i{display:inline-block;color:#f47c65;font-style:normal;font-size:.44em;vertical-align:27%;margin-left:7px;text-shadow:3px 3px 0 #123146}.tagline{font-family:Barlow Condensed,sans-serif;font-size:clamp(24px,3.2vw,38px);line-height:1;font-weight:900;letter-spacing:.04em;margin:25px 0 12px}.tagline em{color:#ffae79;font-style:normal}.intro{max-width:560px;color:#fff2d9;font-size:17px;line-height:1.5;font-weight:600;margin:0 0 33px}.course-label{width:min(590px,100%);display:flex;justify-content:space-between;color:#ffe2a5;font-size:16px;margin-bottom:9px}.course-label span{color:#fff7dd}.courses{display:flex;width:min(600px,100%);border:1px solid #fff0c7}.course{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:82px;width:33.333%;padding:10px 17px;border:0;border-right:1px solid #fff0c79e;color:#ffedd1;background:#102d44d8;text-align:left;transition:background .15s,color .15s}.course:last-child{border-right:0}.course:hover,.course.selected{background:#ffe0a0;color:#142a3b}.course-no{font-size:15px;line-height:1}.course-name{font-family:Barlow Condensed,sans-serif;font-size:26px;font-weight:900;line-height:1.1;white-space:nowrap}.course-meta{font-size:13px;letter-spacing:.04em;white-space:nowrap}.menu-actions{display:flex;align-items:center;gap:30px;margin-top:22px}.start-button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-width:230px;min-height:61px;border:0;padding:8px 18px 8px 23px;color:#153044;background:#f97962;box-shadow:7px 7px #fff0c7;font-family:Barlow Condensed,sans-serif;font-weight:900;font-size:30px;line-height:1;letter-spacing:.03em;transform:skew(-5deg);transition:transform .15s,background .15s}.start-button:hover{transform:skew(-5deg) translate(-2px,-2px);background:#ff9e75}.start-button span{font-size:34px}.best-line{display:flex;flex-direction:column;color:#fff0cf;font-size:15px}.best-line strong{font-size:25px;letter-spacing:.04em}.menu-side{position:absolute;top:28%;right:4.7%;text-align:center;transform:rotate(10deg)}.roundel{width:clamp(155px,19vw,275px);aspect-ratio:1;padding:13px;border:8px solid #fff1c7;border-radius:50%;box-shadow:10px 10px #f47762}.roundel-inner{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;border:3px solid #fff1c7;border-radius:50%;background:#f47762;color:#fff1c7;font-family:Barlow Condensed,sans-serif;font-size:clamp(70px,10vw,145px);line-height:.64;font-weight:900;letter-spacing:-.06em}.roundel-inner span{font-size:.42em;line-height:1}.menu-side p{margin:25px 0 0;font-size:16px}.menu-bottom{position:absolute;bottom:56px;right:50px;display:flex;gap:28px;font-size:15px}.footer{position:absolute;z-index:10;bottom:28px;left:40px;right:40px;display:flex;align-items:end;justify-content:space-between;gap:20px;font-size:14px;text-shadow:0 1px 5px #082238}.instructions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#fff3cf}.instructions span{border:1px solid #f6e3b7;padding:3px 5px 1px;margin-left:7px;background:#183b4c;color:#fff7e3}.instructions span:first-child{margin-left:0}.footer-right{text-align:right;color:#fff1cd}.footer-right a{color:#fff8de;text-underline-offset:3px}.hud{position:absolute;z-index:5;top:86px;left:45px;right:45px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;text-shadow:2px 3px 0 #12384b}.hud-left,.hud-right{min-width:225px}.hud-kicker{display:block;font-size:17px;color:#fff4d0}.hud-score,.hud-time{font-family:Barlow Condensed,sans-serif;font-size:73px;line-height:.95;font-weight:900;letter-spacing:.02em}.hud-combo{display:inline-block;margin-top:8px;padding:4px 11px;background:#ffdc9b;color:#162f43;font-size:21px;text-shadow:none}.hud-center{width:190px;margin-top:12px;text-align:center;font-size:17px}.flow-track{height:12px;margin:6px 0 2px;border:2px solid #fff0c9;background:#0a3544}#flow-fill{height:100%;background:#f57b68;width:65%;transition:width .15s}.hud-right{text-align:right}.pause-button{pointer-events:auto;position:absolute;right:0;top:104px;width:43px;height:43px;border:2px solid #ffedc5;color:#fff5d6;background:#153548;font-size:20px}.callout{position:absolute;top:152px;left:50%;transform:translate(-50%,-20px) skew(-6deg);opacity:0;white-space:nowrap;font-family:Barlow Condensed,sans-serif;font-size:clamp(32px,5vw,70px);font-weight:900;color:#fff5d6;text-shadow:5px 5px 0 #0e3c4b;transition:transform .2s,opacity .2s}.callout.visible{opacity:1;transform:translate(-50%) skew(-6deg)}.callout[data-color=gold]{color:#ffe3a0}.callout[data-color=coral]{color:#ff8b71}.panel{display:flex;align-items:center;padding-left:10%;background:linear-gradient(90deg,#10263df5,#10263de8 49%,#10263d49)}.panel-content{width:min(670px,80vw)}.panel-kicker{font-size:20px;color:#ffe3a3}.panel h2{font-size:clamp(85px,10vw,145px);line-height:.76;letter-spacing:-.02em;margin:25px 0;color:#fff2d2;text-shadow:7px 7px 0 #f27763;transform:skew(-5deg)}.panel p{max-width:490px;font-size:19px;line-height:1.4;font-weight:600}.panel-actions{display:flex;align-items:center;gap:34px;margin-top:34px}.text-button{border:0;border-bottom:2px solid #fff3d5;background:transparent;color:#fff4d6;padding:8px 0;font-family:Barlow Condensed,sans-serif;font-size:21px;font-weight:800;letter-spacing:.04em}.result-score{font-family:Barlow Condensed,sans-serif;font-size:78px;font-weight:900;color:#ffe0a3;line-height:1}.result-stats{display:flex;gap:35px;margin-top:20px}.result-stats div{display:flex;flex-direction:column}.result-stats span{font-size:15px}.result-stats strong{font-family:Barlow Condensed,sans-serif;font-size:30px}.touch-controls{position:absolute;z-index:6;bottom:70px;left:24px;right:24px;display:none;justify-content:space-between;pointer-events:none}.touch-controls button{pointer-events:auto;touch-action:none;width:69px;min-height:68px;border:2px solid #ffe6ae;border-radius:50%;background:#113b56c9;color:#fff0c4;font-family:Barlow Condensed,sans-serif;font-size:21px;font-weight:900}.touch-controls button.down{background:#f58167;color:#153044}.touch-controls small{display:block;font-size:12px}.touch-left,.touch-right{display:flex;gap:8px}.touch-controls .touch-jump{width:82px;background:#f58167;color:#153044}@media(pointer:coarse){.touch-controls:not(.hidden){display:flex}}@media(max-width:900px){.menu{padding:100px 38px 60px}.menu-copy{width:min(620px,88vw)}.menu-side{opacity:.65;right:-4%;top:31%}.roundel{width:165px}.menu-bottom,.footer-right{display:none}}@media(min-width:621px)and (max-height:620px){#app{min-height:540px}.menu{padding:76px 38px 45px}h1{font-size:86px;margin:18px 0 10px -3px}.tagline{font-size:25px;margin:18px 0 6px}.intro{font-size:15px;line-height:1.3;margin-bottom:13px}.courses{width:550px}.course{min-height:66px}.course-name{font-size:22px}.menu-actions{margin-top:12px}.start-button{min-height:48px;font-size:24px}.menu-side,.menu-bottom,.footer{display:none}}@media(max-width:620px){#app{min-height:690px}#game{justify-content:flex-start;overflow:hidden}#game canvas{position:absolute;left:calc(50vw - 212.5px);top:50%;transform:translateY(-50%);width:800px!important;height:450px!important;max-width:none!important;margin:0!important}.frame-lines{inset:8px}.topbar{top:20px;left:22px;right:22px;font-size:12px;letter-spacing:.06em}.brand-mark{font-size:17px}.brand-sep{margin:0 3px}.top-action{min-height:42px;padding:0 8px;font-size:12px}.top-action span{margin-left:2px}.menu{padding:122px 22px 80px;background:linear-gradient(90deg,#10263df4,#10263dca 75%,#10263d99)}.menu-copy{width:100%}.eyebrow{font-size:12px;gap:6px}.eyebrow-rule{width:18px}h1{font-size:clamp(83px,19vw,124px);margin:39px 0 18px -3px;text-shadow:5px 5px 0 #ef6e5f,9px 9px 0 #0a344b}h1 i{margin-left:2px}.tagline{font-size:25px;margin:25px 0 10px}.intro{font-size:15px;line-height:1.35;margin-bottom:20px}.course-label{font-size:14px}.course{min-height:76px;padding:7px}.course-no{font-size:12px}.course-name{font-size:clamp(16px,4.5vw,22px)}.course-meta{font-size:10px;letter-spacing:0;white-space:normal}.menu-actions{gap:18px;margin-top:23px}.start-button{min-width:178px;min-height:54px;font-size:25px;padding:7px 12px;box-shadow:5px 5px #fff0c7}.best-line{font-size:12px}.best-line strong{font-size:20px}.menu-side{display:none}.footer{bottom:16px;left:22px;right:22px;font-size:11px}#app[data-view=playing] .footer{display:none}.instructions{gap:4px}.instructions span{padding:2px 3px;margin-left:3px}.hud{top:77px;left:20px;right:20px}.hud-left,.hud-right{min-width:0}.hud-kicker{font-size:12px}.hud-score,.hud-time{font-size:42px}.hud-combo{font-size:16px;padding:2px 6px}.hud-center{width:86px;font-size:12px;margin-top:3px}.pause-button{top:67px;width:40px;height:40px}.callout{top:116px;font-size:32px}.panel{padding:0 25px}.panel-content{width:100%}.panel h2{font-size:75px}.panel p{font-size:16px}.panel-actions{align-items:flex-start;flex-direction:column;gap:20px}.result-score{font-size:65px}.result-stats{gap:14px}.result-stats span{font-size:12px}.result-stats strong{font-size:22px}.touch-controls:not(.hidden){display:flex}.touch-controls{left:14px;right:14px;bottom:56px}.touch-controls button{width:55px;min-height:55px;font-size:16px}.touch-controls .touch-jump{width:68px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
