@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{color-scheme:dark;--ink:#ede9dc;--muted:#a3aea9;--gold:#e7b57c;--line:rgba(217,226,212,.17);font-family:Arial,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;background:#101b20;color:var(--ink)}
*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible,.touch-pad:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{border:0}button:hover{filter:brightness(1.12)}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#app{position:relative;width:100%;height:100svh;min-height:650px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 48% 35%,#223333 0%,#14232a 38%,#101b20 74%)}#scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.grain{position:absolute;inset:0;opacity:.035;pointer-events:none;z-index:8;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.65' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.header{position:absolute;z-index:10;top:max(25px,env(safe-area-inset-top));left:36px;right:36px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-family:'Noto Serif JP',serif;letter-spacing:.17em;font-size:15px}.brand svg{width:25px;height:25px;stroke:var(--gold);fill:none;stroke-width:1}.header-actions{display:flex;gap:12px;align-items:center}.quiet-button{background:none;display:flex;align-items:center;gap:9px;letter-spacing:.08em;font-size:11px;color:var(--muted);min-height:42px;padding:0 8px}.quiet-button #sound-icon{font-size:22px;color:var(--ink)}.icon-button{height:40px;width:40px;border:1px solid var(--line);border-radius:50%;background:rgba(12,24,28,.4)}.screen{position:absolute;inset:0}.vertical-title{position:absolute;top:22%;left:calc(50% + 115px);display:flex;flex-direction:row-reverse;align-items:flex-start;gap:26px}.eyebrow{font-size:9px;letter-spacing:.25em;color:var(--gold);font-weight:400}.vertical-title .eyebrow{writing-mode:vertical-rl;margin-top:6px;letter-spacing:.28em}.vertical-title h1{writing-mode:vertical-rl;letter-spacing:.17em;font-family:'Noto Serif JP',serif;font-weight:400;font-size:46px;line-height:1.3;margin:0}.vertical-title p{writing-mode:vertical-rl;font-family:'Noto Serif JP',serif;font-size:14px;letter-spacing:.17em;margin:8px 0 0;color:#c6d1ca}.scene-caption{position:absolute;top:42%;right:calc(50% + 154px);writing-mode:vertical-rl;font-size:11px;letter-spacing:.25em;color:#9cab9f;display:flex;align-items:center;gap:20px}.tiny-line{height:48px;width:1px;background:var(--gold);opacity:.45}.home-bottom{position:absolute;width:340px;left:50%;transform:translateX(-50%);bottom:max(36px,env(safe-area-inset-bottom));text-align:center}.intro{font-family:'Noto Serif JP',serif;font-size:14px;line-height:2;letter-spacing:.09em;margin:0 0 21px}.mode-picker{border:0;padding:0;margin:0;display:flex;gap:3px;background:#0b171c80;border-radius:5px}.mode-picker label{flex:1;position:relative;cursor:pointer}.mode-picker input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;margin:0;cursor:pointer}.mode-picker span{display:flex;gap:8px;align-items:center;justify-content:center;height:41px;font-size:12px;color:#94a4a2;border:1px solid transparent;border-radius:4px}.mode-picker svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.2}.mode-picker input:checked+span{background:#293839;color:#ede9dc;border-color:#53615a}.mode-picker input:focus-visible+span{outline:2px solid var(--gold)}.mode-hint{font-size:10px;letter-spacing:.025em;color:var(--muted);line-height:1.6;min-height:16px;margin:11px 0}.duration-row{display:flex;justify-content:center;gap:14px;margin:14px 0 18px}.duration-row button{background:transparent;color:#a5afaa;font-size:11px;letter-spacing:.05em;padding:5px 15px;border-radius:20px;border:1px solid transparent}.duration-row button.selected{border-color:#788575;color:#e9e9da}.primary{background:var(--ink);color:#243434;border:1px solid #fff4d740;border-radius:3px;min-height:54px;width:100%;display:flex;justify-content:space-between;align-items:center;padding:0 23px;letter-spacing:.12em;font-size:13px;box-shadow:0 5px 30px #050c1020}.primary>span:last-child:not(:first-child){font-size:22px;color:#596158}.home-foot{display:flex;justify-content:space-between;align-items:center;margin-top:15px;font-size:10px;color:#aab5ad;letter-spacing:.05em}.text-button{background:none;color:#b8c1b8;font-size:11px;letter-spacing:.08em;min-height:36px;padding:8px 0}.text-button span{display:inline-grid;place-items:center;border:1px solid #7b898177;border-radius:50%;height:14px;width:14px;font-size:9px;margin-left:5px}.notice{margin:4px 0 0;color:#efc291;font-size:11px;line-height:1.7}.notice:empty{display:none}.edition{position:absolute;bottom:33px;left:36px;font-size:9px;letter-spacing:.18em;color:#88968d}.edition span{padding:0 12px}
.game-top{position:absolute;top:112px;left:50%;transform:translateX(-50%);width:min(420px,calc(100% - 52px));display:flex;justify-content:space-between}.small-label{font-size:10px;letter-spacing:.15em;color:var(--muted)}.clock{margin-top:10px;font-size:39px;letter-spacing:.02em;font-weight:300;font-variant-numeric:tabular-nums}.clock small{font-size:11px;color:#afb9b0;margin-left:8px}.phase-title{text-align:right}.phase-title>span{font-family:serif;color:var(--gold);font-size:12px}.phase-title h2{font-family:'Noto Serif JP',serif;font-size:28px;letter-spacing:.16em;font-weight:400;margin:8px 0}.phase-title p{font-size:10px;letter-spacing:.06em;color:var(--muted);margin:0}.game-bottom{position:absolute;width:min(360px,calc(100% - 52px));bottom:max(36px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%)}.feeling{font-family:'Noto Serif JP',serif;letter-spacing:.055em;font-size:13px;text-align:center;margin:0 0 26px}.balance-label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.08em;color:#bcc4b9;margin-bottom:9px}.stability{height:3px;background:#67726644;border-radius:10px;overflow:hidden}.stability i{display:block;height:100%;width:100%;background:#c5cbaa;transition:background .3s}.stability.danger i{background:#ed9269}.touch-pad{height:86px;position:relative;margin:18px 0 14px;touch-action:none;user-select:none;cursor:ew-resize;border:1px solid #9fb4a21a;border-radius:8px;background:#0712163b}.pad-track{position:absolute;top:32px;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,#7c8b78aa,transparent)}.target-ring{position:absolute;top:15px;left:50%;width:36px;height:36px;border:1px solid #e9c897;border-radius:50%;transform:translateX(-50%);box-shadow:0 0 18px #f1c18e22,inset 0 0 12px #f1c18e16}.finger-dot{position:absolute;left:50%;top:28px;width:9px;height:9px;background:#f7edd5;border-radius:50%;transform:translateX(-50%);box-shadow:0 0 10px #ffe9b2;opacity:.35}.touch-pad.engaged .finger-dot{opacity:1}#pad-tip{position:absolute;bottom:12px;left:0;width:100%;text-align:center;font-size:9px;letter-spacing:.045em;color:#a0b1a7;pointer-events:none}.motion-tip{text-align:center;font-size:10px;line-height:1.8;color:var(--muted);margin:25px 0 30px}.phase-track{display:flex;justify-content:space-between;margin-top:18px;font-family:'Noto Serif JP',serif;font-size:11px;letter-spacing:.1em;color:#5f7672}.phase-track .active{color:#ead5b2}.phase-track .done{color:#a0ada1}.burn-track{height:1px;background:#9bab931f;margin-top:12px}.burn-track i{display:block;width:0;height:100%;background:#b99e77}.countdown{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);text-align:center;padding:22px 40px;background:#112226c9;border:1px solid #ddcead21;border-radius:8px;backdrop-filter:blur(10px);min-width:240px}.countdown>span{font-family:'Noto Serif JP',serif;font-size:58px;color:#f2dfba}.countdown p{white-space:nowrap;font-size:12px;color:#c9cfc0;letter-spacing:.06em}.result{display:grid;place-items:center;background:#0c181d7a;backdrop-filter:blur(6px)}.result-card{width:min(340px,calc(100% - 56px));text-align:center;margin-top:50px}.result-mark{font-size:46px;color:var(--gold);margin:25px 0 21px;font-weight:300}.result h2{font-family:'Noto Serif JP',serif;font-weight:400;font-size:26px;letter-spacing:.08em;margin:0 0 17px}.result-card>p{font-size:12px;color:#aebdad;line-height:1.8}.result-time{font-size:64px;font-weight:300;letter-spacing:.02em;margin:28px 0 5px;font-variant-numeric:tabular-nums}.result-time small{font-size:12px;color:#bcc3b1;margin-left:9px}.result-record{min-height:22px;color:var(--gold)!important;font-size:10px!important}.result-stats{display:flex;justify-content:center;margin:24px 0 32px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats div{flex:1;display:flex;flex-direction:column;gap:11px}.result-stats div+div{border-left:1px solid var(--line)}.result-stats span{font-size:10px;color:var(--muted)}.result-stats strong{font-family:'Noto Serif JP',serif;font-size:19px;font-weight:400}.result-card>.text-button{margin-top:13px}dialog{position:fixed;width:min(400px,calc(100% - 36px));max-height:calc(100svh - 40px);overflow:auto;background:#182a2d;color:var(--ink);border:1px solid #86958955;border-radius:10px;padding:32px 30px;box-shadow:0 25px 100px #0007}dialog::backdrop{background:#061216bf;backdrop-filter:blur(8px)}dialog h2{font-family:'Noto Serif JP',serif;font-size:26px;font-weight:400;line-height:1.65;letter-spacing:.08em;margin:17px 0 24px}.dialog-close{position:absolute;right:14px;top:10px;background:none;font-size:26px;color:#a9b4a7;width:40px;height:40px}dialog ol{padding-left:20px;margin-bottom:24px}dialog li{padding-left:8px;margin:0 0 18px;color:var(--gold);font-size:12px}dialog strong{color:#e8e7d7;font-weight:400;letter-spacing:.08em}dialog li p,.help-note{font-size:11px;color:#aab9b0;line-height:1.9;margin:7px 0}.help-note{margin:15px 0}#help-done{margin-top:23px;justify-content:center}#pause-dialog{text-align:center}#pause-dialog>p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:28px}#pause-dialog .primary{justify-content:center}#pause-dialog .text-button{margin-top:13px}
@media(min-width:900px){.home-bottom{width:340px;bottom:55px}.vertical-title{top:21%;left:calc(50% + 165px)}.vertical-title h1{font-size:55px}.scene-caption{right:calc(50% + 230px);top:29%}.edition{bottom:36px}.header{left:48px;right:48px;top:32px}.game-bottom{bottom:50px}.result-card{width:360px}}
@media(max-width:600px){.header{left:23px;right:19px;top:max(17px,env(safe-area-inset-top))}.brand{font-size:13px;gap:9px}.brand svg{width:22px;height:22px}.vertical-title{top:16.5%;left:auto;right:32px;gap:18px}.vertical-title h1{font-size:37px}.vertical-title p{font-size:12px;letter-spacing:.12em}.vertical-title .eyebrow{font-size:7px}.scene-caption{top:23%;left:24px;right:auto;font-size:9px;gap:14px}.tiny-line{height:30px}.home-bottom{width:calc(100% - 52px);max-width:340px;bottom:max(26px,env(safe-area-inset-bottom))}.intro{font-size:13px;margin-bottom:18px;line-height:1.9}.edition{display:none}.home-foot{margin-top:11px}.game-top{top:90px}.game-bottom{bottom:max(27px,env(safe-area-inset-bottom))}.feeling{font-size:12px}.result-card{margin-top:34px}}
@media(max-height:740px){#app{min-height:580px}.home-bottom{bottom:18px}.intro{font-size:12px;margin-bottom:13px}.duration-row{margin:10px 0 13px}.mode-hint{margin:7px 0;font-size:9px}.vertical-title{top:16%;gap:13px}.vertical-title h1{font-size:32px}.vertical-title p{font-size:11px}.vertical-title .eyebrow{font-size:7px}.home-foot{margin-top:7px}.primary{min-height:48px}.game-top{top:80px}.game-bottom{bottom:22px}.feeling{margin-bottom:18px}.touch-pad{margin:14px 0 10px;height:80px}.result-mark{margin:14px 0}.result-time{font-size:52px;margin-top:16px}.result-stats{margin:16px 0 24px;padding:14px 0}.result h2{font-size:24px}}
@media(orientation:landscape) and (max-height:580px){#app{min-height:520px}.home-bottom{left:72%;width:280px;bottom:32px}.vertical-title{left:21%;right:auto;top:22%}.scene-caption{display:none}.game-bottom{left:75%;width:280px;bottom:32px}.game-top{left:29%;width:270px;top:90px}.countdown{left:29%}.result-card{margin-top:50px}.result{position:relative;min-height:680px}.header{top:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.stability i{transition:none}}
.scene-caption{white-space:nowrap}
.scene-caption{font-family:'Noto Serif JP',serif}.caption-words{flex:none}
.round-spec{display:flex;align-items:center;justify-content:center;gap:14px;font-size:10px;letter-spacing:.12em;color:#d9c3a1;margin:20px 0 12px}.round-spec i{height:12px;width:1px;background:#c4b49666}.home .mode-hint{margin-bottom:22px}.live-score{font-size:23px;margin-top:8px;letter-spacing:.02em;font-variant-numeric:tabular-nums}.live-score small{font-size:9px;margin-left:6px;color:var(--muted)}.assist-badge{display:inline-block;color:#e7b57c;font-size:9px;margin-top:8px;padding:4px 7px;border:1px solid #e7b57c4a;border-radius:3px}.growth-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;margin:0 0 16px;color:#c4cdbb}.growth-row>span:last-child{text-align:right;white-space:nowrap}.growth-row b{font-size:17px;font-weight:400;color:#f4d7a6}.growth-row small{display:block;color:#a7b5a7;font-size:9px;margin-top:3px}#quality-label{font-size:10px;line-height:1.65;max-width:55%}#quality-label.perfect{color:#efc28b}.wind-panel{display:flex;align-items:center;gap:12px;margin:17px 0 12px;min-height:47px}.wind-panel>span:first-child{font-size:34px;font-weight:300;color:#d0bd92;width:34px;text-align:center}.wind-panel strong{font-size:12px;font-weight:400;letter-spacing:.06em}.wind-panel p{font-size:9px;color:var(--muted);margin:6px 0 0;line-height:1.5}.wind-panel.warning strong{color:#f3c38e}#target-angle{margin-left:auto;color:#d7c5a4;font-size:13px;font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.game-bottom .touch-pad{height:75px;margin:0 0 12px;cursor:default}.finger-dot{opacity:1}#app[data-control=touch] .touch-pad{cursor:ew-resize;border-color:#e7b57c44}#app[data-control=motion] .touch-pad{touch-action:auto}.game-bottom .phase-track{margin-top:14px}.result-factor{font-size:10px!important;color:var(--gold)!important;min-height:18px}.result-card .result-record{margin-top:4px}.result-time{font-size:54px}.result-stats strong{font-size:17px}.result-stats span{font-size:9px}.secondary{width:100%;min-height:48px;border:1px solid #bca57a80;background:#283b3b;border-radius:3px;font-size:12px;letter-spacing:.03em}.fallback-choice{border-top:1px solid var(--line);margin-top:25px;padding-top:16px;text-align:center}.fallback-choice>p{font-size:10px;color:var(--muted);margin:0 0 12px}.fallback-choice small{display:block;font-size:10px;line-height:1.8;color:var(--muted);margin-top:10px}#sensor-dialog>.primary{justify-content:center;font-size:12px}#sensor-dialog .help-note{margin-bottom:22px}.center-return{z-index:12;display:inline-flex;align-items:center;min-height:44px;letter-spacing:.12em}.center-return:focus-visible{outline:2px solid var(--gold)}.countdown{z-index:15}.game-top{z-index:2}
@media(max-width:600px){.center-return{display:inline-flex;left:24px;bottom:auto;top:61px;font-size:8px;min-height:36px}.game-top{top:87px}.phase-title p{max-width:155px;line-height:1.6}.result-time{font-size:46px}}
@media(max-height:740px){.game-top{top:74px}.clock{font-size:30px;margin-top:6px}.phase-title h2{font-size:23px;margin:6px 0}.phase-title p{font-size:9px}.live-score{font-size:19px;margin-top:4px}.game-bottom{bottom:19px}.growth-row{margin-bottom:10px}.wind-panel{margin:12px 0 8px;min-height:40px}.wind-panel strong{font-size:11px}.game-bottom .touch-pad{height:67px}.game-bottom #pad-tip{bottom:8px;font-size:8px}.game-bottom .phase-track{margin-top:10px}.game-bottom .burn-track{margin-top:9px}.result-card{margin-top:45px}.result-mark{font-size:30px;margin:8px 0 12px}.result h2{font-size:22px;margin-bottom:10px}.result-time{margin:10px 0 3px;font-size:40px}.result-stats{padding:12px 0;margin:12px 0 18px}.result-card>p{margin:7px 0;font-size:11px}.result-card>.text-button{margin-top:6px}.home .intro{font-size:11px}.round-spec{margin:16px 0 10px}.home .mode-hint{margin-bottom:18px}}
#center-link{font-size:11px;letter-spacing:.08em;color:#b8c1b8;min-height:44px}.result-card .game-center-return,#pause-dialog .game-center-return{display:flex;align-items:center;justify-content:center;width:max-content;max-width:100%;min-height:44px;margin:4px auto 0;color:#b8c1b8;font-size:11px;letter-spacing:.08em;text-underline-offset:4px;touch-action:manipulation}
@media(orientation:landscape) and (max-height:580px){#center-link{top:66px;bottom:auto;z-index:11}}
