/* Player-facing forest. Administration has its own document and stylesheet. */
body.forest-front{--ink:#f9f5df;--muted:#d4e1d2;--paper:#173f37;--soft:#244b40;--line:#c5e7bf40;--brand-dark:#d8edb1;background:#102d2b url('/assets/forest/stream-forest.png') center/cover fixed;color:#fff9e8}
body.forest-front:before{z-index:-1;background:linear-gradient(180deg,#09272296,#0c3025b8 55%,#0a261ce8)}
.forest-header{max-width:1450px;margin:auto;padding:22px 38px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #e1edbe25}
.forest-brand{display:flex;align-items:center;gap:13px;color:#fff7df;font-size:15px;font-weight:600;letter-spacing:2px}
.forest-brand img{width:52px;height:52px;border:1px solid #d8ddae88;border-radius:50%}
.forest-brand small{display:block;margin-top:6px;color:#d4e0bd;font-size:9px;letter-spacing:2px}
.forest-header nav{display:flex;gap:8px}.forest-header nav a{display:flex;align-items:center;gap:9px;padding:12px 18px;border-radius:24px;color:#e2ebd8;font-size:12px;border:1px solid transparent}
.forest-header nav a:hover{background:#e5efcb16}.forest-header nav a.active{background:#e7efcb;color:#234538;border-color:#f8f6d8;box-shadow:0 4px 15px #001b201f}
.forest-header nav .icon{width:17px;height:17px}
.forest-front .workspace{margin-left:0;min-height:calc(100vh - 97px)}
.forest-front .topbar{max-width:1450px;width:100%;margin:auto;height:46px;padding:0 38px}.forest-front .breadcrumb,.forest-front .breadcrumb span{color:#c8dac2}.forest-front .keyboard-badge{color:#e6ebce}.forest-front main{max-width:1450px;padding:12px 38px 32px}
.forest-front .arcade-intro{margin-bottom:22px}.forest-front .menu-kicker{color:#d9dfa9;letter-spacing:3px}.forest-front .arcade-intro h1{font-family:'Songti TC','Noto Serif TC',serif;font-size:30px;letter-spacing:2px;margin-top:9px;font-weight:600}.forest-front .menu-edition,.forest-front .menu-edition b{color:#e1e6bd}
.forest-front .dance-banner{border-color:#d4ddb383;border-radius:20px;background:#13372e;box-shadow:0 16px 35px #031f2c55}
.forest-front .dance-banner:after{background:linear-gradient(90deg,#0b2d31c9,#122e2f50 37%,transparent 63%)}
.forest-front .banner-script{color:#e4efb5}.forest-front .banner-copy h2 span{color:#fff0b9}.forest-front .banner-copy p{color:#f8f6df}.forest-front .banner-copy{padding-left:35px}
.forest-front .banner-actions{justify-content:flex-end;padding-bottom:28px}
.forest-front .neon-button{background:linear-gradient(110deg,#e5c27a,#f4dfaa);color:#3c4026;border-color:#fff0bc;border-radius:25px;box-shadow:0 4px 18px #09281e55;padding:13px 24px}.forest-front .neon-button:hover{background:#fff1be;color:#253f29}
.forest-front .arcade-library{padding:22px;border-radius:20px;background:#102f2ec9;border:1px solid #e0e7bc35;backdrop-filter:blur(12px);margin-top:24px}
.forest-front .section-title h2{font-size:19px;color:#f6edcd}.forest-front .section-title>small{color:#bcceb4}.forest-front .section-title .count{color:#e6eccc;border-color:#c9df9d55}
.forest-front .filters button{color:#ccddc5}.forest-front .filters button.selected{border-color:#e5d59a;color:#fff2c0}.forest-front .search{background:#09251e66;border-color:#9fc5ab55;color:#dce7c9}.forest-front input::placeholder{color:#bed0ba}
.forest-front .cover{border-radius:13px;background:#214837;box-shadow:0 5px 15px #061d2533}.forest-front .song-card.selected .cover{border-color:#f3e5a0;box-shadow:0 0 0 2px #75956f,0 0 24px #b9e59032}.forest-front .cover-check{background:#f5ebbb;color:#395c36}
.forest-front .song-meta h3{font-size:14px;color:#fcf3d7}.forest-front .song-meta p,.forest-front .song-stats,.forest-front .song-origin,.forest-front .song-duration{color:#ccd9c3}.forest-front .level i{background:#e5d28c}
.forest-front .play-dock{background:#f7f2ddf5;border-color:#fdf7da;color:#304b3c;border-radius:18px;box-shadow:0 10px 32px #021e2040;margin-top:18px}
.forest-front .selected-song strong{color:#264d39}.forest-front .selected-song small,.forest-front .now-playing-label,.forest-front .play-dock .form-label{color:#5a7258}.forest-front .mini-cover{background:#dce4c7;border-color:#b6c69c;color:#517448}
.forest-front .mode-segment{background:#e3e6d4;border-color:#c7d0b9}.forest-front .mode-segment button{color:#5d715a}.forest-front .mode-segment button.selected{background:#385e47;color:#fff5d4}.forest-front .dock-difficulty select{background:#fffbed;color:#3d583f;border-color:#c7d0b5}.forest-front .dock-difficulty select option{background:#fffbed;color:#304b3c}
.forest-front .stage-options summary,.forest-front .input-hint{color:#e3e9d0}.forest-front .stage-options summary>span,.forest-front .input-hint>span{color:#becfb4}
.forest-front .theme-controls{background:#173d30ed;border-color:#cfddad40}.forest-front input,.forest-front select,.forest-front textarea{background:#143c32;color:#f2f0d6;border-color:#9bc3a44d}.forest-front select option{background:#143c32;color:#f2f0d6}.forest-front .theme-controls .form-label,.forest-front .theme-preview,.forest-front .motion-choice{color:#dce9cc}
.forest-front .arcade-shortcuts>a{background:#153a2fb3;border-color:#d6e4ae33;border-radius:15px}.forest-front .arcade-shortcuts>a:hover{background:#315b3fbb}.forest-front .shortcut-symbol{background:#b3c99022;color:#e3eab7}.forest-front .arcade-shortcuts small,.forest-front .arcade-shortcuts p{color:#c2d4b6}.forest-front .arcade-shortcuts>a>.icon{color:#dce6b9}
.forest-front footer{color:#b9cbb0;border-color:#e5eabd25;padding:22px 38px}.forest-front footer>span:last-child{display:block;flex-shrink:0}.forest-front .admin-entry{padding:8px 0;font-size:11px;color:#dce6bd;text-decoration:underline;text-underline-offset:4px}
.forest-front .panel{background:#173b31ed;border-color:#d4e7bb33}.forest-front .notice{background:#324e30ed;border-color:#a2b27c;color:#eef0d6}.forest-front .device-card{background:#183c30;border-color:#d4e7bb33}.forest-front .pad>span,.forest-front .raw-inputs span{background:#345641;border-color:#d4e7bb33;color:#ebefd7}.forest-front .pad>span.pressed{background:#e5d290;color:#243d2b}.forest-front .guide-step p,.forest-front .page-heading p,.forest-front .page-heading .eyebrow,.forest-front .page-number,.forest-front .field>span,.forest-front .field small,.forest-front .editor-foot{color:#d4e1c4}.forest-front .guide-step:before{color:#edda9b}.forest-front .button.primary{background:#d9ce92;color:#31442c;border-color:#f4e6ac}.forest-front kbd{background:#375940;border-color:#75916a}.forest-front .empty{background:#163b2e;color:#e3e9cf}.forest-front #toast{left:50%;background:#f4edd0;color:#274834}
@media(max-width:900px){.forest-header{padding:18px 25px}.forest-front main,.forest-front .topbar{padding-left:25px;padding-right:25px}.forest-header nav a{padding:10px 12px}.forest-front .arcade-intro h1{font-size:26px}.forest-front .section-title>small{display:none}.forest-front .arcade-library{padding:18px}}
@media(max-width:650px){.forest-header{padding:16px;display:block}.forest-brand{justify-content:center;font-size:13px}.forest-brand img{width:44px;height:44px}.forest-header nav{justify-content:center;margin-top:18px;gap:4px}.forest-header nav a{font-size:11px;padding:10px}.forest-header nav .icon{width:15px;height:15px}.forest-front .workspace{margin-left:0}.forest-front .topbar{padding:0 18px}.forest-front main{padding:10px 16px 24px}.forest-front .arcade-intro h1{font-size:24px;letter-spacing:1px}.forest-front .menu-kicker{font-size:8px;letter-spacing:1.5px}.forest-front .dance-banner{height:330px}.forest-front .dance-banner:after{background:linear-gradient(0deg,#0a2b2cf5,transparent 90%)}.forest-front .banner-copy{padding:20px}.forest-front .arcade-library{padding:16px 12px}.forest-front .song-grid{scrollbar-color:#c5d295 #17392c}.forest-front .play-dock{padding:17px}.forest-front footer{padding:20px 16px;gap:15px}}
