:root{color-scheme:dark;--ink:#091319;--cream:#ede3ce;--muted:#9eaead;--gold:#d5b77c;--teal:#75d9cf;--border:#a58c583b;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--cream);background:#071016;font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden;user-select:none}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:2px solid var(--teal);outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.5}button:hover:not(:disabled){filter:brightness(1.16)}button:active:not(:disabled){transform:translateY(1px)}input{user-select:text}h1,h2,h3,p{margin:0}h1{font:clamp(72px,9vw,136px)/1 Georgia,serif;letter-spacing:.13em;font-weight:400;color:#eee4cd;text-shadow:0 4px 40px #000}h2{font-size:clamp(24px,3vw,40px);font-weight:400;letter-spacing:.16em}h3{font-weight:500}small{font-size:12px;color:var(--muted)}p{line-height:1.9;color:#acb9b8}#world,.vignette,#screens{position:fixed;inset:0;width:100%;height:100%}#world{object-fit:contain;background:#050b0e}.vignette{pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 35%,#030b11aa 100%);z-index:1}.screen{display:none;position:absolute;inset:0;z-index:2}.screen.active{display:flex;animation:appear .45s ease both}#screens{pointer-events:none}.screen,dialog{pointer-events:auto}.overline{font:12px/1.5 Georgia,serif;letter-spacing:.32em;color:var(--gold)}.cn-title{font-size:24px;letter-spacing:.6em;margin:16px 0 28px}.primary{display:flex;align-items:center;justify-content:space-between;padding:17px 24px;border:1px solid #e5c98c;background:linear-gradient(120deg,#d7bb7f,#a88a52);color:#19201c;box-shadow:0 3px 22px #0005;font-weight:700;letter-spacing:.12em;min-height:52px}.primary span{font-size:22px}.secondary{border:1px solid var(--border);padding:13px 22px;background:#102027b0}.subtle{font-size:13px;color:#a5b4b2;padding:8px 12px}.icon-button{width:40px;height:40px;border:1px solid #758e8f44;background:#08171b88;font-size:23px}.text-button{font-size:13px;color:var(--gold);padding:20px 0 12px}.fineprint{font-size:12px;line-height:1.7;color:#91a5a5}.build{position:absolute;bottom:28px;left:40px;font-size:11px;letter-spacing:.12em;color:#6f898e}.boot{align-items:center;justify-content:center;flex-direction:column;background:#081319de}.sigil{font-size:54px;color:var(--gold);margin-bottom:25px;animation:breathe 2s infinite}.boot .overline{margin-bottom:24px}.boot h1{font-size:84px}.load-box{width:min(340px,80vw);margin-top:30px}.load-label{display:flex;justify-content:space-between;font-size:12px;color:#9caead;letter-spacing:.1em;margin-bottom:12px}.load-track{height:3px;background:#abc7c022;overflow:hidden}.load-track i{display:block;height:100%;width:0;background:var(--gold);transition:width .3s;box-shadow:0 0 10px var(--gold)}#boot-error{color:#f2978b;font-size:13px;margin-top:20px}.login{align-items:center;justify-content:space-between;padding:5vh 9vw;background:linear-gradient(90deg,#061116ba,transparent 65%,#061116cc)}.title-block{align-self:center;padding-bottom:14vh}.title-block .overline{margin-bottom:22px}.title-block p{font-size:15px;letter-spacing:.15em}.auth-panel{width:330px;padding:35px 30px;background:linear-gradient(#0a171cec,#0b1c23db);border:1px solid var(--border);border-top:2px solid var(--gold);box-shadow:0 20px 90px #0007}.auth-panel h2{font-size:27px;margin:14px 0 28px}.auth-panel label{display:block;font-size:12px;color:#b9c3b8;margin:18px 0;letter-spacing:.1em}.auth-panel input{display:block;width:100%;padding:13px 10px;color:var(--cream);margin-top:8px;background:#020c12a8;border:1px solid #829a9144;border-radius:0;font-size:14px}.auth-panel .primary{width:100%;font-size:14px}.auth-panel small{display:block;text-align:center;font-size:11px}.auth-panel .text-button{width:100%}.error{color:#ffa59a;font-size:12px;line-height:1.5;min-height:20px;margin-bottom:8px}.lobby{background:linear-gradient(90deg,#08131cbb 0,transparent 50%,#08131c8f 75%,#08131ce8);padding:30px 48px;flex-direction:column}.lobby header{display:flex;align-items:center;justify-content:space-between}.wordmark{font:26px Georgia,serif;letter-spacing:.22em}.wordmark span{font:12px system-ui;color:var(--muted);letter-spacing:.2em;border-left:1px solid #71898755;margin-left:14px;padding-left:18px}.account-menu{display:flex;gap:12px;align-items:center}.account-menu>span{font-size:13px;color:#bac8bd;margin-right:14px}.lobby-intro{position:absolute;top:24%;left:6%}.lobby-intro h2{font-size:28px;margin:15px 0}.lobby-intro p{font-size:13px}.hero-presentation{position:absolute;left:35%;top:21%;width:28%;height:62%;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.hero-presentation canvas{width:100%;height:85%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 8px 28px #000);animation:breathe 5s infinite}.hero-halo{position:absolute;top:20%;width:240px;height:240px;background:radial-gradient(ellipse,#57aeae28,transparent 70%)}.hero-plinth{position:absolute;bottom:16%;width:210px;height:50px;border-radius:50%;border:1px solid #d6ba754f;background:radial-gradient(ellipse,#75ceba11,#07111200 65%);box-shadow:0 0 25px #6acdc612}.hero-caption{text-align:center;position:relative;z-index:2}.hero-caption small{font:10px Georgia;letter-spacing:.35em;color:var(--gold);display:block;margin:6px}.hero-caption strong{font-size:30px;font-weight:400;letter-spacing:.2em}.hero-caption>span{display:block;margin-top:8px;color:#849b9d;font-size:11px;letter-spacing:.1em}.character-panel{position:absolute;right:5%;top:21%;width:290px;padding-left:26px;border-left:1px solid var(--border)}.character-panel h3{font-size:23px;margin:10px 0 24px}.stat-row{display:grid;grid-template-columns:48px 1fr 30px;align-items:center;gap:14px;margin:13px 0;font-size:13px;color:#c3cfc7}.stat-meter{height:3px;background:#5a737a33}.stat-meter i{display:block;height:100%;background:linear-gradient(90deg,#538e91,#a0d1c6)}.stat-row b{text-align:right;font-family:Georgia;color:var(--cream)}.trait{padding:16px 0;margin-top:14px;border-top:1px solid #66888b33}.trait strong{color:var(--gold);font-weight:400;font-size:14px}.trait p{font-size:12px;margin-top:4px}.weapon-label{font-size:12px;color:var(--muted);margin:12px 0}.weapons{display:flex;gap:8px;margin-bottom:18px}.weapons button{border:1px solid #57777c4f;flex:1;padding:11px 4px;font-size:12px;line-height:1.7;background:#07171c99}.weapons button span{display:block;font-size:20px;color:var(--gold)}.weapons button.selected{border-color:var(--gold);background:#90733933}.character-panel .primary{width:100%;font-size:14px;padding:14px 18px}.character-panel .fineprint{margin-top:12px}.lobby-footer{position:absolute;left:4%;right:4%;bottom:28px;display:flex;align-items:center;gap:50px;border-top:1px solid #8e9f9833;padding-top:22px}.archive-link{display:flex;gap:18px;text-align:left;align-items:center;min-width:225px}.archive-icon{font-size:35px;color:var(--gold)}.archive-link small,.expedition-preview small{display:block;margin-top:6px;color:#879d9e;font-size:11px}.archive-link>span:last-child{margin-left:auto;color:var(--gold)}.expedition-preview{display:flex;align-items:center;gap:18px}.expedition-preview>span{font:22px Georgia;color:var(--gold);letter-spacing:.08em}.expedition-preview p{font-size:13px;line-height:1.3}.lobby-footer>.subtle{margin-left:auto}.scene-loading{flex-direction:column;align-items:center;justify-content:center;background:#061216ee}.scene-loading h2{margin:20px}.scene-loading .divider{height:1px;background:var(--gold);width:60px;margin:20px}.scene-loading p{font-size:13px}.scene-loading .load-track{width:260px;margin-top:45px}.battle{pointer-events:none}.battle button{pointer-events:auto}.battle-top{position:absolute;left:3%;right:3%;top:22px;display:flex;justify-content:space-between;align-items:flex-start}.vitals{width:280px}.player-line{display:flex;align-items:center;gap:12px;margin-bottom:9px}.small-sigil{color:var(--gold);font-size:29px}.player-line b{font-size:17px;font-weight:400}.player-line small{margin-left:auto;font-size:11px}.health-track{height:19px;border:1px solid #cab87980;padding:3px;background:#091218cc;position:relative;transform:skew(-12deg)}.health-track i{display:block;background:linear-gradient(90deg,#548d8c,#87d8c3);height:100%;transition:width .15s}.health-track span{position:absolute;inset:0;text-align:center;font:11px/17px Georgia;text-shadow:0 1px 2px #000;color:#fff;transform:skew(12deg)}#boons{font-size:11px;color:var(--gold);line-height:1.7;margin-top:8px}.stage-heading{text-align:center;position:absolute;left:50%;transform:translateX(-50%)}#stage-dots{font-size:12px;letter-spacing:.6em;color:var(--gold);margin-bottom:12px}.stage-heading h3{font-size:21px;letter-spacing:.2em}.stage-heading small{display:block;margin-top:8px;font-size:12px}#boss-hud{position:absolute;top:125px;width:min(420px,50%);left:50%;transform:translateX(-50%);text-align:center}#boss-hud small{display:block;font:10px Georgia;letter-spacing:.24em;color:#d8aa89}#boss-hud b{font-size:15px;font-weight:400;letter-spacing:.2em;display:block;margin:5px}#boss-hud>div{height:8px;border:1px solid #d6a48166;padding:2px;background:#0b1019}#boss-fill{display:block;height:100%;background:#ca7461;transition:width .1s}.battle-bottom{position:absolute;bottom:22px;left:3%;right:3%;display:flex;justify-content:space-between;align-items:flex-end}.movement-hint{color:#c5d0c9;font-size:12px;line-height:2}.movement-hint span{display:block;font-size:11px;color:#7d9699}kbd{font:11px system-ui;color:#aabeba;letter-spacing:.06em}.movement-hint kbd{border:1px solid #90b2b155;padding:6px 8px;margin-right:8px}.abilities{display:flex;gap:12px;position:absolute;left:50%;transform:translateX(-50%);bottom:0}.abilities button{width:80px;height:85px;position:relative;overflow:hidden;border:1px solid #a4c8bd55;background:linear-gradient(#0c2025dc,#0a131be6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.abilities button>span{font-size:27px;color:var(--gold);z-index:1}.abilities button b{font-size:12px;font-weight:400;z-index:1}.abilities button kbd{font-size:10px;z-index:1}.abilities button i{position:absolute;inset:0;background:#031015d9;transform:translateY(-100%);pointer-events:none}.abilities button em{position:absolute;top:16px;font-style:normal;z-index:2;font:22px Georgia;color:var(--cream);text-shadow:0 1px 6px #000}.run-clock{text-align:right}.run-clock b{display:block;font:24px Georgia;letter-spacing:.13em;margin:5px 0}.run-clock span{font-size:11px;color:var(--gold)}.connection{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);background:#081319ee;border:1px solid var(--gold);padding:20px;font-size:14px;z-index:9}.reward{background:#061218db;backdrop-filter:blur(7px);flex-direction:column;justify-content:center;align-items:center}.reward h2{margin:20px 0 12px}.reward p{font-size:14px}.reward small{margin-top:28px}#reward-options{display:flex;gap:24px;margin-top:36px;max-width:90%}.boon-card{width:220px;min-height:260px;padding:30px 22px;border:1px solid var(--border);background:linear-gradient(#102b32,#0b1720);text-align:center;transition:transform .2s,border-color .2s}.boon-card:hover{border-color:var(--gold);transform:translateY(-7px)!important}.boon-card span{font-size:50px;display:block;margin-bottom:30px;color:var(--gold)}.boon-card b{font-size:19px;display:block;margin-bottom:16px;font-weight:400;letter-spacing:.1em}.boon-card p{font-size:13px}.result{align-items:center;justify-content:center;flex-direction:column;background:#06131be8;backdrop-filter:blur(6px);overflow-y:auto;padding:30px}.result>h2{margin:16px 0 28px}.result-layout{display:flex;align-items:center;gap:70px}.memory-card{width:270px;background:linear-gradient(160deg,#1a3439,#0c1921 55%,#12262b);border:1px solid var(--gold);padding:20px;text-align:center;box-shadow:0 0 65px #42b0a51a;position:relative}.memory-card:after{content:'';position:absolute;inset:7px;border:1px solid #b29c6844;pointer-events:none}.memory-card canvas{width:210px;height:230px;object-fit:contain}.memory-card .overline{font-size:9px;letter-spacing:.17em}.memory-card h3{font-size:27px;font-weight:400;letter-spacing:.2em}.memory-card>span{display:block;font-size:12px;color:var(--gold);margin-top:10px}.card-rule{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:22px}.memory-card>small{font-size:10px;letter-spacing:.08em}.result-info{width:320px}.result-info h3{font-size:20px;margin-bottom:20px}.result-info>p{font-size:13px;margin:20px 0}.result-info>small{display:block;margin-top:10px;line-height:1.6;font-size:11px}.result-info button{width:100%;margin-top:10px;font-size:13px}.result-info .mint-disabled{font-size:12px;padding:10px;border:1px dashed #708b804d}.seal{color:#85cbb6;font-size:12px;margin-bottom:14px}#result-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}#result-stats small{display:block;font-size:12px;margin-bottom:4px}#result-stats b{font:27px Georgia;font-weight:400;color:var(--gold)}.archive{flex-direction:column;padding:50px 6%;background:#08151be8;overflow:auto;backdrop-filter:blur(8px)}.archive header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:40px}.archive header h2{font-size:27px;margin-top:14px}#archive-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px}.record-card{border:1px solid var(--border);padding:20px;background:linear-gradient(#18343a77,#0c1c24);text-align:left;min-height:220px}.record-card h3{font-size:24px;margin:20px 0 10px}.record-card p{font-size:12px}.record-card .overline{font-size:10px;letter-spacing:.13em}.record-card .ending{display:inline-block;color:var(--gold);font-size:12px;border:1px solid var(--border);padding:4px 9px;margin-top:20px}.empty-archive{grid-column:1/-1;text-align:center;padding:90px 20px;color:#9aaead}dialog{border:1px solid var(--gold);padding:38px;background:#0b1c24;color:var(--cream);width:min(420px,90vw);text-align:center;box-shadow:0 0 120px #0008}dialog::backdrop{background:#040d15ba;backdrop-filter:blur(8px)}dialog h2{font-size:26px;letter-spacing:.1em;margin:16px 0}dialog p{font-size:13px;margin:20px 0}dialog button{display:block;width:100%;margin:12px 0}#toast{position:fixed;z-index:30;bottom:24px;left:50%;transform:translateX(-50%);background:#11282ef2;border:1px solid var(--gold);padding:14px 22px;color:var(--cream);font-size:13px;pointer-events:none;opacity:0;transition:opacity .2s}#toast.visible{opacity:1}#joystick{display:none;position:absolute;left:35px;bottom:50px;width:120px;height:120px;border:1px solid #aecdc757;border-radius:50%;background:#17313a77;pointer-events:auto;touch-action:none}#joystick div{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:#a2c9bb55;border:1px solid #badccc99;pointer-events:none}#rotate-hint{display:none;position:fixed;inset:0;z-index:100;background:#061116f5;text-align:center;align-items:center;justify-content:center;flex-direction:column;font-size:25px;line-height:2;color:var(--gold)}@keyframes appear{from{opacity:0}to{opacity:1}}@keyframes breathe{50%{transform:translateY(-4px);filter:drop-shadow(0 0 20px #7ecac222)}}@media(max-width:1100px){.lobby{padding:22px 28px}.lobby-intro{left:4%;top:25%;max-width:235px}.lobby-intro h2{font-size:22px}.lobby-intro p{font-size:12px}.hero-presentation{left:29%;width:29%}.character-panel{right:4%;width:265px;top:18%}.lobby-footer{gap:30px}.title-block h1{font-size:80px}.login{padding:5vh 6vw}.auth-panel{width:300px}.wordmark span{display:none}}@media(max-height:680px){.character-panel{top:17%;width:245px;padding-left:20px}.character-panel h3{font-size:19px;margin:8px 0 14px}.stat-row{margin:9px 0}.trait{padding:10px 0;margin-top:10px}.trait p{font-size:11px}.weapon-label{margin:8px 0}.weapons button{padding:6px 3px}.weapons{margin-bottom:10px}.character-panel .primary{padding:10px 14px;min-height:42px}.character-panel .fineprint{font-size:10px}.hero-presentation{top:19%;height:62%}.lobby-footer{bottom:18px;padding-top:16px}.auth-panel{padding:22px}.auth-panel h2{margin:8px 0 18px}.auth-panel label{margin:12px 0}.result{padding:15px}.result>h2{font-size:25px;margin:10px 0 18px}.memory-card{width:230px;padding:17px}.memory-card canvas{height:170px;width:180px}.card-rule{margin:15px}.result-info>p{margin:12px 0}.result-info button{padding:10px 16px;min-height:38px}.boon-card{min-height:200px;padding:22px}.boon-card span{font-size:36px;margin-bottom:16px}.reward h2{font-size:28px}#reward-options{margin-top:24px}.abilities button{width:70px;height:73px}.stage-heading h3{font-size:18px}#boss-hud{top:100px}}@media(pointer:coarse){#joystick{display:block}.movement-hint{display:none}.abilities{left:auto;right:0;transform:none;bottom:16px}.abilities button{width:72px;height:75px}.run-clock{display:none}.abilities kbd{display:none}.battle-bottom{bottom:22px}.battle-top{top:16px}.vitals{width:220px}}@media(max-width:800px) and (orientation:landscape){:root{font-size:14px}.lobby{padding:14px 20px}.wordmark{font-size:20px}.account-menu{gap:6px}.account-menu>span{font-size:11px;margin:0}.icon-button{height:32px;width:32px;font-size:20px}.subtle{font-size:11px}.lobby-intro{top:28%;max-width:180px}.lobby-intro h2{font-size:19px;line-height:1.5}.lobby-intro .overline{font-size:10px}.lobby-intro p{display:none}.hero-presentation{left:28%;top:17%;height:66%;width:28%}.hero-caption strong{font-size:22px}.hero-caption>span{font-size:9px}.hero-plinth{width:120px}.character-panel{top:19%;width:220px;right:3%}.character-panel>.overline{display:none}.character-panel h3{font-size:17px;margin:0 0 8px}.stat-row{margin:7px 0;font-size:11px;grid-template-columns:40px 1fr 24px;gap:8px}.trait{padding:7px 0;margin-top:6px}.trait strong{font-size:12px}.trait p{display:none}.weapon-label{display:none}.weapons{margin:5px 0 8px}.weapons button{font-size:10px;padding:5px}.weapons button span{display:inline;margin-right:3px;font-size:14px}.character-panel .primary{font-size:12px;min-height:34px;padding:7px 12px}.character-panel .fineprint{font-size:9px;margin-top:5px}.lobby-footer{bottom:12px;padding-top:10px;gap:20px}.archive-link{min-width:170px;gap:10px;font-size:12px}.archive-icon{font-size:23px}.expedition-preview{display:none}.archive-link small{font-size:9px}.auth-panel{width:270px;padding:18px 22px}.auth-panel .overline{font-size:9px}.auth-panel h2{font-size:22px}.auth-panel label{font-size:10px;margin:10px 0}.auth-panel input{font-size:12px;padding:9px}.auth-panel .primary{min-height:38px;padding:10px;font-size:12px}.auth-panel .text-button{padding:12px 0 8px;font-size:11px}.title-block h1{font-size:62px}.title-block .cn-title{font-size:19px}.title-block p{font-size:12px}.build{bottom:12px;left:20px;font-size:9px}.battle-top{left:20px;right:20px}.vitals{width:185px}.player-line b{font-size:14px}.player-line small{font-size:9px}.stage-heading h3{font-size:16px}.stage-heading small{font-size:10px}.stage-heading #stage-dots{margin-bottom:5px;font-size:10px}.health-track{height:15px}.health-track span{font-size:9px;line-height:13px}#boss-hud{top:80px;width:280px}.abilities button{width:58px;height:63px}.abilities button span{font-size:23px}.abilities button b{font-size:11px}#joystick{bottom:25px;left:25px;width:100px;height:100px}#joystick div{left:25px;top:25px}.result>h2{font-size:22px}.result-layout{gap:30px}.memory-card{width:190px;padding:12px}.memory-card canvas{width:145px;height:135px}.memory-card h3{font-size:22px}.memory-card>span{font-size:10px}.card-rule{margin:10px}.result-info{width:280px}.result-info h3{font-size:16px;margin-bottom:12px}#result-stats{gap:10px}#result-stats b{font-size:22px}#result-stats small{font-size:10px}.result-info>p{font-size:11px;line-height:1.5}.result-info .seal{font-size:10px;margin-bottom:5px}.result-info>small{font-size:9px}.result-info button{font-size:11px;margin-top:6px}.reward h2{font-size:24px}.reward p{font-size:12px}.boon-card{width:180px;min-height:175px;padding:18px 14px}.boon-card b{font-size:16px}.boon-card p{font-size:11px}.reward small{margin-top:16px}#reward-options{gap:14px}.archive{padding:25px}.archive header h2{font-size:20px}.overline{font-size:10px}}@media(orientation:portrait) and (max-width:700px){#rotate-hint{display:flex}}
