/* 《节奏提瓦特》站点 UI：绘本旅程 × 稳定信息层。 */
:root{--ink:#3b4652;--ink-soft:#68727b;--navy:#39465b;--navy-dark:#273342;--paper:#f7f3e8;--paper-deep:#ebe1c9;--gold:#c6a15c;--gold-light:#ead9a9;--teal:#4e858b;--coral:#c87561;--line:#c2b184;--shell:min(1240px,calc(100vw - 40px));--shadow:0 18px 42px rgba(39,51,66,0.14118);--shadow:0 18px 42px #27334224;color:var(--ink);background:#e7ede8}
body[data-page]{min-width:320px;min-height:100vh;min-height:100svh;margin:0;overflow-x:hidden;color:var(--ink);background-color:#e8eee9;background-image:radial-gradient(circle at 20px 20px,rgba(255,255,255,0.6) 0,rgba(255,255,255,0.6) 1px,transparent 1.5px),linear-gradient(115deg,#dceae5,#f1eddf 72%);background-image:radial-gradient(circle at 20px 20px,rgba(255,255,255,0.6) 0 1px,transparent 1.5px),linear-gradient(115deg,#dceae5,#f1eddf 72%);background-image:radial-gradient(circle at 20px 20px,#fff9 0 1px,transparent 1.5px),linear-gradient(115deg,#dceae5,#f1eddf 72%);background-size:42px 42px,auto}
.ui-icon{width:1.35em;height:1.35em;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}button,a{transition:color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease}
.site-header{position:sticky;z-index:80;top:0;min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px max(20px,calc((100vw - 1240px)/2));color:#fff8e7;background:rgba(52,66,85,0.94902);background:#344255f2;border-bottom:2px solid #d8bd79;box-shadow:0 6px 20px rgba(38,51,68,0.18824);box-shadow:0 6px 20px #26334430;backdrop-filter:blur(14px)}
.brand{min-height:44px;display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:700 17px/1 Georgia,"Songti SC",serif;letter-spacing:.08em}.brand>span{width:34px;height:34px;display:grid;align-items:center;justify-items:center;place-items:center;color:#f1d992;border:1px solid #e6ce8a;transform:rotate(45deg)}.brand small{color:#dbe0df;font:600 9px/1.2 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;letter-spacing:.18em}
.site-nav,.tool-row,.site-footer>div,.card-actions,.result-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.site-nav a,.site-nav button,.tool-row a,.tool-row button,.page-heading>a,.site-footer button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;color:inherit;background:transparent;border:1px solid transparent;text-decoration:none}.site-nav :is(a,button),.tool-row :is(a,button),.page-heading>a,.site-footer button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;color:inherit;background:transparent;border:1px solid transparent;text-decoration:none}.site-nav a:hover,.site-nav button:hover{color:#fff;border-color:rgba(255,255,255,0.33333);border-color:#ffffff55;background:rgba(255,255,255,0.07059);background:#ffffff12}.site-nav :is(a,button):hover{color:#fff;border-color:rgba(255,255,255,0.33333);border-color:#ffffff55;background:rgba(255,255,255,0.07059);background:#ffffff12}
.site-main{width:var(--shell);min-height:calc(100vh - 142px);min-height:calc(100svh - 142px);margin:0 auto;padding:max(24px, min(4vw, 52px)) 0 66px;padding:clamp(24px,4vw,52px) 0 66px}.site-main .eyebrow,#site-dialog .eyebrow{margin:0;color:#60787a;font:700 10px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;letter-spacing:.18em}.site-main>:not(.scoped-game) h1,.site-main>:not(.scoped-game) h2,.site-main>:not(.scoped-game) h3,.site-main>h1,.site-main>h2,.site-main>h3,#site-dialog h2{color:var(--ink);font-family:Georgia,"Songti SC","SimSun",serif}.site-main>:not(.scoped-game) :is(h1,h2,h3),.site-main>:is(h1,h2,h3),#site-dialog h2{color:var(--ink);font-family:Georgia,"Songti SC","SimSun",serif}.site-main>:not(.scoped-game) .muted,#site-dialog .muted{color:var(--ink-soft)}
.panel-card,.song-card,.region-song-panel,.archive-content,.result-page{position:relative;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.panel-card::after,.region-song-panel::after,.result-page::after{content:"";position:absolute;pointer-events:none;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(201,185,132,0.43922);border:1px solid #c9b98470}

/* 首页：真实云海与角色图层承载氛围，文字仍由 DOM 渲染。 */
.home-grid{min-height:min(720px,calc(100vh - 118px));min-height:min(720px,calc(100svh - 118px));display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.58fr);grid-gap:24px;gap:24px;align-items:stretch}.hero{position:relative;min-height:610px;overflow:hidden;isolation:isolate;border:1px solid #bda876;box-shadow:var(--shadow);background:#8bcfe4}.hero-art{position:absolute;z-index:-3;top:0;right:0;bottom:0;left:0;margin:0}.hero-art img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.hero::before{content:"";position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(247,242,231,0.96078) 0,rgba(247,242,231,0.96078) 42%,rgba(247,242,231,0.72157) 56%,transparent 78%);background:linear-gradient(90deg,rgba(247,242,231,0.96078) 0 42%,rgba(247,242,231,0.72157) 56%,transparent 78%);background:linear-gradient(90deg,#f7f2e7f5 0 42%,#f7f2e7b8 56%,transparent 78%)}.hero::after{content:"";position:absolute;z-index:-1;left:-8%;bottom:-28px;width:70%;height:170px;background:rgba(255,253,242,0.87059);background:#fffdf2de;border-radius:50%;box-shadow:290px 20px 0 rgba(255,253,242,0.72157),520px -12px 0 rgba(255,253,242,0.62745);box-shadow:290px 20px 0 #fffdf2b8,520px -12px 0 #fffdf2a0}.hero-copy-panel{position:relative;z-index:2;width:min(64%,650px);min-height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:max(34px, min(5vw, 66px));padding:clamp(34px,5vw,66px)}.hero h1{margin:15px 0 20px;font-size:max(46px, min(5vw, 66px));font-size:clamp(46px,5vw,66px);line-height:1.04;letter-spacing:-.055em;text-shadow:0 2px #fff;white-space:nowrap}.hero h1 span{color:var(--coral)}.hero-copy{margin:0 0 25px;color:#4d6269;font-size:max(15px, min(1.5vw, 19px));font-size:clamp(15px,1.5vw,19px);line-height:1.9}
.hero-start,.song-card .primary,.archive-content .primary,.result-page .primary,#site-dialog .primary{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:11px 22px;color:#fff9e8;background:var(--navy);border:1px solid #d7bf7a;text-decoration:none;font-weight:700;box-shadow:0 7px 18px rgba(39,51,66,0.17255);box-shadow:0 7px 18px #2733422c}.hero-start:hover,.song-card .primary:hover,.archive-content .primary:hover,.result-page .primary:hover,#site-dialog .primary:hover{transform:translateY(-2px);background:var(--navy-dark)}.hero-copy-panel>.muted{margin:14px 0 0;font-size:12px}.hero-companion{position:absolute;z-index:1;right:2%;bottom:-6%;width:min(39%,390px);height:auto;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(53,81,99,0.21961));filter:drop-shadow(0 12px 14px #35516338)}
.leaderboard{padding:28px 26px;overflow:hidden;background-color:var(--paper);background-image:linear-gradient(90deg,transparent 0,transparent 96%,rgba(220,201,149,0.33333) 96%),linear-gradient(rgba(255,255,255,0.53333),transparent 32%);background-image:linear-gradient(90deg,transparent 0 96%,rgba(220,201,149,0.33333) 96%),linear-gradient(rgba(255,255,255,0.53333),transparent 32%);background-image:linear-gradient(90deg,transparent 0 96%,#dcc99555 96%),linear-gradient(#fff8,transparent 32%)}.leaderboard::before{content:"";position:absolute;top:12px;right:12px;width:74px;height:74px;border:2px solid rgba(213,184,109,0.33333);border:2px solid #d5b86d55;transform:rotate(45deg)}.leaderboard h2{margin:5px 0 13px;font-size:30px}.board-tabs{display:flex;align-items:center;gap:12px;padding:8px 0 12px;border-bottom:1px solid #c8b77f}.board-tabs b{color:var(--navy)}.board-tabs span,.leaderboard>.muted{color:#7a817f;font-size:11px}.record-row{min-height:58px;display:flex;justify-content:space-between;gap:14px;padding:11px 2px;color:inherit;border-bottom:1px solid #d5c8a7;text-decoration:none}.record-row span,.record-row strong{display:flex;flex-direction:column}.record-row strong{color:#9d633c;text-align:right}.record-row small{margin-top:3px;color:#7d8583;font-size:10px;font-weight:500}.leaderboard>button{width:100%;margin-top:14px;color:var(--navy);background:#e8ede7;border:1px solid #a8b3a6}
.empty-state{padding:28px 12px;color:#6e7979;text-align:center;line-height:1.8}.empty-mark{width:48px;height:48px;display:grid;align-items:center;justify-items:center;place-items:center;margin:0 auto 8px;color:var(--gold);border:1px solid #cfb36e;transform:rotate(45deg)}.empty-mark .ui-icon{transform:rotate(-45deg)}.empty-state button{min-height:44px;padding:8px 15px;color:var(--navy);background:transparent;border:1px solid #a99a75}
.home-secondary{display:grid;grid-template-columns:.7fr 1.3fr;grid-gap:18px;gap:18px;margin-top:18px}.home-secondary>*{min-height:145px;padding:24px 27px}.home-secondary>a{color:inherit;text-decoration:none}.feature-mark{float:right;width:48px;height:48px;display:grid;align-items:center;justify-items:center;place-items:center;color:var(--gold);border:1px solid #c8aa68}.home-secondary h2{margin:2px 0 7px}.home-secondary p{color:var(--ink-soft)}.home-secondary button{color:var(--navy);background:transparent;border:1px solid #aa9b76}

/* 公共页头与曲库工具 */
.page-heading{min-height:125px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px;padding:0 4px 18px;border-bottom:1px solid #a99974}.page-heading h1{margin:4px 0;font-size:max(40px, min(5vw, 64px));font-size:clamp(40px,5vw,64px);line-height:1}.page-heading p:last-child{margin:0;color:var(--ink-soft)}.page-heading>a{flex:0 0 auto;color:var(--navy);border-color:#9f9273}.library-tools{position:sticky;z-index:30;top:80px;display:grid;grid-template-columns:minmax(260px,1fr) auto;grid-gap:15px;gap:15px;align-items:end;margin-bottom:18px;padding:12px 14px;overflow:hidden;background:rgba(247,242,233,0.93333);background:#f7f2e9ee;border:1px solid #b8aa87;box-shadow:0 7px 18px rgba(39,51,66,0.09412);box-shadow:0 7px 18px #27334218;backdrop-filter:blur(12px)}.search-label{min-width:0;display:grid;grid-gap:5px;gap:5px;color:#637170;font-size:11px}.search-label input{width:100%;min-height:46px;padding:8px 13px;color:var(--ink);background:#fffdf7;border:1px solid #a99b78}.filter-tabs,.archive-tabs{width:100%;min-width:0;max-width:100%;display:flex;gap:5px;overflow-x:auto;padding:3px;scrollbar-width:thin}.filter-tabs button,.archive-tabs button{flex:0 0 auto;min-height:44px;padding:8px 12px;color:#596766;background:transparent;border:1px solid transparent}.filter-tabs button[aria-pressed=true],.archive-tabs button[aria-pressed=true]{color:#fff9e8;background:var(--navy);border-color:#d1b874}
.library-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:22px;gap:22px;align-items:start}.library-grid.map-layout{grid-template-columns:minmax(0,1fr)}.library-grid>.leaderboard{position:sticky;top:166px}.library-main>h2{display:flex;align-items:baseline;gap:9px;margin:0 0 16px;font-size:31px}.library-main>h2 small{color:#6f7b79;font:500 13px/1 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif}

/* 地图与稳定歌曲面板 */
.map-explorer{position:relative;display:grid;grid-template-columns:minmax(430px,1fr) 306px;grid-gap:16px;gap:16px;align-items:start}.map-side{position:sticky;top:166px;display:grid;grid-gap:14px;gap:14px;max-height:calc(100vh - 180px);max-height:calc(100svh - 180px);overflow:auto}.map-side>.leaderboard{box-shadow:none}.journey-map{position:relative;isolation:isolate;min-height:1940px;overflow:hidden;border:1px solid #9e906f;background:#a8cfb0;box-shadow:var(--shadow)}
.map-region{position:relative;z-index:3;min-height:172px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:10px 6%}.map-region:nth-of-type(odd) .region-node{grid-column:1;justify-self:start}.map-region:nth-of-type(even) .region-node{grid-column:2;justify-self:end}.region-number{position:absolute;left:50%;top:18px;color:rgba(255,251,226,0.65882);color:#fffbe2a8;font:700 10px/1 Georgia,serif;letter-spacing:.14em;transform:translateX(-50%)}.region-node{position:relative;width:148px;min-height:116px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:4px;color:#4a5456;text-align:center;background:transparent;border:0;box-shadow:none}.region-node::after{content:"";position:absolute;z-index:-1;top:5px;left:50%;width:72px;height:72px;background:rgba(52,76,89,0.87451);background:#344c59df;border:1px solid #d5b969;box-shadow:0 7px 18px rgba(38,56,66,0.2902),inset 0 0 0 4px rgba(255,255,255,0.13333);box-shadow:0 7px 18px #2638424a,inset 0 0 0 4px #fff2;transform:translateX(-50%) rotate(45deg)}.region-node:hover{transform:translateY(-3px)}.region-node.selected::after{background:#5c493a;box-shadow:0 0 0 3px rgba(245,221,145,0.66667),0 9px 22px rgba(38,56,66,0.45882);box-shadow:0 0 0 3px #f5dd91aa,0 9px 22px #26384275}.region-emblem{flex:0 0 72px;width:72px;height:72px;display:grid;align-items:center;justify-items:center;place-items:center;padding:5px;background:transparent;border:0}.region-emblem img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(19,34,42,0.53333));filter:drop-shadow(0 2px 2px #13222a88)}.region-node-copy{min-width:122px;display:flex;flex-direction:column;gap:3px;padding:7px 10px 6px;background:rgba(251,245,228,0.92941);background:#fbf5e4ed;border:1px solid #9e8960;box-shadow:0 5px 12px rgba(38,56,66,0.15686);box-shadow:0 5px 12px #26384228}.region-node.selected .region-node-copy{color:#fff9e8;background:rgba(60,83,97,0.94902);background:#3c5361f2;border-color:#e7c972}.region-node strong{font:700 18px/1.15 Georgia,"Songti SC",serif}.region-node small{color:inherit;opacity:.72;font-size:9px}.zone-underground .region-node-copy,.zone-stars .region-node-copy{color:#ede8d9;background:rgba(40,48,61,0.9098);background:#28303de8;border-color:#8b8797}.zone-stars .region-node.selected .region-node-copy{background:#343758}
.region-song-panel{position:relative;z-index:12;max-height:56vh;max-height:56svh;overflow:auto;padding:26px 24px;background-color:#f2f0e7;background-image:url('../assets/ui/panel-portrait-blue.webp');background-size:100% 100%;background-repeat:no-repeat}.region-song-panel.is-empty{min-height:300px;display:grid;align-items:center;justify-items:center;place-items:center}.panel-prompt{padding:20px 8px;text-align:center}.panel-prompt-icon{width:48px;height:48px;margin:0 auto 13px;color:var(--gold)}.panel-prompt h2{margin:6px 0 10px;font-size:26px}.panel-prompt p:last-child{color:var(--ink-soft);font-size:12px;line-height:1.8}.sheet-grab{display:none}.region-panel-heading{position:relative;display:grid;grid-template-columns:58px 1fr 44px;grid-gap:10px;gap:10px;align-items:center;padding-bottom:20px}.region-panel-heading::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:url('../assets/ui/paper-divider.webp') center/100% 14px no-repeat}.region-panel-heading h2{margin:3px 0 0;font-size:24px}.region-panel-emblem{width:58px;height:58px;display:grid;align-items:center;justify-items:center;place-items:center;padding:6px;background:#3f4d5d;border:1px solid #cba95a}.region-panel-emblem img{width:100%;height:100%;object-fit:contain}.region-panel-close{width:44px;min-height:44px;padding:0;color:#67716f;background:transparent;border:1px solid #aaa07e;font-size:24px}.region-panel-body{padding-top:14px}.region-panel-body>.song-card{grid-template-columns:1fr;gap:10px;padding:11px;box-shadow:none}.region-panel-body .song-cover{min-height:118px}.region-panel-body .song-details h3{font-size:19px}.map-sheet-scrim{display:none}.map-footnote{margin:12px 4px 0;color:#687675;font-size:11px;text-align:center}

/* 歌曲卡 */
.song-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.song-card{min-width:0;display:grid;grid-template-columns:112px minmax(0,1fr);grid-gap:15px;gap:15px;padding:14px;overflow:hidden}.song-card.coming{filter:saturate(.55)}.song-cover{position:relative;min-height:116px;display:grid;align-items:center;justify-items:center;place-items:center;overflow:hidden;color:#f8e2a5;background:#506f77;border:1px solid #809798}.song-cover::before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(255,245,201,0.40392);border:1px solid #fff5c967}.song-cover>span{position:relative}.song-cover .ui-icon{width:38px;height:38px}.song-cover>img{position:relative;width:94%;height:85%;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(49,97,115,0.26667));filter:drop-shadow(0 5px 7px #31617344)}.song-cover small{position:absolute;z-index:2;left:7px;right:7px;bottom:5px;padding:2px;color:#fff;background:rgba(51,73,90,0.65882);background:#33495aa8;font-size:9px;text-align:center;letter-spacing:.08em}.cloud-cover{background-image:url('../assets/ui/cloud-stage.webp');background-size:cover;background-position:center}.song-details{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.song-details h3{max-width:100%;margin:4px 0;overflow:hidden;font-size:22px;text-overflow:ellipsis;white-space:nowrap}.song-details p{margin:0 0 7px;color:#5f6d6e}.song-details>small{color:#7d8582}.card-actions{width:100%;margin-top:auto;padding-top:10px}.card-actions .primary{flex:1 1 auto;min-height:44px;padding:8px 11px}.card-actions>button:not(.favorite){flex:1 1 auto;border:1px solid #aaa081;background:#ece8dc}.favorite{flex:0 0 44px;width:44px;min-height:44px;display:grid;align-items:center;justify-items:center;place-items:center;padding:0;color:#b87649;background:#fffaf0;border:1px solid #b9a56f}.favorite .ui-icon{width:23px;height:23px}.favorite[aria-pressed=true] .ui-icon{fill:#c98357}

/* 图鉴、结算与弹窗 */
.archive-tabs{margin:-5px 0 18px;padding:9px;background:rgba(246,240,228,0.85098);background:#f6f0e4d9;border:1px solid #b6a681}.archive-content{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 22px;text-align:center}.archive-symbol{width:98px;height:98px;display:grid;align-items:center;justify-items:center;place-items:center;color:var(--gold);border:2px solid #c9aa63;transform:rotate(45deg)}.archive-symbol .ui-icon{width:48px;height:48px;transform:rotate(-45deg)}.archive-content h2{margin:18px 0 5px;font-size:36px}.archive-content p{max-width:520px;color:var(--ink-soft)}.archive-content a,.archive-content button{min-width:170px;margin-top:9px}.archive-content :is(a,button){min-width:170px;margin-top:9px}.archive-content>button{color:var(--navy);background:transparent;border:1px solid #9e9274}
body[data-page=game] .site-header,body[data-page=game] .site-footer{display:none}body[data-page=game] .site-main{width:min(100%,980px);min-height:100vh;min-height:100svh;padding:8px 10px 14px}body[data-page=game] .game-heading{min-height:50px;align-items:center;margin:0 0 5px;padding:0 0 5px}body[data-page=game] .game-heading>div:first-child{display:block}body[data-page=game] .game-heading .eyebrow{display:none}body[data-page=game] .game-heading h1{margin:0;font:700 15px/1.2 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;letter-spacing:0}body[data-page=game] .game-heading .tool-row{justify-content:flex-end}#game-root.scoped-game{width:min(720px,100%);margin:0 auto}
.result-page{max-width:760px;margin:3vh auto;padding:max(28px, min(5vw, 54px));padding:clamp(28px,5vw,54px);overflow:hidden;text-align:center}.result-page h1{margin:8px 0;font-size:max(30px, min(5vw, 47px));font-size:clamp(30px,5vw,47px)}.result-accuracy{display:block;margin:20px 0 0;color:var(--navy);font:700 max(66px, min(11vw, 104px))/.9 Georgia,serif;font:700 clamp(66px,11vw,104px)/.9 Georgia,serif;letter-spacing:-.07em}.result-accuracy small{margin-left:4px;font-size:.28em;letter-spacing:0}.result-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:7px;gap:7px;margin:24px 0}.result-stat-grid>div{padding:11px 7px;background:#e9ece4;border:1px solid #c3bea2}.result-stat-grid span,.result-stat-grid strong{display:block}.result-stat-grid span{color:#6d7775;font-size:10px}.result-stat-grid strong{margin-top:3px;color:#9b633e;font:700 20px/1 Georgia,serif}.result-actions{justify-content:center}.result-actions>a,.result-actions>button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;color:var(--navy);background:transparent;border:1px solid #a49a7b;text-decoration:none}.result-actions>:is(a,button){min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;color:var(--navy);background:transparent;border:1px solid #a49a7b;text-decoration:none}.result-actions>.primary{color:#fff9e8}
#site-dialog{width:min(620px,calc(100vw - 28px));max-height:min(82vh,760px);max-height:min(82svh,760px);overflow:auto;padding:max(24px, min(5vw, 40px));padding:clamp(24px,5vw,40px);color:var(--ink);background:var(--paper);border:1px solid #ad9b70;box-shadow:0 25px 80px rgba(24,35,49,0.50196),inset 0 0 0 7px rgba(255,255,255,0.46667);box-shadow:0 25px 80px #18233180,inset 0 0 0 7px #fff7}#site-dialog::backdrop{background:rgba(32,45,58,0.67059);background:#202d3aab;backdrop-filter:blur(6px)}#site-dialog h2{margin:0 34px 15px 0;font-size:31px}#site-dialog p{line-height:1.8}.dialog-close{position:absolute;top:13px;right:13px;width:44px;min-height:44px;padding:0;color:#5c6868;background:transparent;border:1px solid #a89d7c;font-size:24px}#site-dialog form{display:grid;grid-gap:17px;gap:17px}#site-dialog label{display:grid;grid-gap:7px;gap:7px;color:#596967}#site-dialog input,#site-dialog select{width:100%;min-height:44px;padding:8px 10px;color:var(--ink);background:#fffdf8;border:1px solid #a99b78}#site-dialog :is(input,select){width:100%;min-height:44px;padding:8px 10px;color:var(--ink);background:#fffdf8;border:1px solid #a99b78}#site-dialog input[type=range]{padding:0;accent-color:var(--navy)}#site-dialog .leaderboard{padding:17px;box-shadow:none}
.status-toast{position:fixed;z-index:200;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));max-width:min(90vw,620px);min-height:0;padding:0;color:#fff9e8;background:rgba(52,66,85,0.94902);background:#344255f2;box-shadow:0 10px 25px rgba(32,45,58,0.3098);box-shadow:0 10px 25px #202d3a4f;text-align:center;transform:translateX(-50%)}.status-toast:not(:empty){min-height:44px;padding:11px 18px}.site-footer{width:var(--shell);min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 auto;padding:13px 0 calc(13px + env(safe-area-inset-bottom));color:#60706d;border-top:1px solid #a7a78f;font-size:10px}.site-footer button{color:inherit}.site-footer small{padding:5px 8px;color:#405a5d;background:#d7e2d7}
@keyframes sheet-in{from{opacity:0;transform:translateY(28px)}}
@media(max-width:1180px) and (min-width:981px){.library-grid:not(.map-layout){grid-template-columns:minmax(0,1fr) 285px}.map-explorer{grid-template-columns:minmax(390px,1fr) 270px}.region-song-panel{padding:18px}}
@media(max-width:980px){:root{--shell:min(100% - 28px,780px)}.home-grid{min-height:auto;grid-template-columns:1fr}.hero{min-height:560px}.home-grid>.leaderboard{width:100%}.library-grid{grid-template-columns:1fr}.library-grid>.leaderboard{position:static}.map-explorer{display:block}.map-side{position:static;display:block;max-height:none;overflow:visible}.map-side>.leaderboard{margin-top:16px}.region-song-panel{position:fixed;z-index:120;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));top:auto;bottom:0;max-height:min(68vh,610px);max-height:min(68svh,610px);padding:12px 16px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:sheet-in .24s ease-out}.region-song-panel.is-empty{display:none}.sheet-grab{width:56px;height:5px;display:block;margin:0 auto 10px;background:#9a9688;border-radius:6px}.map-sheet-scrim{position:fixed;z-index:110;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;min-height:0;padding:0;background:rgba(39,51,66,0.45882);background:#27334275;border:0;backdrop-filter:blur(2px)}.region-panel-body>.song-card{grid-template-columns:100px minmax(0,1fr)}.song-grid{grid-template-columns:1fr}}
@media(max-width:680px){:root{--shell:calc(100% - 20px)}.site-header{min-height:62px;padding:7px 10px;gap:7px}.brand{font-size:13px;letter-spacing:.02em}.brand>span{width:30px;height:30px}.brand small{display:none}.site-nav{gap:0}.site-nav a,.site-nav button{padding:6px 8px;font-size:12px}.site-nav :is(a,button){padding:6px 8px;font-size:12px}.site-main{padding:18px 0 44px}.hero{min-height:620px}.hero::before{background:linear-gradient(0deg,rgba(247,242,231,0.96078) 0,rgba(247,242,231,0.96078) 46%,transparent 75%);background:linear-gradient(0deg,rgba(247,242,231,0.96078) 0 46%,transparent 75%);background:linear-gradient(0deg,#f7f2e7f5 0 46%,transparent 75%)}.hero::after{height:120px;bottom:34%}.hero-copy-panel{width:100%;min-height:100%;justify-content:flex-end;padding:28px 20px 42px}.hero h1{font-size:max(38px, min(12vw, 52px));font-size:clamp(38px,12vw,52px);letter-spacing:-.06em}.hero-copy{line-height:1.7}.hero-start{width:100%;min-height:56px}.hero-companion{right:-3%;bottom:36%;width:min(58%,300px)}.home-secondary{grid-template-columns:1fr}.page-heading{min-height:108px;align-items:flex-start;margin-bottom:14px;padding:7px 2px 14px}.page-heading h1{font-size:42px}.page-heading>a{padding:7px 9px;font-size:11px}.library-tools{position:relative;top:auto;grid-template-columns:minmax(0,1fr);gap:6px;padding:8px}.filter-tabs{gap:3px}.filter-tabs button{flex:1 0 auto;padding:7px;font-size:12px}.journey-map{min-height:1720px}.map-region{min-height:153px;padding:9px 13px}.region-number{top:10px}.region-node{width:138px;min-height:106px;gap:5px;padding:3px}.region-node::after{top:4px;width:64px;height:64px}.region-emblem{flex-basis:64px;width:64px;height:64px}.region-node-copy{min-width:116px;padding:6px 8px 5px}.region-node strong{font-size:17px}.region-node small{font-size:9px}.region-song-panel{left:0;right:0}.region-panel-heading{grid-template-columns:52px 1fr 44px}.region-panel-emblem{width:52px;height:52px}.region-panel-heading h2{font-size:22px}.region-panel-body>.song-card,.song-card{grid-template-columns:88px minmax(0,1fr);gap:11px;padding:11px}.song-cover{min-height:94px}.song-details h3{font-size:18px}.song-details p,.song-details>small{font-size:10px}.archive-content{min-height:390px}.result-page{margin:0 auto;padding:28px 14px}.result-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-actions>a,.result-actions>button{flex:1 1 44%}.result-actions>:is(a,button){flex:1 1 44%}.site-footer{align-items:flex-start}.site-footer>div{justify-content:flex-end;gap:1px}.site-footer button{padding:5px;font-size:10px}}
@media(max-width:480px){.site-header{position:relative;flex-wrap:wrap;padding-bottom:5px}.brand{flex:0 0 100%;justify-content:center}.site-nav{width:100%;justify-content:stretch;border-top:1px solid rgba(255,255,255,0.16863);border-top:1px solid #ffffff2b}.site-nav a,.site-nav button{flex:1 1 0}.site-nav :is(a,button){flex:1 1 0}.filter-tabs{scroll-snap-type:x proximity}.filter-tabs button{scroll-snap-align:start}.map-region{grid-template-columns:1fr}.map-region:nth-of-type(n) .region-node{grid-column:1}.map-region:nth-of-type(odd) .region-node{justify-self:start}.map-region:nth-of-type(even) .region-node{justify-self:end}}
@media(max-height:550px) and (orientation:landscape){.site-header{position:relative;min-height:50px}.site-main{padding-top:10px}.home-grid{align-items:start}.hero{min-height:430px}.library-tools{position:relative;top:auto}.page-heading{min-height:78px;align-items:center}.page-heading h1{font-size:32px}.region-song-panel{left:auto;right:0;top:0;bottom:0;width:min(48vw,420px);max-height:100vh;max-height:100svh;border-radius:20px 0 0 20px}body[data-page=game] .game-heading{min-height:44px;margin-bottom:3px;padding-bottom:3px}.result-page{margin:0 auto;padding:20px}.result-page h1{font-size:29px}.result-accuracy{margin-top:8px;font-size:62px}.result-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:10px 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(prefers-contrast:more){.panel-card,.region-song-panel,.song-card,.result-page,.region-node{border-width:2px}}
