:root{color-scheme:dark;--bg:#0b1425;--panel:rgba(16,29,47,.83);--line:rgba(180,203,206,.17);--gold:#e7c990;--aqua:#a4dedb;--text:#e9eeeb;--muted:#9bacb7;--serif:'Songti SC','STSong','Noto Serif CJK SC',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;min-height:100vh}.world{position:fixed;inset:0;background:linear-gradient(180deg,rgba(6,13,28,.18),rgba(6,13,28,.64)),url('assets/world.svg') center/cover;z-index:-1}button,input,select{font:inherit}button,a,select,summary{touch-action:manipulation}button{cursor:pointer;color:inherit;transition:background .18s,border-color .18s,transform .18s}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--aqua);outline-offset:4px}button:not(:disabled):hover{filter:brightness(1.14)}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.topbar{height:94px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(8,18,32,.7);gap:20px}.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:25px;letter-spacing:4px}.brand-mark{font-size:48px;color:var(--gold);font-family:Georgia;font-weight:400}.brand small{display:block;font:9px/1.7 Georgia,serif;letter-spacing:3px;color:var(--gold);margin-top:3px}.top-tag{font-size:12px;letter-spacing:2px;color:#b8c7c9}.top-tag span{margin:0 14px;color:#65747f}.top-tag i,.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--aqua);margin-right:8px;box-shadow:0 0 10px var(--aqua)}nav{display:flex;align-items:center;gap:20px}.text-btn{background:none;border:0;padding:8px 0;color:var(--muted)}.text-btn:hover{color:var(--gold)}.outline{border:1px solid #708287;background:rgba(21,37,53,.7);padding:12px 22px;border-radius:3px;color:#dfebe7}.small{padding:9px 16px;font-size:12px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid #f0d59e;background:linear-gradient(110deg,#eddaad,#d4b67d);color:#253546;padding:14px 26px;font-weight:650;border-radius:3px;box-shadow:0 5px 25px #0002}.primary.small{padding:11px 18px}.game-layout{max-width:1600px;display:grid;grid-template-columns:155px minmax(0,1fr) 236px;gap:25px;padding:32px 3% 0;margin:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px}.eyebrow{font-size:10px;letter-spacing:2.6px;color:var(--gold);font-weight:500;line-height:1.8}h2,h3,h1,p{margin:0}h2{font-family:var(--serif);font-weight:500}.tower-panel{padding:22px 17px;height:672px}.tower-panel h2{font-size:21px;letter-spacing:2px;margin-top:5px}.tower-map{display:flex;flex-direction:column;margin-top:20px;position:relative}.tower-map:before{content:'';width:1px;position:absolute;left:13px;top:15px;bottom:15px;background:linear-gradient(#6c7f80,#a8a789)}.map-floor{position:relative;display:flex;align-items:center;gap:14px;height:42px;color:#788d9c;font:14px Georgia,serif}.map-node{background:#142438;border:1px solid #435468;display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;color:#a6b2b9;font-size:18px;z-index:1}.map-floor small{font:10px sans-serif;letter-spacing:1px}.map-floor.current{color:var(--gold)}.map-floor.current .map-node{color:var(--gold);border-color:var(--gold);box-shadow:0 0 16px #eccb7840}.map-floor.cleared .map-node{color:var(--aqua);border-color:#85bfb0}.map-caption{border-top:1px solid var(--line);padding-top:18px;margin-top:20px;font-size:10px;line-height:2;color:var(--muted)}.map-caption span{display:block}.chapter{display:flex;justify-content:space-between;align-items:center;height:68px;gap:10px;margin-bottom:15px}.chapter h1{font-family:var(--serif);font-size:29px;letter-spacing:2px;font-weight:400;margin-top:4px}.chapter h1 span{font-size:19px;color:#c8d4d6}.direction-tag{font-size:11px;color:#c9dfde;border:1px solid #adc3be40;background:#28453e44;padding:9px 12px;border-radius:20px;white-space:nowrap}.arena{height:355px;position:relative;overflow:hidden;border:1px solid #809e9c50;border-radius:8px;background:linear-gradient(0deg,#14293b80,#19334530),url('assets/world.svg') center 64%/cover;isolation:isolate}.arena[data-chapter="1"]{filter:hue-rotate(12deg)}.arena[data-chapter="2"]{filter:hue-rotate(29deg)}.arena:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 80px #06112480;pointer-events:none;z-index:-1}.sky-title{position:absolute;left:50%;top:23px;transform:translateX(-50%);font-family:var(--serif);font-size:11px;letter-spacing:7px;color:#b9ccbd88;white-space:nowrap}.fighter{position:absolute;bottom:32px;width:210px;height:300px}.player{left:2%}.enemy{right:1%}.fighter img{position:absolute;bottom:3px;height:264px;width:100%;object-fit:contain;filter:drop-shadow(0 0 16px #82d5de30);z-index:1}.enemy img{height:250px;bottom:0;animation:float 5s ease-in-out infinite}.fighter-name{font-family:var(--serif);font-size:17px;position:absolute;top:0;left:0;right:0;text-align:center;color:#f2e9d5;z-index:2;letter-spacing:2px}.fighter-name span{font-size:10px;display:block;margin-top:4px;color:#afc4ca;letter-spacing:2px}.fighter-name small{display:block;font:9px sans-serif;color:#bcaeb7;margin-top:5px;letter-spacing:2px}.boss-health{position:absolute;top:47px;width:126px;height:4px;left:42px;background:#2a2339;z-index:2}.boss-health div{height:100%;background:linear-gradient(90deg,#9377aa,#dea6b0);transition:width .3s}.boss-hp{position:absolute;top:55px;text-align:center;width:100%;font:9px Georgia;color:#d4c5d0;z-index:3}.ground-rune{position:absolute;border:1px solid #9ddedc66;width:160px;height:30px;bottom:0;left:25px;border-radius:50%;box-shadow:0 0 26px #b0f7ee25,inset 0 0 12px #b0f7ee25}.ground-rune:before{content:'';position:absolute;inset:5px;border:1px solid #b5e0e033;border-radius:50%}.ground-rune.violet{border-color:#e7b1c966;box-shadow:0 0 25px #e5a7ca25}.projectile{position:absolute;z-index:5;top:44%;transform:translate(-50%,-50%);width:max-content;min-width:115px;max-width:210px;border:1px solid #e4d0a4;background:linear-gradient(120deg,#182f43f0,#31475cf0);box-shadow:0 0 24px #d1d6ae40,inset 0 0 15px #e9e9b215;padding:13px 20px;text-align:center;border-radius:8px}.projectile:before{content:'✧';position:absolute;left:-15px;top:14px;color:var(--gold);font-size:23px}.projectile strong{font-family:var(--serif);font-size:23px;line-height:1.5;overflow-wrap:anywhere}.projectile-label{display:block;letter-spacing:1px;color:#d5d2ab;font-size:8px;margin-bottom:5px}.projectile-tail{position:absolute;width:90px;height:1px;top:50%;right:-91px;background:linear-gradient(90deg,#e5d2a8aa,transparent)}.arena-footer{position:absolute;bottom:13px;left:18px;right:18px;display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#c5d3cb;z-index:6}.arena-footer b{font-weight:400}.flight-track{position:absolute;bottom:0;left:0;right:0;background:#0e2032;height:3px}.flight-track>div{width:100%;height:100%;background:var(--aqua)}.flight-track>div.urgent{background:#e2a594}.arena-feedback{display:none}.arena-feedback.visible{display:block;position:absolute;z-index:7;left:50%;top:43%;transform:translate(-50%,-50%);width:75%;text-align:center;padding:22px;background:#102b3beb;border:1px solid #9fd2c9;border-radius:4px;color:#c2ede1;box-shadow:0 8px 40px #0005;line-height:1.8;font-size:17px}.arena-feedback.bad{border-color:#c79c88;color:#f2d7b3}.question-strip{display:flex;align-items:baseline;gap:16px;padding:17px 0 12px;min-height:50px}.question-strip>span:first-child{font-family:var(--serif);color:var(--gold);font-size:15px;white-space:nowrap}.question-strip>span:last-child{font-size:11px;line-height:1.6;color:#bdcccf}.hand{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.answer-card{height:172px;position:relative;display:flex;flex-direction:column;align-items:center;border:1px solid #91aca866;border-radius:7px;background:linear-gradient(150deg,#2a4652e8,#14283de8);box-shadow:0 8px 18px #0003;overflow:hidden;padding:14px 12px 12px;text-align:center}.answer-card:before{content:'';position:absolute;inset:5px;border:1px solid #b4c3ac1a;border-radius:3px;pointer-events:none}.answer-card:hover:not(:disabled){transform:translateY(-7px);border-color:var(--gold);box-shadow:0 12px 30px #101d2c}.card-index{display:flex;justify-content:space-between;width:100%;font:12px Georgia;color:var(--gold);opacity:.8}.card-index small{font:9px sans-serif;letter-spacing:2px;color:#bbcac8}.card-glyph{color:#b2c8b95e;font:29px/1.3 Georgia;margin:2px 0}.answer-card strong{font-family:var(--serif);font-size:20px;font-weight:500;line-height:1.4;overflow-wrap:anywhere;margin:auto 0;color:#edf1df}.card-bottom{display:flex;width:100%;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;color:#a6bcb7;margin-top:12px}.card-bottom kbd{margin-left:2px}.answer-card.correct{border-color:#b6e8c6;background:linear-gradient(150deg,#3c6654,#1c3e43);opacity:1}.answer-card.wrong{border-color:#b37676;background:#432a36;opacity:.6}.answer-card.eliminated{opacity:.25}.answer-card.placeholder{opacity:.6}.answer-card.placeholder strong{font-size:14px}.combat-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px}.keyboard-hint{font-size:10px;color:#a8b9bc}.keyboard-hint>span{padding:0 4px}kbd{font:10px sans-serif;display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:20px;border:1px solid #98b3b755;border-radius:3px;color:#c6d4cd;background:#172b3d}.skill-button{background:#1b3346;border:1px solid #9eb8bb66;border-radius:4px;padding:11px 15px;font-size:12px;color:#dddebf;white-space:nowrap}.skill-button span{color:#9ab3b7;font-size:9px;margin-left:8px}.status-panel{padding-top:83px}.vitals{padding:20px}.status-title{display:flex;justify-content:space-between;align-items:center;margin-top:5px}.status-title h2{font-size:19px;letter-spacing:1px}.status-title>span{font-size:10px;padding:3px 7px;background:#78989122;color:#bbd6c5;border:1px solid #78989155;border-radius:3px}.hp-label{display:flex;justify-content:space-between;font-size:11px;margin-top:23px;color:#c7cbbf}.hp-label b{font:12px Georgia}.health-track{height:7px;background:#0b1725;border-radius:4px;margin-top:9px;overflow:hidden}.health-track>div{height:100%;width:100%;background:linear-gradient(90deg,#699d91,#bbd9b6);transition:width .25s}.shield-label{font-size:11px;color:#adc9d5;margin-top:12px}.shield-label strong{float:right;font-weight:400}.stats-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin-top:20px}.stats-grid>div{display:flex;flex-direction:column;align-items:center}.stats-grid>div+div{border-left:1px solid var(--line)}.stats-grid b{font:27px Georgia;color:var(--gold)}.stats-grid span{font-size:10px;color:var(--muted);margin-top:6px}.relics{font-size:10px;line-height:2.2;color:#b1c0c0;white-space:pre-line;margin-top:13px}.field-notes{padding:20px;margin-top:17px}.field-notes h3{font-family:var(--serif);font-size:16px;font-weight:400;color:#d7dccd;margin:11px 0}.field-notes p{color:#aebec3;font-size:11px;line-height:1.9}.field-notes .muted{font-size:10px;color:#8fa1aa}.field-notes .text-btn{font-size:10px;margin-top:7px;color:var(--gold)}.note-rule{height:1px;background:var(--line);margin:14px 0}.local-note{font-size:10px;text-align:center;color:#a2b5bc;margin-top:23px;line-height:2}.local-note>span{color:var(--gold);margin-right:4px}.local-note small{font-size:9px;color:#7e959f}.page-footer{max-width:1500px;margin:26px auto 0;display:flex;justify-content:space-between;padding:17px 3% 23px;border-top:1px solid var(--line);font-size:9px;letter-spacing:1.5px;color:#8fa3ac}.page-footer span span{margin:0 10px}.modal-layer{position:fixed;inset:0;z-index:30;background:rgba(4,12,23,.78);backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;padding:28px;overflow:auto}.modal{background:linear-gradient(130deg,#1d3346,#101e32);border:1px solid #a5b8a755;box-shadow:0 35px 100px #0008,inset 0 0 70px #66877f0c;border-radius:10px;width:min(820px,100%);max-height:calc(100dvh - 56px);overflow:auto;padding:35px;position:relative}.modal h2{font-size:30px;line-height:1.5;letter-spacing:2px;margin-top:5px;color:#f1e9d8}.modal-sub{margin-top:8px;color:#b3c4c8;line-height:1.8;font-size:12px}.welcome{padding:0;width:min(960px,100%);display:grid;grid-template-columns:43% 57%;overflow:hidden}.welcome-art{position:relative;background:linear-gradient(0deg,#142b3a99,#1c3c4d11),url('assets/world.svg') 45% center/auto 100%;min-height:625px;overflow:hidden;border-right:1px solid var(--line)}.welcome-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#10263ae8,transparent 20%);pointer-events:none}.welcome-art>img{position:absolute;height:530px;width:100%;object-fit:contain;bottom:52px;left:0;filter:drop-shadow(0 0 30px #7ed6e02b);z-index:1}.welcome-orbit{position:absolute;left:11%;top:17%;width:78%;aspect-ratio:1;border:1px solid #bce0d260;border-radius:50%;box-shadow:0 0 90px #b5e0c61a,inset 0 0 40px #b5e0c61a}.welcome-orbit:after{content:'✧';position:absolute;left:50%;top:-27px;font-size:42px;color:var(--gold);transform:translateX(-50%)}.hero-picker{display:flex;gap:10px;position:absolute;left:20px;right:20px;bottom:36px;z-index:3}.hero-pick{flex:1;font-size:12px;padding:12px 6px;background:#142a3ee8;border:1px solid #91aaa866;border-radius:4px;color:#b0c2c7}.hero-pick.selected{color:#f2dfb2;border-color:var(--gold);background:#314b54ed;box-shadow:inset 0 0 15px #d6c28d11}.art-caption{position:absolute;bottom:15px;left:0;right:0;text-align:center;font:8px Georgia;letter-spacing:2px;color:#a9bbb7;z-index:3}.welcome-copy{padding:38px 38px 26px}.edition{color:#b5c5bc;font-size:9px;letter-spacing:2px}.edition span{color:var(--gold);margin:0 7px}.modal .welcome-title{font-size:53px;letter-spacing:8px;margin-top:17px;line-height:1.3}.english-title{color:var(--gold);font:11px/1.8 Georgia;letter-spacing:5px;margin-top:4px}.intro-text{font-family:var(--serif);font-size:16px;line-height:1.85;color:#c1d1d1;margin:22px 0 20px}.mini-how{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;gap:10px;font:12px Georgia;color:var(--gold)}.mini-how b{display:block;font:10px sans-serif;color:#b8caca;margin-top:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:19px}label{display:block;font-size:10px;color:#aabdc2;line-height:1.5}select,input{margin-top:7px;padding:10px 12px;display:block;width:100%;border:1px solid #728f9655;color:#dce5df;background:#12283b;border-radius:3px;outline:none;font-size:12px;height:39px}select{padding-right:3px}.name-field{margin-top:13px}.start-button{width:100%;justify-content:space-between;margin-top:20px;padding:14px 22px;font-size:15px;letter-spacing:3px}.start-button span{font-size:22px;line-height:1}.welcome-bottom{display:flex;justify-content:space-between;margin-top:14px}.welcome-bottom button{font-size:11px}.privacy-line{font-size:9px;line-height:1.7;color:#8ca0a7;margin-top:11px}.prep-line{display:flex;justify-content:space-between;padding:17px 0;border-block:1px solid var(--line);margin:20px 0;font-size:11px;gap:15px;color:#a9bdc4}.prep-line b{color:#ded7bc;font-weight:400;margin-left:10px}.section-label{font-size:13px;color:#d7ddce;font-weight:400}.section-label small{font-size:10px;color:#9cb0b8;margin-left:10px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.option-tile{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:linear-gradient(145deg,#2c455448,#0b1f3370);border:1px solid #9cb2ad33;border-radius:5px;padding:17px;color:#c1d2d3}.option-tile.selected{border-color:var(--gold);background:#8b94641a}.option-tile .tile-icon{font:24px Georgia;color:var(--gold);margin-bottom:10px}.option-tile strong{font-family:var(--serif);font-size:17px;font-weight:400;color:#ece4d1}.option-tile p{font-size:11px;line-height:1.8;color:#b0c1c5;margin-top:8px}.option-tile:hover{border-color:#dbcca6}.modal-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:13px;margin-top:25px}.modal-actions>.muted{font-size:10px;margin-right:auto;color:#9fb3b7}.clear-stats{display:flex;gap:30px;font-size:12px;color:#c6d3c4;margin:25px 0}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.reward-tile{padding:25px 20px;min-height:245px}.reward-tile .tile-icon{font-size:35px;margin-bottom:17px}.reward-tile .eyebrow{font-size:7px;color:#98b4b2;letter-spacing:1.5px;margin-bottom:7px}.choose-label{font-size:11px;color:var(--gold);margin-top:auto;padding-top:22px}.fineprint{color:#9db0b6;font-size:10px;line-height:1.9;margin-top:20px}.pause-actions{display:flex;flex-direction:column;gap:15px;max-width:330px;margin:30px auto 0}.danger{color:#d4ab9b}.result-score{display:flex;align-items:center;gap:20px;background:#203a453d;border-block:1px solid var(--line);padding:25px 10px;margin-top:25px}.result-score>b{font:68px Georgia;color:var(--gold)}.result-score>span{font-size:13px;color:#d6dfd6}.result-score small{display:block;font-size:10px;color:#9fb5ba;font-weight:400;font-family:sans-serif;margin-top:8px}.result-score>strong{font:32px Georgia;margin-left:auto;color:#d6dfcb}.results-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center;margin-top:24px}.results-grid span{font-size:11px;color:#a3b9c1}.results-grid b{display:block;font:27px Georgia;color:#d3ddcd;margin-bottom:7px}.rank-tabs{display:flex;gap:10px;margin-top:20px}.rank-tabs .selected{border-color:var(--gold);color:var(--gold)}.rank-table{margin-top:20px;max-height:350px;overflow:auto}.rank-row{display:grid;grid-template-columns:1fr 90px 70px;gap:10px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px;align-items:center}.rank-row>span:first-child{overflow-wrap:anywhere}.rank-row em{font:17px Georgia;color:var(--gold);margin-right:16px}.rank-row small{font-size:9px;color:#8da4af;display:block;padding-left:35px;margin-top:5px}.rank-head{font-size:10px;color:var(--muted);padding:10px 0}.empty{font-size:13px;line-height:2;text-align:center;color:#afc3c6;padding:35px 10px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}.guide-grid b{color:#dedbc6;font-size:13px;font-weight:500}.guide-grid p{font-size:11px;color:#b0c2c7;line-height:1.9;margin-top:8px}.learning-callout{background:#82b1a112;border-left:2px solid #b2c9a5;padding:14px 16px;margin-top:25px;font-size:11px;line-height:1.9;color:#bed0ca}.bank-tools{display:flex;gap:12px;align-items:center;margin-top:25px;flex-wrap:wrap}.bank-tools>div{flex:1;min-width:200px}.bank-tools b{font-size:12px;font-weight:400;color:#d0dbc9}.bank-tools p{font-size:10px;color:#a1b4bc;line-height:1.8;margin-top:5px}.review-list{max-height:380px;overflow:auto;margin-top:20px}.review-word{border-bottom:1px solid var(--line);padding:16px 0}.review-word summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:15px;list-style:none}.review-word summary b{font:20px Georgia;color:#e4dcc4;overflow-wrap:anywhere}.review-word summary small{display:block;margin-top:6px;font-size:10px;color:#a8bdc1}.reveal-label{font-size:10px;color:#a7c8c8;white-space:nowrap}.review-word p{font-size:12px;line-height:2;padding:15px 0 5px;color:#b9cbd0}.review-word p strong{font-weight:400;color:#deceac}.toast{position:fixed;left:50%;bottom:35px;transform:translate(-50%,15px);max-width:90%;background:#193448;border:1px solid #99b6ad;padding:13px 24px;font-size:12px;line-height:1.8;border-radius:5px;opacity:0;pointer-events:none;z-index:60;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes float{50%{transform:translateY(-8px)}}
@media(min-width:1600px){.arena{height:400px}.fighter{height:340px;width:240px}.fighter img{height:300px}.enemy img{height:285px}.tower-panel{height:717px}.ground-rune{left:40px}}@media(max-width:1180px){.game-layout{grid-template-columns:115px minmax(0,1fr) 200px;gap:15px;padding-inline:2%}.tower-panel{padding:20px 12px}.tower-panel .eyebrow{font-size:8px;letter-spacing:1px}.map-floor{gap:10px}.map-floor small{font-size:8px}.chapter h1{font-size:25px}.chapter h1 span{font-size:16px}.vitals,.field-notes{padding:16px}.direction-tag{font-size:9px;padding:8px}.fighter{width:170px}.fighter img{height:250px}.enemy img{height:235px}.keyboard-hint{display:none}.combat-actions{justify-content:flex-end}.answer-card{padding-inline:9px}.answer-card strong{font-size:18px}.top-tag{display:none}}
@media(max-width:940px){.game-layout{grid-template-columns:1fr 200px;padding:20px 20px 0;gap:18px}.tower-panel{display:none}.chapter{margin-bottom:10px}.topbar{height:80px}.topbar nav{gap:13px}.status-panel{padding-top:78px}.arena{height:340px}.welcome-copy{padding:30px 26px 24px}.modal .welcome-title{font-size:46px}.welcome-art{min-height:605px}.welcome-art>img{height:490px}.modal{padding:28px}.modal.welcome{padding:0}.welcome{grid-template-columns:40% 60%}.hand{gap:9px}.answer-card{height:155px}.answer-card strong{font-size:16px}.card-index small{display:none}.projectile{max-width:170px;padding:12px}.projectile strong{font-size:20px}.page-footer{margin-top:20px}}@media(max-width:700px){.topbar{padding:0 18px;height:72px}.brand{font-size:21px;gap:7px;letter-spacing:2px}.brand-mark{font-size:37px}.brand small{font-size:7px;letter-spacing:2px}.topbar nav{gap:13px}.topbar nav .text-btn{font-size:10px}.topbar #pauseBtn{padding:7px 9px}.game-layout{display:flex;flex-direction:column;padding:14px 14px 0;gap:8px}.battle-column{order:2}.status-panel{order:1;padding:0}.vitals{padding:11px 13px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vitals>.eyebrow,.status-title,.relics,.stats-grid span{display:none}.hp-label{margin:0;white-space:nowrap;font-size:10px;gap:7px}.health-track{width:60px;margin:0;height:5px}.shield-label{margin:0;display:flex;gap:5px;font-size:10px}.stats-grid{margin:0;padding:0;border:0;display:flex;gap:10px;margin-left:auto}.stats-grid>div+div{border:0}.stats-grid b{font:18px Georgia}.stats-grid>div:first-child b:after{content:' 连击';font:9px sans-serif;color:var(--muted)}.stats-grid>div:last-child b:after{content:' ✧';font:11px sans-serif}.field-notes,.local-note{display:none}.chapter{height:63px;margin-bottom:10px}.chapter .eyebrow{font-size:8px;letter-spacing:1px}.chapter h1{font-size:23px}.chapter h1 span{font-size:15px}.direction-tag{font-size:8px;letter-spacing:0;padding:6px 8px}.arena{height:306px}.fighter{width:145px;height:257px;bottom:29px}.fighter img{height:222px}.enemy img{height:212px}.player{left:-10px}.enemy{right:-6px}.fighter-name{font-size:14px;letter-spacing:1px}.fighter-name span{font-size:8px}.fighter-name small{font-size:8px}.boss-health{width:95px;left:25px;top:43px}.boss-hp{top:50px;font-size:8px}.ground-rune{width:110px;left:15px;height:23px}.sky-title{font-size:9px;letter-spacing:3px;top:19px}.projectile{top:46%;max-width:140px;min-width:95px;padding:10px}.projectile strong{font-size:18px}.projectile-label{font-size:6px}.arena-footer{font-size:8px;left:10px;right:10px}.arena-feedback.visible{font-size:14px;width:88%;padding:17px}.question-strip{gap:9px;padding-top:13px;flex-wrap:wrap;min-height:60px}.question-strip>span:first-child{font-size:13px}.question-strip>span:last-child{font-size:10px}.hand{grid-template-columns:repeat(2,1fr);gap:9px}.answer-card{height:119px;padding:10px 12px}.card-glyph{position:absolute;top:28px;left:12px;opacity:.35;font-size:35px}.answer-card strong{font-size:18px;z-index:1}.card-index{font-size:10px}.card-index small{display:block;font-size:8px}.card-bottom{margin-top:4px;font-size:8px}.combat-actions{flex-wrap:wrap;gap:10px;min-height:65px;padding:12px 0}.combat-actions>.primary{margin-right:auto;padding:10px;font-size:11px}.skill-button{padding:10px;font-size:11px}.skill-button span{font-size:8px}.page-footer{margin-top:9px;padding-inline:14px;font-size:7px;letter-spacing:0}.modal-layer{padding:14px}.modal{max-height:calc(100dvh - 28px);padding:25px 20px}.modal h2{font-size:25px}.modal.welcome{display:block;overflow:auto}.welcome-art{height:155px;min-height:155px;border-right:0;border-bottom:1px solid var(--line)}.welcome-art>img{height:290px;width:190px;bottom:-106px;left:0}.welcome-art:after{background:linear-gradient(90deg,transparent,#152a3b30)}.welcome-orbit{width:150px;left:22px;top:22px}.hero-picker{left:auto;right:18px;bottom:37px;flex-direction:column;gap:8px;width:125px}.hero-pick{padding:10px}.art-caption{bottom:14px;left:auto;right:14px;font-size:6px;letter-spacing:1px}.welcome-copy{padding:22px}.edition{font-size:8px;letter-spacing:1px}.modal .welcome-title{font-size:38px;margin-top:9px;letter-spacing:6px}.english-title{font-size:9px;letter-spacing:4px}.intro-text{font-size:13px;line-height:1.8;margin:12px 0}.mini-how{padding:10px 0}.form-grid{margin-top:13px;gap:10px}.name-field{margin-top:9px}.start-button{margin-top:15px;padding:12px 17px;font-size:14px}.welcome-bottom{margin-top:7px}.privacy-line{font-size:8px;margin-top:7px}.skill-grid{grid-template-columns:repeat(2,1fr);gap:9px}.option-tile{padding:13px}.option-tile .tile-icon{font-size:20px;margin-bottom:5px}.option-tile strong{font-size:16px}.option-tile p{font-size:10px;margin-top:5px}.prep-line{flex-direction:column;gap:7px;padding:12px 0;margin:16px 0}.section-label small{font-size:9px;margin-left:4px}.modal-actions{gap:10px;margin-top:20px}.modal-actions>.muted{width:100%;font-size:9px}.modal-actions .primary,.modal-actions .outline{font-size:12px;padding:11px 16px}.reward-grid{grid-template-columns:1fr;gap:10px}.reward-tile{min-height:0;padding:16px;display:grid;grid-template-columns:35px 1fr;column-gap:12px}.reward-tile .tile-icon{grid-row:1/4;font-size:28px;margin:auto}.reward-tile .eyebrow{display:none}.reward-tile p{grid-column:2}.reward-tile .choose-label{grid-column:2;padding-top:9px}.clear-stats{gap:20px;font-size:10px;margin:18px 0}.guide-grid{grid-template-columns:1fr;gap:18px}.guide-grid p{font-size:12px}.bank-tools{gap:10px}.result-score{gap:10px}.result-score>b{font-size:52px}.result-score>strong{font-size:27px}.results-grid b{font-size:22px}.results-grid span{font-size:10px}.rank-row{grid-template-columns:1fr 65px 45px;font-size:11px}.rank-row em{margin-right:10px}.modal-sub{font-size:11px}.review-word summary b{font-size:18px}.reveal-label{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Continuous combat: previous result never blocks the next projectile or cards. */
.arena-feedback.visible{top:auto;bottom:43px;left:50%;transform:translateX(-50%);width:max-content;max-width:92%;padding:7px 14px;font-size:12px;line-height:1.5;pointer-events:none;background:#102738dc;box-shadow:0 4px 20px #0003}.brand>span:last-child{white-space:nowrap}
@media(max-width:400px){.topbar{padding:0 12px;gap:10px}.brand{font-size:18px;letter-spacing:1px}.brand-mark{font-size:30px}.brand small{font-size:6px;letter-spacing:1px}.topbar nav{gap:9px}.topbar nav button{white-space:nowrap}.topbar nav #guideBtn{display:none}.arena-feedback.visible{font-size:10px;bottom:42px;padding:6px 10px}}

.blessing-banner{display:flex;gap:15px;align-items:center;background:#8da78b15;border:1px solid #b6bd8a50;border-radius:5px;padding:14px 18px;margin:0 0 20px}.blessing-banner>span{font:32px Georgia;color:var(--gold)}.blessing-banner small{display:block;font-size:9px;letter-spacing:1px;color:#a7beb6}.blessing-banner strong{display:block;font:18px var(--serif);color:var(--gold);margin-top:4px}.blessing-banner p{font-size:11px;line-height:1.8;color:#bbcfc9;margin-top:5px}

.speed-summary{display:flex;gap:9px;align-items:center;font-size:11px;color:#a8c0c8;margin:0 0 14px}.speed-summary b{font:16px Georgia;color:var(--gold)}.speed-summary span{margin-left:auto;font-size:9px;color:#92aab4}@media(max-width:600px){.speed-summary{flex-wrap:wrap}.speed-summary span{width:100%;margin-left:0}}

.blessing-book{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-height:55vh;overflow:auto;margin-top:20px;padding:3px}@media(max-width:650px){.blessing-book{grid-template-columns:repeat(2,1fr)}}
/* Keep projectile, all four answers and skill visible together on laptop screens. */
@media(min-width:701px) and (max-height:800px){.topbar{height:68px}.game-layout{padding-top:18px}.chapter{height:50px;margin-bottom:8px}.chapter h1{font-size:24px}.chapter .eyebrow{font-size:8px}.arena{height:255px}.fighter{height:218px;width:180px;bottom:28px}.fighter img{height:190px}.enemy img{height:181px}.fighter-name{font-size:14px}.fighter-name span,.fighter-name small{font-size:8px}.boss-health{width:110px;left:35px;top:39px}.boss-hp{top:46px}.sky-title{top:17px;font-size:9px}.ground-rune{width:130px;left:25px;height:23px}.question-strip{min-height:44px;padding:12px 0 8px}.answer-card{height:126px;padding-top:11px}.card-glyph{font-size:22px;margin:0}.answer-card strong{font-size:19px}.card-bottom{margin-top:7px}.combat-actions{min-height:50px}.tower-panel{height:600px;padding-top:17px}.tower-map{margin-top:12px}.map-floor{height:37px}.map-caption{margin-top:12px;padding-top:11px}.status-panel{padding-top:58px}.vitals,.field-notes{padding:15px}.stats-grid{margin-top:14px;padding:12px 0}.hp-label{margin-top:17px}.field-notes{margin-top:12px}.local-note{margin-top:15px}.page-footer{margin-top:15px}.projectile{top:47%;padding:10px 16px}.projectile strong{font-size:22px}}
/* v0.2: original detailed character art and event-only preparation. */
.bank-pill{margin-top:16px;font-size:10px;color:#bcd7cc;line-height:1.8;letter-spacing:.4px}.welcome-art>img{height:555px;bottom:46px;width:108%;left:-4%;filter:drop-shadow(0 0 16px #a4e7df20);object-fit:contain}.player img{filter:drop-shadow(0 0 12px #b7e5df35);width:125%;left:-12.5%}.enemy img{width:115%;left:-7.5%;filter:drop-shadow(0 0 18px #dba0cf30)}.sky-title{display:none}.battle-event{position:absolute;z-index:2;top:14px;left:50%;transform:translateX(-50%);font-size:9px;color:#e4d4ad;letter-spacing:1px;border-bottom:1px solid #dccb9540;padding-bottom:7px;white-space:nowrap}.projectile-field{position:absolute;inset:0;pointer-events:none;z-index:5}.projectile{max-width:245px;min-width:125px;padding:10px 16px;box-shadow:0 0 22px #d1d6ae32,inset 0 0 15px #e9e9b210}.projectile strong{font-size:20px;line-height:1.35;display:block;overflow-wrap:anywhere}.projectile.multi{max-width:235px;padding:6px 14px;min-width:125px}.projectile.multi strong{font-size:17px}.projectile.multi .projectile-label{font-size:7px;margin-bottom:3px}.projectile small{display:block;font-size:8px;color:#adc9cc;line-height:1.3;margin-top:3px}.projectile:before{font-size:18px;left:-12px;top:12px}.projectile.urgent{border-color:#e9a798;box-shadow:0 0 20px #d8846b44}.shot-meter{display:block;width:100%;height:2px;background:#627d8044;margin-top:5px}.shot-meter i{height:2px;display:block;width:100%;background:#d1d9a9}.projectile.urgent .shot-meter i{background:#efb09e}.hand[data-count="6"]{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.hand[data-count="6"] .answer-card{padding-inline:8px}.hand[data-count="6"] .answer-card strong{font-size:15px;line-height:1.4}.hand[data-count="6"] .card-glyph{font-size:23px}.answer-card.spent{opacity:.25;border-color:#708b93;filter:grayscale(.6)}.wave-status{font-size:10px;color:#b4c7bd}.combat-actions{justify-content:space-between}.relics{font-size:10px;line-height:1.95}.event-screen{max-width:760px}.event-reveal{display:flex;align-items:center;gap:27px;padding:30px;margin:27px 0 23px;border:1px solid #b08d8b55;background:linear-gradient(135deg,#9b6f8420,#23334c50);border-radius:7px;position:relative;overflow:hidden}.event-reveal:after{content:'✧';font:170px Georgia;color:#d4a3b109;position:absolute;right:-10px;top:-30px;pointer-events:none}.event-reveal.buff{border-color:#8ab5a166;background:linear-gradient(135deg,#7eaf8d22,#233e4c50)}.event-reveal.mixed{border-color:#c4ab7866;background:linear-gradient(135deg,#c4ab7820,#23334c50)}.event-sigil{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:108px;height:108px;font:55px Georgia;color:var(--gold);border:1px solid #d8c59077;transform:rotate(0);border-radius:50%;box-shadow:inset 0 0 30px #caaa6d10,0 0 25px #0002}.event-copy h3{font-family:var(--serif);font-size:30px;letter-spacing:4px;font-weight:400;color:#f0dfbe;margin-top:5px}.event-copy p{font-size:13px;line-height:1.9;color:#c2d1cf;margin-top:12px;position:relative;z-index:1}.layer-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-block:1px solid var(--line);padding:19px 0}.layer-metrics>div+div{border-left:1px solid var(--line);padding-left:20px}.layer-metrics span{display:block;font-size:10px;color:#a9b9bf;margin-bottom:9px}.layer-metrics b{font:28px Georgia;color:#e0d3ad}.layer-metrics small{font:10px sans-serif;color:#9db1b9}.stage-notice{font-size:11px;line-height:1.9;color:#a6bdc2;margin-top:20px}.event-kind{display:block;font-size:8px;letter-spacing:1px;color:#e5b1aa;margin-bottom:7px}.event-kind.buff{color:#b0d8bc}.event-kind.mixed{color:#e1c588}.event-copy .eyebrow{font-size:10px}.welcome-copy .intro-text{margin-top:18px;margin-bottom:15px}.arena-feedback.visible{max-width:90%;font-size:11px;bottom:40px;padding:6px 12px;line-height:1.5}
@media(min-width:701px) and (max-height:800px){.projectile.multi{max-width:215px;padding:4px 11px}.projectile.multi strong{font-size:15px}.projectile.multi small{font-size:7px;margin-top:2px}.projectile.multi .shot-meter{margin-top:3px}.projectile.multi .projectile-label{font-size:6px;margin-bottom:2px}.battle-event{top:11px;font-size:8px}.player img{height:205px}.enemy img{height:202px}.hand[data-count="6"] .answer-card strong{font-size:14px}.hand[data-count="6"] .card-index small{font-size:8px}.relics{font-size:9px;line-height:1.9}}
@media(max-width:940px){.hand[data-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}.hand[data-count="6"] .answer-card{height:115px}.hand[data-count="6"] .card-glyph{position:absolute;opacity:.3;top:20px}.welcome-art>img{height:520px}}
@media(max-width:700px){.welcome-art{height:195px;min-height:195px}.welcome-art>img{height:350px;width:230px;left:-14px;bottom:-131px;object-position:top center}.hero-picker{bottom:47px}.welcome-copy{padding-top:19px}.bank-pill{font-size:9px;margin-top:10px}.welcome-orbit{top:37px;width:170px;left:15px}.projectile{max-width:160px;min-width:100px;padding:8px 11px}.projectile strong{font-size:17px}.projectile.multi{max-width:170px;min-width:95px;padding:5px 10px}.projectile.multi strong{font-size:14px}.projectile.multi small{font-size:7px}.projectile.multi .projectile-label{font-size:6px}.battle-event{font-size:8px;top:12px;max-width:47%;overflow:hidden;text-overflow:ellipsis}.hand[data-count="6"]{gap:7px}.hand[data-count="6"] .answer-card{height:112px;padding:9px}.hand[data-count="6"] .answer-card strong{font-size:13px}.hand[data-count="6"] .card-index small{font-size:7px}.wave-status{font-size:9px}.event-reveal{padding:20px 15px;gap:17px;margin:20px 0}.event-sigil{width:65px;height:65px;font-size:35px}.event-copy h3{font-size:24px;letter-spacing:2px}.event-copy .eyebrow{font-size:8px;letter-spacing:1px}.event-copy p{font-size:12px;margin-top:8px}.layer-metrics{gap:8px;padding:15px 0}.layer-metrics>div+div{padding-left:10px}.layer-metrics b{font-size:22px}.layer-metrics small{font-size:8px}.layer-metrics span{font-size:9px}.stage-notice{font-size:10px}.player img{height:238px}.enemy img{height:230px}.relics{font-size:10px}.arena-feedback.visible{font-size:9px;bottom:39px}}

@media(max-width:700px){.welcome-art>img{bottom:-165px;height:340px}}
/* Immediate impact feedback; decorative layers never intercept input. */
.single-setting{grid-template-columns:1fr}.health-track,.boss-health{position:relative;overflow:hidden}.health-track #hpBar,.boss-health #bossBar{position:absolute;inset:0 auto 0 0;z-index:2}.health-track .bar-lag,.boss-health .bar-lag{position:absolute;inset:0 auto 0 0;width:100%;height:100%;z-index:1;background:#f5cf80;transition:width .52s ease-out}.boss-health{position:absolute}.impact-layer{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden}.damage-number{position:absolute;transform:translate(-50%,-50%);font:700 36px/1 Georgia,serif;letter-spacing:-1px;white-space:nowrap;text-shadow:0 2px 0 #1a203a,0 0 16px currentColor;animation:damage-float 1s cubic-bezier(.12,.7,.28,1) forwards}.boss-number{color:#ffe5a7}.player-number{color:#ffa6a6}.shield-number{font:600 21px sans-serif;color:#b4ecff;letter-spacing:0}.hit-slash{position:absolute;width:125px;height:4px;transform:translate(-50%,-50%) rotate(-42deg);background:#fff5c8;box-shadow:0 0 12px #fff4d8,0 0 28px #e7ae53;animation:slash-hit .3s ease-out forwards}.hit-slash:after{content:'';position:absolute;inset:-18px 20px;height:2px;background:#d0fbff;transform:rotate(45deg);box-shadow:0 0 12px #d0fbff}.hit-burst{position:absolute;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,#fff8d9 0,#ffe6ab77 12%,transparent 50%);border:2px solid #f9dc9a;box-shadow:0 0 20px #ffe4a97a;transform:translate(-50%,-50%);animation:burst-hit .38s ease-out forwards}.enemy.enemy-hit{animation:enemy-impact .32s ease-out}.player.player-hit{animation:player-impact .34s ease-out}.player.shield-hit .ground-rune{box-shadow:0 0 45px #c1faff,inset 0 0 35px #b9eaff}.arena-injury{animation:arena-injury .36s ease-out}.arena-injury:before{content:'';position:absolute;inset:0;z-index:10;pointer-events:none;box-shadow:inset 0 0 80px #f46c6c80;background:#ab3a3a0f}.enemy.defeated img{animation:boss-collapse .65s ease-in forwards}.combo-pop{animation:combo-pop .28s ease-out}.combat-actions .keyboard-hint{white-space:nowrap}
@keyframes damage-float{0%{opacity:1;transform:translate(-50%,-15%) scale(.6)}15%{transform:translate(-50%,-50%) scale(1.18)}35%{opacity:1;transform:translate(-50%,-90%) scale(1)}100%{opacity:0;transform:translate(-50%,-220%) scale(.9)}}
@keyframes slash-hit{0%{opacity:1;width:0;transform:translate(-50%,-50%) rotate(-42deg) scale(.6)}35%{opacity:1;width:145px}100%{opacity:0;width:175px;transform:translate(-50%,-50%) rotate(-42deg) scale(1.2)}}
@keyframes burst-hit{0%{opacity:1;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}
@keyframes enemy-impact{0%,100%{transform:translateX(0);filter:none}15%{transform:translateX(10px) rotate(2deg);filter:brightness(1.9)}45%{transform:translateX(-4px)}75%{transform:translateX(2px)}}
@keyframes player-impact{0%,100%{transform:translateX(0);filter:none}15%{transform:translateX(-9px) rotate(-2deg);filter:brightness(1.5) sepia(.4)}45%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
@keyframes arena-injury{0%,100%{transform:translateX(0)}15%{transform:translateX(-3px)}45%{transform:translateX(3px)}75%{transform:translateX(-1px)}}
@keyframes boss-collapse{0%{opacity:1;filter:brightness(1.5)}40%{opacity:.8;filter:brightness(2)}100%{opacity:0;transform:translateY(14px) scale(.94);filter:brightness(2) blur(3px)}}
@keyframes combo-pop{50%{transform:scale(1.24);color:#fff4ca}}
@media(max-width:700px){.damage-number{font-size:29px}.shield-number{font-size:17px}.hit-slash{max-width:100px}.hit-burst{width:65px;height:65px}}
@media(prefers-reduced-motion:reduce){.enemy.enemy-hit,.player.player-hit,.arena-injury,.enemy.defeated img{animation:none!important}.damage-number{animation:none!important;opacity:1}}
/* PEP edition: curriculum choices fit the same opening screen. */
.modal.welcome{overflow-y:auto}.pep-welcome{padding-top:28px;padding-bottom:23px}.pep-welcome .welcome-title{font-size:48px;margin-top:12px;letter-spacing:6px}.pep-welcome .intro-text{font-size:14px;margin:12px 0 14px;line-height:1.8}.pep-welcome .form-grid{margin-top:13px}.pep-welcome .bank-pill{margin-top:12px;line-height:1.8;min-height:18px}.pep-welcome .start-button{margin-top:18px}.pep-welcome .privacy-line{font-size:9px}.pep-welcome .welcome-bottom{margin-top:8px}.pep-welcome select{font-size:11px}.pep-welcome .edition{font-size:9px;letter-spacing:1.5px}@media(max-width:700px){.pep-welcome{padding:20px 22px}.pep-welcome .welcome-title{font-size:38px}.pep-welcome .form-grid{gap:10px}.pep-welcome .bank-pill{font-size:9px}.pep-welcome .privacy-line{font-size:8px;line-height:1.8}}@media(max-width:400px){.pep-welcome .curriculum-select{grid-template-columns:1fr}}

.offline-panel{margin:12px 0;padding:10px 12px;border:1px solid #bda56c55;border-radius:10px;background:#101a2c99;font-size:12px;color:#ddccaa}.offline-panel>div{display:flex;flex-wrap:wrap;gap:8px}.offline-panel .text-btn{font-size:12px;padding:7px 0}.offline-panel p{line-height:1.65;margin:4px 0}.offline-panel [hidden]{display:none!important}
