@charset "UTF-8";
:root{--ink:#302b28;--paper:#f5eddc;--red:#c7402c;--red-dark:#a52e20;--line:#d8ceba;--mono:ui-monospace,"SFMono-Regular",Consolas,monospace;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;background-image:radial-gradient(#746b4b0b .8px,transparent .8px);background-size:5px 5px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #166e83;outline-offset:4px}button:disabled{cursor:default;opacity:.4}.page{max-width:1160px;margin:auto;padding:0 38px}.masthead{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;color:inherit;text-decoration:none;font:700 15px var(--mono);letter-spacing:1.4px}.seal{display:grid;place-items:center;width:42px;height:46px;background:var(--red);color:#fff4d7;font:700 29px serif;border-radius:2px;transform:rotate(-4deg)}.brand-sub{display:block;font:10px sans-serif;letter-spacing:1.4px;margin-top:5px;color:#756d60}.record{display:flex;align-items:baseline;gap:9px}.record>span{font-size:11px;color:#746b60}.record strong{font:700 26px var(--mono)}.record small{font-size:10px}.intro{display:flex;align-items:center;justify-content:space-between;padding:26px 0 25px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:8px}.eyebrow span{width:19px;height:2px;background:var(--red)}h1{margin:3px 0 0;font-size:68px;letter-spacing:-5px;line-height:1.12;font-weight:900;position:relative;white-space:nowrap}h1>span{color:var(--red);display:inline-block;transform:skew(-8deg);margin-left:5px}h1 i{font-style:normal;display:inline-block;vertical-align:top;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;margin:16px 0 0 10px}.intro>p{text-align:right;font-family:serif;font-size:20px;line-height:1.8;margin:0}.intro>p>span{font-family:sans-serif;font-size:11px;letter-spacing:1px;color:#796e5f}.game-shell{border:1px solid #38312a;background:#fff9eb;box-shadow:5px 6px 0 #302b281a;overflow:hidden;border-radius:4px}.game-topline{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--ink);color:#fff4d7;font-size:10px;letter-spacing:1px}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#f4ab66;vertical-align:middle;margin-right:5px}.stage{position:relative;width:100%;aspect-ratio:1000/560;overflow:hidden;isolation:isolate;background:#f6d29b}canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}.hud{position:absolute;inset:19px 22px auto;display:flex;justify-content:space-between;pointer-events:none}.score small{font:10px var(--mono);letter-spacing:2px;display:block}.score strong{font:700 33px var(--mono);line-height:1.15;display:block}.score>span{display:block;font:10px var(--mono);margin-top:5px}.score b{font-weight:700}.score i{font-style:normal;opacity:.35;margin:0 6px}.hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:14px}.tools{display:flex;gap:7px;pointer-events:auto}.icon-button{width:34px;height:34px;border:1px solid #64523a3d;background:#fff9e7d9;color:var(--ink);display:grid;place-items:center;border-radius:50%;padding:7px}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-button[aria-pressed=true]{background:#c7402c;color:#fff8e3;border-color:#c7402c}.fever{width:108px;text-align:right}.fever>span{font-size:9px;font-weight:700;letter-spacing:1px}.fever>div{height:5px;background:#fff5d3ab;border:1px solid #7a57322d;border-radius:5px;margin-top:6px;overflow:hidden}.fever i{display:block;height:100%;width:0;background:var(--red);transition:width .18s}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding:20px 10%;background:linear-gradient(90deg,transparent 22%,#f9efd135 45%,#f9efd1a8 100%)}.overlay.centered{justify-content:center;background:#f6eddcb0;backdrop-filter:blur(4px)}.start-card{width:278px}.card-eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--red)}h2{font-family:serif;font-size:36px;line-height:1.4;letter-spacing:1px;margin:9px 0 14px} .start-card p{font-size:11px;line-height:1.9;color:#625240;margin:0 0 16px}.mode-picker{display:flex;border:1px solid #6a543b45;border-radius:4px;margin:0 0 11px;padding:3px;gap:3px;background:#fff6dcaa}.mode-picker button{border:0;flex:1;background:transparent;border-radius:2px;padding:7px 2px;font-size:11px;color:#796953}.mode-picker button.selected{background:var(--ink);color:#fff6e2}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-bottom:3px solid #8f281f;border-radius:4px;padding:15px 18px;color:#fff9e8;background:var(--red);font-size:14px;font-weight:700;box-shadow:0 4px 15px #9b472f17}.primary:hover{background:var(--red-dark)}.primary:active,.jump-button:active{transform:translateY(2px)}.primary span{font-size:22px;line-height:1}.audio-hint{display:block;text-align:center;font-size:8px;color:#776a55;margin-top:10px}.control-deck{height:84px;display:flex;align-items:center;justify-content:space-between;padding:13px 21px;border-top:1px solid #40372a33;background:#fff8e9}.control-caption{display:flex;align-items:center;gap:12px}.control-symbol{border:1px solid #d1c5af;background:#f4eddf;border-radius:4px;padding:9px 11px;font:17px var(--mono);white-space:nowrap}.control-caption strong{display:block;font-size:12px}.control-caption small{display:block;margin-top:5px;font-size:9px;color:#7c7161}.jump-button{border:0;border-bottom:4px solid #9d3022;background:var(--red);color:#fff7e2;border-radius:4px;padding:12px 30px;font-size:21px;font-weight:800;touch-action:none;user-select:none;min-width:225px;display:flex;justify-content:space-between;align-items:center;gap:40px}.jump-button span{font:10px var(--mono);letter-spacing:2px}.instructions{display:grid;grid-template-columns:repeat(3,1fr);padding:27px 0 26px;gap:23px}.instructions>div{display:flex;align-items:center;gap:12px}.step{font:21px var(--mono);color:#c5b59c}.instructions p{margin:0}.instructions strong{display:block;font-size:11px}.instructions small{display:block;font-size:9px;color:#7a7060;line-height:1.8;margin-top:4px}footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:19px 0 24px;font:9px var(--mono);color:#8a7c69;gap:10px}footer b{color:var(--red);padding:0 5px}.hidden{display:none!important}.result-card,.pause-card{text-align:center;width:290px;max-width:100%;background:#fff7e9;border:1px solid #b9a485;border-radius:6px;padding:23px;box-shadow:0 8px 30px #65442620}.result-card h2,.pause-card h2{font-size:25px;margin:6px 0}.result-card>p{font-size:10px;color:#7c6552;margin:7px 0}.result-score{margin:7px 0;color:var(--red)}.result-score strong{font:700 49px var(--mono);letter-spacing:-2px}.result-score>span{font-size:13px;margin-left:7px}.result-card .result-detail{display:flex;justify-content:center;gap:20px;margin:0 0 17px;font:11px var(--mono)}.text-button{border:0;background:transparent;color:#827160;font-size:10px;padding:12px 0 0;text-decoration:underline;text-underline-offset:3px}.pause-card h2{margin:12px 0 23px}.callout{position:absolute;top:25%;left:50%;transform:translate(-50%,-10px) rotate(-3deg);opacity:0;transition:.2s;font-size:25px;font-weight:900;letter-spacing:2px;color:#fff8d8;text-shadow:2px 2px 0 #bf3b23,-1px -1px 0 #bf3b23,0 3px 6px #6d2f2944;pointer-events:none;white-space:nowrap}.callout.visible{opacity:1;transform:translate(-50%,0) rotate(-3deg)}.tap-hint{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);border-radius:30px;padding:9px 17px;font-size:11px;white-space:nowrap;color:#fff4dc;background:#332b22bb;pointer-events:none}.fever-active .game-topline{background:#ae3424}.fever-active .fever i{background:#f18b24}.fever-active .fever>span{color:var(--red)}
@media(min-width:1400px){.page{max-width:1210px}.intro{padding:30px 0}.masthead{height:100px}}
@media(max-width:700px){.page{padding:0 17px}.masthead{height:72px}.brand{font-size:11px;gap:9px;letter-spacing:.8px}.seal{width:33px;height:36px;font-size:24px}.brand-sub{font-size:7px;letter-spacing:.8px}.record{gap:5px}.record>span{font-size:8px}.record strong{font-size:20px}.intro{padding:23px 0 21px}.eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:49px;letter-spacing:-4px}h1 i{font-size:7px;margin:10px 0 0 7px;letter-spacing:2px}.intro>p{font-size:13px;line-height:1.7}.intro>p>span{display:none}.game-topline{height:29px;padding:0 12px;font-size:8px;letter-spacing:.7px}.stage{aspect-ratio:4/3}.hud{inset:12px 12px auto}.score small{font-size:8px}.score strong{font-size:25px}.score>span{font-size:9px;margin-top:3px}.hud-right{gap:7px}.icon-button{width:30px;height:30px;padding:6px}.tools{gap:6px}.fever{width:85px}.fever>span{font-size:7px}.overlay{padding:20px 6%;background:linear-gradient(90deg,transparent,#f9efd14d 37%,#f9efd1c4 73%)}.start-card{width:46%;min-width:166px;padding-top:27px}.card-eyebrow{font-size:8px;letter-spacing:1px}h2{font-size:24px;letter-spacing:0;line-height:1.35;margin:5px 0 8px}.start-card p{font-size:9px;line-height:1.6;margin-bottom:9px}.mode-picker{margin-bottom:7px;padding:2px}.mode-picker button{font-size:9px;padding:5px 0}.primary{font-size:11px;padding:11px 12px;border-bottom-width:2px}.primary span{font-size:18px}.audio-hint{font-size:6.5px;margin-top:6px}.control-deck{height:75px;padding:10px 11px;gap:9px}.control-caption{gap:0}.control-symbol{display:none}.control-caption strong{font-size:9px}.control-caption small{font-size:7px;margin-top:5px}.jump-button{min-width:140px;font-size:20px;padding:12px 17px;gap:20px}.jump-button span{font-size:8px;letter-spacing:1px}.instructions{gap:12px;padding:23px 0;grid-template-columns:1fr}.instructions>div{gap:11px}.step{font-size:17px}.instructions strong{font-size:10px;display:inline;margin-right:6px}.instructions small{display:inline;font-size:9px}.instructions p{line-height:1.6}footer{font-size:7px;align-items:flex-start;line-height:1.6}footer>span:last-child{max-width:132px;text-align:right}.result-card{width:245px;padding:14px}.result-card h2{font-size:21px;margin:2px 0}.result-score{margin:1px 0}.result-score strong{font-size:37px}.result-card .result-detail{margin:0 0 11px;font-size:9px}.result-card>p{font-size:9px;margin:4px 0}.text-button{font-size:8px;padding-top:9px}.callout{font-size:18px;top:29%}.tap-hint{font-size:9px;bottom:7%;padding:6px 11px}}
@media(max-width:370px){.page{padding:0 10px}.intro>p{font-size:11px}h1{font-size:44px}.stage{aspect-ratio:1.2}.start-card{min-width:155px}h2{font-size:22px}.control-caption strong{font-size:8px}.jump-button{min-width:128px}.instructions strong{font-size:9px}.instructions small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.hud{z-index:3}.overlay{z-index:2}.callout{z-index:4}.tap-hint{z-index:1}.is-ready .fever{visibility:hidden}
.score{background:#fff8e4c9;padding:7px 10px;border-radius:4px}.fever{background:#fff8e4c9;padding:5px 7px;border-radius:4px}
@media(max-width:700px){.score{padding:5px 7px}.fever{padding:4px 6px}}
.festival-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-5px 0 14px}.festival-nav>span{font-size:11px;letter-spacing:1px;color:#8a725a}.ranking-link{border:1px solid #bd402d;background:#fff5df;color:#b93625;border-radius:4px;padding:10px 15px;font-size:11px;font-weight:700;letter-spacing:.4px}.ranking-link b{margin-left:12px;font-size:16px}.audio-options{display:flex;align-items:center;gap:15px;margin-top:15px;font-size:10px;color:#7b6b59}.audio-options label{display:flex;align-items:center;gap:5px;color:#443a2f;cursor:pointer}.audio-options input{accent-color:#bd402d;width:16px;height:16px}.start-error{font-size:10px!important;color:#a62c21!important;line-height:1.6!important;margin:7px 0!important}.start-error:empty{display:none}#result-dialog{padding:0;border:0;background:transparent;border-radius:9px;max-height:calc(100dvh - 40px);max-width:calc(100vw - 28px);overflow:auto;color:var(--ink)}#result-dialog::backdrop{background:#30251bb3;backdrop-filter:blur(4px)}#result-dialog .result-card{width:365px;max-width:100%;padding:25px;border-radius:9px}#result-dialog .result-score strong{font-size:48px}#result-dialog .result-card h2{font-size:27px}#result-dialog .result-detail{margin-bottom:18px}.result-ranking-button{display:block;width:100%;border:1px solid #d4bf9e;background:#f7ebd6;border-radius:4px;padding:10px;color:#684b33;font-size:11px;margin-top:9px}button:disabled{cursor:wait}#result-dialog .text-button{padding-top:14px}.primary:disabled{opacity:.6}.audio-options+ .instructions{padding-top:20px}
@media(max-width:700px){.festival-nav>span{font-size:9px;letter-spacing:0}.festival-nav{gap:5px;margin:0 0 12px}.ranking-link{font-size:9px;padding:9px 10px;letter-spacing:0}.ranking-link b{font-size:12px;margin-left:5px}.audio-options{font-size:9px;gap:8px;justify-content:space-between}.audio-options>span{font-size:8px}#result-dialog .result-card{width:342px;padding:22px}#result-dialog .result-card h2{font-size:25px}#result-dialog .primary{padding:14px;font-size:13px}}

.pace{display:flex;align-items:center;gap:11px}.pace strong{font:700 12px var(--mono);color:#ffcf82;letter-spacing:1px}.pace>span{font-size:10px;color:#fff2d5;letter-spacing:.6px}.pace .live-dot{margin:0}
@media(max-width:700px){.pace{gap:7px}.pace strong{font-size:10px}.pace>span{font-size:8px;letter-spacing:0}.game-topline #area{font-size:7.5px;letter-spacing:0}}

.high-danger .game-topline{background:#8e241c}.high-danger .pace strong{color:#ffdb7b}.high-danger .pace>span{font-weight:700}.high-danger .live-dot{background:#ffe48f}
@media(max-width:700px){.pace{gap:5px}.pace strong{font-size:9px}.game-topline{padding-left:10px;padding-right:10px}}
.super-meter{display:flex;align-items:center;gap:15px;padding:13px 21px;background:#f3e7cc;border-top:1px solid #cbb38c;min-height:62px}.super-caption{min-width:270px}.super-caption strong{display:block;font-size:13px;color:#684410;letter-spacing:1px}.super-caption small{display:block;font-size:9px;color:#82683b;margin-top:4px}.super-track{height:10px;flex:1;border-radius:7px;background:#d7c7a7;overflow:hidden;border:1px solid #bda170}.super-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#b77b22,#e9b53e);transition:width .12s}.super-meter>strong{font:700 15px var(--mono);min-width:77px;text-align:right;color:#79511b}.super-active .super-meter{background:linear-gradient(105deg,#513a13,#815413);border-color:#ffdd72}.super-active .super-caption strong,.super-active .super-meter>strong{color:#fff0a9}.super-active .super-caption small{color:#f5dba1}.super-active .super-track{background:#382a15;border-color:#a77f34}.super-active .super-track i{background:linear-gradient(90deg,#e8ad28,#fff1a0)}.super-active .game-topline{background:#a16d17;color:#fff6d0}.game-shell.super-active{border-color:#e2b34a}.super-active .pace strong{color:#fff5bd}.super-active .callout{color:#fff5b0;text-shadow:2px 2px 0 #6e4c13,-1px -1px 0 #6e4c13,0 0 12px #fff2af80}.next-warning{position:absolute;right:2%;bottom:3%;z-index:1;pointer-events:none;width:230px;max-width:53%;padding:8px 11px;background:#2c2631ed;color:#fff4db;border:1px solid #d3ad68;border-radius:5px;font-size:10px;box-shadow:0 2px 8px #2d202033}.next-warning>div:first-child{display:flex;justify-content:space-between;gap:8px;color:#efd192;font-size:9px}.next-warning>strong{display:block;margin-top:4px;font-size:12px;letter-spacing:.5px}.next-track{height:3px;background:#685547;border-radius:2px;margin-top:6px;overflow:hidden}.next-track i{display:block;height:100%;background:#f2b84c;width:0}.super-active .next-warning{border-color:#ffe77e}
@media(max-width:700px){.super-meter{gap:8px;padding:10px 11px;min-height:58px;flex-wrap:wrap}.super-caption{min-width:0;flex:1}.super-caption strong{font-size:11px;letter-spacing:0}.super-caption small{font-size:7px;white-space:nowrap}.super-meter>strong{min-width:53px;font-size:12px}.super-track{order:3;flex-basis:100%;height:6px}.next-warning{padding:5px 7px;width:174px;max-width:55%}.next-warning>div:first-child{font-size:7px}.next-warning>strong{font-size:9px;margin-top:3px;letter-spacing:0}.next-track{margin-top:4px;height:2px}.callout{font-size:15px;letter-spacing:0}}
