:root{--ink:#283f35;--muted:#687769;--paper:#f5f3e6;--jade:#3c705c;--line:#b6b89a;--gold:#b19a60;--red:#ae5440;--serif:"STKaiti","Kaiti SC","KaiTi","Songti SC","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:#d5dfce;color:var(--ink);font:13px/1.5 var(--sans)}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:default}button:focus-visible{outline:3px solid #bb823c;outline-offset:2px}button:active:not(:disabled){transform:translateY(1px)}button span{pointer-events:none}h1,h2,h3,p{margin:0}button{border-radius:3px}.app-shell{max-width:480px;min-height:100dvh;margin:auto;padding-bottom:108px;background:#edf1df;position:relative;isolation:isolate;box-shadow:0 0 70px #344b3025;overflow:hidden}.app-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(#f7f7eb99,#eff2e3bd 55%,#edf1e7e8),url("assets/landscape.webp") center top/100% auto repeat-y;z-index:-1;pointer-events:none}
.topbar{height:69px;display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid #9faa8f45;background:#f6f6ea90}.brand{display:flex;align-items:center;gap:9px;font:29px var(--serif);letter-spacing:4px}.brand small{display:block;font:8px var(--sans);color:#798770;letter-spacing:3px;margin-top:2px}.seal{font:23px var(--serif);background:var(--red);color:#fff0ce;border:3px double #f5e9cb;padding:2px 3px;letter-spacing:1px;border-radius:3px;transform:rotate(-4deg)}.icon-button{width:44px;height:44px;background:#eef0e140;border:1px solid #aab29988;border-radius:50%;font:19px var(--serif)}main{padding:0 16px}.journey{display:flex;align-items:center;justify-content:space-between;padding:12px 0 9px;font-size:11px}.journey b{font:27px Georgia,serif;color:#3f5b48}.money{color:#877239;font-size:16px}.money small{font-size:9px;font-weight:400}.hearts{font-style:normal;color:#b2644c;letter-spacing:2px}.hearts i{font-style:normal;opacity:.22}.route{display:flex;gap:4px;margin-bottom:13px}.route span{height:3px;flex:1;background:#a5b19540}.route .current{background:#b49c62}.route .win{background:#60816a}.route .loss,.route .draw{background:#ae705a}
.character-art{display:inline-block;background-repeat:no-repeat;background-position:var(--x) var(--y);flex-shrink:0;pointer-events:none}.chibi-art{background-image:url("assets/chibis.webp");background-size:300% 100%;aspect-ratio:1;width:100%}.enemy-art{background-image:url("assets/enemies.webp");background-size:400% 200%;aspect-ratio:1;width:100%}.hero-art{background-image:url("assets/heroes.webp");background-size:300% 153%;background-position:var(--x) 0;aspect-ratio:512/670;width:100%}.weapon-art{display:block;width:100%;aspect-ratio:1;background-size:400% 400%;background-repeat:no-repeat;background-position:var(--x) var(--y);pointer-events:none;filter:drop-shadow(0 4px 3px #404a3b30)}.atlas-a{background-image:url("assets/weapons-a.webp")}.atlas-b{background-image:url("assets/weapons-b.webp")}
.profile{border:1px solid #9eab859c;border-radius:4px;background:linear-gradient(135deg,#fbf9ebed,#e7eddde8);padding:11px;box-shadow:inset 0 0 0 3px #f2f1e3,0 3px 12px #3151350b}.profile-main{display:flex;align-items:center;gap:8px}.profile-main .avatar{width:65px;height:65px}.profile-title{flex:1;min-width:0}.profile-title small{font-size:9px;color:#6c7b67}.profile-title h2{font:25px var(--serif);letter-spacing:3px;margin:2px 0}.profile-title>span{font-size:9px;color:#697a68}.profile-vital{text-align:right}.profile-vital small{font-size:10px;display:block;color:#4f7054}.profile-vital b{font:32px Georgia,serif;display:block;line-height:1.1}.profile-vital em{font:10px var(--sans);font-style:normal;color:#7a866f}.hp-track{height:8px;border:1px solid #9daa8066;background:#d8deca;border-radius:2px;overflow:hidden;margin-top:6px}.hp-track i{display:block;height:100%;background:linear-gradient(90deg,#4e8061,#90a96f);transition:width .12s linear}.profile-caption{display:flex;justify-content:space-between;font-size:9px;color:#7b866f;margin-top:4px}
.passive-panel{display:flex;align-items:center;width:100%;text-align:left;gap:7px;position:relative;padding:9px 8px;margin-top:9px;background:#e3e9d580;border:1px solid #a9b48d70;overflow:hidden;min-height:50px}.passive-mark{background:#486e58;color:#e5e6be;border:2px double #b6c196;border-radius:50%;font:17px var(--serif);width:30px;height:30px;display:grid;place-items:center;flex-shrink:0}.passive-copy{flex:1;min-width:0}.passive-copy b{font:15px var(--serif);letter-spacing:1px;display:block}.passive-copy small{font-size:9px;color:#6e7c63;display:block;line-height:1.4;margin-top:2px}.passive-count{font:13px Georgia,var(--serif);color:#8c7742;white-space:nowrap}.passive-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:#aebc8d30}.passive-track i{display:block;height:100%;background:#b19653;transition:width .1s}.talent-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.talent-chips span{font-size:9px;padding:2px 6px;border:1px solid #b1a86a66;background:#eee7cb;color:#88733b}
.market-banner{position:relative;margin-top:15px;padding:15px 12px;border-bottom:1px solid #a9ad8b66;background:linear-gradient(90deg,#e4ead54d,#f6f1dc30);overflow:hidden}.eyebrow{font-size:9px;letter-spacing:3px;color:#7d886b}.market-banner h1{font:24px var(--serif);letter-spacing:1px;margin-top:5px}.red-seal{position:absolute;right:10px;top:15px;writing-mode:vertical-rl;color:#a4513e;border:1px solid #b36c58;padding:5px 2px;font:12px var(--serif);letter-spacing:3px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px;gap:5px}.section-head h2{font:23px var(--serif);letter-spacing:2px}.section-head h2 small{font:9px var(--sans);letter-spacing:0;color:#7e866c}.section-head>span{font-size:10px;color:#7e866c}.shop-tools{display:flex;gap:4px}.shop-tools button{background:#f6f3e480;border:1px solid #a8b29099;min-height:40px;padding:5px 7px;font-size:10px}.shop-tools .active{background:#d1ddc5;color:#3d624d;border-color:#789066}.odds{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:10px;padding:4px 0 9px}.odds>span:first-child{color:#848b75}.odds button{background:transparent;border:0;color:#4e7860;min-height:30px;font-size:10px}.r0{color:#817b69}.r1{color:#427b9e}.r2{color:#8753a0}.r3{color:#b66a24}
.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.equipment-card{position:relative;background:linear-gradient(150deg,#fcf9edf5,#e8e6d4f5);border:1px solid #a9a58d;border-radius:4px;box-shadow:inset 0 0 0 3px #f8f4e3,0 4px 7px #56634a0b;padding:9px;overflow:hidden}.equipment-card:before,.equipment-card:after{content:"";position:absolute;left:3px;right:3px;height:3px;border-top:1px solid #b7a47188;pointer-events:none}.equipment-card:before{top:3px}.equipment-card:after{bottom:3px}.quality-1{border-color:#6f9ba4!important}.quality-2{border-color:#9c76ab!important;background-image:linear-gradient(140deg,#faf5ec,#e5ddea)!important}.quality-3{border-color:#c09042!important;background-image:linear-gradient(140deg,#fff7da,#efe0b9)!important;box-shadow:inset 0 0 0 2px #f1dca6,0 0 15px #e6b65320}
.card-top{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#7d866f}.rarity-label{font-size:9px;border:1px solid currentColor;padding:1px 5px;border-radius:2px;display:inline-block}.art-button{display:block;width:100%;height:113px;border:0;background:radial-gradient(ellipse,#c3c8af35,transparent 72%);padding:0}.art-button .weapon-art{width:112px;height:112px;margin:auto}.equipment-card h3{font:21px var(--serif);letter-spacing:2px;margin:3px 0 4px}.card-stat{display:flex;align-items:baseline;gap:6px}.card-stat b{font:22px Georgia,serif;color:#596c4f}.card-stat span{font-size:9px;color:#7b806b}.equipment-card p{font-size:9px;color:#7b806b;margin:5px 0 8px;min-height:15px}.buy{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:42px;padding:6px 8px;border:1px solid #a7ad8399;background:#d9e0c8;color:#3f644c;font-size:11px}.buy b{font-size:13px;color:#8b713a}.quality-3 .buy{background:#e8c98785;border-color:#b49658}.quality-2 .buy{background:#dbcde291;border-color:#aa8db0}.sold{filter:grayscale(.6);opacity:.5}.sold .art-button:after{content:"已结缘";position:absolute;top:75px;left:25px;right:25px;color:#a35947;border:2px solid #a35947;transform:rotate(-14deg);font:22px var(--serif);background:#f3ead9b8}
.hint{font-size:9px;color:#77856c;margin:8px 0;line-height:1.6}.inventory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.item-slot{position:relative;min-width:0;background:#f5f1e3e8;border:1px solid #a7b08b;padding:6px 3px 7px;overflow:hidden;min-height:106px;display:flex;align-items:center;flex-direction:column;gap:3px}.item-slot .weapon-art{width:55px;height:55px}.item-slot b{font:15px var(--serif);letter-spacing:.5px;white-space:nowrap}.item-slot small{font-size:8px;white-space:nowrap}.item-stars{position:absolute;top:3px;right:3px;font-size:8px;color:#9f7a32;letter-spacing:1px}.empty-slot{border:1px dashed #a2b18b77;background:#ecf1e252;min-height:106px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:24px;color:#96a082}.empty-slot small{font-size:9px}.synergies{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0}.synergy{background:#f1efdf9c;border:1px solid #b4b79766;font-size:9px;padding:3px 6px;color:#859078}.synergy.active{color:#3b684c;background:#d4e0c8;border-color:#819a6c}.next-enemy{width:100%;display:flex;align-items:center;gap:9px;background:#e2e9d590;border:1px solid #9ba88888;margin:17px 0 0;padding:8px;text-align:left}.enemy-preview{width:64px;height:64px}.next-enemy>span:not(.character-art){flex:1}.next-enemy small{display:block;color:#7a846b;font-size:9px}.next-enemy b{font:21px var(--serif);display:block}.next-enemy em{font-style:normal;font-size:10px;color:#7a846b;display:block}.next-enemy>strong{font-size:10px;font-weight:400;color:#4d7458}
.dock{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);z-index:20;padding:11px 16px max(12px,env(safe-area-inset-bottom));background:#f4f2e4f5;border-top:1px solid #a8ad8b;box-shadow:0 -5px 20px #4967460d;backdrop-filter:blur(12px);display:flex;align-items:center;gap:10px}.dock:empty{display:none}.dock-note{flex:1;min-width:0}.dock-note b{font:16px var(--serif);display:block;color:#3b5946}.dock-note small{font-size:9px;color:#7c856d;display:block;margin-top:3px}.primary{background:#3e634e;color:#f6e9be;border:1px solid #3b5e46;box-shadow:inset 0 0 0 2px #8e9d6d70,0 3px 0 #2d4c38;min-height:48px;padding:10px 16px;font:19px var(--serif);letter-spacing:1px;border-radius:2px}.secondary{border:1px solid #a9b08c;background:#e8e9d6;color:#596e50;min-height:44px;padding:8px 12px}.full{width:100%}.text-button{border:0;background:transparent;color:#587459;min-height:42px;font-size:11px}
.modal-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:15px;background:#243a307d;backdrop-filter:blur(5px)}.modal-backdrop[hidden]{display:none}.modal-content{width:100%;max-width:420px;max-height:calc(100dvh - 30px);overflow:auto;overscroll-behavior:contain;position:relative;padding:24px 20px;background:#f4f2e6;border:1px solid #9eaa88;border-radius:4px;box-shadow:inset 0 0 0 4px #dce2ce,0 20px 70px #15281f55}.modal-content h2{font:29px var(--serif);letter-spacing:2px;margin:5px 0 12px}.modal-content>p{color:#748067;font-size:11px;line-height:1.8;margin:9px 0}.modal-content h3{font:20px var(--serif);margin:15px 0 8px}.modal-content h3 small{font:10px var(--sans);display:block;margin-top:4px;color:#7f896f}.close{position:absolute;right:7px;top:7px;min-width:44px;min-height:44px;border:0;background:transparent;font-size:25px;color:#637257;z-index:5}
.hero-showcase{height:265px;position:relative;overflow:hidden;background:#dce5d8;border:1px solid #a8b39a;box-shadow:inset 0 0 30px #526b4933}.hero-showcase .hero-art{width:220px;position:absolute;right:-3px;top:-9px}.hero-caption{position:absolute;left:17px;bottom:23px;max-width:142px;padding:9px;background:#e8eddddf;border-left:3px solid #af5843}.hero-caption>span{font-size:10px;color:#7e8268}.hero-caption h3{font:30px var(--serif);margin:4px 0;letter-spacing:3px}.hero-caption small{font-size:9px;color:#738365}.hero-tabs{display:flex;gap:5px;margin:10px 0}.hero-tabs button{flex:1;border:1px solid #a6b090;background:#e5ead8;min-height:44px;font:17px var(--serif)}.hero-tabs .selected{background:#496e55;color:#f2e8c5;border-color:#496e55}.welcome-passive{background:#e5ebd8;padding:10px 11px;border-left:2px solid #6c8a5e}.welcome-passive b{font:17px var(--serif)}.welcome-passive p{font-size:11px;color:#64775d;margin:5px 0}.welcome-passive small{font-size:9px;color:#7e866b;line-height:1.6;display:block}.intro-steps{display:flex;justify-content:space-around;margin:13px 0;font-size:10px;color:#8b865e}.intro-steps span+span:before{content:"→";margin-right:18px;color:#a4ad8d}.fine{font-size:9px!important;color:#90977d!important;text-align:center;margin:12px 0 0!important}
.detail-art{width:190px;height:190px;margin:5px auto 15px;background:radial-gradient(circle,#dce4c9,transparent 70%)!important;border:1px solid #a9b69399;border-radius:50%;padding:15px}.detail-title{text-align:center}.detail-title h2{margin:9px 0}.detail-title small{font-size:10px;color:#80866f}.effect-text{font-size:13px!important;color:#4e674c!important;margin-top:15px!important}.info-box{padding:11px;background:#e4ead6;border-left:2px solid #8f9d66;margin:14px 0}.info-box b{font:17px var(--serif)}.info-box p{font-size:11px;color:#718260;line-height:1.8;margin:4px 0}.detail-actions{display:flex;gap:8px;margin-top:16px}.detail-actions button{flex:1}.talent-option{width:100%;display:flex;align-items:center;gap:11px;border:1px solid #9aaa80;background:#e6ecd9;padding:14px 11px;margin:10px 0;text-align:left}.talent-option>span{font:27px var(--serif);color:#6c8557;border:1px solid #99a77e;padding:6px}.talent-option div{flex:1}.talent-option h3{margin:0 0 6px;font-size:20px}.talent-option p{font-size:11px;color:#6b7d5c;line-height:1.6}.talent-option>b{font-size:10px;color:#7d8158}.enemy-portrait{width:155px;margin:0 auto}.preview-loadout{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:15px 0}.preview-item{background:#e8ead9;border:1px solid #a4b08b;display:flex;align-items:center;flex-direction:column;padding:5px}.preview-item .weapon-art{width:65px}.preview-item>small{font:14px var(--serif);margin:3px 0}.preview-item .rarity-label{font-size:8px}.codex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.codex-grid button{background:#e6ead9;border:1px solid #acb194;min-height:91px;padding:4px}.codex-grid button>span:last-child{font:12px var(--serif);display:block;margin-top:3px}.help-list{padding-left:18px}.help-list li{font-size:11px;color:#697960;line-height:1.9;padding:7px 0}.help-list b{color:#375d43}.result{text-align:center}.result-seal{font:47px var(--serif);border:2px solid #829767;border-radius:50%;width:91px;height:91px;display:grid;place-items:center;margin:10px auto 20px;background:#e6ebd7;color:#536d45;box-shadow:0 0 0 5px #b6c29833}.result h2{font-size:26px;margin:13px 0}.result p{font-size:11px;color:#728067;line-height:1.8}.result-stats{display:flex;justify-content:space-evenly;border-top:1px solid #b1b89a;border-bottom:1px solid #b1b89a;padding:16px 0;margin:18px 0;font-size:10px;color:#8b8e73}.result-stats b{font:27px Georgia,var(--serif);color:#607650;display:block;margin-bottom:4px}
.toast{position:fixed;bottom:110px;left:50%;transform:translate(-50%,10px);z-index:100;background:#3c614ef5;color:#faf0d0;max-width:calc(100% - 28px);padding:11px 15px;opacity:0;pointer-events:none;transition:.2s;font-size:11px;border:1px solid #a0b17a;box-shadow:0 3px 15px #283d2833;border-radius:3px;width:max-content}.toast.show{opacity:1;transform:translate(-50%,0)}
.in-battle .topbar{height:51px;padding:7px 14px}.in-battle .brand{font-size:23px}.in-battle .brand small{display:none}.in-battle .seal{font-size:19px;padding:1px 2px}.in-battle main{padding:0 12px}.in-battle .journey{padding:6px 0;font-size:10px}.in-battle .journey b{font-size:23px}.in-battle .route{margin-bottom:6px}.in-battle .app-shell:before{background:linear-gradient(#f3f3e699,#dbe8d46b),url("assets/landscape.webp") center/cover no-repeat}.battle-label{font:13px var(--serif);display:flex;justify-content:space-between;align-items:center;margin:7px 0;color:#758161}.battle-label span:last-child{font:9px var(--sans);color:#527754}.fighter{background:#f0f3e4e6;border:1px solid #8f9e78aa;padding:9px 10px;border-radius:3px;box-shadow:inset 0 0 0 2px #f8f5e5}.fighter.enemy{background:#f5efdfeb;border-color:#b79d7c99;padding:8px 10px}.vitals{display:flex;justify-content:space-between;align-items:center}.vitals small{font-size:9px;color:#6c7f5e}.vitals h2{font:21px var(--serif);letter-spacing:1px;margin:1px 0 0}.vital-value{text-align:right}.vital-value small{display:block}.vital-value b{font:29px Georgia,serif;color:#426846}.vital-value em{font:10px var(--sans);font-style:normal;color:#7a876d}.vital-value.low b,.dock-vital b.low{color:#b35a3d}.enemy .vital-value b{color:#98664b}.enemy .hp-track i{background:linear-gradient(90deg,#a77b5e,#c3a078)}.states{display:flex;align-items:center;gap:7px;font-size:9px;min-height:24px;flex-wrap:wrap;color:#7e7d54}.states .poison{color:#74823e}.states .burn{color:#b76031}.states .freeze{color:#4e8a9c}.enemy-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.enemy-slots .item-slot{min-height:48px;padding:2px 1px 5px;gap:0}.enemy-slots .weapon-art{width:27px;height:27px}.enemy-slots .item-slot b{font:8px var(--sans);letter-spacing:0;max-width:100%;overflow:hidden}.enemy-slots .item-slot small{display:none}.enemy-slots .item-stars{font-size:5px;right:1px;top:1px}.enemy-passive{font-size:8px;color:#927a57;margin-top:5px}.battle-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.battle-slots .item-slot{min-height:77px;padding:3px 1px 6px;gap:1px}.battle-slots .weapon-art{width:36px;height:36px}.battle-slots .item-slot b{font-size:13px}.battle-slots .item-slot small{font-size:8px}.charge{position:absolute;height:3px;bottom:0;left:0;right:0;background:#b8c1a244}.charge i{display:block;height:100%;background:#a78a49;transition:width .1s linear}.item-slot.firing{border-color:#bca059!important;box-shadow:inset 0 0 13px #dec48266}.self .passive-panel{padding:5px 7px;min-height:42px;margin-top:6px}.self .passive-mark{width:25px;height:25px;font-size:15px}.self .passive-copy b{font-size:14px}.self .passive-copy small{font-size:8px}
.arena{height:166px;position:relative;margin:0;isolation:isolate;overflow:hidden}.arena-mist{position:absolute;inset:0;background:radial-gradient(ellipse at bottom,#f7f4dfd9,transparent 65%)}.arena:after{content:"";position:absolute;left:3%;right:3%;bottom:11px;border:1px solid #77957655;border-radius:50%;height:30px;box-shadow:0 0 0 7px #d2dec24d}.duelist{position:absolute;width:134px;top:0;z-index:2;text-align:center}.duelist.ally{left:calc(20% - 67px)}.duelist.foe{left:calc(80% - 67px)}.duelist .character-art{width:134px;height:134px;filter:drop-shadow(0 4px 4px #53614444)}.duelist>span:last-child:not(.character-art){font:13px var(--serif);display:block;color:#425d44;background:#edf0ddc7;max-width:100px;margin:-6px auto 0;border:1px solid #b3b99a66;position:relative;padding:1px 4px}.arena-clock{position:absolute;top:48px;left:50%;transform:translateX(-50%);text-align:center;z-index:3}.arena-clock b{font:28px Georgia,serif;color:#77734e;text-shadow:0 1px 2px #fff}.arena-clock small{font-size:9px;margin-left:2px}.arena-clock span{display:block;font-size:8px;color:#7b8464;margin-top:5px;background:#f0f2df99;padding:2px 4px}.battle-callout{position:absolute;top:30px;left:0;right:0;text-align:center;z-index:9;font:47px var(--serif);letter-spacing:12px;color:#355c40;text-shadow:0 2px 15px #fff6bd;transition:opacity .3s;pointer-events:none}.battle-callout.fade{opacity:0}.duelist.frozen .character-art{filter:drop-shadow(0 0 6px #5aa9ca) saturate(.4)}.duelist.frozen:after{content:"❄";color:#c6f1f8;font-size:60px;position:absolute;left:35px;top:30px;opacity:.75;text-shadow:0 0 7px #519eb6}.duelist.poisoned{background:radial-gradient(ellipse,#bdce6c3d,transparent 75%)}.duelist.defeated{opacity:.25;transform:translateY(10px) rotate(-8deg);filter:grayscale(1);transition:.5s}
#effects{position:absolute;inset:0;z-index:8;overflow:hidden;pointer-events:none}.float{position:absolute;font:bold 25px Georgia,var(--serif);color:#a75632;text-shadow:0 1px 1px #fff,0 0 7px #ffefc8;white-space:nowrap;animation:float-up .9s forwards}.fx-heal,.fx-shield{color:#3e8b5a;font-size:20px}.fx-poison,.fx-dot{color:#758b31}.fx-core,.fx-passive{color:#bd7927;font-size:29px}.fx-freeze{color:#4189a6}.fx-burn{color:#bd5937}.burst-label{position:absolute;top:6px;left:50%;transform:translateX(-50%);font:19px var(--serif);color:#815c21;text-shadow:0 0 5px #fff3be;white-space:nowrap;letter-spacing:3px;animation:burst .8s forwards}.bolt{position:absolute;top:64px;width:27px;height:4px;border-radius:50%;background:#dfb357;box-shadow:0 0 7px #e9bd57}.bolt.frost{background:#7ccfdf;box-shadow:0 0 8px #75b8d2}.bolt.poison{width:10px;height:10px;background:#b3c25b}.bolt.fire{background:#ed9a58;box-shadow:0 0 10px #dc6d28}.bolt.thunder{background:#b39bdd;box-shadow:0 0 10px #9974cd}.battle-log{min-height:28px;margin-top:7px;padding:6px 8px;background:#e4ead7c9;border:1px solid #b2b99a77;font-size:10px;color:#6e7d5e}
.in-battle .dock{padding:9px 12px max(10px,env(safe-area-inset-bottom));gap:8px}.dock-vital{flex:1}.dock-vital>span{font-size:10px;color:#5b7756;display:block}.dock-vital b{font:25px Georgia,serif;display:block;color:#3b6043;white-space:nowrap}.dock-vital small{font-size:9px;color:#81896d;display:block}.speed{display:flex;gap:4px}.speed button{width:39px;height:44px;background:#e7ebd8;border:1px solid #9fae88;padding:0;font-size:11px}.speed .selected{background:#4c7457;color:#f7eac6;border-color:#4c7457}.speed #pause{width:43px;font-size:17px}
@keyframes float-up{0%{opacity:0;transform:translate(-50%,10px) scale(.8)}15%{opacity:1;transform:translate(-50%,0) scale(1.1)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-30px)}}@keyframes burst{0%{opacity:0}20%,70%{opacity:1}100%{opacity:0}}
@media(min-width:600px){body{padding:20px 0}.app-shell{border:1px solid #b6c4a5;border-radius:6px;min-height:calc(100dvh - 40px)}}
@media(max-width:360px){main{padding:0 11px}.profile{padding:9px}.profile-main .avatar{width:51px;height:51px}.profile-title h2{font-size:22px}.profile-title>span{font-size:8px}.profile-vital b{font-size:28px}.section-head h2{font-size:20px}.shop-tools button{padding:4px 5px;font-size:9px}.equipment-card{padding:8px}.art-button{height:102px}.art-button .weapon-art{width:101px;height:101px}.equipment-card h3{font-size:19px}.card-stat span{font-size:8px}.market-banner h1{font-size:21px}.equipment-card p{font-size:8px}.dock{padding-left:11px;padding-right:11px}.dock-note b{font-size:14px}.primary{padding:10px 13px;font-size:17px}.hero-showcase{height:240px}.hero-showcase .hero-art{width:196px}.hero-caption{left:8px;max-width:128px}.modal-content{padding:22px 16px}.speed button{width:34px}.speed #pause{width:37px}.in-battle main{padding:0 9px}.duelist{width:117px}.duelist .character-art{width:117px;height:117px}.duelist.ally{left:calc(20% - 58px)}.duelist.foe{left:calc(80% - 58px)}.arena{height:149px}}
@media(max-height:780px){.in-battle .topbar{height:43px}.in-battle .journey{padding:4px 0}.in-battle .journey b{font-size:21px}.in-battle .route{margin-bottom:4px}.battle-label{margin:5px 0}.fighter{padding:7px 9px}.fighter.enemy{padding:6px 8px}.vitals h2{font-size:19px}.vital-value b{font-size:26px}.states{min-height:21px}.arena{height:133px}.duelist .character-art{width:113px;height:113px}.duelist{width:113px}.duelist.ally{left:calc(20% - 56px)}.duelist.foe{left:calc(80% - 56px)}.duelist>span:last-child:not(.character-art){font-size:11px}.arena-clock{top:38px}.battle-slots .item-slot{min-height:67px}.battle-slots .weapon-art{width:29px;height:29px}.battle-slots .item-slot b{font-size:12px}.enemy-slots .item-slot{min-height:41px}.enemy-slots .weapon-art{width:23px;height:23px}.self .passive-panel{min-height:37px;margin-top:5px}.battle-log{margin-top:5px;min-height:25px;padding:4px 7px}.hero-showcase{height:225px}.hero-showcase .hero-art{width:190px}.modal-content h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.float{opacity:1}.bolt{display:none}}
.in-battle .arena{height:146px}.in-battle .duelist .character-art{width:119px;height:119px}.in-battle .duelist{width:119px}.in-battle .duelist.ally{left:calc(20% - 59px)}.in-battle .duelist.foe{left:calc(80% - 59px)}
@media(max-height:780px){.in-battle .arena{height:111px}.in-battle .duelist .character-art{width:94px;height:94px}.in-battle .duelist{width:94px}.in-battle .duelist.ally{left:calc(20% - 47px)}.in-battle .duelist.foe{left:calc(80% - 47px)}.in-battle .duelist>span:last-child:not(.character-art){font-size:10px}.in-battle .arena-clock{top:30px}.in-battle .arena-clock b{font-size:24px}}
