:root{color:#f4f1ff;font-synthesis:none;text-rendering:optimizelegibility;--ink:#f4f1ff;--muted:#9695aa;--panel:#141420db;--line:#ffffff1c;--hot:#ff4fa3;--forge:#ff6b45;--mint:#3de1c2;--violet:#9b7dff;background:#090910;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:radial-gradient(circle at 10% 0,#9b7dff29,#0000 34rem),radial-gradient(circle at 96% 14%,#ff4fa31f,#0000 30rem),#090910;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}[hidden]{display:none!important}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,a:focus-visible,pre:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.placeholder-shell,.gate-shell{width:min(1180px,100% - 40px);margin:0 auto}.app-shell{min-height:100vh}.screen{width:min(1240px,100% - 48px);min-height:100vh;margin:0 auto}.brand-row{justify-content:space-between;align-items:center;padding:34px 0;display:flex}.wordmark{color:var(--ink);letter-spacing:-.045em;font-size:1.05rem;font-weight:900;text-decoration:none}.wordmark span{color:var(--hot)}.start-screen{flex-direction:column;display:flex}.start-grid{flex:1;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);align-items:center;gap:clamp(48px,8vw,120px);padding:58px 0 80px;display:grid}.start-copy h1{letter-spacing:-.082em;max-width:780px;margin:0;font-size:clamp(4.5rem,9vw,9.3rem);line-height:.83}.start-copy h1 span{color:var(--hot)}.start-intro{max-width:560px;color:var(--muted);margin:34px 0 0;font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.65}.start-card{border:1px solid var(--line);background:var(--panel);border-radius:22px;padding:26px;box-shadow:0 24px 90px #00000057}.challenge-received{color:var(--mint);background:#3de1c212;border:1px solid #3de1c23d;border-radius:10px;margin:0 0 18px;padding:11px 13px;font-size:.78rem;font-weight:750;line-height:1.45}.start-card>label,.result-share-controls label,.thumbnail-controls>label{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:9px;font-size:.7rem;font-weight:800;display:block}.start-card>input,.share-control input{border:1px solid var(--line);width:100%;height:58px;color:var(--ink);background:#0b0b13;border-radius:13px;padding:0 16px}.start-card>input{font-size:1.08rem}.version-warning{color:#ffd166;margin:10px 2px 0;font-size:.8rem;line-height:1.45}.rules{border-block:1px solid var(--line);gap:11px;margin:24px 0;padding:20px 0;display:grid}.rules p{color:#c7c5d6;grid-template-columns:68px 1fr;align-items:center;gap:12px;margin:0;font-size:.86rem;display:grid}.key-pair{color:var(--ink);text-align:center;background:#ffffff0d;border:1px solid #ffffff24;border-radius:7px;padding:5px 8px;font-size:.68rem;font-weight:900}.start-button{justify-content:space-between;align-items:center;width:100%;display:flex}.start-status,.copy-status{min-height:18px;color:var(--muted);margin:12px 2px 0;font-size:.78rem}.start-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:24px 0 34px;font-size:.74rem;display:flex}.start-footer a{color:var(--mint);text-decoration:none}.forge-screen{flex-direction:column;padding-bottom:34px;display:flex}.forge-header{justify-content:space-between;align-items:center;padding:28px 0 18px;display:flex}.intro-skip{min-height:44px;padding-inline:17px}.forge-stage{border:1px solid var(--line);background:radial-gradient(circle at 12% 10%,#9b7dff24,#0000 34rem),radial-gradient(circle at 90% 88%,#ff4fa31f,#0000 30rem),#0c0c15f0;border-radius:26px;flex:1;grid-template-rows:auto minmax(260px,1fr) auto auto auto;gap:20px;min-height:0;padding:clamp(24px,4vw,48px);display:grid;position:relative;overflow:hidden;box-shadow:0 26px 100px #0000006b}.forge-copy{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;display:grid}.forge-copy .eyebrow{grid-column:1/-1;margin-bottom:-12px}.forge-copy h1{letter-spacing:-.07em;min-width:0;margin:0;font-size:clamp(2.8rem,7vw,6.4rem);line-height:.88;overflow:hidden}.forge-copy h1>span{color:var(--hot);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.forge-copy h1>small{color:var(--ink);letter-spacing:-.035em;margin-top:12px;font-size:.34em;display:block}.forge-meta,.result-song-meta{gap:22px;margin:0;display:flex}.forge-meta div,.result-song-meta div{gap:4px;display:grid}.forge-meta dt,.result-song-meta dt{color:var(--muted);letter-spacing:.14em;font-size:.58rem;font-weight:900}.forge-meta dd,.result-song-meta dd{text-overflow:ellipsis;white-space:nowrap;max-width:15rem;margin:0;font-size:.82rem;font-weight:800;overflow:hidden}.forge-map-wrap{background:#0d0d17;border:1px solid #ffffff14;border-radius:16px;min-height:0;overflow:hidden}#forge-canvas,#result-map{width:100%;height:100%;display:block}.forge-process{color:#f4f1ff6b;letter-spacing:.12em;grid-template-columns:repeat(5,1fr);font-size:.6rem;font-weight:900;display:grid}.forge-process span:not(:last-child):after{content:"→";float:right;color:#f4f1ff2e}.forge-progress{background:#ffffff14;border-radius:99px;height:3px;overflow:hidden}.forge-progress span{background:linear-gradient(90deg, var(--violet), var(--mint), var(--hot));transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.forge-status{min-height:1.2em;color:var(--muted);margin:-7px 0 0;font-size:.72rem}.game-screen{max-width:900px;padding:24px 0 34px}.game-header{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:18px;display:flex}.game-kicker{color:var(--mint);letter-spacing:.15em;margin:0 0 4px;font-size:.62rem;font-weight:800}.game-header h1{letter-spacing:-.05em;text-overflow:ellipsis;white-space:nowrap;max-width:400px;margin:0;font-size:clamp(1.6rem,4vw,2.7rem);overflow:hidden}.hud{text-align:right;gap:28px;display:flex}.hud div{gap:1px;display:grid}.hud span{color:var(--muted);letter-spacing:.14em;font-size:.58rem;font-weight:900}.hud strong{font-variant-numeric:tabular-nums;font-size:clamp(1.05rem,2.6vw,1.55rem)}.game-stage{border:1px solid var(--line);background:#090910;border-radius:22px;height:min(72vh,720px);min-height:470px;position:relative;overflow:hidden;box-shadow:0 22px 90px #00000061}#game-canvas{touch-action:none;width:100%;height:100%;display:block}.judgment-feedback{min-height:1.4em;color:var(--mint);letter-spacing:-.05em;pointer-events:none;text-shadow:0 0 26px;font-size:clamp(1.7rem,5vw,3.2rem);font-weight:950;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.judgment-feedback[data-judgment=good]{color:#ffd166}.judgment-feedback[data-judgment=miss]{color:var(--forge)}.lane-labels{color:#ffffff7a;letter-spacing:.1em;pointer-events:none;text-align:center;grid-template-columns:1fr 1fr;font-size:.66rem;font-weight:900;display:grid;position:absolute;inset:auto 0 16px}.game-progress{background:#ffffff14;border-radius:99px;height:3px;margin:16px 8px 0;overflow:hidden}.game-progress span{background:linear-gradient(90deg, var(--mint), var(--hot));transform-origin:0;width:0;height:100%;display:block}.game-help{color:var(--muted);text-align:center;margin:12px 8px 0;font-size:.72rem}.result-screen{flex-direction:column;padding-bottom:34px;display:flex}.result-seed{max-width:min(50vw,440px);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font:.76rem ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.result-content{flex:1;grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr);grid-template-areas:"song performance""share share";align-content:center;gap:16px;padding:12px 0 38px;display:grid}.result-song-panel,.result-performance,.result-share-panel{border:1px solid var(--line);background:#10101bd1;border-radius:20px;box-shadow:0 20px 70px #00000047}.result-song-panel{grid-area:song;min-width:0;padding:22px}.result-song-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px;display:flex}.result-song-heading .eyebrow{margin-bottom:7px}.result-song-heading h1{letter-spacing:-.045em;margin:0;font-size:clamp(1.45rem,3.2vw,2.6rem)}#result-map{background:#0d0d17;border:1px solid #ffffff12;border-radius:13px;height:clamp(220px,31vh,300px)}.songprint-legend{color:var(--muted);letter-spacing:.09em;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:.56rem;font-weight:900;display:flex}.songprint-legend span:before{content:"";background:var(--violet);border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.songprint-legend .perfect-legend:before{background:var(--mint)}.songprint-legend .good-legend:before{background:#ffd166}.songprint-legend .miss-legend:before{background:var(--forge)}.result-performance{flex-direction:column;grid-area:performance;justify-content:center;min-width:0;padding:22px;display:flex}.result-grade-row{align-items:flex-end;gap:18px;margin-bottom:26px;display:flex}.result-grade-block{line-height:.75;display:grid}.result-grade-block>span{color:var(--muted);letter-spacing:.16em;font-size:.65rem;font-weight:900}.result-grade-block>strong{color:var(--hot);letter-spacing:-.08em;font-size:clamp(5.8rem,10vw,8.4rem)}.result-grade-gap{border:1px solid var(--line);color:var(--ink);white-space:nowrap;background:#ffffff0a;border-radius:999px;margin:0 0 4px;padding:7px 10px;font-size:.72rem;font-weight:800}.result-score-label{color:var(--muted);letter-spacing:.14em;font-size:.58rem;font-weight:900}.result-performance>#result-score{letter-spacing:-.07em;font-variant-numeric:tabular-nums;font-size:clamp(2.35rem,4.7vw,4rem);line-height:.92;display:block}.result-performance>p:not(.eyebrow){color:var(--muted);margin:9px 0 20px;font-size:.75rem}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:0;display:grid}.stat{border:1px solid var(--line);background:#ffffff06;border-radius:14px;gap:8px;padding:13px 11px;display:grid}.stat span{color:var(--muted);letter-spacing:.1em;font-size:.6rem;font-weight:900}.stat strong{font-variant-numeric:tabular-nums;font-size:1.5rem}.stat.perfect strong{color:var(--mint)}.stat.good strong{color:#ffd166}.stat.miss strong{color:var(--forge)}.arrangement-result{background:#3de1c20e;border:1px solid #3de1c247;border-radius:14px;gap:9px;margin-top:14px;padding:12px;display:grid}.arrangement-result>p{color:var(--mint);letter-spacing:.1em;margin:0;font-size:.55rem;font-weight:900}.arrangement-result>div{grid-template-columns:1fr 1fr;gap:10px;display:grid}.arrangement-result span{color:var(--muted);letter-spacing:.06em;gap:3px;font-size:.54rem;font-weight:800;display:grid}.arrangement-result strong{color:var(--ink);letter-spacing:-.02em;font-size:1rem}.result-share-panel{grid-area:share;grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr);align-items:center;gap:22px;padding:18px 22px;display:grid}.challenge-copy{color:var(--ink);margin:0;font-size:clamp(.96rem,1.65vw,1.15rem);font-weight:750;line-height:1.45}.result-share-controls{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.share-control{grid-template-columns:minmax(0,1fr) auto;gap:9px;display:grid}.share-control input{min-width:0;font:.76rem ui-monospace,SFMono-Regular,Menlo,monospace}.result-actions{gap:9px;display:flex}.result-actions button{white-space:nowrap}.thumbnail-shell{width:min(1240px,100% - 48px);margin:0 auto;padding:42px 0 64px}.thumbnail-header{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:26px;display:flex}.thumbnail-header h1{letter-spacing:-.07em;margin:0;font-size:clamp(3rem,7vw,6.4rem)}.thumbnail-header p:not(.eyebrow),.thumbnail-note{max-width:620px;color:var(--muted);line-height:1.55}.thumbnail-controls,.thumbnail-preview{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:22px;box-shadow:0 20px 70px #00000047}.thumbnail-control-row{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;display:grid}.thumbnail-control-row input{border:1px solid var(--line);min-width:0;height:54px;color:var(--ink);background:#0b0b13;border-radius:13px;padding:0 16px}.thumbnail-status{min-height:1.2em;color:var(--mint);margin:12px 2px 0;font-size:.78rem}.thumbnail-preview{margin-top:18px}.thumbnail-preview-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.thumbnail-preview-heading .eyebrow{margin-bottom:5px}.thumbnail-preview-heading h2{letter-spacing:-.04em;margin:0;font-size:1.6rem}.thumbnail-preview-heading>span{color:var(--muted);font-size:.68rem;font-weight:800}#thumbnail-canvas{background:#090910;border:1px solid #ffffff17;border-radius:14px;width:100%;height:auto;display:block}.thumbnail-note{margin:18px 4px 0;font-size:.78rem}.placeholder-shell{place-content:center;justify-items:start;min-height:100vh;display:grid}.placeholder-shell h1{letter-spacing:-.065em;margin:0;font-size:clamp(2.8rem,8vw,6.5rem)}.placeholder-shell p:not(.eyebrow){color:var(--muted);font-size:1.05rem}.gate-shell{padding:56px 0 90px}.gate-header{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:46px;display:flex}.eyebrow{color:var(--mint);letter-spacing:.18em;margin:0 0 14px;font-size:.72rem;font-weight:800}.gate-header h1{letter-spacing:-.075em;text-transform:lowercase;margin:0;font-size:clamp(4.4rem,11vw,9.5rem);line-height:.78}.gate-header h1 span{color:#0000;-webkit-text-stroke:1px #f4f1ff80}.engine-chip{border:1px solid var(--line);text-align:right;background:#ffffff09;border-radius:14px;min-width:116px;padding:14px 16px}.engine-chip span{color:var(--muted);letter-spacing:.14em;font-size:.62rem;font-weight:800;display:block}.engine-chip strong{font-variant-numeric:tabular-nums;margin-top:3px;display:block}.gate-control-panel,.composition-panel,.event-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:22px;box-shadow:0 18px 70px #00000047}.gate-control-panel{margin-bottom:18px;padding:24px}.gate-control-panel label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;font-size:.72rem;font-weight:800;display:block}.seed-control{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;display:grid}.seed-control input{border:1px solid var(--line);min-width:0;height:58px;color:var(--ink);background:#0c0c15;border-radius:13px;padding:0 18px;font-size:1.08rem}.primary-button,.secondary-button,.preset-button{cursor:pointer;border:0;transition:transform .15s,filter .15s,background .15s}.primary-button,.secondary-button{border-radius:13px;min-height:54px;padding:0 22px;font-weight:800}.primary-button{color:#130b10;background:linear-gradient(135deg, var(--forge), var(--hot))}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#ffffff0d}.button-link{align-items:center;margin-top:16px;text-decoration:none;display:inline-flex}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.preset-button:hover{filter:brightness(1.08);transform:translateY(-2px)}button:disabled{cursor:not-allowed;opacity:.45}.preset-list{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.preset-button{border:1px solid var(--line);color:#c7c5d6;background:#ffffff06;border-radius:999px;padding:8px 12px;font-size:.78rem}.gate-status{min-height:20px;color:var(--muted);margin:15px 2px 0;font-size:.88rem}.playback-log{border:1px solid var(--line);background:var(--line);border-radius:13px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:16px;display:grid;overflow:hidden}.playback-log p{background:#0c0c15;min-width:0;margin:0;padding:12px 14px}.playback-log span,.playback-log strong{display:block}.playback-log span{color:var(--muted);letter-spacing:.12em;margin-bottom:5px;font-size:.58rem;font-weight:800}.playback-log strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font:700 .73rem/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow:hidden}.composition-panel,.event-panel{margin-top:18px;padding:24px}.panel-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.panel-heading.compact{align-items:center;margin-bottom:16px}.panel-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(1.5rem,4vw,2.8rem)}.composition-meta{font-variant-numeric:tabular-nums;grid-template-columns:auto auto;gap:4px 16px;margin:0;display:grid}.composition-meta dt{color:var(--muted);letter-spacing:.1em;font-size:.65rem;font-weight:800}.composition-meta dd{text-align:right;margin:0;font-size:.78rem;font-weight:700}#event-canvas{border:1px solid #ffffff12;border-radius:14px;width:100%;height:250px;display:block}.event-count{color:var(--hot);background:#ff4fa317;border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:800}#event-log{color:#aaa8bd;white-space:pre;background:#0b0b13;border:1px solid #ffffff12;border-radius:14px;max-height:390px;margin:0;padding:18px;font:.72rem/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow:auto}@media (width<=720px){.screen{width:min(100% - 24px,1240px)}.brand-row{padding:22px 0}.start-grid,.result-content{grid-template-columns:1fr;gap:38px;padding:30px 0 54px}.start-copy h1{font-size:clamp(3.9rem,20vw,7rem)}.start-intro{margin-top:24px}.start-card{padding:18px}.start-footer{gap:20px}.forge-screen{width:100%;padding:0 12px 16px}.forge-header{padding:16px 4px 12px}.forge-stage{border-radius:18px;grid-template-rows:auto minmax(290px,1fr) auto auto auto;gap:16px;padding:20px 16px}.forge-copy{grid-template-columns:1fr;gap:16px}.forge-copy h1{font-size:clamp(2.8rem,14vw,5rem)}.forge-meta{gap:16px}.forge-process{letter-spacing:.06em;font-size:.48rem}.game-screen{width:100%;padding:14px 12px 20px}.game-header{align-items:flex-start;margin-inline:4px}.hud{gap:14px}.game-stage{border-radius:16px;height:calc(100svh - 150px);min-height:430px}.result-content{grid-template-areas:"song""performance""share";gap:12px;padding-top:0}.result-song-heading{flex-direction:column;align-items:flex-start}.result-song-meta{justify-content:space-between;width:100%}#result-map{height:230px}.result-performance{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:22px;display:grid}.result-performance>.eyebrow{grid-column:1/-1}.result-grade-row{grid-row:2/5;margin:0}.result-grade-block>strong{font-size:clamp(6.4rem,31vw,9rem)}.result-performance>#result-score{font-size:clamp(3rem,16vw,5rem)}.result-performance .stat-grid{grid-column:1/-1;margin-top:18px}.result-performance .arrangement-result{grid-column:1/-1}.result-share-panel,.result-share-controls{grid-template-columns:1fr}.result-actions{grid-template-columns:1fr 1fr;display:grid}.thumbnail-shell{width:min(100% - 24px,1240px);padding-top:24px}.thumbnail-header,.thumbnail-preview-heading{flex-direction:column;align-items:flex-start}.thumbnail-control-row{grid-template-columns:1fr 1fr}.thumbnail-control-row input{grid-column:1/-1}.placeholder-shell,.gate-shell{width:min(100% - 24px,1180px)}.gate-shell{padding-top:28px}.gate-header{margin-bottom:30px}.gate-header h1{font-size:clamp(3.7rem,21vw,7rem)}.engine-chip{display:none}.seed-control{grid-template-columns:1fr 1fr}.seed-control input{grid-column:1/-1}.panel-heading{flex-direction:column;align-items:flex-start}.panel-heading.compact{flex-direction:row;align-items:center}.composition-meta{grid-template-columns:auto 1fr;width:100%}.playback-log{grid-template-columns:1fr 1fr}}@media (width>=721px) and (height<=800px){.forge-screen{height:100svh;min-height:0;padding-bottom:14px}.forge-header{padding:14px 0 10px}.forge-stage{grid-template-rows:minmax(0,1fr) auto auto auto;grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr);gap:12px 20px;padding:20px 24px}.forge-copy{flex-direction:column;grid-area:1/1;align-self:center;align-items:stretch;gap:16px;min-width:0;display:flex}.forge-copy .eyebrow{margin:0}.forge-copy h1{font-size:clamp(2.7rem,5vw,4.7rem)}.forge-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.forge-map-wrap{grid-area:1/2;min-height:0}.forge-process,.forge-progress,.forge-status{grid-column:1/-1}.forge-process{grid-row:2}.forge-progress{grid-row:3}.forge-status{grid-row:4}}@media (width<=430px){.start-copy h1{font-size:3.7rem}.start-footer{flex-direction:column;align-items:flex-start}.game-header h1{max-width:44vw;font-size:1.35rem}.hud strong{font-size:.98rem}.stat{padding:13px 10px}.stat strong{font-size:1.55rem}.share-control,.result-actions,.thumbnail-control-row{grid-template-columns:1fr}.result-actions{display:grid}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
