/* D01–D04, approved Nano Banana batch 01. Scope leaves later design packages intact. */
#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) button{text-shadow:none}
:root{--pz-paper:#efe4cc;--pz-ink:#253b3e;--pz-red:#913e31;--pz-brass:#b49665;--pz-serif:"Noto Serif SC","STKaiti","KaiTi","SimSun",serif;--pz-paper-art:url('./assets/ui/rebuild/paper.webp');--pz-dark-art:url('./assets/ui/rebuild/ink.webp');--pz-red-art:url('./assets/ui/rebuild/cinnabar.webp')}
#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) button{touch-action:manipulation;cursor:pointer;min-width:44px;min-height:44px;box-sizing:border-box;transition:filter .12s,transform .12s}
#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) button:active{transform:translateY(1px);filter:brightness(.87)}
#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) button:focus-visible{outline:2px solid #e6bf75;outline-offset:3px}
#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) button:disabled{filter:grayscale(.8);opacity:.55;cursor:default}
#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) [hidden]{display:none!important}
/* Login retains its actual loading/retry/account controls over a text-free painting. */
#game#game#game#game#game#game #intro.login-screen{background:#c9c6c1}
#game#game#game#game#game#game #login-stage[data-art=error]{background:#ede3cd var(--pz-paper-art) center/cover}
#game#game#game#game#game#game #login-stage[data-art=error] #login-art{visibility:hidden}
#game#game#game#game#game#game #intro #login-retry{background:var(--pz-red-art) center/cover;color:#f4dfb4;border:1px solid #b49665;border-image:none;border-radius:3px;box-shadow:none;font:15px/1.3 var(--pz-serif);padding:6px 20px;margin-left:10px}
#game#game#game#game#game#game #intro #login-retry::before,#game#game#game#game#game#game #intro #login-retry::after{display:none}
#game#game#game#game#game#game #login-stage::after{background:none}
#game#game#game#game#game#game #login-stage .login-menu{width:30%;right:6%;top:50%;transform:translateY(-46%);max-width:460px}
#game#game#game#game#game#game .login-title{margin:0 0 30px}
#game#game#game#game#game#game .login-title h1 img{width:100%;max-width:360px;max-height:none;filter:brightness(.12);margin:0 auto}
#game#game#game#game#game#game .login-title p{font:clamp(14px,1.4vw,23px)/1.6 var(--pz-serif);letter-spacing:.14em;margin:8px 0;color:#242d2c}
#game#game#game#game#game#game .login-seal{right:-1%;top:5%;background:none;color:#aa4a3a;border:1px solid #aa4a3a;border-radius:3px;font:15px/1.2 var(--pz-serif);letter-spacing:.1em;padding:4px 2px}
#game#game#game#game#game#game #intro #start,#game#game#game#game#game#game #dashboard #camp-depart{background:var(--pz-red-art) center/100% 100%;color:#f9e3aa;border:3px double #bf985e;border-image:none;border-radius:7px;outline:1px solid #76543d;outline-offset:2px;box-shadow:0 3px 10px #211c3066,inset 0 0 0 2px #ba815144;font:26px/1.2 var(--pz-serif);letter-spacing:.16em;min-height:56px;padding:10px 18px}
#game#game#game#game#game#game #intro #start{width:90%;margin:auto;display:block}
#game#game#game#game#game#game #intro #practice{display:flex;justify-content:center;flex-wrap:wrap;gap:2px 8px;text-align:center;border:0;background:transparent;box-shadow:none;width:75%;margin:12px auto 0;padding:6px 8px;font:19px/1.2 var(--pz-serif);color:#503b31;min-height:48px}
#game#game#game#game#game#game #practice small{flex-basis:100%;font:12px/1.4 var(--pz-serif);color:#5b5147}
#game#game#game#game#game#game #practice>span,.login-caption{display:none}
#game#game#game#game#game#game #intro .login-player{margin-top:18px;padding-top:9px;border-top:1px solid #907a5544;display:flex;justify-content:center;gap:12px;color:#473d34}
#game#game#game#game#game#game #intro .login-player>div{min-width:0;text-align:left}
#game#game#game#game#game#game #intro .login-player>div>span{font:11px/1.2 var(--pz-serif);color:#725a4b;letter-spacing:.12em}
#game#game#game#game#game#game #intro #account-status{font:12px/1.5 var(--pz-serif);color:#4a413b;max-width:100%;overflow-wrap:anywhere}
#game#game#game#game#game#game #intro #player-account-button{font:14px/1.4 var(--pz-serif);color:#8b4d31;border:0;border-bottom:1px solid #a18865;background:transparent;padding:4px 6px}
#game#game#game#game#game#game #intro #login-settings{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;right:max(3%,env(safe-area-inset-right));top:max(2%,env(safe-area-inset-top));width:52px;height:58px;padding:0;border:0;background:transparent;color:#57473b;box-shadow:none;font:13px/1.2 var(--pz-serif)}
#game#game#game#game#game#game #login-settings>span{font:30px/1.1 serif;color:#5c5140;text-shadow:0 1px 1px #fff}
#game#game#game#game#game#game #intro #resume-run{margin:4px auto 0;width:90%;min-height:44px;background:var(--pz-dark-art) center/cover;color:#f4e6c4;border:1px solid #b19769;font:14px/1.3 var(--pz-serif)}
#game#game#game#game#game#game .login-loader{background:var(--pz-paper-art) center/cover;padding:10px 7%;font:13px/1.4 var(--pz-serif);color:#394137;border-top:1px solid #bbaa8b}
#game#game#game#game#game#game .login-loader progress{height:6px;clip-path:polygon(0 45%,1% 0,99% 10%,100% 65%,99% 100%,0 90%)}
/* Shared paper windows; painted materials are independent from live text. */
#game#game#game#game#game#game :is(#player-dialog,#login-settings-dialog){background:var(--pz-paper-art) center/100% 100%;border:1px solid #a98b5b;border-radius:4px;color:var(--pz-ink);box-shadow:0 14px 55px #0a171b99,inset 0 0 0 4px #9b805132;max-height:calc(100dvh - 24px);touch-action:pan-y;scrollbar-color:#a88a58 transparent;scrollbar-width:thin}
#game#game#game#game#game#game #player-dialog{width:min(700px,92vw);padding:26px 32px 20px}
#game#game#game#game#game#game #player-dialog h2,#game#game#game#game#game#game #login-settings-dialog h2{font:28px/1.4 var(--pz-serif);color:var(--pz-ink);margin:0 0 7px;letter-spacing:.12em}
#game#game#game#game#game#game #player-dialog .player-intro>span{display:none}
#game#game#game#game#game#game #player-note{max-width:94%;font:12px/1.5 system-ui;color:#64716a}
#game#game#game#game#game#game #player-tabs{border-bottom:1px solid #a58f6e66;margin-bottom:12px;gap:8px}
#game#game#game#game#game#game #player-tabs button{min-height:44px;border:0;background:none;box-shadow:none;color:#6e766c;font:16px/1.2 var(--pz-serif);padding:8px 16px}
#game#game#game#game#game#game #player-tabs button[aria-pressed=true]{border-bottom:2px solid #a77c36;color:#8b5929;background:linear-gradient(0deg,#b5945220,transparent)}
#game#game#game#game#game#game #player-form{gap:10px 18px}
#game#game#game#game#game#game #player-form label{font:13px/1.4 var(--pz-serif);color:#3a4c47;gap:4px}
#game#game#game#game#game#game #player-form input{height:44px;min-height:44px;border:1px solid #ac9d82;border-radius:2px;background:#fffaf0a8;font:16px/1.2 system-ui;color:#243b3b;padding:8px 12px;box-shadow:inset 0 1px 3px #503a2112}
#game#game#game#game#game#game #player-form input:focus{outline:2px solid #af8b4e;outline-offset:1px}
#game#game#game#game#game#game #player-form input:user-invalid{border-color:#a54732;outline-color:#a54732}
#game#game#game#game#game#game #player-dialog #player-submit,#game#game#game#game#game#game #player-dialog #player-logout,#game#game#game#game#game#game #login-settings-dialog #login-settings-close{background:var(--pz-red-art) center/100% 100%;border:3px double #b59664;border-image:none;border-radius:4px;box-shadow:0 3px 8px #53381922;color:#fae6bb;font:18px/1.3 var(--pz-serif);padding:8px 20px;min-height:44px}
#game#game#game#game#game#game #player-dialog #player-message{margin:7px 0 0;min-height:19px;color:#9b3c29;font:12px/1.5 system-ui}
#game#game#game#game#game#game #player-close{color:#7a623d;font-size:30px}
#game#game#game#game#game#game #login-settings-dialog{width:460px;max-width:90vw;padding:24px 28px}
#game#game#game#game#game#game #login-settings-dialog .login-settings-row button{background:var(--pz-dark-art) center/cover;border:1px solid #a88a58;border-radius:4px;color:#f4dfb4;box-shadow:none;font:14px/1.3 var(--pz-serif)}
#game#game#game#game#game#game #login-settings-dialog label{font:14px/1.4 var(--pz-serif);color:#384b46;gap:8px}
#game#game#game#game#game#game #login-settings-dialog small{font:11px/1.5 system-ui;color:#6b766d}
#game#game#game#game#game#game :is(#login-volume,#music-volume){accent-color:#ac874d;min-height:44px;touch-action:none}
#game#game#game#game#game#game #login-motion{accent-color:#8e6e3d}
#game#game#game#game#game#game :is(#login-volume-value,#music-volume-value){font-variant-numeric:tabular-nums;white-space:nowrap;color:#8e4d2d}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog){background:#101e2766;backdrop-filter:blur(4px)}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) .dialog{width:min(530px,90vw);max-height:92dvh;overflow:auto;box-sizing:border-box;background:var(--pz-paper-art) center/100% 100%;border:1px solid #aa8c60;border-image:none;border-radius:4px;box-shadow:0 15px 50px #05131a88;padding:26px 32px;color:var(--pz-ink);touch-action:pan-y;text-shadow:none}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) .dialog::before,#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) .dialog::after{display:none}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) h2{font:32px/1.35 var(--pz-serif);letter-spacing:.13em;color:var(--pz-ink);margin:0 0 16px;text-shadow:none}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) p{font:14px/1.8 var(--pz-serif);color:#4d5d52;margin:0 0 16px}
#game#game#game#game#game#game #pause .eyebrow,#game#game#game#game#game#game #pause #pause-reason{display:none}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) button{background:var(--pz-dark-art) center/100% 100%;border:3px double #b49665;border-image:none;border-radius:5px;box-shadow:0 2px 5px #12232933;color:#f4dfb0;font:18px/1.3 var(--pz-serif);padding:9px 16px;text-shadow:none;letter-spacing:.08em}
#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) button::before,#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) button::after{display:none}
#game#game#game#game#game#game #pause .pause-actions{display:contents}
#game#game#game#game#game#game #pause .dialog{display:flex;flex-direction:column;align-items:stretch;text-align:center}
#game#game#game#game#game#game #pause h2{order:0}#game#game#game#game#game#game #pause #resume{order:1;margin:0 auto 14px;width:80%;font-size:24px;min-height:52px}
#game#game#game#game#game#game #pause .pause-tools{order:2;display:flex;gap:8px;padding:10px 0;border-top:1px solid #ab916047;border-bottom:1px solid #ab916047}
#game#game#game#game#game#game #pause .pause-tools button{flex:1;min-width:0;font-size:13px;padding:6px;border-width:1px;border-radius:3px;background:transparent;color:#465d52;box-shadow:none;display:flex;align-items:center;justify-content:center;gap:4px}
#game#game#game#game#game#game #pause .pause-tools .game-icon{width:21px;height:21px;filter:sepia(.8) brightness(.55)}
#game#game#game#game#game#game #pause .pause-volume{order:3;display:flex;align-items:center;gap:8px;color:#405247;font:14px/1.4 var(--pz-serif);margin:5px 0}
#game#game#game#game#game#game #pause .pause-volume input{min-width:60px;flex:1}
#game#game#game#game#game#game #pause .pause-note{order:4;color:#697567;font:11px/1.4 system-ui;margin:0 0 10px}
#game#game#game#game#game#game #pause #restart-pause{order:5;align-self:center;min-width:145px}
#game#game#game#game#game#game :is(#restart-pause,#abandon-confirm,#resume-abandon){background:transparent!important;color:#984733!important;border-color:#ab6c53!important;box-shadow:none!important}
#game#game#game#game#game#game #resume-choice button{display:block;width:100%;margin:8px 0}
#game#game#game#game#game#game #abandon-dialog button{display:inline-block;width:46%;margin:0 1%;font-size:16px}
#game#game#game#game#game#game #abandon-dialog .dialog{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
#game#game#game#game#game#game #abandon-dialog :is(h2,p){grid-column:1/-1}
#game#game#game#game#game#game #abandon-dialog button{width:100%;margin:0}
#game#game#game#game#game#game #pause #restart-pause{width:55%}
/* Camp scenic objects are live, reachable controls, not a flattened screenshot. */
#game#game#game#game#game#game #dashboard.camp-scene{display:block;padding:0;overflow:hidden;background:#51403c;color:#f1dcc0;isolation:isolate;text-shadow:none}
#game#game#game#game#game#game #dashboard.hidden{display:none}
#game#game#game#game#game#game #dashboard .camp-backdrop{position:absolute;inset:0;z-index:-2;background:#51403c url('./assets/ui/rebuild/camp-scene.webp') center/cover}
#game#game#game#game#game#game #dashboard::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,#1b20288c,transparent 28%,transparent 82%,#25213438)}
#game#game#game#game#game#game #dashboard button{font-family:var(--pz-serif);color:#efdab7;letter-spacing:.04em;min-height:44px;border:0;border-image:none;box-shadow:none;border-radius:0;background:none;padding:6px}
#game#game#game#game#game#game #dashboard button:hover{filter:brightness(1.12);background-color:transparent}
#game#game#game#game#game#game #dashboard .camp-identity{position:absolute;display:flex;align-items:center;gap:14px;top:3%;left:max(4%,env(safe-area-inset-left));max-width:48%;height:65px}
#game#game#game#game#game#game #dashboard .camp-wordmark{width:95px;max-height:66px;height:auto;object-fit:contain}
#game#game#game#game#game#game #dashboard #camp-account{display:flex;align-items:center;gap:8px;background:var(--pz-paper-art) center/cover;border:2px double #af906c;box-shadow:0 3px 12px #21172766;padding:5px 12px 5px 6px;max-width:230px;min-width:140px;color:#322b2c;height:60px}
#game#game#game#game#game#game #camp-account>img{width:43px;height:43px;object-fit:cover;border:2px solid #8c6a52;border-radius:50%;flex-shrink:0}
#game#game#game#game#game#game #camp-account>span{min-width:0;text-align:left}
#game#game#game#game#game#game #camp-account b{display:block;font:22px/1.1 var(--pz-serif);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#game#game#game#game#game#game #camp-account small{display:block;font:11px/1.4 var(--pz-serif);color:#706459;margin-top:5px}
#game#game#game#game#game#game #dashboard .camp-tools{position:absolute;right:max(3%,env(safe-area-inset-right));top:2%;display:flex;gap:8px}
#game#game#game#game#game#game #dashboard .camp-tools button{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;min-width:44px;text-shadow:0 1px 4px #211727}
#game#game#game#game#game#game #dashboard .camp-tools span{font:29px/1.1 serif}
#game#game#game#game#game#game #dashboard #camp-exit{font-size:11px;align-self:flex-start;min-width:44px}
#game#game#game#game#game#game #dashboard .camp-paper{position:absolute;background:var(--pz-paper-art) center/100% 100%;border:4px double #9e795c;color:#3f3330;box-shadow:0 6px 18px #241b2b77,inset 0 0 0 3px #d5bb9744;text-shadow:none}
#game#game#game#game#game#game #dashboard .camp-report{left:7%;bottom:17%;width:19%;max-width:250px;min-height:150px;padding:16px 14px;transform:rotate(-9deg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-left-width:7px}
#game#game#game#game#game#game #dashboard .camp-report:active{transform:rotate(-9deg) translateY(1px)}
#game#game#game#game#game#game #dashboard .camp-label{font:16px/1.4 var(--pz-serif);color:#4d3b31}
#game#game#game#game#game#game #camp-latest-title{font:20px/1.4 var(--pz-serif);margin:9px 0;display:block}
#game#game#game#game#game#game #camp-latest-detail{font:16px/1.5 var(--pz-serif);white-space:pre-line;display:block;margin-bottom:10px}
#game#game#game#game#game#game #dashboard .camp-plaque{min-height:44px;display:flex;align-items:center;justify-content:center;margin:0 auto;padding:5px 13px;background:var(--pz-dark-art) center/cover;color:#f6dfb6;font:16px/1.3 var(--pz-serif);border:3px double #c2a886;border-radius:3px;box-shadow:0 2px 4px #3f332744}
#game#game#game#game#game#game #dashboard .camp-campaign{top:8%;right:17%;width:18%;max-width:270px;height:58%;max-height:480px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px 12px;gap:6px;border-top:8px ridge #92735f;border-bottom:8px ridge #92735f}
#game#game#game#game#game#game #dashboard .camp-campaign::before,#game#game#game#game#game#game #dashboard .camp-campaign::after{content:'';position:absolute;left:-9px;right:-9px;height:7px;background:linear-gradient(#654d40,#bf9d7b,#59463b);box-shadow:0 2px 3px #1a172855;border-radius:4px;pointer-events:none}
#game#game#game#game#game#game #dashboard .camp-campaign::before{top:-8px}#game#game#game#game#game#game #dashboard .camp-campaign::after{bottom:-8px}
#game#game#game#game#game#game #dashboard .camp-campaign h2{font:clamp(20px,2.6vw,36px)/1.2 var(--pz-serif);margin:1px 0;color:#392d28;text-align:center;letter-spacing:.04em}
#game#game#game#game#game#game #dashboard .camp-campaign>.camp-label{font-size:12px}
#game#game#game#game#game#game #dashboard .camp-progress{display:flex;flex-direction:column;text-align:center;gap:3px;font:15px/1.4 var(--pz-serif)}
#game#game#game#game#game#game #dashboard .camp-progress b{font-weight:400;font-variant-numeric:tabular-nums}
#game#game#game#game#game#game #dashboard .camp-map-art{width:100%;min-height:22px;flex:1;max-height:135px;background:url('./assets/ui/wuxia/map-paper.webp') center/cover;mix-blend-mode:multiply;border-radius:50%;opacity:.7;margin:2px 0}
#game#game#game#game#game#game #camp-completion-seal{position:absolute;right:3px;top:35%;writing-mode:vertical-rl;font:10px/1.3 var(--pz-serif);border:1px solid #9d4c34;color:#9d4c34;padding:2px;max-height:110px}
#game#game#game#game#game#game #camp-completion-seal:empty{display:none}
#game#game#game#game#game#game #dashboard:has(#camp-resume:not([hidden])) .camp-campaign{height:48%}
#game#game#game#game#game#game #dashboard .camp-merit{right:3%;top:32%;width:11.5%;max-width:170px;min-height:170px;height:36%;border:7px double #84654b;border-radius:2px 2px 25px 25px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px 6px;font:17px/1.3 var(--pz-serif)}
#game#game#game#game#game#game #dashboard .camp-merit::after{content:'';position:absolute;bottom:-18px;height:17px;width:68%;border-left:3px double #c8a67a;border-right:3px double #c8a67a;display:block}
#game#game#game#game#game#game #dashboard .camp-merit small{font:15px/1.3 var(--pz-serif)}
#game#game#game#game#game#game #dashboard #camp-best{font:30px/1.1 Georgia,serif;color:#923e2c;overflow-wrap:anywhere;max-width:100%}
#game#game#game#game#game#game #dashboard #camp-rank-summary{font:15px/1.2 var(--pz-serif)}
#game#game#game#game#game#game #dashboard .camp-departure{position:absolute;right:17%;bottom:14%;width:32%;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
#game#game#game#game#game#game #dashboard #camp-depart{width:65%;min-height:53px;font-size:26px;flex-shrink:0}
#game#game#game#game#game#game #dashboard #camp-practice{font:17px/1.25 var(--pz-serif);text-shadow:0 2px 4px #271e28;flex:1;padding:0;white-space:nowrap}
#game#game#game#game#game#game #dashboard #camp-practice small{display:block;font:12px/1.5 var(--pz-serif);margin-top:3px}
#game#game#game#game#game#game #dashboard #camp-resume{position:absolute;bottom:100%;right:0;min-height:44px;padding:5px 14px;margin-bottom:6px;border:1px solid #b79b6d;background:var(--pz-dark-art) center/cover;color:#f5ddb1;font:14px/1.2 var(--pz-serif);box-shadow:0 2px 6px #1c182244}
#game#game#game#game#game#game #dashboard #camp-subtitle{position:absolute;top:100%;margin:6px 0 0;right:0;font:10px/1.3 system-ui;text-shadow:0 1px 3px #151e1b;white-space:nowrap}
#game#game#game#game#game#game #dashboard .camp-bottom{position:absolute;right:3%;bottom:max(1.5%,env(safe-area-inset-bottom));width:35%;display:flex;justify-content:space-between;gap:6px}
#game#game#game#game#game#game #dashboard .camp-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:52px;font:16px/1.2 var(--pz-serif);white-space:nowrap;text-shadow:0 1px 4px #201827}
#game#game#game#game#game#game #dashboard .camp-bottom img{width:29px;height:29px;object-fit:contain;filter:sepia(.9) saturate(.5) brightness(1.6)}
#game#game#game#game#game#game #dashboard .camp-detail-backdrop{position:absolute;inset:0;background:#10252c88;backdrop-filter:blur(4px);z-index:9}
#game#game#game#game#game#game #dashboard .camp-detail-panel{position:absolute;z-index:10;inset:5% 8%;display:flex;flex-direction:column;padding:18px 24px;background:var(--pz-paper-art) center/100% 100%;border:1px solid #b69a6b;color:#344b40;box-shadow:0 15px 50px #172a3480}
#game#game#game#game#game#game #dashboard .camp-detail-panel>header{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #9f8c6d66;padding-bottom:6px}
#game#game#game#game#game#game #dashboard .camp-detail-panel h2{font:25px/1.3 var(--pz-serif);color:#354b43;margin:0}
#game#game#game#game#game#game #dashboard .camp-detail-panel button{color:#53664f}
#game#game#game#game#game#game #camp-content{display:block;overflow:auto;min-height:0;flex:1;padding:8px 4px 20px;touch-action:pan-y;scrollbar-width:thin;mask-image:linear-gradient(#000 0,#000 calc(100% - 16px),transparent)}
#game#game#game#game#game#game #dashboard .camp-section{padding:8px 12px;border:0;background:#ffffff44}
#game#game#game#game#game#game #dashboard .camp-section h3{font-size:20px}
#game#game#game#game#game#game #dashboard .camp-section [data-camp-open]{display:none}
/* Entry identity uses the approved dark material, not the chapter map. */
#game#game#game#game#game#game #rotate-gate,#game#game#game#game#game#game #load-status{background:#20373d var(--pz-dark-art) center/cover}
#game#game#game#game#game#game #rotate-gate .entry-seal{background:transparent;border-color:#b2644b;color:#e8bba1}
#game#game#game#game#game#game #load-status{color:#ede2c5}
@media(max-height:540px){
 #game#game#game#game#game#game #login-stage .login-menu{width:31%;right:6%;transform:translateY(-45%)}
 #game#game#game#game#game#game .login-title{margin-bottom:20px}#game#game#game#game#game#game .login-title h1 img{width:85%;max-height:95px}#game#game#game#game#game#game .login-title p{font-size:13px;margin:8px 0 0;letter-spacing:.1em}
 #game#game#game#game#game#game #intro #start{min-height:48px;font-size:23px;padding:6px 12px}#game#game#game#game#game#game #intro #practice{margin-top:6px;font-size:16px;padding:4px 6px}
 #game#game#game#game#game#game #intro .login-player{margin-top:5px;padding-top:5px;gap:5px}#game#game#game#game#game#game #intro #account-status{font-size:10px}#game#game#game#game#game#game #intro #player-account-button{font-size:12px}#game#game#game#game#game#game .login-seal{font-size:11px;right:4%}
 #game#game#game#game#game#game #intro #resume-run{min-height:44px;font-size:12px}#game#game#game#game#game#game #login-stage:has(#resume-run:not(.hidden)) .login-title{margin-bottom:8px}#game#game#game#game#game#game #login-stage:has(#resume-run:not(.hidden)) .login-title h1 img{max-height:65px}
 #game#game#game#game#game#game #player-dialog{padding:15px 25px 12px}#game#game#game#game#game#game #player-dialog h2{font-size:24px;margin-bottom:3px}#game#game#game#game#game#game #player-note{margin:3px 0 5px;font-size:11px}#game#game#game#game#game#game #player-tabs{margin-bottom:7px}#game#game#game#game#game#game #player-form{gap:6px 16px}#game#game#game#game#game#game #player-form .player-form-note{margin:0;font-size:10px}#game#game#game#game#game#game #player-dialog #player-message{margin-top:4px}
 #game#game#game#game#game#game #login-settings-dialog{padding:17px 24px}#game#game#game#game#game#game #login-settings-dialog h2{font-size:24px}#game#game#game#game#game#game #login-settings-dialog .login-settings-row{margin:5px 0}#game#game#game#game#game#game #login-settings-dialog #login-settings-close{margin-top:6px}
 #game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) .dialog{padding:18px 26px}#game#game#game#game#game#game :is(#pause,#resume-choice,#abandon-dialog) h2{font-size:26px;margin-bottom:10px}#game#game#game#game#game#game #pause #resume{font-size:20px;min-height:46px;margin-bottom:7px}#game#game#game#game#game#game #pause .pause-tools{padding:5px 0}#game#game#game#game#game#game #pause .pause-note{margin-bottom:5px}
 #game#game#game#game#game#game #dashboard .camp-identity{height:50px;gap:8px;top:3%;left:3%}#game#game#game#game#game#game #dashboard .camp-wordmark{width:66px;max-height:49px}#game#game#game#game#game#game #dashboard #camp-account{height:46px;max-width:175px;min-width:120px;padding:3px 7px 3px 3px}#game#game#game#game#game#game #camp-account>img{width:34px;height:34px}#game#game#game#game#game#game #camp-account b{font-size:17px;max-width:118px}#game#game#game#game#game#game #camp-account small{font-size:10px;margin-top:2px}
 #game#game#game#game#game#game #dashboard .camp-tools{gap:2px;top:1%;right:2%}#game#game#game#game#game#game #dashboard .camp-tools span{font-size:23px}#game#game#game#game#game#game #dashboard .camp-tools button{font-size:10px}
 #game#game#game#game#game#game #dashboard .camp-report{padding:8px;min-height:128px;width:20%;left:5%;bottom:18%}#game#game#game#game#game#game #dashboard .camp-label{font-size:13px}#game#game#game#game#game#game #camp-latest-title{font-size:16px;margin:5px 0}#game#game#game#game#game#game #camp-latest-detail{font-size:13px;margin-bottom:4px}
 #game#game#game#game#game#game #dashboard .camp-campaign{top:7%;right:19%;width:22%;height:58%;padding:9px 8px;gap:3px}#game#game#game#game#game#game #dashboard .camp-campaign h2{font-size:24px}#game#game#game#game#game#game #dashboard .camp-campaign>.camp-label{font-size:10px}#game#game#game#game#game#game #dashboard .camp-progress{font-size:12px;gap:0}#game#game#game#game#game#game #dashboard .camp-plaque{min-height:44px;font-size:13px;padding:4px 8px}
 #game#game#game#game#game#game #dashboard .camp-merit{right:3%;top:30%;width:13%;min-height:145px;height:38%;font-size:13px;gap:6px;border-width:5px;padding:8px 4px}#game#game#game#game#game#game #dashboard .camp-merit small{font-size:12px}#game#game#game#game#game#game #dashboard #camp-best{font-size:23px}#game#game#game#game#game#game #dashboard #camp-rank-summary{font-size:12px}
 #game#game#game#game#game#game #dashboard .camp-departure{right:19%;width:31%;bottom:16%;gap:6px}#game#game#game#game#game#game #dashboard #camp-depart{min-height:48px;font-size:21px;padding:6px 9px;width:65%}#game#game#game#game#game#game #dashboard #camp-practice{font-size:13px}#game#game#game#game#game#game #dashboard #camp-practice small{font-size:10px}#game#game#game#game#game#game #dashboard #camp-subtitle{display:none}
 #game#game#game#game#game#game #dashboard .camp-bottom{width:40%;right:2%;bottom:1%;gap:2px}#game#game#game#game#game#game #dashboard .camp-bottom button{font-size:12px;min-height:48px;gap:2px;padding:3px}#game#game#game#game#game#game #dashboard .camp-bottom img{width:23px;height:23px}
 #game#game#game#game#game#game #dashboard .camp-detail-panel{inset:3% 5%;padding:12px 18px}#game#game#game#game#game#game #dashboard .camp-detail-panel h2{font-size:22px}
}
@media(max-width:720px) and (orientation:landscape){
 #game#game#game#game#game#game #login-stage .login-menu{width:35%;right:5%}#game#game#game#game#game#game #intro .login-player>div>span{font-size:9px}#game#game#game#game#game#game #intro #account-status{font-size:10px}
 #game#game#game#game#game#game #dashboard .camp-campaign{right:20%;width:24%;top:6%;height:58%}#game#game#game#game#game#game #dashboard .camp-campaign h2{font-size:23px}#game#game#game#game#game#game #dashboard .camp-campaign>.camp-label{font-size:10px}
 #game#game#game#game#game#game #dashboard .camp-merit{right:3%;width:14%;top:32%}#game#game#game#game#game#game #dashboard .camp-report{left:3%;width:22%;bottom:19%}#game#game#game#game#game#game #camp-latest-title{font-size:14px}#game#game#game#game#game#game #camp-latest-detail{font-size:12px}
 #game#game#game#game#game#game #dashboard .camp-departure{right:20%;width:34%;bottom:16%}#game#game#game#game#game#game #dashboard #camp-depart{font-size:19px}#game#game#game#game#game#game #dashboard .camp-bottom{width:44%}#game#game#game#game#game#game #dashboard #camp-account{max-width:155px}#game#game#game#game#game#game #camp-account b{max-width:98px;font-size:15px}
}
@media(max-height:310px){#game#game#game#game#game#game #player-dialog{max-height:96dvh}#game#game#game#game#game#game .login-title p{display:none}}
@media(prefers-reduced-motion:reduce){#game#game#game#game#game#game :is(#intro,#dashboard,#player-dialog,#login-settings-dialog,#pause,#resume-choice,#abandon-dialog) button{transition:none}}
