:root{color-scheme:dark;--bg:#090e20;--surface:#121a32;--surface-2:#19233f;--line:#2c3755;--text:#f5f6ff;--muted:#a8b1cb;--accent:#f3ba62;--accent-deep:#bd7739;--cyan:#77d5db;--purple:#b39cf8;--green:#9fe0a7;--red:#f6979f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse 80% 55% at 90% -5%,#1b2450 0%,transparent 72%),var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.44}button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}h1,h2,h3,p{margin-top:0}h2{font-size:1.35rem;line-height:1.2;margin-bottom:0;letter-spacing:-.025em}h3{font-size:.98rem;margin-bottom:0}p{line-height:1.5}.app-shell{max-width:1512px;margin:auto;padding:0 30px}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:11px;font-size:1.02rem;letter-spacing:.14em;font-weight:800}.brand b{color:var(--accent)}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border:1px solid #986e3c;background:#593e31;border-radius:12px;color:#ffd998;font-size:1.5rem}.header-actions{display:flex;align-items:center;gap:20px}.save-label{font-size:.8rem;color:var(--muted)}.ghost-button,.world-tab{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:10px}.ghost-button{padding:9px 14px;font-size:.85rem}.ghost-button:hover,.world-tab:hover{color:var(--text);border-color:#8390b5}.scene{height:230px;border-radius:19px;overflow:hidden;position:relative;background:#1f2947 url('./evren.webp') center 49%/cover no-repeat;border:1px solid #35405d;box-shadow:0 24px 70px #02081476}.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1121dd 0%,#0b1121af 36%,#0b11212b 76%,#10132738)}.scene-content{position:absolute;z-index:1;left:38px;top:37px;max-width:590px}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--accent)}.scene h1{font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.07;letter-spacing:-.045em;margin:13px 0 9px}.scene h1 em{color:#ffd08b;font-style:normal}.scene p{font-size:.93rem;color:#d4d8e8;margin:0}.scene-status{position:absolute;z-index:1;bottom:20px;right:24px;padding:10px 14px;border:1px solid #ffffff55;border-radius:9px;background:#0d1533bb;backdrop-filter:blur(12px);font-weight:700;font-size:.82rem}.world-nav{display:flex;gap:11px;margin:20px 0 28px}.world-tab{padding:12px 18px;font-weight:700;color:#c5cbe1}.world-tab.active{color:#161624;background:var(--accent);border-color:var(--accent)}.world-tab span{font-weight:400;color:#9c9ab3}.world-tab.active span{color:#473a4b}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:0 0 16px}.section-heading h2{font-size:1.55rem;margin-top:5px}.subtle{font-size:.82rem;color:var(--muted);text-align:right}.vitals-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.vital-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:15px 17px}.vital-card.low{border-color:#a45a64;background:#342235}.vital-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}.vital-name{font-weight:700;font-size:.92rem}.vital-value{font-size:1.2rem;font-weight:800;font-variant-numeric:tabular-nums}.vital-note{font-size:.72rem;color:var(--muted);margin-top:8px}.bar-track{height:8px;border-radius:99px;background:#2c3753;overflow:hidden}.bar-fill{height:100%;border-radius:inherit;background:var(--bar-color);transition:width .25s ease}.earth-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,1fr);max-width:1150px;gap:12px;align-items:start;margin-top:18px}.card{border:1px solid var(--line);background:linear-gradient(145deg,#151f39,#11182e);border-radius:16px;padding:22px}.card-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.card-top h2{font-size:1.3rem;margin:5px 0 0}.card-corner{font-size:.72rem;color:#6e7b9e}.wallet-line{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:19px 0 16px}.metric-label{display:block;font-size:.77rem;color:var(--muted);margin-bottom:4px}.wallet-line strong{font-size:1.8rem;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.wallet-chip{border:1px solid #a57b42;color:#f7c879;background:#6b482b55;border-radius:50px;padding:6px 8px;font-size:.62rem;font-weight:800;letter-spacing:.07em}.piggy-button{width:100%;min-height:97px;border:1px solid #ffe1ab;border-radius:15px;color:#201928;background:linear-gradient(140deg,#ffde91,#ecad4e);box-shadow:0 7px 0 #965c2f,0 16px 30px #080d1bbd;display:flex;gap:16px;align-items:center;justify-content:center;text-align:left;transition:transform .1s,box-shadow .1s}.piggy-button:hover{filter:brightness(1.06)}.piggy-button:active{transform:translateY(5px);box-shadow:0 2px 0 #965c2f,0 7px 14px #080d1bbd}.clover-icon{font-size:2.6rem;line-height:1}.piggy-button b{display:block;font-size:1.6rem}.piggy-button small{font-size:.75rem;font-weight:700;color:#604232}.dice-box{margin-top:22px;padding:14px;border:1px solid #33405f;background:#0e1730;border-radius:11px}.dice-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.dice-head h3{margin-bottom:3px}.dice-head p{font-size:.72rem;color:var(--muted);margin:0}.dice-faces{display:flex;gap:6px}.dice-faces span{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:#e7e3e6;color:#302949;font-weight:800}.secondary-button,.primary-button{background:#614b8f;border:1px solid #9a86cd;border-radius:9px;color:#fff;font-weight:800;padding:12px 14px}.secondary-button:hover:not(:disabled){background:#7960ad}.primary-button{color:#271c22;background:var(--accent);border-color:#ffe0ab}.primary-button:hover:not(:disabled){background:#ffd18d}.full{width:100%;margin-top:13px}.hint{font-size:.76rem;line-height:1.4;color:var(--muted);margin:10px 0 0}.percent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.percent-grid button,.small-button{min-height:40px;background:#202d4b;color:#dce6ff;border:1px solid #445477;border-radius:8px;padding:8px 6px;font-weight:700;font-size:.78rem}.percent-grid button:hover:not(:disabled),.small-button:hover:not(:disabled){background:#354972;border-color:#8196c4}.shop-section{margin-top:43px}.need-shop{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.need-column{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.need-column-heading{padding:17px;border-bottom:1px solid var(--line)}.need-column-heading h3{font-size:1.04rem;margin:0}.need-column-heading small{color:var(--muted);font-size:.75rem}.need-list{padding:10px}.need-item{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding:10px 7px;border-bottom:1px solid #2a3550}.need-item:last-child{border-bottom:0}.need-item strong{display:block;font-size:.83rem;line-height:1.25}.need-item small{display:block;font-size:.72rem;color:var(--muted);margin-top:3px;line-height:1.3}.need-item button{grid-row:span 2;min-width:66px}.need-item .free{color:#9fe0a7}.asset-shop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.asset-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:16px}.asset-title{display:flex;align-items:center;gap:10px}.asset-icon{width:39px;height:39px;display:grid;place-items:center;background:#263252;border-radius:10px;font-size:1.18rem}.asset-title h3{margin:0;font-size:.98rem}.asset-title small{display:block;color:var(--muted);font-size:.74rem;margin-top:3px}.asset-detail{min-height:41px;color:#bdc7df;font-size:.79rem;line-height:1.38;margin:13px 0}.asset-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.asset-bottom strong{color:var(--accent);font-size:.89rem}.asset-actions{display:flex;gap:6px}.asset-actions .small-button{padding:8px 10px}.asset-actions .buy{background:#6f552d;color:#ffe2af;border-color:#a4773d}.asset-actions .buy:hover:not(:disabled){background:#936b30}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 38px}.bottom-grid h2{margin-bottom:12px}.empty-state{color:var(--muted);font-size:.85rem;margin:0}.owned-list,.event-list{display:grid;gap:8px}.owned-row,.event-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #283450;font-size:.85rem}.owned-row:last-child,.event-row:last-child{border-bottom:0}.owned-row strong{color:var(--accent)}.event-row time{color:var(--muted);font-size:.75rem;white-space:nowrap}footer{text-align:center;color:#7683a2;font-size:.72rem;padding:14px 0 35px}#toast{position:fixed;right:22px;bottom:22px;z-index:20;max-width:min(460px,calc(100vw - 32px));pointer-events:none;background:#27375c;border:1px solid #8da1d5;color:#fff;padding:13px 18px;border-radius:11px;box-shadow:0 12px 42px #0008;opacity:0;transform:translateY(12px);transition:opacity .25s,transform .25s}#toast.visible{opacity:1;transform:translateY(0)}.death-overlay{position:fixed;inset:0;z-index:30;background:#050917dd;display:grid;place-items:center;padding:20px;backdrop-filter:blur(7px)}.death-overlay[hidden],[hidden]{display:none!important}.death-card{text-align:center;width:min(440px,100%);padding:38px;background:#1b2540;border:1px solid #a7606e;border-radius:22px;box-shadow:0 24px 100px #000a}.death-card h2{font-size:2rem;margin:12px 0}.death-card p{color:#d3d6e7}.death-card button{margin-top:22px;width:100%}.death-card #death-stats{color:var(--muted);font-size:.83rem}.planet-intro{padding:34px;background:linear-gradient(100deg,#202352 0%,#191b39ee 55%,#161c31c7 100%),url('./evren.webp') right center/cover;border:1px solid #695f9a;border-radius:16px;min-height:240px;display:flex;flex-direction:column;align-items:start;justify-content:center}.planet-intro h2{font-size:clamp(1.7rem,2.5vw,2.4rem);margin:10px 0}.planet-intro p{max-width:600px;color:#d4d4e9}.planet-intro .primary-button{margin-top:8px}.planet-top{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-bottom:16px}.planet-header{background:linear-gradient(120deg,#2b2858,#1b2342);border:1px solid #6e64a0;border-radius:16px;padding:22px}.planet-header h2{font-size:1.65rem;margin:7px 0}.planet-header p{font-size:.81rem;color:#c9c4e8;margin:0}.rank-progress{margin-top:16px}.rank-progress .bar-track{margin-top:8px}.planet-money{display:flex;flex-direction:column;gap:10px}.planet-money .currency-row{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;color:#c9d2ec}.planet-money strong{font-size:1.4rem;color:var(--cyan)}.convert-buttons{display:flex;gap:7px;flex-wrap:wrap}.convert-buttons .small-button{flex:1}.planet-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.planet-grid .wide{grid-column:1/-1}.resource-grid,.growth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.growth-grid{grid-template-columns:repeat(4,1fr)}.resource-card,.growth-card{background:#1c2844;border:1px solid #39496e;border-radius:10px;padding:12px}.resource-card span,.growth-card span{display:block;color:var(--muted);font-size:.78rem}.resource-card strong,.growth-card strong{display:block;font-size:1.3rem;margin:5px 0 8px}.resource-card small,.growth-card small{font-size:.74rem;color:#a9b7d2}.resource-card .small-button{width:100%;margin-top:8px}.growth-card strong{color:#d2c2ff}.growth-card small{display:block;line-height:1.3}.stat-shop{margin-top:13px;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.stat-row{padding:11px;background:#1a2540;border:1px solid #334260;border-radius:9px}.stat-row h3{margin-bottom:8px}.stat-options{display:flex;gap:5px;flex-wrap:wrap}.stat-options button{font-size:.75rem;padding:6px 7px}.monster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.monster-card{background:#1d2642;border:1px solid #485173;border-radius:12px;padding:15px}.monster-card.locked{opacity:.7}.monster-card .monster-symbol{display:grid;place-items:center;font-size:1.6rem;width:45px;height:45px;border-radius:11px;background:#46374f;margin-bottom:12px}.monster-card h3{font-size:1.02rem}.monster-card p{color:var(--muted);font-size:.77rem;margin:5px 0}.monster-card button{margin-top:9px;width:100%}.equipment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.equipment-card{border:1px solid #3a4768;border-radius:11px;background:#1b2540;padding:13px}.equipment-card h3{font-size:.88rem;margin:0 0 5px}.equipment-card p{font-size:.75rem;color:var(--muted);margin:0 0 9px}.equipment-card .small-button{width:100%}.inventory-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:13px}.inventory-item{background:#1b2540;border:1px solid #354361;border-radius:10px;padding:11px}.inventory-item strong{font-size:.86rem}.inventory-item p{font-size:.75rem;color:var(--muted);margin:4px 0 9px}.inventory-item .small-button{margin-right:6px}.pill{border-radius:20px;padding:3px 7px;font-size:.66rem;background:#49406b;color:#e7d9ff}.muted{color:var(--muted)}.planet-section-title{font-size:1.3rem;margin-bottom:4px}.small-note{color:var(--muted);font-size:.78rem;margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1100px){.piggy-play{grid-template-columns:1fr}.need-shop{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-shell{padding:0 15px}.site-header{height:68px}.save-label{display:none}.brand{font-size:.81rem;letter-spacing:.1em}.brand-mark{width:32px;height:32px}.scene{height:178px;border-radius:13px}.scene-content{top:18px;left:20px;right:15px}.scene h1{font-size:1.65rem;margin:8px 0 6px}.scene p{font-size:.72rem;max-width:250px}.scene-status{right:11px;bottom:10px;font-size:.68rem;padding:7px 9px}.world-nav{margin:15px 0 25px}.world-tab{font-size:.8rem;padding:10px}.world-tab span{display:none}.section-heading{align-items:start;flex-direction:column;gap:4px}.subtle{text-align:left}.vitals-grid{grid-template-columns:repeat(2,1fr);gap:8px}.vital-card{padding:12px}.vital-name{font-size:.82rem}.vital-value{font-size:1.02rem}.earth-grid,.planet-top,.planet-grid,.bottom-grid{grid-template-columns:1fr}#earth-view{display:flex;flex-direction:column}.earth-grid{display:contents}#earth-view>.section-heading{order:1;margin-top:22px}#earth-view>.vitals-grid{order:2}.piggy-panel{order:0}#earth-view>.shop-section{order:5}#earth-view>.bottom-grid{order:6}.card{padding:17px}.wallet-chip{display:none}.need-shop,.asset-shop,.equipment-grid,.monster-grid,.inventory-list{grid-template-columns:1fr}.growth-grid,.stat-shop{grid-template-columns:repeat(2,1fr)}.resource-grid{grid-template-columns:1fr}.planet-grid .wide{grid-column:auto}.planet-intro{padding:22px}.shop-section{margin-top:34px}.header-actions .ghost-button{font-size:.76rem;padding:8px}.asset-card{padding:14px}}
@media(min-width:761px) and (max-width:980px){.asset-shop,.monster-grid,.equipment-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.deposit-box{margin-top:20px;padding:14px;border:1px solid #527f82;background:linear-gradient(135deg,#183844,#14283b);border-radius:12px}.deposit-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:11px}.deposit-heading h3{font-size:.95rem}.deposit-heading span{color:#b3d5d6;font-size:.72rem;text-align:right}.deposit-all-button{width:100%;min-height:48px;padding:11px 13px;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#9ce0d2;border:1px solid #d5fff5;border-radius:9px;color:#12323d;font-weight:800;text-align:left}.deposit-all-button:hover:not(:disabled){background:#bdf3e4}.deposit-all-button strong{white-space:nowrap;font-size:.88rem}
@media(max-width:420px){.deposit-heading{align-items:start}}

.piggy-play{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:18px;align-items:start}.piggy-play .dice-box{margin-top:19px}
@media(max-width:1100px){.piggy-play{grid-template-columns:1fr}}

.piggy-panel{padding:18px}.piggy-panel .wallet-line{margin:19px 0 13px}.piggy-panel .piggy-button{min-height:82px}.click-level{margin-top:15px}.click-level>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:.76rem;color:var(--muted)}.click-level strong{color:#f6c97d;font-weight:700}.click-level-track{height:5px;margin-top:9px;background:#2f3c57;border-radius:99px;overflow:hidden}.click-level-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#f4b560,#9de0c1);border-radius:inherit;transition:width .25s}.piggy-actions .dice-box{margin-top:19px}.piggy-actions .deposit-box{margin-top:12px}.vital-card.recent{border-color:#85bdad}.vital-effect{display:inline-block;margin-left:5px;color:#a4e6c4;font-size:.75rem}.vital-effect.loss{color:#ffabb0}.need-effect{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin:0 0 13px;padding:12px 14px;border:1px solid #50847d;border-radius:11px;background:#163637;color:#e8fff4}.need-effect strong{font-size:.875rem}.need-effect>div{display:flex;gap:8px;flex-wrap:wrap}.effect-badge{padding:5px 8px;border-radius:7px;background:#294e4b;color:#b6f2d6;font-size:.875rem;font-weight:700}.effect-badge.loss{background:#583a46;color:#ffb9c4}.effect-badge small{font-size:.8rem;color:#e3eaf0;font-weight:500}
@media(max-width:760px){.earth-grid{max-width:none}.click-level>div:first-child{flex-wrap:wrap}.need-effect{align-items:flex-start;flex-direction:column}}

.earth-grid{grid-template-columns:minmax(0,2fr) minmax(220px,.85fr) minmax(270px,1fr);max-width:none}
.tasks-panel{align-self:start}
.tasks-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;cursor:pointer;list-style:none}
.tasks-head::-webkit-details-marker{display:none}
.tasks-head:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
.tasks-head strong{font-size:.94rem}
.tasks-head span{font-size:.7rem;color:var(--muted);white-space:nowrap}
.tasks-head #tasks-completed{margin-left:auto}
.tasks-chevron{color:var(--accent)!important;font-size:1.2rem!important;line-height:1;transition:transform .2s}
.tasks-panel[open] .tasks-chevron{transform:rotate(180deg)}
.tasks-body{padding-top:13px;margin-top:4px;border-top:1px solid var(--line)}
.task-list{display:grid;gap:6px}
.task-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 7px;padding:8px 9px;border:1px solid #344361;border-radius:8px;background:#19243d}
.task-row.current{border-color:#a07949;background:#312a39}
.task-row strong,.task-row span{display:block;line-height:1.3}
.task-row strong{font-size:.77rem}
.task-row span{font-size:.72rem;color:#f3c780;margin-top:2px}
.task-row small{font-size:.68rem;color:var(--muted);white-space:nowrap}
.task-row[data-action]{width:100%;min-width:0;min-height:58px;text-align:left;color:var(--text);font:inherit;cursor:pointer}
.task-row[data-action]:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px #f3ba6240}.task-row[data-action]:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.task-row .task-copy{flex:1;min-width:120px}.task-row .task-go{display:block;margin-top:3px;color:var(--cyan);font-size:.75rem}.task-row .task-status{font-size:inherit;color:inherit}
.task-row .task-copy>strong{color:var(--text)}
.ether-tasks-panel{margin:0 0 18px;border-color:#796096}.ether-tasks-panel .tasks-head>span:not(.tasks-chevron){margin-left:auto}
.ether-tasks-panel[hidden],.task-list[hidden],.side-tasks-title[hidden]{display:none}
@media(min-width:761px){#ether-task-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.task-track{width:100%;height:4px;background:#424059;border-radius:99px;overflow:hidden;margin-top:4px}
.task-track div,.task-track>span{height:100%;background:#e8b76f;border-radius:inherit;margin:0}.task-track[hidden]{display:none}
.tasks-note{font-size:.7rem;color:var(--muted);margin:10px 0 0}
@media(max-width:1100px) and (min-width:761px){.earth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.piggy-panel{grid-column:1/-1}.piggy-play{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}}
@media(max-width:760px){.tasks-panel{order:4;margin-top:14px}.piggy-panel{grid-column:auto}}

.world-nav{margin-bottom:12px}
.shop-menu{position:sticky;top:0;z-index:12;display:flex;align-items:center;gap:14px;min-width:0;margin:0 0 18px;padding:9px 12px;background:#111b30ee;border:1px solid #3b4b6b;border-radius:12px;box-shadow:0 10px 28px #050a1880;backdrop-filter:blur(14px)}
.shop-menu-label{color:var(--accent);font-size:.75rem;letter-spacing:.11em;font-weight:800;white-space:nowrap}
.shop-menu-options{display:flex;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.shop-menu-button{min-height:41px;padding:8px 13px;flex:none;white-space:nowrap;border:1px solid #455474;border-radius:9px;background:#202d48;color:#dbe3fa;font-size:.86rem;font-weight:700}
.shop-menu-button:hover{border-color:#afc4e9;background:#2e4165}
.shop-menu-button.active{border-color:#ffdaa1;background:#f3ba62;color:#241c28}
.need-shop.filtered{grid-template-columns:minmax(0,1fr);max-width:640px}
#need-section,#assets-section{scroll-margin-top:78px}
@media(max-width:760px){.shop-menu{margin:0 -15px 15px;padding:8px 15px;border-radius:0}.shop-menu-label{display:none}.shop-menu-options{width:100%}.shop-menu-button{min-height:44px;font-size:.85rem}.need-shop.filtered{grid-template-columns:1fr}}


.side-tasks-title{font-size:.88rem;margin:15px 0 9px;color:#d7dcf1}
.task-row.done{border-color:#406752;background:#1b3437}
.task-row.done span{color:#9fe0a7}
.battle-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.battle-actions button{min-width:0;line-height:1.25;padding:9px 5px}
.battle-actions button small{display:block;font-size:.72rem;margin-top:4px;font-weight:500}
.battle-actions .power-button{background:#514478;border-color:#a08ccc}
@media(max-width:760px){
  .scene{height:190px}.scene p{font-size:.875rem;line-height:1.3;max-width:235px}
  .vital-name{font-size:.9375rem}.vital-value{font-size:1.12rem}.vital-note{font-size:.8125rem;line-height:1.35}
  .task-row strong{font-size:.875rem}.task-row span,.task-row small{font-size:.8125rem}.tasks-head span,.tasks-note{font-size:.8125rem}
  .need-item strong,.need-item small,.asset-title small,.asset-detail,.monster-card p,.small-note{font-size:.8125rem}
  .small-button,.need-item button,.world-tab,.shop-menu-button{font-size:.875rem}
  .deposit-heading span,.dice-head p,.hint,.metric-label{font-size:.8125rem}
  .monster-card button{min-height:44px}.battle-actions button small{font-size:.75rem}
  footer{font-size:.8125rem}
}

.vitals-panel{padding:10px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.vitals-panel-head h2{font-size:.875rem;line-height:1.1;margin:0 0 8px}
.vitals-panel-head small{font-size:.75rem;color:var(--muted);font-weight:500}
.vitals-panel .vitals-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.vitals-panel .vital-card{min-width:0;padding:4px 14px;border:0;border-radius:0;background:transparent}
.vitals-panel .vital-card+.vital-card{border-left:1px solid var(--line)}
.vitals-panel .vital-card.low{border-radius:8px;background:#392535;box-shadow:inset 0 0 0 1px #a45a64}
.vitals-panel .vital-card.recent:not(.low){border-radius:8px;background:#1e3a3d}
.vitals-panel .vital-top{margin-bottom:6px}
.vitals-panel .vital-note{margin-top:5px}
.vital-note-short{display:none}
@media(max-width:760px){
  #earth-view>.vitals-panel{order:0;position:sticky;top:62px;z-index:11;box-shadow:0 9px 22px #050a1899}
  .piggy-panel{order:1}.tasks-panel{order:3}
  #earth-view>.shop-section{order:4}#earth-view>.bottom-grid{order:5}
  .vitals-panel{padding:8px 9px;border-radius:11px}
  .vitals-panel-head h2{font-size:.8125rem;margin-bottom:5px}
  .vitals-panel .vital-card{padding:3px 5px}
  .vitals-panel .vital-top{flex-direction:column;align-items:flex-start;gap:1px;margin-bottom:4px}
  .vitals-panel .vital-name{font-size:.75rem;white-space:nowrap}
  .vitals-panel .vital-value{font-size:1.05rem;line-height:1.1}
  .vitals-panel .vital-value small{display:none}
  .vitals-panel .bar-track{height:5px}
  .vitals-panel .vital-note{font-size:.75rem;line-height:1.15;margin-top:4px}
  .vital-note-full{display:none}.vital-note-short{display:inline}
  .vitals-panel .vital-effect{font-size:.6875rem;margin:2px 0 0}
  #need-section,#assets-section{scroll-margin-top:164px}
}

.earth-grid{grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr)}
.piggy-panel .wallet-line{margin:12px 0 0}
.piggy-panel .wallet-line strong{font-size:1.55rem;overflow-wrap:anywhere}
.piggy-panel .piggy-play{margin-top:13px}
.piggy-panel .piggy-actions .dice-box{margin-top:0}
@media(min-width:761px) and (max-width:1100px){.earth-grid{grid-template-columns:1fr}.piggy-panel,.tasks-panel{grid-column:1}}
@media(max-width:760px){
  .piggy-panel .wallet-line strong{font-size:1.18rem}
  .piggy-panel .wallet-line .metric-label{font-size:.75rem}
}

.vitals-panel{position:sticky;top:62px;z-index:11;box-shadow:0 9px 22px #050a1899}
.auto-click-box{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:10px;border:1px solid #405571;border-radius:10px;background:#1b2b44}
.auto-click-box strong,.auto-click-box span{display:block}
.auto-click-box strong{font-size:.875rem}
.auto-click-box span{color:var(--muted);font-size:.75rem;margin-top:3px}
.auto-click-box button{min-height:42px;white-space:nowrap;padding:8px 10px}
@media(max-width:760px){
  .auto-click-box{flex-wrap:wrap}
  .auto-click-box button{flex:1 1 135px;min-height:44px}
}

.shop-menu-options{flex:1}
.shop-bank-balance{display:flex;flex:none;flex-direction:column;justify-content:center;align-self:stretch;min-width:105px;max-width:220px;padding-left:12px;border-left:1px solid #455474;text-align:right}
.shop-bank-balance span{color:var(--muted);font-size:.7rem;line-height:1.1}
.shop-bank-balance strong{color:var(--cyan);font-size:.85rem;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media(max-width:760px){
  .shop-menu{gap:8px}
  .shop-menu-options{width:auto;flex:1}
  .shop-bank-balance{min-width:88px;max-width:clamp(88px,28vw,120px);padding-left:7px}
  .shop-bank-balance strong{font-size:.75rem}
}

.quiz-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:#050916dd;backdrop-filter:blur(8px)}
.quiz-card{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:27px;border:1px solid #8b7694;border-radius:18px;background:linear-gradient(150deg,#252447,#151e38 52%,#121a2f);box-shadow:0 25px 90px #000a}
.quiz-card-top,.quiz-stakes,.quiz-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.quiz-category{font-size:.875rem;color:#d6d2f0;font-weight:700}
.quiz-card h2{font-size:clamp(1.45rem,4vw,1.85rem);margin:13px 0 14px}
.quiz-stakes{justify-content:flex-start;flex-wrap:wrap;color:#d3daee;font-size:.875rem}
.quiz-stakes strong{color:#a5ebd8;font-size:1rem}
.quiz-difficulty{padding:5px 10px;border-radius:99px;background:#274247;color:#a6ece5;font-weight:800}
.quiz-difficulty[data-level="orta"]{background:#59442d;color:#ffce81}
.quiz-difficulty[data-level="zor"]{background:#593747;color:#ffb4cb}
.quiz-intro{font-size:1rem;color:#e4e8f5;line-height:1.45;margin:24px 0 13px}
.quiz-timer{display:grid;grid-template-columns:1fr auto;gap:8px;margin:18px 0 0;padding:10px 12px;border:1px solid #53658d;border-radius:10px;background:#243353;color:#cce9f1;font-size:.875rem}.quiz-timer[hidden]{display:none}.quiz-timer strong{font-variant-numeric:tabular-nums;font-size:1rem}.quiz-timer progress{grid-column:1/-1;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;appearance:none;background:#3c4964;accent-color:#85dce1}.quiz-timer progress::-webkit-progress-bar{background:#3c4964}.quiz-timer progress::-webkit-progress-value{background:#85dce1}.quiz-timer progress::-moz-progress-bar{background:#85dce1}.quiz-timer.urgent{border-color:#db8992;background:#442b3d;color:#ffc5cc}.quiz-timer.urgent progress{accent-color:#f59da8}.quiz-timer.urgent progress::-webkit-progress-value{background:#f59da8}.quiz-timer.urgent progress::-moz-progress-bar{background:#f59da8}
.quiz-question{font-size:1.12rem;line-height:1.45;font-weight:700;margin:26px 0 18px}
.quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.quiz-option{display:flex;align-items:center;gap:11px;min-height:60px;width:100%;padding:12px;text-align:left;color:var(--text);background:#243353;border:1px solid #53658d;border-radius:11px;line-height:1.32;font-weight:600;font-size:.9375rem}
.quiz-option:hover:not(:disabled){background:#34486e;border-color:#c9b5f0}
.quiz-option span{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#3d4e75;color:#fff;font-size:.8125rem;font-weight:800}
.quiz-option:disabled{opacity:.66}
.quiz-option.correct,.quiz-option.correct:disabled{opacity:1;border-color:#75c995;background:#244a43}
.quiz-option.incorrect,.quiz-option.incorrect:disabled{opacity:1;border-color:#e898a3;background:#553540}
.quiz-result{margin:15px 0 0;color:#e9f3ef;font-weight:700;font-size:.9375rem}
.quiz-footer{margin-top:23px;padding-top:15px;border-top:1px solid #3c4863;color:var(--muted);font-size:.8125rem}
.quiz-actions{display:flex;align-items:center;gap:8px}
.quiz-footer button{flex:none;min-height:44px}
@media(max-width:550px){.quiz-card{padding:18px}.quiz-options{grid-template-columns:1fr}.quiz-option{min-height:50px}.quiz-question{margin:19px 0 14px}.quiz-footer{align-items:flex-start;flex-direction:column}.quiz-actions{width:100%}.quiz-actions button{flex:1}.quiz-footer button{min-height:44px}}

.piggy-summary h2{font-size:1.3rem;margin:5px 0 0}
.bank-withdraw{margin-top:11px;padding-top:9px;border-top:1px solid #527f82}
.bank-withdraw summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;list-style:none;cursor:pointer;color:#bce5e2;font-size:.875rem;font-weight:700}
.bank-withdraw summary::-webkit-details-marker{display:none}
.bank-withdraw summary::after{content:'⌄';font-size:1.1rem;line-height:1;transition:transform .2s}
.bank-withdraw[open] summary::after{transform:rotate(180deg)}
.bank-withdraw summary:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:5px}
.bank-withdraw .percent-grid{margin-top:7px}
@media(max-width:760px){.bank-withdraw summary,.bank-withdraw .percent-grid button{min-height:44px}}
.dice-stake{margin:12px 0 10px}
.dice-stake-label{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.75rem;margin-bottom:7px}
.dice-stake-label strong{color:var(--text);font-variant-numeric:tabular-nums}
.dice-stake-options button{min-height:38px}
.dice-stake-options button.active{background:#65528e;border-color:#c3adeb;color:#fff}
@media(max-width:760px){.dice-stake-options button{min-height:44px}}

.asset-order{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.asset-quantity{display:flex;align-items:center;gap:6px}
.asset-quantity span{color:var(--muted);font-size:.875rem;font-weight:700;margin-right:4px}
.asset-quantity button{min-width:45px;min-height:44px;padding:8px;border:1px solid #455474;border-radius:8px;background:#202d48;color:#e0e8fa;font-weight:700}
.asset-quantity button:hover{border-color:#afc4e9;background:#2e4165}
.asset-quantity button.active{border-color:#ffdaa1;background:var(--accent);color:#241c28}
.asset-bottom{flex-wrap:wrap}
.asset-bottom strong{max-width:100%;overflow-wrap:anywhere}
.asset-bottom .asset-actions{margin-left:auto}
@media(max-width:760px){.asset-order{align-items:flex-start}.asset-actions .small-button{min-height:44px}}

.quiz-ready-button{flex:none;min-height:42px;padding:8px 12px;border:1px solid #b7e5bb;border-radius:9px;background:#315241;color:#f2ffe7;font-size:.875rem;font-weight:800;white-space:nowrap}
.quiz-ready-button:hover{background:#42674e}
.quiz-ready-button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.battle-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.battle-actions .magic-button{background:#355678;border-color:#76a7d4}
.battle-modifiers{padding:8px 9px;border-radius:8px;background:#293450;color:#dee9fc!important;line-height:1.4}
@media(max-width:760px){.quiz-ready-button{min-height:44px;padding:7px;font-size:.75rem;white-space:normal;max-width:94px;line-height:1.15}.shop-menu{gap:6px}}
@media(max-width:430px){.battle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-actions .magic-button{grid-column:1/-1}}

.planet-fold-card{align-self:start}
.planet-money.planet-fold-card{display:block}
.planet-panel-summary{display:flex;align-items:center;gap:12px;min-height:48px;cursor:pointer;list-style:none}
.planet-panel-summary::-webkit-details-marker{display:none}
.planet-panel-summary::marker{content:''}
.planet-panel-summary:focus-visible{outline:3px solid var(--cyan);outline-offset:5px;border-radius:5px}
.planet-panel-title{display:block;min-width:0;flex:1}
.planet-panel-title h2{margin:5px 0 0}
.planet-panel-meta{max-width:42%;color:#bdc7df;text-align:right;font-size:.8125rem;font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.planet-chevron{flex:none;color:var(--accent);font-size:1.25rem;line-height:1;transition:transform .2s}
.planet-fold-card[open] .planet-chevron{transform:rotate(180deg)}
.planet-panel-body{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.planet-panel-body>:first-child{margin-top:0}
.auto-battle-controls{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.auto-battle-controls>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.auto-battle-controls .small-note{margin-top:8px}
@media(min-width:1100px){
  #planet-content>.planet-grid>[data-planet-section="map"][open]{height:auto;overflow:visible}
  #planet-content>.planet-grid>[data-planet-section="map"][open]>.planet-panel-body{max-height:none;overflow:visible}
}
.planet-money .planet-panel-body{display:flex;flex-direction:column;gap:10px}
@media(max-width:760px){.planet-panel-summary{min-height:48px}.planet-panel-meta{font-size:.75rem}.planet-panel-body{margin-top:11px;padding-top:11px}}

.site-header{position:relative;z-index:25}
.header-actions{gap:12px}
.prayer-widget{position:relative;flex:none}
.prayer-trigger{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border:1px solid #5b6a91;border-radius:10px;background:#1c2945;cursor:pointer;list-style:none}
.prayer-trigger::-webkit-details-marker{display:none}
.prayer-trigger::marker{content:''}
.prayer-trigger:hover{background:#29395d;border-color:#98add2}
.prayer-trigger:focus-visible,.prayer-panel button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.prayer-icon{color:#ffd08b;font-size:1.35rem;line-height:1}
.prayer-trigger-copy strong,.prayer-trigger-copy small{display:block;line-height:1.2}
.prayer-trigger-copy strong{font-size:.8125rem;white-space:nowrap}
.prayer-trigger-copy small{margin-top:2px;max-width:190px;color:#b7c4da;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prayer-label-short{display:none}
.prayer-arrow{color:#c9d7ef;transition:transform .2s}
.prayer-widget[open] .prayer-arrow{transform:rotate(180deg)}
.prayer-panel{position:absolute;right:0;top:calc(100% + 9px);width:min(340px,calc(100vw - 30px));max-height:min(560px,calc(100dvh - 90px));overflow-y:auto;padding:17px;border:1px solid #647898;border-radius:13px;background:#16223a;box-shadow:0 16px 48px #000a}
.prayer-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.prayer-panel-head strong{font-size:1rem}
.prayer-panel-head button{min-height:38px;padding:6px 10px}
.prayer-location{margin:12px 0 2px;color:#e2edf9;font-size:.875rem;font-weight:700}
.prayer-date{margin:0 0 12px;color:#aebdd5;font-size:.8125rem}
.prayer-list{display:grid;gap:5px;min-height:35px;font-size:.875rem}
.prayer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border:1px solid #344762;border-radius:8px;background:#1b2b45}
.prayer-row.next{border-color:#d7b46c;background:#3b3545}
.prayer-row strong{font-variant-numeric:tabular-nums;color:#f8d99b}
.prayer-method{margin:12px 0 0;color:#d1dcf1;font-size:.75rem}
.prayer-note{margin:13px 0 0;color:#b2c0d5;font-size:.75rem;line-height:1.4}
.prayer-note a{color:#9ddfe2;text-decoration:underline}
@media(max-width:760px){.site-header{gap:8px}.header-actions{gap:6px}.prayer-trigger{padding:6px 9px}.prayer-trigger-copy small,.prayer-arrow,.prayer-label-full{display:none}.prayer-label-short{display:inline}.prayer-panel{padding:14px}}
@media(max-width:450px){.site-header .brand{font-size:.75rem;letter-spacing:.05em;gap:7px}.site-header .brand span:last-child{max-width:78px;line-height:1.08}.prayer-trigger{gap:5px}.prayer-trigger-copy strong{font-size:.75rem}}
@media(max-width:350px){.prayer-trigger-copy{display:none}.prayer-trigger{width:44px;justify-content:center;padding:6px}}

.earth-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.95fr) minmax(250px,.8fr)}
.earth-grid>*{min-width:0}
.earth-fold-card{align-self:start}
.earth-panel-summary{display:flex;align-items:center;gap:12px;min-height:46px;cursor:pointer;list-style:none}
.earth-panel-summary::-webkit-details-marker{display:none}
.earth-panel-summary::marker{content:''}
.earth-panel-summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px;border-radius:6px}
.earth-panel-meta{flex:none;max-width:45%;margin-left:auto;color:#bbc7e2;font-size:.8125rem;line-height:1.25;text-align:right;overflow-wrap:anywhere}
.earth-chevron{flex:none;margin-left:auto;color:var(--accent);font-size:1.25rem;line-height:1;transition:transform .2s}
.earth-panel-meta+.earth-chevron{margin-left:0}
.earth-fold-card[open]>.earth-panel-summary>.earth-chevron{transform:rotate(180deg)}
.product-fold>summary{cursor:pointer;list-style:none}
.product-fold>summary::-webkit-details-marker{display:none}
.product-fold>summary::marker{content:''}
.product-fold>summary:focus-visible{outline:3px solid var(--cyan);outline-offset:2px;border-radius:7px}
.product-chevron{margin-left:auto;color:var(--accent);font-size:1.2rem;line-height:1;transition:transform .2s}
.product-fold[open]>summary .product-chevron{transform:rotate(180deg)}
.need-column-heading{display:flex;align-items:center;gap:8px}
.need-column:not([open])>.need-column-heading{border-bottom:0}
.asset-fold-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.asset-fold-summary .asset-title{flex:1 1 100%;min-width:0}
.asset-fold-meta{color:var(--accent);font-size:.75rem;white-space:nowrap}
.asset-fold-body{border-top:1px solid var(--line);margin-top:10px}
.asset-fold-body .asset-detail{min-height:0}
.asset-income-milestones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:12px 0 8px;font-size:.875rem}
.asset-income-milestones span{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:var(--surface-2)}
.asset-income-milestones b{display:inline-block;margin-left:4px}
.asset-income-milestones .earned{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.asset-income-bonus{font-size:.875rem;line-height:1.5;color:var(--muted);margin:0 0 12px}.asset-income-bonus strong{color:var(--text)}
.career-card .career-seniority{margin:8px 0;padding:8px 10px;border-radius:8px;background:#263957;color:#ead49d;font-size:.8125rem}
.earth-panel-body{margin-top:12px;padding-top:13px;border-top:1px solid var(--line)}
.earth-panel-body>:first-child{margin-top:0}
.vitals-panel-head h2{margin:0}
.vitals-panel>.earth-panel-body{margin-top:4px;padding-top:7px}
.starter-mission{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:10px 0 14px;padding:11px 16px;border:1px solid #aa8151;border-radius:11px;background:linear-gradient(100deg,#302b40,#203749)}
.starter-mission>div{display:grid;gap:3px;min-width:0}
.starter-mission strong{font-size:1rem;color:#ffdfab}
.starter-mission small{font-size:.875rem;color:#e1dbea}
.starter-mission button{min-width:135px;min-height:44px;white-space:nowrap}
.region-objective{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:13px;padding:13px;border:1px solid #75649b;border-radius:10px;background:#292a4b}
.region-objective.done{border-color:#57977d;background:#1c3a41}
.region-objective strong{display:block;font-size:.9375rem;color:#f2d7a6}
.region-objective.done strong{color:#a7ead0}
.region-objective p{margin:4px 0 0;color:#d2d9ed;font-size:.875rem}
.region-objective button{min-height:44px;padding-inline:12px}
.battle-forecast{display:grid;gap:5px;margin-top:14px;padding:12px 14px;border:1px solid #8178b6;border-radius:10px;background:#303052}
.battle-forecast strong{color:#f4d7a1;font-size:1rem}
.battle-forecast span,.battle-forecast small{color:#e1e4f7;font-size:.875rem;line-height:1.4}
.battle-forecast.danger{border-color:#df8b85;background:#56333f}
.battle-forecast.danger small{color:#ffe0c7;font-weight:700}
.battle-actions .defend-button{background:#27625f;border-color:#70b5a8}
.family-mentor{margin:12px 0;padding:10px;border:1px solid #577a87;border-radius:9px;background:#203e4b}
.family-mentor h4{margin:0 0 4px}
.family-mentor small{display:block;margin-top:6px;color:#c9dcea;font-size:.8125rem}
.progress-milestones{display:grid;gap:7px;margin-top:15px}
.progress-milestones div{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid #445475;border-radius:8px;background:#202d49;font-size:.875rem}
.progress-milestones strong{color:#f2d394}
@media(max-width:760px){.starter-mission{order:0;align-items:flex-start;flex-direction:column}.starter-mission button{width:100%}.region-objective button{width:100%}}
.piggy-panel .piggy-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex:1}
.piggy-summary .wallet-line{flex:none;margin:0;text-align:right}
.piggy-summary .wallet-line .metric-label{margin:0 0 2px}
.piggy-panel .piggy-summary .wallet-line strong{font-size:1.15rem}
.piggy-panel .piggy-play{margin-top:0}
.earth-grid .piggy-panel .piggy-play{grid-template-columns:1fr}
.earth-grid #need-section,#assets-section{padding:16px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#151f39,#11182e)}
.earth-grid #need-section{margin:0}
.earth-grid #need-section .section-heading,.earth-panel-summary.section-heading{margin:0}
.earth-grid #need-section .section-heading h2{font-size:1.23rem}
.earth-grid #need-section .need-shop.filtered{max-width:none}
.earth-grid #need-section .need-column-heading{padding:12px}
.earth-grid #need-section .need-list{padding:6px}
.earth-grid #need-section .need-item{min-width:0;grid-template-columns:minmax(0,1fr) auto}
.earth-grid #need-section .need-item strong{overflow-wrap:anywhere}
#assets-section .asset-order{align-items:flex-start;margin-bottom:14px}
#assets-section .asset-order .subtle{text-align:left}
.bottom-grid .earth-panel-summary h2{margin:0}
@media(min-width:761px) and (max-width:1100px){
  .earth-grid{grid-template-columns:1fr}
  .earth-grid .piggy-panel,.earth-grid #need-section,.earth-grid .tasks-panel{grid-column:1}
  .earth-grid .piggy-panel .piggy-play{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}
}
@media(max-width:760px){
  /* The grid becomes display:contents on phones, so its cards become flex items. */
  #earth-view>.earth-fold-card,#earth-view>.earth-grid>*{align-self:stretch;width:100%;min-width:0;max-width:100%}
  .earth-grid #need-section{order:2;margin-top:14px}
  .earth-grid .tasks-panel{order:3;margin-top:14px}
  .piggy-summary .wallet-line .metric-label{display:none}
  .piggy-panel .piggy-summary .wallet-line strong{font-size:.92rem}
  .earth-panel-meta{font-size:.75rem}
  #assets-section{margin-top:18px}
}

.vitals-panel button.vital-card{display:block;width:100%;appearance:none;text-align:left;color:var(--text);cursor:pointer}
.vitals-panel button.vital-card:hover{background:#24344a}
.vitals-panel button.vital-card.selected{outline:2px solid #e8c47e;outline-offset:-2px;border-radius:8px;background:#263247}
.vitals-panel button.vital-card.low.selected{background:#392535}
.vitals-panel button.vital-card:focus-visible{position:relative;z-index:1;outline:3px solid var(--cyan);outline-offset:2px}
.vital-product-cue{color:var(--accent);font-size:1.2em;line-height:0}

.world-nav{overflow-x:auto;scrollbar-width:thin}
.world-nav .world-tab{flex:none;white-space:nowrap}
.world-tab .chat-unread-icon{display:inline-grid;vertical-align:middle;place-items:center;margin-left:5px;color:#ffd485;filter:drop-shadow(0 0 4px #ffd48599)}
.portal-building{align-items:center;text-align:center;min-height:360px;background:radial-gradient(circle at 50% 42%,#624cb3 0%,#262054 35%,#161c31 85%)}
.portal-vortex{display:grid;place-items:center;width:116px;height:116px;margin:14px auto;border-radius:50%;border:3px solid #cfb5ff;color:#f5e3ff;font-size:3.2rem;background:radial-gradient(circle,#a17af4,#3b267a 58%,#1a2042);box-shadow:0 0 25px #a27bff,0 0 65px #7f52eb99;animation:portal-pulse 1.3s ease-in-out infinite alternate}
.timed-progress{width:min(340px,100%);height:8px;overflow:hidden;border-radius:99px;background:#3b3469}.timed-progress span{display:block;width:100%;height:100%;background:#d5b8ff;transform-origin:left;animation:timed-fill var(--duration) linear both;animation-delay:calc(-1 * var(--elapsed))}
.inventory-item.forging{border-color:#f2c672;box-shadow:0 0 13px #f1b957aa,0 0 30px #dc85f066;animation:forge-pulse .6s ease-in-out infinite alternate}
.inventory-item.forging .inventory-slot-art{filter:drop-shadow(0 0 10px #ffe29d)}
.conversion-progress{margin:10px 0;padding:9px;border:1px solid #aa8ed9;border-radius:8px;color:#ead6ff;background:#48346b;animation:forge-pulse .7s ease-in-out infinite alternate}
@keyframes portal-pulse{to{transform:scale(1.08) rotate(10deg);box-shadow:0 0 42px #caacff,0 0 100px #8b61f5}}
@keyframes forge-pulse{to{filter:brightness(1.35);box-shadow:0 0 20px #ffc76c,0 0 48px #bb79fa}}
@keyframes timed-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.portal-vortex,.inventory-item.forging,.conversion-progress,.timed-progress span{animation:none}}
.family-shell,.profile-shell{display:grid;gap:16px;margin:15px 0 34px}
.family-card{padding:22px;border:1px solid #435172;border-radius:16px;background:linear-gradient(145deg,#192540,#111a30)}
.family-card h2{margin:4px 0 9px;color:#f5e6f1}
.family-card h3{margin:0 0 9px}
.family-card p,.family-note{color:#c7d0e5;font-size:.875rem;line-height:1.45}
.family-calendar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.family-calendar strong{display:block;color:#a5e4dc;font-size:1.15rem}
.family-calendar small{color:#b8c6dd}
.family-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:16px 0}
.family-fields label{display:grid;gap:6px;color:#d2dcec;font-size:.875rem;font-weight:700}
.family-fields input,.family-fields select{width:100%;min-height:45px;padding:9px 11px;border:1px solid #657596;border-radius:9px;background:#1a2944;color:#fff;font:inherit;color-scheme:dark}
.family-fields input:focus-visible,.family-fields select:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.family-choice-grid,.family-portrait-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 19px}
.family-choice{display:block;min-width:0;cursor:pointer}
.family-choice input{position:absolute;opacity:0;width:1px;height:1px}
.family-choice span{display:block;padding:12px;border:1px solid #58678a;border-radius:10px;background:#202c47;color:#edf2ff;font-weight:700;text-align:center}
.family-choice input:checked+span{border-color:#ffd187;background:#4b3f4b;box-shadow:0 0 0 2px #ffd18755}
.family-choice input:focus-visible+span{outline:3px solid var(--cyan);outline-offset:3px}
.family-portrait-picker summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#f5e6f1;font-weight:700;list-style:none}
.family-portrait-picker summary::-webkit-details-marker{display:none}
.family-portrait-picker[open] summary span{transform:rotate(180deg)}
.family-portrait-picker .family-portrait-grid{margin:16px 0 0}
.family-portrait-option{display:grid;gap:7px;min-width:0;padding:8px;border:2px solid #58678a;border-radius:12px;background:#202c47;color:#edf2ff;font-size:.8125rem;font-weight:700}
.family-portrait-option img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:7px}
.family-portrait-option.selected{border-color:#ffd187;background:#4b3f4b}
.family-portrait-option:hover{border-color:#b7c5ea}
.family-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.family-person{min-width:0;padding:17px;border:1px solid #4a5979;border-radius:13px;background:#18253f}
.family-person-head{display:flex;gap:15px;align-items:center;margin-bottom:14px}
.family-person-head img{width:92px;height:112px;flex:none;object-fit:cover;border:2px solid #ac92ba;border-radius:11px}
.family-baby-preview img{width:138px;height:174px}
.family-person-head p{margin:4px 0 0}
.family-person-head small{display:block;color:#bac8df;margin-top:3px}
.family-meter{display:flex;justify-content:space-between;gap:8px;margin:9px 0 6px;font-size:.875rem}
.family-meter strong{color:#ffcf8e;font-variant-numeric:tabular-nums}
.family-meter-track{height:10px;border-radius:99px;background:#34415e;overflow:hidden}
.family-meter-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b98bd1,#ffc991)}
.family-action-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:15px}
.family-action-list button{min-height:57px;padding:9px 11px;text-align:left;border:1px solid #637395;border-radius:10px;background:#243554;color:#f8f7ff;font-weight:700;font-size:.875rem}
.family-action-list button:not(:disabled):hover{background:#344b70}
.family-action-list button small{display:block;margin-top:4px;color:#cbd5ea;font-size:.75rem;font-weight:500}
.family-callout{margin-top:15px;padding:15px;border:1px solid #b390c5;border-radius:12px;background:#382c4e}
.family-callout p{margin:5px 0 12px}
.family-callout .family-fields{margin:9px 0}
.family-callout-actions{display:flex;gap:8px;flex-wrap:wrap}
.family-callout-actions button{min-height:44px}
.family-history{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.family-history span{padding:7px 10px;border:1px solid #5f6c8c;border-radius:8px;color:#d6def0;font-size:.8125rem}
.profile-id{display:inline-block;padding:7px 9px;border:1px solid #536581;border-radius:8px;background:#1d2b46;color:#acdfdf;font:700 .8125rem ui-monospace,monospace;overflow-wrap:anywhere}
.profile-identity,.planet-character-intro{display:flex;align-items:center;gap:16px}
.profile-identity{margin:12px 0}
.profile-identity>img,.planet-character-intro>img{width:106px;height:133px;flex:none;object-fit:cover;border:2px solid #ac92ba;border-radius:11px}
.planet-character-intro>p{margin:0}
.profile-overlay{position:fixed;inset:0;z-index:55;display:grid;place-items:center;overflow-y:auto;padding:18px;background:#070c1bea;backdrop-filter:blur(7px)}
.profile-overlay[hidden]{display:none}
.profile-start-card{width:min(520px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;padding:25px;border:1px solid #7388a5;border-radius:17px;background:#17243c;box-shadow:0 28px 80px #000a}
.profile-start-card h2{font-size:1.6rem;margin:8px 0 5px}
.profile-start-card p{color:#c2cee1;font-size:.875rem}
.profile-start-card>.primary-button{width:100%;min-height:48px}
.saved-players{margin-top:18px;padding-top:14px;border-top:1px solid #3e4d6d}
.saved-players h3{margin-bottom:8px}
.saved-players button{width:100%;min-height:44px;margin:5px 0;text-align:left}
@media(max-width:760px){.family-card{padding:16px}.family-people{grid-template-columns:1fr}.family-portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-fields{grid-template-columns:1fr}.family-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.family-action-list{grid-template-columns:1fr}.family-person-head img{width:76px;height:95px}.profile-identity>img,.planet-character-intro>img{width:76px;height:96px}}

.career-shell{display:grid;gap:16px;margin:15px 0 34px}
.career-intro{border-color:#706288;background:linear-gradient(125deg,#282746,#172039 70%)}
.career-intro h2{font-size:1.5rem}
.career-intro p{max-width:760px;margin-bottom:15px}
.career-summary{display:flex;gap:10px;flex-wrap:wrap}
.career-summary span{display:grid;gap:4px;min-width:145px;padding:9px 12px;background:#202e4c;border:1px solid #475a79;border-radius:9px;color:#c5d0e7;font-size:.875rem}
.career-summary strong{color:#ffd494;font-size:1.05rem;font-variant-numeric:tabular-nums}
.career-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.career-card{min-width:0;padding:17px;border:1px solid #445677;border-radius:13px;background:#192640}
.career-card.chosen{border-color:#e4bc74;background:#292b47}
.career-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:10px;border-radius:10px;background:#40395e;color:#f8d58d;font-size:1.25rem}
.career-card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.career-card-heading h3{font-size:1rem}
.career-badge{padding:4px 8px;border-radius:99px;background:#303b57;color:#cbd6ed;font-size:.75rem;font-weight:700}
.career-badge.done{background:#244c4b;color:#b4f0da}
.career-badge.studying{background:#514265;color:#eacff9}
.career-card p{margin:8px 0 14px;color:#c1cbe0;font-size:.875rem}
.career-card-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.career-card-footer strong{color:#ffd494;font-size:.95rem}
.career-card-footer button{padding-inline:12px}
.career-progress{display:flex;align-items:center;gap:10px;margin-top:13px;color:#dcd5f1;font-size:.875rem}
.career-progress progress{width:100%;height:10px;accent-color:#bda5f2}
.career-progress span{flex:none;font-variant-numeric:tabular-nums}
.career-leave{margin-top:13px}
.career-course{margin-top:14px;padding-top:12px;border-top:1px solid #445677;scroll-margin-top:24px}
.career-course p{margin:0 0 10px}
@media(max-width:760px){.career-grid{grid-template-columns:1fr}.career-summary span{flex:1;min-width:120px}}
.guide-card ol{padding-left:23px;color:#d4ddec;line-height:1.55}
.guide-card li{margin:9px 0}
.asset-actions{flex-wrap:wrap;justify-content:flex-end}
.family-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.family-overview p{margin:0}.family-overview strong{color:var(--accent)}
.family-overview details{min-width:190px}.family-overview summary,.family-development summary{cursor:pointer;font-weight:700;color:#e7dcfa}
.family-rename,.family-development label{display:grid;gap:5px;margin:11px 0;color:#cdd5ea;font-size:.875rem}
.family-rename input,.family-development select{width:100%;min-height:40px;padding:7px;border:1px solid #657596;border-radius:8px;background:#15213a;color:#fff;font:inherit}
.family-issue{border-color:#a58967;background:#2e2940}
.family-issue h3{margin:10px 0 3px}
.family-development{margin-top:14px;padding:12px;border:1px solid #596b90;border-radius:10px;background:#202e49}
.family-development-body{margin-top:11px}
.family-development-body p{margin:6px 0;color:#cdd5ea}
.family-development h4{margin:12px 0 5px}
.family-stat-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.family-career{border-top:1px solid #52617e;margin-top:12px;padding-top:4px}
.family-career>.small-button{margin:3px 0 8px}
@media(max-width:390px){.family-baby-preview img{width:104px;height:138px}}

.planet-top{grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr)}
.ether-character-layout{display:grid;grid-template-columns:minmax(100px,1fr) minmax(150px,1.4fr) minmax(100px,1fr);grid-template-areas:'weapon hero armor' 'earring hero necklace' 'ring hero accessory';gap:10px;align-items:stretch}
.ether-hero{grid-area:hero;display:flex;flex-direction:column;align-items:center;justify-content:end;min-height:295px;overflow:hidden;border:1px solid #7773a9;border-radius:14px;background:radial-gradient(circle at 50% 32%,#575292 0%,#25274f 56%,#181c39 100%)}
.ether-hero img{display:block;width:100%;height:255px;object-fit:contain;object-position:center bottom}
.ether-hero>div{text-align:center;padding:4px 6px 12px}
.ether-hero strong,.ether-hero span{display:block;line-height:1.25}
.ether-hero span{color:#d6ceef;font-size:.8125rem;margin-top:3px}
.ether-gear-slot{min-width:0;padding:10px;border:1px solid #635d8d;border-radius:12px;background:#20264b;display:flex;flex-direction:column;align-items:center;gap:7px}
.ether-gear-slot>span{font-size:.875rem;font-weight:700}
.ether-slot-weapon{grid-area:weapon;justify-content:center}
.ether-slot-armor{grid-area:armor}.ether-slot-accessory{grid-area:accessory}
.ether-slot-earring{grid-area:earring}.ether-slot-necklace{grid-area:necklace}.ether-slot-ring{grid-area:ring}
.ether-item-art[data-tier="1"]{filter:hue-rotate(18deg) saturate(1.3)}
.ether-item-art[data-tier="2"]{filter:grayscale(.7) brightness(1.35)}
.ether-item-art[data-tier="3"]{filter:sepia(.6) saturate(1.8) brightness(1.12)}
.ether-item-art[data-tier="4"]{filter:hue-rotate(85deg) saturate(1.35) brightness(1.1)}
.ether-item-art[data-tier="5"]{filter:hue-rotate(195deg) saturate(1.3) brightness(1.2)}
.ether-slot-art{display:grid;place-items:center;min-height:75px;width:100%;max-width:100px;border:1px dashed #aaa4ce;border-radius:9px;background:#171b38}
.ether-slot-art img{width:72px;height:72px;object-fit:contain}
.ether-slot-art>span{font-size:2rem;color:#ad9ed2}
.ether-gear-slot select{width:100%;min-height:37px;padding:5px;border:1px solid #8281ae;border-radius:7px;background:#101934;color:#fff;font:inherit;font-size:.8125rem}
.gear-slot-detail{width:100%;min-width:0}.gear-slot-summary{list-style:none;cursor:pointer;display:grid;justify-items:center;gap:4px;text-align:center}.gear-slot-summary:focus-visible{outline:3px solid #cbbaff;border-radius:8px}.gear-slot-summary strong{font-size:.74rem;overflow-wrap:anywhere}.gear-slot-summary small{color:#d5c5f2;font-size:.68rem}.gear-slot-actions{display:grid;gap:6px;width:100%;padding:8px 0}.gear-slot-actions p{margin:0;font-size:.72rem;line-height:1.35;overflow-wrap:anywhere}.gear-slot-actions button{white-space:normal;font-size:.7rem;padding:6px 3px}
.ether-character-inventory{margin-top:17px;padding-top:15px;border-top:1px solid #615b89}
.ether-character-inventory h3{margin-bottom:12px}.ether-character-inventory h3 small{color:#bfb5da;font-weight:500}
.ether-character-inventory .inventory-list{grid-template-columns:repeat(auto-fill,minmax(142px,1fr))}
.ether-character-inventory .inventory-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;min-width:0;background:#19213f;border-color:#66618d}
.ether-character-inventory .inventory-item.worn{border-color:#ebc786;box-shadow:inset 0 0 0 1px #ebc7865e}
.inventory-slot-art{display:grid;place-items:center;width:86px;height:86px;border:1px solid #7c78a8;border-radius:10px;background:radial-gradient(circle,#3a3764,#101936)}
.ether-character-inventory .inventory-item .ether-item-art{width:75px;height:75px}
.ether-character-inventory .inventory-item strong{min-height:2.4em;display:flex;align-items:center;justify-content:center}
.ether-character-inventory .inventory-item p{margin:2px 0;min-height:2.3em}
.inventory-slot-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:auto}
.ether-character-inventory .inventory-item button{margin:0;font-size:.73rem;padding:6px}
.ether-item-art{width:66px;height:66px;object-fit:contain;display:block}
.equipment-card .ether-item-art{float:left;margin:0 9px 5px 0}
.equipment-card h3{min-height:43px}.equipment-card p{clear:both}
.ether-world-map{position:relative;min-height:355px;border:1px solid #7382ac;border-radius:16px;overflow:hidden;background-image:linear-gradient(0deg,#0b102b99,#0e153833),var(--ether-map);background-size:cover;background-position:center}
.ether-map-path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 1px 3px #000)}
.ether-map-path polyline{fill:none;stroke:#f9d49b;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.5 1.5}
.ether-map-node{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:2px solid #e2d6ff;border-radius:50%;background:#393363ee;color:#fff;font-size:1.05rem;font-weight:800;box-shadow:0 4px 15px #000c}
.ether-map-node:hover:not(:disabled){background:#63559d;transform:translate(-50%,-50%) scale(1.07)}
.ether-map-node.selected{border-color:#ffecbe;background:#f5bf67;color:#25213b;box-shadow:0 0 0 5px #f5bf6770,0 4px 20px #000b}
.ether-map-node.locked{opacity:.68;background:#202942;color:#c6d0e1}
.ether-map-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;color:#d5daee}
.ether-map-caption strong{color:#ffe1a8}.ether-map-caption span{font-size:.8125rem;text-align:right}
@media(max-width:900px){.planet-top{grid-template-columns:1fr}}
@media(max-width:520px){.ether-character-layout{grid-template-columns:minmax(70px,1fr) minmax(105px,1.35fr) minmax(70px,1fr);gap:6px}.ether-gear-slot{padding:6px}.ether-gear-slot select{font-size:.75rem}.ether-hero{min-height:250px}.ether-hero img{height:205px}.ether-slot-art{min-height:58px}.ether-slot-art img{height:55px;width:55px}.ether-world-map{min-height:285px}.ether-map-node{width:37px;height:37px;font-size:.875rem}.ether-map-caption{display:grid}.ether-map-caption span{text-align:left}.ether-character-inventory .inventory-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

.monster-card{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.monster-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:800px;margin-inline:auto}
.monster-card .monster-portrait{width:100%;aspect-ratio:1;margin-bottom:4px}
.monster-card h3{margin:2px 0 0}
.monster-card p{margin:0}
.monster-card button{margin-top:auto;min-height:44px}
.monster-portrait{background-image:var(--monster-atlas);background-size:300% 300%;background-position:var(--monster-x) var(--monster-y);border:1px solid #857490;border-radius:11px;background-color:#34334f;box-shadow:inset 0 -35px 30px #10102350}
.battle-overlay{position:fixed;inset:0;z-index:42;display:grid;place-items:center;padding:16px;background:#040819df;backdrop-filter:blur(9px)}
.battle-overlay[hidden]{display:none}
.battle-dialog{width:min(860px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid #8d7897;border-radius:18px;background:linear-gradient(145deg,#262a51,#151c38 60%,#12182c);box-shadow:0 25px 90px #000b;padding:23px}
.battle-head{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:16px}
.battle-head h2{font-size:clamp(1.35rem,3vw,1.85rem);margin:5px 0}
.battle-exit{min-height:44px;white-space:nowrap}
.battle-body{display:grid;grid-template-columns:minmax(210px,.85fr) minmax(290px,1.15fr);gap:20px}
.battle-monster{display:flex;flex-direction:column;gap:10px}
.battle-monster .monster-portrait{width:100%;aspect-ratio:1}
.battle-monster strong{color:#ffb9bc}
.battle-monster span{font-size:.82rem;color:#c8d0e7}
.battle-controls{min-width:0}
.battle-controls h3{margin:16px 0 10px}
.battle-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.battle-actions button{min-height:60px;padding:8px 4px}
.battle-actions small{display:block;font-size:.68rem;font-weight:500;line-height:1.25;margin-top:4px;color:#e5ddf4}
.battle-hit{margin:13px 0 0;padding:10px;border:1px solid #6a7099;border-radius:9px;background:#262f51;font-size:.86rem}
.battle-party{margin-top:14px;padding:13px;border:1px solid #82729e;border-radius:10px;background:#2c294c}
.battle-party h3{margin:0 0 6px}.battle-party h3 small{color:#e8d1a3}
.battle-party p{color:#cdd2e6;font-size:.78rem;margin:3px 0 10px}
.battle-party-list{display:flex;gap:6px;flex-wrap:wrap}
.battle-party-list button.chosen{background:#69549b;border-color:#d9baf5;color:#fff}
.battle-party .battle-party-warning{color:#ffcbad;margin:10px 0 0}
@media(max-width:680px){.battle-dialog{padding:15px}.battle-body{grid-template-columns:1fr}.battle-monster .monster-portrait{width:min(100%,260px);aspect-ratio:1;margin-inline:auto}.battle-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.monster-grid{grid-template-columns:1fr;max-width:420px}}
@media(max-width:370px){.battle-actions{grid-template-columns:1fr}.battle-actions button{min-height:44px}}
.brand-star{padding:0;flex:none;line-height:1}
.brand-star:hover{background:#755034;border-color:#dfb36f}
.brand-star:active{transform:scale(.94)}
.battle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.battle-actions button{min-height:66px}
.battle-actions button small{font-size:.75rem}
.battle-actions .magic-button{grid-column:auto}
@media(max-width:370px){.battle-actions{grid-template-columns:1fr}}
.world-hazard{display:flex;flex-wrap:wrap;gap:5px 12px;align-items:baseline;margin:12px 0;padding:10px 13px;border:1px solid #d49d6a;border-radius:10px;background:#65412955;color:#f8e6cb;font-size:.85rem}
.world-hazard strong{color:#ffce96}
.battle-insight,.career-perk{padding:9px 11px;border:1px solid #8a82b9;border-radius:9px;background:#3b386555;color:#e6dcff;font-size:.86rem;line-height:1.45}
.practice-button{margin:5px 0 8px}
.ether-ending{margin:0 0 16px;padding:20px 22px;border:1px solid #f1cb88;border-radius:15px;background:linear-gradient(125deg,#50436a,#25294e 80%);box-shadow:0 10px 35px #0005}
.ether-ending h2{margin:6px 0 12px;color:#ffe2a8}.ether-ending p{max-width:75ch;color:#e5dff0;line-height:1.5}.ether-ending button{margin-top:7px}
.profile-avatar-editor{margin:16px 0;padding:16px;border:1px solid #536581;border-radius:12px;background:#1b2944}
.profile-avatar-editor h3{margin:0 0 5px}
.profile-portrait-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-width:660px;margin:14px 0}
.profile-portrait-option{min-width:0;padding:5px;border:2px solid #58698b;border-radius:10px;background:#243453;color:#fff}
.profile-portrait-option:hover{border-color:#b2c4df}.profile-portrait-option.selected{border-color:#f0c87c;box-shadow:0 0 0 2px #f0c87c55}
.profile-portrait-option img{display:block;width:min(100%,72px);aspect-ratio:4/5;object-fit:cover;border-radius:6px;margin-inline:auto}.profile-portrait-option span{display:block;margin-top:6px;font-size:.8rem}
.baby-forming{text-align:center;border:1px solid #d79dbd;background:radial-gradient(circle at center,#59406b,#22233e 75%)}
.baby-forming-glow{display:grid;place-items:center;width:86px;height:86px;margin:16px auto;border-radius:50%;font-size:2.6rem;color:#ffe5f1;background:#af619f;box-shadow:0 0 22px #f2a6d5,0 0 45px #ab7cdb;animation:baby-glow .9s ease-in-out infinite alternate}
.baby-portrait-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}
.baby-portrait-choice{min-width:0;padding:5px;background:#1d2945;color:#f3e7f4;border:2px solid #546282;border-radius:9px;font-size:.72rem;font-weight:700}
.baby-portrait-choice.selected{border-color:#f2c9a1;box-shadow:0 0 0 2px #f2c9a155}
.baby-portrait-choice img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:5px;margin-bottom:5px}
@media(max-width:520px){.baby-portrait-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ether-hero .hero-figure .hero-portrait{z-index:3;inset:2% 0 auto auto;width:clamp(48px,28%,88px);height:auto;aspect-ratio:1;object-fit:cover;object-position:center 18%;border:2px solid #f4d394;border-radius:50%;background:#243150;box-shadow:0 5px 17px #070a18bb,0 0 11px #ffdc9477}
.camp-resting:disabled{opacity:1;color:#dcf8ec;border-color:#9de5c0;background:#285a53;animation:camp-breathe 1s ease-in-out infinite alternate}
@keyframes camp-breathe{to{box-shadow:0 0 18px #9de5c099;background:#327365}}
@media(prefers-reduced-motion:reduce){.camp-resting:disabled{animation:none}}
@keyframes baby-glow{to{transform:scale(1.12);box-shadow:0 0 34px #ffd8e9,0 0 70px #c897e8}}
@media(prefers-reduced-motion:reduce){.baby-forming-glow{animation:none}}
.profile-avatar-editor>.small-note:last-child{margin:10px 0 0}
.battle-portrait{position:relative;isolation:isolate}.battle-portrait.impact{animation:monster-impact .72s ease-out both}
.battle-portrait.swing::before{content:'';position:absolute;z-index:1;inset:-12% auto -12% -12%;width:24%;background:linear-gradient(90deg,transparent,#fcf0d9aa 45%,#fff 60%,transparent);transform:translateX(-120%) skewX(-22deg);filter:drop-shadow(0 0 8px #ffe8b0);pointer-events:none;animation:attack-sweep .55s ease-out forwards}
.battle-portrait.slash.swing::before,.battle-portrait.slash.swing::after{content:'';position:absolute;z-index:1;inset:auto;top:-70%;width:8px;height:90%;border-radius:100%;background:linear-gradient(90deg,#77b9e1,#fff 38% 65%,#b4e8ff);box-shadow:0 0 5px 2px #fff,0 0 16px 5px #9cdbffbb,0 0 30px 9px #70bfff66;pointer-events:none;transform-origin:center}
.battle-portrait.slash.swing::before{left:35%;animation:sword-cut-left .75s cubic-bezier(.2,.7,.3,1) forwards}
.battle-portrait.slash.swing::after{left:65%;animation:sword-cut-right .75s cubic-bezier(.2,.7,.3,1) forwards}
.battle-portrait.spell.swing::before{inset:auto;left:50%;top:50%;width:54%;height:54%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff 0 8%,#bcf5ff 15%,#9b80ef 38%,#734bdc88 58%,transparent 72%);box-shadow:0 0 26px #ae84ff99;filter:drop-shadow(0 0 18px #9b7aff);animation:spell-burst .9s ease-out forwards}
.battle-portrait.impact:not(.slash)::after{content:'';position:absolute;inset:0;border-radius:inherit;background:#ff776b;pointer-events:none;animation:monster-flash .72s ease-out forwards}
.damage-float{position:absolute;z-index:2;left:50%;top:42%;white-space:nowrap;color:#fff4d3;font-weight:900;font-size:clamp(1.6rem,4vw,3.2rem);line-height:1;text-shadow:0 2px 3px #240000,0 0 14px #ff3636;pointer-events:none;animation:damage-rise 1s ease-out forwards}
.damage-float.miss{color:#d6e6ff;font-size:1.45rem;text-shadow:0 2px 8px #121a32}
.battle-finisher{text-align:center;max-width:360px;margin:auto}.battle-finisher h2{margin:7px 0 15px;color:#ffe2a8}.battle-finisher .monster-portrait{width:min(100%,260px);aspect-ratio:1;margin:0 auto 14px}.battle-finisher p{margin:0;color:#f2e9d7}
@keyframes monster-impact{0%{transform:translateX(0) scale(1)}22%{transform:translateX(13px) scale(.97)}42%{transform:translateX(-9px) scale(1.035)}65%{transform:translateX(5px) scale(.99)}100%{transform:translateX(0) scale(1)}}
@keyframes attack-sweep{0%{opacity:0;transform:translateX(-120%) skewX(-22deg)}16%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateX(660%) skewX(-22deg)}}
@keyframes sword-cut-left{0%{opacity:0;transform:translate(-50%,0) rotate(-35deg) scaleY(.45)}15%{opacity:1}62%{opacity:1;transform:translate(90%,130%) rotate(-35deg) scaleY(1)}100%{opacity:0;transform:translate(140%,205%) rotate(-35deg)}}
@keyframes sword-cut-right{0%{opacity:0;transform:translate(-50%,0) rotate(35deg) scaleY(.45)}15%{opacity:1}62%{opacity:1;transform:translate(-190%,130%) rotate(35deg) scaleY(1)}100%{opacity:0;transform:translate(-240%,205%) rotate(35deg)}}
@keyframes spell-burst{0%{opacity:0;transform:translate(-130%,-50%) scale(.15)}28%{opacity:1;transform:translate(-85%,-50%) scale(.65)}62%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}
@keyframes monster-flash{0%,100%{opacity:0}20%{opacity:.44}45%{opacity:.12}}
@keyframes damage-rise{0%{opacity:0;transform:translate(-50%,4px) scale(.7)}18%{opacity:1;transform:translate(-50%,-12px) scale(1.14)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-55px) scale(1)}}
.profile-identity>img{width:76px;height:95px}
@media(max-width:500px){.profile-portrait-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.profile-identity>img{width:64px;height:80px}.profile-portrait-option{padding:4px}}
@media(prefers-reduced-motion:reduce){.battle-portrait.impact,.battle-portrait.impact::after,.battle-portrait.swing::before,.battle-portrait.swing::after,.damage-float{animation:none}.damage-float{transform:translate(-50%,-12px);opacity:1}.battle-portrait.impact:not(.slash)::after{opacity:.12}.battle-portrait.swing::before,.battle-portrait.slash.swing::after{display:none}}

.tutorial-shade{position:fixed;z-index:60;background:transparent;pointer-events:none;box-sizing:border-box;border:2px solid #ffe6a8;box-shadow:0 0 0 4px #f3ba6238,0 0 24px #f3ba6260,0 0 0 100vmax #050917b3}
.tutorial-target{scroll-margin:var(--tutorial-scroll-top,20px) 24px var(--tutorial-scroll-bottom,180px)!important}
.tutorial-active .app-shell{padding-bottom:var(--tutorial-bottom-space,180px)}
@media(max-height:500px){.tutorial-active :is(.shop-menu,.vitals-panel){position:static}}
.tutorial-card{position:fixed;z-index:62;left:12px;top:12px;width:min(370px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;padding:18px 20px;border:1px solid #e8bb75;border-radius:16px;background:#1a2542;box-shadow:0 16px 48px #0009}
.tutorial-card h2{margin:10px 0 8px;font-size:1.2rem}.tutorial-card p{margin:0;color:#e2e6f3;font-size:1rem;line-height:1.5}.tutorial-card button{min-height:44px}
.tutorial-card .eyebrow{font-size:.875rem;letter-spacing:.07em}
.tutorial-step-meter{display:block;width:100%;height:4px;margin-top:10px;border:0;border-radius:99px;overflow:hidden;background:#3b4660;accent-color:#f3ba62}
.tutorial-step-meter::-webkit-progress-bar{background:#3b4660}.tutorial-step-meter::-webkit-progress-value{background:#f3ba62}.tutorial-step-meter::-moz-progress-bar{background:#f3ba62}
.tutorial-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.tutorial-buttons button{flex:1 1 130px;font-size:.875rem}
.profile-theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.profile-theme-choice{min-width:0;min-height:112px;padding:13px;border:2px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);text-align:left}
.profile-theme-choice strong,.profile-theme-choice small{display:block}.profile-theme-choice small{margin-top:4px;color:var(--muted);line-height:1.3}
.profile-theme-choice.selected{border-color:var(--accent);box-shadow:0 0 0 2px #ffffff24}.theme-preview-dots{display:flex;gap:5px;margin-bottom:11px}.theme-preview-dots i{width:17px;height:17px;border-radius:50%;border:1px solid #ffffff77}
.theme-preview-classic i:nth-child(1){background:#121a32}.theme-preview-classic i:nth-child(2){background:#f3ba62}.theme-preview-classic i:nth-child(3){background:#77d5db}
.theme-preview-forest i:nth-child(1){background:#102822}.theme-preview-forest i:nth-child(2){background:#8bdfaf}.theme-preview-forest i:nth-child(3){background:#8dd7c6}
.theme-preview-violet i:nth-child(1){background:#221633}.theme-preview-violet i:nth-child(2){background:#c5a5ff}.theme-preview-violet i:nth-child(3){background:#f0a9d0}
@media(max-width:600px){.profile-theme-options{grid-template-columns:1fr}.profile-theme-choice{min-height:76px}}
:root[data-theme="forest"]{--bg:#091b19;--surface:#102822;--surface-2:#19382f;--line:#3c6458;--text:#edfff4;--muted:#acd1c0;--accent:#9de1ab;--accent-deep:#458f6d;--cyan:#8dd7c6;--purple:#c2b5e7;--green:#b1edbd}
:root[data-theme="violet"]{--bg:#160d27;--surface:#221633;--surface-2:#342247;--line:#624879;--text:#faf3ff;--muted:#c9b7da;--accent:#c5a5ff;--accent-deep:#8460b1;--cyan:#b6b6fa;--purple:#e0bdff;--green:#b6e9ce}
:root[data-theme="forest"] body{background:radial-gradient(ellipse 80% 55% at 90% -5%,#24483b 0%,transparent 72%),var(--bg)}
:root[data-theme="violet"] body{background:radial-gradient(ellipse 80% 55% at 90% -5%,#4b2b65 0%,transparent 72%),var(--bg)}
:root[data-theme="forest"] .card,:root[data-theme="violet"] .card{background:linear-gradient(145deg,var(--surface-2),var(--surface))}
:root[data-theme="forest"] .family-card,:root[data-theme="violet"] .family-card{background:linear-gradient(145deg,var(--surface-2),var(--surface));border-color:var(--line)}
:root[data-theme="forest"] .planet-header,:root[data-theme="violet"] .planet-header{background:linear-gradient(120deg,var(--surface-2),var(--surface));border-color:var(--line)}
:root[data-theme="forest"] .profile-avatar-editor,:root[data-theme="violet"] .profile-avatar-editor{background:var(--surface-2);border-color:var(--line)}
:root[data-theme="forest"] .shop-menu,:root[data-theme="violet"] .shop-menu{background:var(--surface)}
:root[data-theme="forest"] .world-tab.active,:root[data-theme="violet"] .world-tab.active,:root[data-theme="forest"] .primary-button,:root[data-theme="violet"] .primary-button{color:#172126;border-color:var(--accent);background:var(--accent)}
:root[data-theme="forest"] .shop-menu-button.active,:root[data-theme="violet"] .shop-menu-button.active{background:var(--accent);border-color:var(--accent);color:#172126}
:root[data-theme="forest"] .tutorial-card,:root[data-theme="violet"] .tutorial-card{background:var(--surface);border-color:var(--accent)}
.need-item button.unaffordable{border-color:#80616a;color:#c6bfd0}
.vitals-panel button.vital-card.urgent{border-color:#ff6d70;background:#612a39;box-shadow:inset 0 0 0 1px #ff9c9c}
.vitals-panel button.vital-card.urgent .vital-note{color:#ffe0df;font-weight:800}
.vitals-panel #vitals-summary.urgent{color:#ffb4ad;font-weight:800}
@media(max-width:600px){.tutorial-card{padding:14px 16px}.tutorial-card h2{font-size:1.125rem}}

.world-nav{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#455677 transparent;padding-bottom:5px}
.world-tab{flex:none;white-space:nowrap}
.leaderboard-shell{max-width:1180px;margin:0 auto 44px}
.leaderboard-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 17px}
.leaderboard-heading h2{font-size:clamp(1.6rem,3vw,2.15rem);margin:6px 0}
.leaderboard-heading p{font-size:.85rem;color:var(--muted);margin:0}
.leaderboard-heading .ghost-button{flex:none}
.leaderboard-self{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap;padding:15px 19px;margin-bottom:16px;border:1px solid #a7825e;border-radius:13px;background:linear-gradient(105deg,#574329,#24294a 85%)}
.leaderboard-self span{color:#ffe4b5;font-size:.83rem;font-weight:800}
.leaderboard-self strong{font-size:.96rem;font-variant-numeric:tabular-nums}
.leaderboard-self small{color:#c5c5d5;font-size:.74rem;margin-left:auto}
.leaderboard-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.leaderboard-card{min-width:0;background:linear-gradient(145deg,#192442,#111a32);border:1px solid var(--line);border-radius:15px;overflow:hidden}
.leaderboard-card-head{display:flex;align-items:center;gap:10px;padding:18px 19px;border-bottom:1px solid var(--line)}
.leaderboard-card-head{cursor:pointer;list-style:none;border-bottom:0}.leaderboard-card-head::-webkit-details-marker{display:none}.leaderboard-card-head:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}.leaderboard-card-head:hover{background:#ffffff0a}.leaderboard-card[open] .leaderboard-card-head{border-bottom:1px solid var(--line)}.leaderboard-card-head .leaderboard-chevron{margin-left:auto;width:auto;height:auto;background:none;color:#d5c7f8;font-size:1.25rem;transition:transform .2s}.leaderboard-card[open] .leaderboard-chevron{transform:rotate(180deg)}
.leaderboard-columns{align-items:start}
.leaderboard-card-head span{display:grid;place-items:center;width:32px;height:32px;background:#624c78;border-radius:9px;color:#ffe7b9}
.leaderboard-card-head h3{font-size:1.08rem}
.leaderboard-list{list-style:none;margin:0;padding:4px 17px 12px}
.leaderboard-list li{display:flex;align-items:center;gap:12px;min-width:0;padding:11px 2px;border-bottom:1px solid #2c3755}
.leaderboard-list li:last-child{border-bottom:0}
.leaderboard-avatar{display:block;flex:none;width:36px;height:36px;object-fit:cover;object-position:center 20%;border:1px solid #a99569;border-radius:50%;background:#25304b}
.leaderboard-list li.leaderboard-champion{position:relative;isolation:isolate;padding:12px 8px;margin:5px -6px;border:1px solid #ffdc7c;border-radius:11px;background:radial-gradient(ellipse at 15% 0%,#d69c354d,transparent 70%),linear-gradient(110deg,#62431e,#362b25 58%,#24304a);box-shadow:0 0 10px #ffc95766,inset 0 0 20px #ffd36b33;animation:leaderboard-gold-glow 1.8s ease-in-out infinite alternate;overflow:hidden}
.leaderboard-champion::before{content:'';position:absolute;z-index:0;inset:0;background:linear-gradient(110deg,transparent 28%,#ffd76c33 42%,#fff0b57a 50%,#ffd76c33 58%,transparent 72%);transform:translateX(-125%);pointer-events:none;animation:leaderboard-gold-shine 2.8s ease-in-out infinite}
.leaderboard-champion>*{position:relative;z-index:1}
.leaderboard-champion .leaderboard-player strong{color:#fff1bf;text-shadow:0 0 9px #ffcc6280}
.leaderboard-champion .leaderboard-player small{color:#ded2b8}
.leaderboard-champion .leaderboard-avatar{border-color:#fff0ac;box-shadow:0 0 13px #ffd46aaa}
.leaderboard-list li.leaderboard-champion:first-child .leaderboard-place{border-color:#fff1b5;background:linear-gradient(135deg,#fff0b0,#f0b93b 70%,#b7781f);color:#322006;box-shadow:0 0 12px #ffcd5f99,inset 0 1px 2px #fff7d6;font-weight:900}
.leaderboard-list li.leaderboard-champion>b{color:#fff0b8;text-shadow:0 0 8px #ffcc6266}
@keyframes leaderboard-gold-glow{from{border-color:#e7b850;box-shadow:0 0 8px #ffc95766,inset 0 0 16px #ffd36b30}to{border-color:#fff0ad;box-shadow:0 0 20px #ffc957a6,inset 0 0 30px #ffd36b59}}
@keyframes leaderboard-gold-shine{0%,12%{transform:translateX(-125%)}75%,100%{transform:translateX(125%)}}
@media(prefers-reduced-motion:reduce){.leaderboard-list li.leaderboard-champion,.leaderboard-champion::before{animation:none}.leaderboard-champion::before{display:none}}
.leaderboard-place{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid #626f97;border-radius:9px;color:#d0d9f1;font-weight:800;font-size:.8rem}
.leaderboard-list li:first-child .leaderboard-place{background:#ae783e;border-color:#e6b675;color:#fff}
.leaderboard-list li:nth-child(2) .leaderboard-place{background:#586580;border-color:#8595b4;color:#fff}
.leaderboard-list li:nth-child(3) .leaderboard-place{background:#82583b;border-color:#b48261;color:#fff}
.leaderboard-player{min-width:0;flex:1}
.leaderboard-player strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.87rem}
.leaderboard-player small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.71rem;margin-top:3px}
.leaderboard-list li>b{color:#ffdb9d;white-space:nowrap;font-size:.84rem;font-variant-numeric:tabular-nums}
.leaderboard-card>.empty-state{padding:18px}
.leaderboard-error{border:1px solid #a65a65;border-radius:10px;background:#482831;color:#ffcfce;font-size:.83rem;padding:10px 13px}
@media(max-width:840px){.leaderboard-columns{grid-template-columns:1fr}.leaderboard-self small{margin-left:0;width:100%}}
@media(max-width:500px){.leaderboard-heading{align-items:flex-start;flex-direction:column}.leaderboard-self{gap:8px 13px}.leaderboard-self span{width:100%}.leaderboard-list li{gap:8px}.leaderboard-list li>b{font-size:.75rem}}
@media(max-width:500px){.leaderboard-list .leaderboard-avatar{width:30px;height:30px}.leaderboard-list li>b{max-width:40%;white-space:normal;text-align:right}.leaderboard-list li.leaderboard-champion{padding:12px 6px;margin-inline:-4px}}
.leaderboard-richest-list li{display:grid;grid-template-columns:30px 36px minmax(0,1fr);column-gap:12px;row-gap:4px}
.leaderboard-richest-list .leaderboard-place{grid-column:1;grid-row:1 / 3}
.leaderboard-richest-list .leaderboard-avatar{grid-column:2;grid-row:1 / 3}
.leaderboard-richest-list .leaderboard-player{grid-column:3;grid-row:1}
.leaderboard-richest-list .leaderboard-player strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.leaderboard-richest-list li>b{grid-column:3;grid-row:2;min-width:0;max-width:none;white-space:normal;overflow-wrap:anywhere;text-align:left;line-height:1.45}
@media(max-width:500px){.leaderboard-richest-list li{grid-template-columns:30px 30px minmax(0,1fr);column-gap:8px;row-gap:4px}}

/* Ether simya ürünleri: dört ayrı şişe tek saydam görselden gösterilir. */
.stat-shop .alchemy-card{min-width:0;padding:13px;background:radial-gradient(circle at 30% 0%,#37416b88,#192540 56%,#142039);border-color:#4c5b80}
.alchemy-heading{display:flex;align-items:center;gap:8px;min-height:91px;margin-bottom:12px}
.alchemy-heading>div{min-width:0}
.alchemy-heading small{display:block;color:#bfcae7;font-size:.75rem;font-weight:700;letter-spacing:.04em}
.alchemy-heading h3{font-size:.98rem;line-height:1.22;color:#f8eddb;margin:3px 0 4px}
.alchemy-heading p{color:#b9c4dd;font-size:.75rem;line-height:1.3;margin:0}
.alchemy-art{display:block;flex:none;width:86px;height:86px;background-image:url('./alchemy-potions.png');background-repeat:no-repeat;background-size:200% 200%;filter:drop-shadow(0 5px 8px #05091899)}
.alchemy-art-strength{background-position:left top}
.alchemy-art-intelligence{background-position:right top}
.alchemy-art-endurance{background-position:left bottom}
.alchemy-art-agility{background-position:right bottom}
.stat-shop .stat-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.stat-shop .stat-options button{min-width:0;min-height:66px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;gap:2px;padding:8px 10px;line-height:1.17}
.stat-shop .stat-options button strong,.stat-shop .stat-options button small{overflow-wrap:anywhere}
.stat-shop .stat-options button span{color:#b8cff1;font-size:.77rem}
.stat-shop .stat-options button strong{color:#f1e7ff;font-size:.85rem}
.stat-shop .stat-options button small{color:#c0d6cb;font-size:.76rem}
.stat-shop .stat-options button:not(:disabled):hover{border-color:#a5bfd8;background:#304467}
.family-alchemy-button{display:flex;align-items:center;gap:7px;text-align:left;min-width:0}
.family-alchemy-button .alchemy-art{width:39px;height:39px}
.family-alchemy-button>span:last-child{min-width:0;font-size:.78rem;line-height:1.2}
.family-alchemy-button small{display:block;color:#b4c7e0;font-size:.72rem;margin-top:2px}
@media(max-width:1100px){.stat-shop{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.stat-shop{grid-template-columns:1fr}.alchemy-heading{min-height:80px}.stat-shop .stat-options button{min-height:58px}}

.potion-market-title,.gear-market-title{font-size:1.05rem;color:#f5e9dd;margin:16px 0 6px}
.gear-market-title{margin-top:26px}
.potion-market{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 4px}
.potion-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:center;min-width:0;padding:11px;border:1px solid #5a557c;border-radius:12px;background:radial-gradient(circle at 20% 15%,#4e426d66,#18213d 65%)}
.potion-card.potion-health{border-color:#9c6479}.potion-card.potion-mana{border-color:#756fa8}.potion-card.potion-energy{border-color:#528d8e}
.potion-card .potion-art{width:64px;height:76px;object-fit:contain;filter:drop-shadow(0 6px 6px #02071188)}
.potion-card-copy{min-width:0}.potion-card-copy span{font-size:.7rem;font-weight:800;color:#d1c5e8}.potion-card h3{margin:4px 0;font-size:.88rem;overflow-wrap:anywhere}.potion-card p{margin:0;color:#c2cce4;font-size:.74rem;line-height:1.3}
.potion-card button{grid-column:1/-1;min-height:42px;width:100%}
.character-potion-title{margin:18px 0 8px;font-size:.92rem;color:#e6d5ff}
.character-potion-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:7px}
.character-potion-item{display:grid;grid-template-columns:35px minmax(0,1fr);align-items:center;gap:6px;min-width:0;padding:8px;border:1px solid #605b83;border-radius:8px;background:#222c4b;color:#e5e7fa;font-size:.8125rem}
.potion-sale-actions{grid-column:1/-1;display:grid;gap:5px}.potion-sale-actions .small-button{min-height:36px;width:100%;font-size:.8125rem;padding:7px 5px;white-space:normal;overflow-wrap:anywhere}
.character-potion-item img{width:35px;height:43px;object-fit:contain}.character-potion-item span{min-width:0}.character-potion-item strong{display:block;color:#b7ead9}
.battle-stage-wrap{position:relative}
.battle-potion-menu{position:absolute;z-index:8;top:8px;right:10px;max-width:calc(100% - 20px)}
.battle-potion-menu>summary{display:flex;align-items:center;justify-content:center;gap:3px;width:max-content;min-height:32px;margin-left:auto;padding:3px 7px;border:1px solid #b7c1e8;border-radius:8px;background:#15223f;color:#fff;list-style:none;cursor:pointer;opacity:.6;touch-action:manipulation}
.battle-potion-menu>summary::-webkit-details-marker{display:none}
.battle-potion-menu>summary::after{content:'⌄';font-size:14px}
.battle-potion-menu[open]>summary::after{content:'⌃'}
.battle-potion-menu>summary img{width:22px;height:24px;object-fit:contain}
.battle-potion-menu>summary span{font-size:12px;color:#fff}
.battle-potion-menu[open]>summary,.battle-potion-menu>summary:hover,.battle-potion-menu>summary:focus-visible{opacity:1}
.battle-potion-menu>summary:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.battle-potion-panel{width:244px;max-width:100%;max-height:min(320px,60dvh);overflow-y:auto;overscroll-behavior:contain;margin-top:5px;padding:8px;border:1px solid #737ea2;border-radius:10px;background:#141e36;box-shadow:0 8px 25px #0009}
.battle-potion-panel .battle-potion-title{display:block;margin-bottom:7px;font-size:13px;color:#fff}
.battle-potion-menu .battle-potion-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.battle-potion-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:72px;padding:4px 3px;border:1px solid #706990;border-radius:7px;background:#283454;color:#f7f2ff;text-align:center}
.battle-potion-slot:hover:not(:disabled){border-color:#d2b5e5;background:#35456b}.battle-potion-slot img{width:29px;height:32px;object-fit:contain}.battle-potion-slot strong{font-size:12px;line-height:1.2;color:#fff}.battle-potion-slot small{font-size:12px;line-height:1.2;color:#c5dfeb;overflow-wrap:anywhere}
.battle-potion-slot .battle-potion-count{position:absolute;top:3px;right:3px;padding:1px 3px;border-radius:6px;background:#625785;color:#fff;font-size:12px;font-weight:800}
.battle-potion-panel .battle-potion-note{margin:7px 0 0;color:#c8d1e6;font-size:12px;line-height:1.4}
.battle-potion-feedback{margin:7px 0 0;padding:6px;border:1px solid #6ba996;border-radius:7px;background:#234b4a;color:#d9ffed;font-size:12px;line-height:1.4}
@media(max-width:760px){.potion-market{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.potion-card{display:flex;flex-direction:column;text-align:center}.potion-card .potion-art{height:68px}.potion-card button{margin-top:auto}}
/* Bağış sayfası ve portal kutlaması */
.donation-shell{max-width:1100px;margin:28px auto 60px;display:grid;gap:20px}.donation-heading{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:26px}.donation-heading h2{margin:8px 0}.donation-heading p{color:var(--muted);margin-bottom:18px}.donation-totals{display:flex;gap:14px;flex-wrap:wrap}.donation-totals span{display:flex;gap:10px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 16px;color:var(--muted)}.donation-totals strong{color:var(--text)}.donation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.donation-card{min-width:0;display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.donation-icon{font-size:2rem;flex:none}.donation-card>div{min-width:0;flex:1}.donation-card h3{line-height:1.35;margin-bottom:7px}.donation-card strong{color:var(--accent)}.donation-card button{flex:none}.portal-celebration{max-width:1120px;margin:22px auto;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface)}.portal-celebration img{display:block;width:100%;max-height:450px;object-fit:cover}.portal-celebration figcaption{text-align:center;padding:16px 20px;font-weight:700;color:var(--accent)}@media(max-width:720px){.donation-grid{grid-template-columns:1fr}.donation-card{flex-wrap:wrap}.donation-card button{margin-left:auto}.donation-heading{padding:20px}}
.arena-shell{max-width:1100px;margin:28px auto 70px;display:grid;gap:18px}.arena-heading,.arena-self,.arena-info,.arena-result,.arena-opponents article,.arena-history li{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:20px}.arena-heading h2{margin:8px 0}.arena-heading p,.arena-info p{color:var(--muted);line-height:1.55}.arena-self{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.arena-self strong{font-size:1.45rem;color:var(--accent)}.arena-self button{margin-left:auto}.arena-opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:12px}.arena-opponents article{display:flex;align-items:center;justify-content:space-between;gap:12px}.arena-opponents article div{display:grid;gap:5px;min-width:0}.arena-opponents small{color:var(--muted)}.arena-result{border-color:var(--accent)}.arena-result h3{color:var(--accent)}.arena-result ol,.arena-history{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.arena-result li{display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:7px 0}.arena-result li small{margin-left:auto}.arena-history li{display:flex;gap:14px;align-items:center;padding:12px 16px}.arena-history li span{flex:1}.arena-error{color:#fca5a5}
.arena-list-avatar{width:54px;height:54px;object-fit:cover;border-radius:12px;border:1px solid var(--line);flex:none}.arena-duel{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);align-items:center;gap:12px}.arena-fighter{min-width:0;display:grid;gap:9px;text-align:center}.arena-fighter img{width:min(100%,240px);aspect-ratio:1;object-fit:cover;border:2px solid #8f84bd;border-radius:15px;margin:auto;background:#1a2340}.arena-fighter strong{font-size:1.05rem}.arena-fighter span{font-size:.8rem;color:#c8d0e7}.arena-versus{font-size:2rem;text-align:center;color:#f3ba62}.arena-battle-controls{margin-top:20px;border-top:1px solid #4e5e87;padding-top:16px}.arena-battle-controls h3{margin-bottom:12px}.arena-battle-controls .battle-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.arena-striking img{animation:arena-lunge .7s ease-out}.arena-hit img{animation:arena-recoil .7s ease-out}.arena-duel .bar-track{width:100%}@keyframes arena-lunge{35%{transform:translateX(10px) scale(1.04)}100%{transform:none}}@keyframes arena-recoil{35%{transform:translateX(-8px);filter:brightness(1.5)}100%{transform:none}}@media(max-width:580px){.arena-duel{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:6px}.arena-versus{font-size:1.2rem}.arena-battle-controls .battle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.arena-fighter img{max-height:170px}}
/* Karakter yuvaları, giyilmiş ekipman ve güçlendirme ışığı */
.character-power{display:flex;gap:9px 14px;align-items:center;flex-wrap:wrap;padding:12px 15px;margin-bottom:15px;border:1px solid #8174b5;border-radius:12px;background:#191d40;font-weight:700}.character-power strong{font-size:1.35rem;color:#f3cf89}.character-power span{color:#c8c5e5;font-size:.83rem;flex:1 1 260px}.character-power button{margin-left:auto}
.ether-character-layout{grid-template-columns:minmax(100px,1fr) minmax(185px,1.55fr) minmax(100px,1fr);grid-template-areas:'head hero earring' 'armor hero necklace' 'gloves hero accessory' 'ring hero ring2' 'pants hero weapon' 'boots hero empty';gap:8px;align-items:stretch}.ether-slot-head{grid-area:head}.ether-slot-pants{grid-area:pants}.ether-slot-gloves{grid-area:gloves}.ether-slot-boots{grid-area:boots}.ether-slot-ring2{grid-area:ring2}.ether-slot-weapon,.ether-slot-armor,.ether-slot-earring,.ether-slot-necklace,.ether-slot-ring,.ether-slot-accessory{justify-content:center}.ether-hero{justify-content:center;min-height:0;padding:16px 4px}.hero-figure{position:relative;width:min(100%,320px);aspect-ratio:2/3;margin:auto;flex:none}.ether-hero .hero-figure img{display:block;position:absolute;object-fit:contain;object-position:center;width:100%;height:100%;inset:0}.ether-hero .hero-figure .hero-base{z-index:1}.ether-hero .hero-figure .hero-worn{z-index:2;width:var(--w);height:var(--h);left:var(--x);top:var(--y);inset:auto;pointer-events:none}.hero-worn-head{--x:27%;--y:0%;--w:46%;--h:23%}.hero-worn-earring{--x:33%;--y:10%;--w:33%;--h:10%}.hero-worn-armor{--x:15%;--y:15%;--w:70%;--h:34%}.hero-worn-necklace{--x:38%;--y:17%;--w:24%;--h:15%}.hero-worn-gloves{--x:1%;--y:28%;--w:98%;--h:28%}.hero-worn-pants{--x:19%;--y:44%;--w:62%;--h:38%}.hero-worn-boots{--x:20%;--y:77%;--w:60%;--h:22%}.hero-worn-ring{--x:3%;--y:46%;--w:24%;--h:11%}.hero-worn-ring2{--x:72%;--y:46%;--w:24%;--h:11%}.hero-worn-weapon{--x:0%;--y:25%;--w:32%;--h:49%}.hero-worn-accessory{--x:67%;--y:22%;--w:27%;--h:17%}.hero-name{text-align:center;padding:4px 6px 0}.hero-name span{margin-top:3px;color:#d6ceef}
/* Keep the glow raster fixed; pulse only one small light layer per slot. */
.gear-glow{--gear-color:#6ee6df;border-color:var(--gear-color);animation:none;box-shadow:none}
.gear-glow-4,.gear-glow-5,.gear-glow-6{--gear-color:#80b8ff}
.gear-glow-7,.gear-glow-8,.gear-glow-9{--gear-color:#c89aff}
.gear-glow-10,.gear-glow-11,.gear-glow-12{--gear-color:#ffdc7a}
.gear-glow .ether-slot-art,.gear-glow .inventory-slot-art{position:relative;border:2px solid var(--gear-color);background:radial-gradient(circle,#534c78,#171b38 80%);animation:none;box-shadow:none}
.gear-glow .ether-item-art{animation:none;filter:none}
.gear-glow :is(.ether-slot-art,.inventory-slot-art)::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,color-mix(in srgb,var(--gear-color) 24%,transparent));box-shadow:inset 0 0 10px var(--gear-color);opacity:.55;will-change:opacity;animation:gear-aura-opacity var(--pulse-period,2400ms) ease-in-out var(--pulse-offset,0ms) infinite alternate}
@keyframes gear-aura-opacity{from{opacity:.18}to{opacity:calc(.55 + var(--glow-strength,0)*.4)}}
@media(max-width:520px){.ether-character-layout{grid-template-columns:minmax(65px,1fr) minmax(124px,1.6fr) minmax(65px,1fr);gap:5px}.ether-hero{padding:8px 2px}.ether-gear-slot{padding:5px;gap:3px}.ether-gear-slot>span{font-size:.73rem}.ether-slot-art{min-height:46px}.ether-slot-art img{width:49px;height:49px}.ether-gear-slot select{font-size:.72rem;min-height:32px}.hero-figure{width:100%}.character-power{padding:10px}}
.ether-hero[data-outfit-tier="0"]{background:radial-gradient(circle at 50% 30%,#5b657a,#202846 70%)}.ether-hero[data-outfit-tier="1"]{background:radial-gradient(circle at 50% 30%,#866449,#27223e 70%)}.ether-hero[data-outfit-tier="2"]{background:radial-gradient(circle at 50% 30%,#7994aa,#1a2942 70%)}.ether-hero[data-outfit-tier="3"]{background:radial-gradient(circle at 50% 30%,#b48a45,#312438 70%)}.ether-hero[data-outfit-tier="4"]{background:radial-gradient(circle at 50% 30%,#579b92,#1b3145 70%)}.ether-hero[data-outfit-tier="5"]{background:radial-gradient(circle at 50% 30%,#8b75b5,#252044 70%)}.ether-hero.outfit-glow{animation:none;box-shadow:inset 0 0 8px var(--gear-color,#6ee6df)}

.inventory-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 12px}.inventory-controls label{font-size:.88rem;font-weight:700}.inventory-controls select{min-width:145px;min-height:40px;background:#101934;color:#fff;border:1px solid #8281ae;border-radius:8px;padding:7px;font:inherit}.inventory-count{margin-left:auto;color:#9fe0a7}.inventory-count.full{color:#f6a1a7}.inventory-full{padding:10px 12px;border-radius:9px;border:1px solid #aa5963;background:#3b2736;color:#ffd3d8;font-weight:700}.ether-character-inventory .inventory-item.inventory-empty{min-height:178px;justify-content:center;border-style:dashed;background:#151d38;color:#7481a6}.inventory-empty span{font-size:2rem;line-height:1}.inventory-empty small{font-size:.77rem}
.inventory-scroll{max-height:min(440px,55vh);overflow-y:auto;overscroll-behavior:contain;padding:8px;border:1px solid var(--line);border-radius:12px;background:#101832;scrollbar-color:#7774a9 #101832}.inventory-scroll:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.inventory-scroll .inventory-list{margin-top:0;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.ether-character-inventory .inventory-item.inventory-empty{min-height:82px;padding:8px;gap:2px}.inventory-empty span{font-size:1.25rem}.ether-character-inventory .inventory-fold{padding:0;display:block;overflow:hidden}.inventory-fold summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px;min-height:158px}.inventory-fold summary::-webkit-details-marker{display:none}.inventory-fold summary:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px;border-radius:9px}.inventory-fold summary:hover{background:#ffffff0a}.inventory-fold summary .inventory-chevron{color:#cdbaff;font-size:1.1rem;line-height:1;transition:transform .2s}.inventory-fold[open] summary .inventory-chevron{transform:rotate(180deg)}.inventory-fold-body{padding:0 9px 10px}.inventory-fold-body p{text-align:center}.inventory-fold-body .inventory-slot-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}@media(max-width:520px){.inventory-scroll .inventory-list{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-scroll{max-height:min(400px,52vh)}}
.ether-character-layout{grid-template-areas:'weapon hero armor' 'earring hero necklace' 'ring hero accessory'}
.battle-victory-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.battle-perks{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.battle-perks:empty{display:none}.battle-perks span{padding:5px 8px;border:1px solid #6f78aa;border-radius:16px;background:#222e50;color:#e8ddff;font-size:.78rem}.battle-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px auto;text-align:left}.battle-summary span{display:flex;flex-direction:column;padding:8px 10px;background:#232b4a;border:1px solid #576388;border-radius:8px;color:#cbd5ee;font-size:.78rem}.battle-summary strong{color:#fff;font-size:.88rem}.battle-summary-loot{grid-column:1/-1}.battle-finisher{max-width:430px}
.chat-shell{max-width:860px;margin:0 auto 35px;padding:22px;background:#171f3c;border:1px solid #505d83;border-radius:16px}.chat-heading{display:flex;justify-content:space-between;gap:18px;align-items:start}.chat-heading h2{margin:5px 0 7px}.chat-heading p{max-width:590px;color:#c5cce2;font-size:.88rem;margin:0 0 12px}.chat-heading>strong{white-space:nowrap;padding:7px 10px;border:1px solid #688271;border-radius:20px;color:#a8e4b1;font-size:.83rem}.chat-status{min-height:25px;color:#ffd2a1;font-size:.88rem}.chat-status a{display:inline-block;margin:10px 0}.chat-messages{display:flex;flex-direction:column;gap:9px;height:min(52vh,430px);overflow-y:auto;overscroll-behavior:contain;list-style:none;margin:0;padding:12px;border:1px solid #38496c;border-radius:11px;background:#101831}.chat-messages li{max-width:100%;padding:9px 12px;border:1px solid #364364;border-radius:10px;background:#1b2643}.chat-messages li>div{display:flex;gap:10px;align-items:center;justify-content:space-between}.chat-messages strong{color:#f7d7a2;font-size:.9rem;overflow-wrap:anywhere}.chat-messages time{color:#aebad6;font-size:.77rem;white-space:nowrap}.chat-messages p{margin:5px 0 0;font-size:.92rem;overflow-wrap:anywhere;white-space:pre-wrap}.chat-messages .chat-empty{color:#bdc8df;text-align:center;margin:auto;background:transparent;border:0}.chat-form{display:grid;gap:7px;margin-top:14px}.chat-form label{font-weight:700}.chat-form>div{display:flex;gap:8px}.chat-form input{flex:1;min-width:0;padding:11px 12px;border:1px solid #7787ad;border-radius:9px;color:#fff;background:#101831;font:inherit}.chat-form input:focus-visible{outline:3px solid var(--cyan)}.chat-form small{color:#aebad6}@media(max-width:600px){.chat-shell{padding:15px}.chat-heading{flex-direction:column;gap:4px}.chat-heading>strong{margin-bottom:8px}.chat-messages{height:45vh}.chat-form>div{flex-direction:column}.chat-form button{width:100%}}
.chat-form[hidden]{display:none}

.rank-star{display:inline-block;color:#ffd34f;font-size:.8rem;margin-right:4px;vertical-align:1px;text-shadow:0 0 7px #eeb64e66}.leaderboard-self .rank-star{font-size:.8rem;color:#ffd34f;width:auto}.property-prestige{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin-bottom:18px;background:linear-gradient(110deg,#282645,#152845);border:1px solid #73629c;border-radius:12px}.property-prestige strong{color:#ffdb8b}.property-prestige p{margin:7px 0 0;font-size:.875rem;color:#c5cee4;max-width:750px}.property-prestige button{flex:none}.space-asset-icon{width:72px;height:72px;flex:none;overflow:hidden;background:#0c142b}.space-asset-icon img{display:block;width:100%;height:100%;object-fit:cover}.owned-property{display:flex;align-items:center;gap:5px}.owned-property img{width:38px;height:38px;object-fit:cover;border-radius:8px}@media(max-width:760px){.property-prestige{align-items:stretch;flex-direction:column}.space-asset-icon{width:64px;height:64px}}

.chat-channels{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
.chat-channel{padding:10px 20px;border:1px solid #526789;border-radius:9px;background:#1b2848;color:#d5dff1;font:inherit;font-weight:700;cursor:pointer}
.chat-channel.active{border-color:#efc881;background:#4b3c53;color:#ffe1a6}
.chat-channel span{margin-left:5px;font-size:.875rem;color:#ffd697}
.chat-help{color:#c5cce2;font-size:.875rem;margin:0 0 8px}
.chat-own{border-color:#786d96!important;background:#292b49!important}
.chat-address{display:block;margin:4px 0;color:#c7b8ee;font-size:.875rem}
.chat-message-actions{justify-content:flex-end!important;gap:8px!important;margin-top:8px}
.chat-message-actions button{padding:5px 10px;font-size:.875rem}
.chat-delete{color:#efbdad}
.chat-history-more{margin-top:10px}
.chat-form select{width:100%;max-width:100%;margin-top:6px;padding:10px;border:1px solid #7787ad;border-radius:9px;color:#fff;background:#101831;font:inherit}
.chat-form #chat-recipient-field[hidden],.chat-channel span[hidden],.chat-history-more[hidden]{display:none}
.chat-form input,.chat-form select{box-sizing:border-box}

.dice-fold{min-width:0;padding:0;overflow:hidden}
.dice-summary{min-height:48px;padding:12px 14px;list-style:none;cursor:pointer}
.dice-summary::-webkit-details-marker{display:none}
.dice-summary::marker{content:''}
.dice-summary:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px;border-radius:10px}
.dice-summary h3{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}
.dice-summary .dice-faces{flex:none}
.dice-chevron{flex:none;color:var(--accent);font-size:1.25rem;line-height:1;transition:transform .2s}
.dice-fold[open]>.dice-summary .dice-chevron{transform:rotate(180deg)}
.dice-body{padding:0 14px 14px}
.dice-rule{margin:0;color:var(--muted);font-size:.875rem;line-height:1.5}

.piggy-panel .piggy-button{width:min(100%,14rem);aspect-ratio:1;min-height:0;margin:0 auto 7px;padding:1.2rem;border-radius:50%;flex-direction:column;gap:.65rem;text-align:center;position:relative;outline:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
.piggy-panel .piggy-button::after{content:'';position:absolute;inset:-6px;border:3px solid var(--cyan);border-radius:50%;opacity:0;pointer-events:none}
.piggy-panel .piggy-button:focus-visible::after{opacity:1}
.piggy-panel .piggy-button.tutorial-target{outline:none!important}
.piggy-panel .piggy-button>span{max-width:100%}
/* Older Safari ignores manipulation for double-tap zoom; keep taps as native clicks. */
.piggy-panel .piggy-button{touch-action:none}
.piggy-panel .piggy-button .clover-icon{font-size:4rem}
.piggy-panel .piggy-button b{font-size:1.65rem;line-height:1.2;overflow-wrap:anywhere}
.piggy-panel .piggy-button small{display:block;margin-top:.3rem;font-size:.875rem;line-height:1.35}
.piggy-panel .piggy-button{transition:transform .04s ease-out,box-shadow .04s ease-out,filter .04s ease-out}
.piggy-panel .piggy-button:active{transform:translateY(8px) scale(.92);filter:brightness(1.1);box-shadow:0 2px 0 #965c2f,0 5px 12px #080d1bbd,inset 0 0 0 3px #fff3c766}
@media(prefers-reduced-motion:reduce){.piggy-panel .piggy-button:active{transform:none}}

.arena-portrait{width:min(100%,240px);aspect-ratio:1;margin-inline:auto;border:2px solid #8f84bd;border-radius:15px;background:#1a2340}
.arena-portrait img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;margin:0;border:0;border-radius:inherit}
.arena-portrait .damage-float{font-size:clamp(1.6rem,4vw,3.2rem);color:#fff4d3;animation-duration:.8s}
@media(max-width:580px){.arena-portrait{width:min(100%,170px)}}

.property-prestige{flex-wrap:wrap}
.property-prestige>div:not(.property-economy){flex:1;min-width:240px}
.property-economy{flex-basis:100%;padding-top:12px;border-top:1px solid #73629c}

/* Eter Devri: shared artwork, readable controls and deposit celebration. */
body{background:radial-gradient(ellipse 75% 45% at 0% 5%,#3133553b,transparent 70%),radial-gradient(ellipse 80% 55% at 90% -5%,#1b2450,transparent 72%),var(--bg)}
.card-header-icon{display:inline-block;width:30px;height:30px;flex:none;vertical-align:middle;margin-right:9px;filter:drop-shadow(0 3px 7px #070a1659)}
h2:has(>.card-header-icon),h3:has(>.card-header-icon),#tasks-title{display:flex;align-items:center;gap:0;min-width:0}
#vitals-title small{margin-left:7px}
.world-tab{display:inline-flex;align-items:center;gap:7px}
.world-tab .card-header-icon{width:22px;height:22px;margin-right:0;filter:none}
.world-tab.active .card-header-icon{background:#17213b;border-radius:6px;padding:1px}
.brand-mark{background:linear-gradient(135deg,#30294a,#17283d);border-color:#817397;box-shadow:0 4px 18px #10172b}
.brand-mark img{display:block}
.scene{border-color:#6e67876e;box-shadow:0 20px 70px #02081470,inset 0 0 0 1px #e8ca9122}
.scene-content .eyebrow{display:inline-block;border:1px solid #e3c69140;border-radius:99px;background:#171d32a6;padding:5px 9px;font-size:.65rem;letter-spacing:.14em}
:is(.card,.vitals-panel,.family-card,.career-card,.family-person,.donation-card,.planet-fold-card,.tasks-panel){background-image:linear-gradient(135deg,#c2afeb08,transparent 65%);border-color:color-mix(in srgb,var(--line),#b9a5d5 15%)}
.earth-panel-summary,.planet-panel-summary{border-radius:10px}
:is(.earth-panel-body,.tasks-body,.planet-panel-body,.career-card-scroll,.family-person-scroll,.leaderboard-list){scrollbar-width:thin;scrollbar-color:#82718e55 transparent}
:is(.earth-panel-body,.tasks-body,.planet-panel-body,.career-card-scroll,.family-person-scroll)::-webkit-scrollbar{width:6px}
:is(.earth-panel-body,.tasks-body,.planet-panel-body,.career-card-scroll,.family-person-scroll)::-webkit-scrollbar-thumb{border-radius:99px;background:#81749377}
.family-person-scroll{min-width:0}
.family-meter strong{white-space:nowrap}
.family-alchemy-button small{line-height:1.45}
.career-card-scroll{padding-top:8px}
.donation-card{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:20px}
.donation-product{display:flex;align-items:center;gap:12px;min-width:0}
.donation-product>div{min-width:0}
.donation-product small,.donation-card-footer small{display:block;font-size:.78rem;color:var(--muted);line-height:1.4;margin-top:3px}
.donation-icon{width:46px;height:46px;flex:none;display:grid;place-items:center;border:1px solid #9978a957;border-radius:14px;background:linear-gradient(135deg,#4b355b,#253852);font-size:1.65rem}
.donation-range-label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;font-size:.78rem;color:var(--muted)}
.donation-range-label strong{color:var(--accent);font-size:.95rem;font-variant-numeric:tabular-nums}
.donation-range{width:100%;min-width:0;margin:0;accent-color:var(--accent);cursor:pointer;touch-action:pan-y;min-height:28px}
.donation-range:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:7px}
.donation-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}
.donation-card-footer button{min-width:105px}
.deposit-all-button:not(:disabled){box-shadow:0 4px 20px #69ddc417;transition:box-shadow .15s,filter .15s}
.deposit-all-button:hover:not(:disabled){box-shadow:0 5px 24px #69ddc436}
.deposit-particles{position:fixed;z-index:120;width:0;height:0;pointer-events:none;user-select:none}
.deposit-particles>span{position:absolute;display:grid;place-items:center;left:-14px;top:-14px;font-weight:900;opacity:0;animation:deposit-scatter .85s cubic-bezier(.15,.7,.3,1) var(--scatter-delay) both;will-change:transform,opacity}
.deposit-coin{width:28px;height:28px;border:2px solid #ffe29c;border-radius:50%;background:linear-gradient(135deg,#ffe29c,#d59537);color:#69431b;box-shadow:0 3px 12px #e8b95b50}
.deposit-note{width:38px;height:24px;border:2px solid #b5edce;border-radius:4px;background:linear-gradient(135deg,#a0e2bb,#43947c);color:#1b5a47;box-shadow:0 3px 12px #a0e2bb40}
@keyframes deposit-scatter{0%{opacity:0;transform:translate(0,0) scale(.4) rotate(0)}12%{opacity:1}65%{opacity:1}100%{opacity:0;transform:translate(var(--scatter-x),var(--scatter-y)) scale(.85) rotate(var(--scatter-turn))}}
@media(prefers-reduced-motion:reduce){.deposit-particles{display:none}.deposit-all-button{transition:none}}
.click-gold-burst{position:fixed;inset:0;z-index:120;overflow:hidden;contain:strict;pointer-events:none;user-select:none}
.click-gold-coin{position:absolute;display:grid;place-items:center;width:24px;height:24px;margin:-12px;border:2px solid #fff0a8;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff3b0 0%,#ffd553 40%,#e8a718 72%,#ac6614 100%);color:#8b500b;font-size:.875rem;font-weight:900;text-shadow:0 1px #fff4a6;box-shadow:inset 0 0 0 2px #d88b1680,0 0 12px #ffc94d66;opacity:0;animation:click-gold-flight .62s cubic-bezier(.15,.55,.35,1) var(--gold-delay) both;will-change:transform,opacity}
@keyframes click-gold-flight{0%{opacity:0;transform:translate(0,0) scale(.45) rotate(0)}10%{opacity:1}45%{opacity:1;transform:translate(calc(var(--gold-x)*.55),var(--gold-apex)) scale(1) rotate(calc(var(--gold-turn)*.5))}72%{opacity:1}100%{opacity:0;transform:translate(var(--gold-x),var(--gold-fall)) scale(.65) rotate(var(--gold-turn))}}
@media(prefers-reduced-motion:reduce){.click-gold-burst{display:none}.click-gold-coin{animation:none}}
.quiz-answer-effect{position:fixed;inset:0;z-index:120;overflow:hidden;contain:strict;pointer-events:none;user-select:none}
.quiz-confetti-piece{position:absolute;width:12px;height:21px;margin:-10px -6px;border-radius:2px;opacity:0;animation:quiz-confetti-burst 1.65s cubic-bezier(.15,.6,.3,1) var(--confetti-delay) both;will-change:transform,opacity}
@keyframes quiz-confetti-burst{0%{opacity:0;transform:translate(0,0) scale(.4) rotate(0)}8%{opacity:1}35%{opacity:1;transform:translate(calc(var(--confetti-x)*.6),var(--confetti-apex)) scale(1) rotate(calc(var(--confetti-turn)*.4))}75%{opacity:1}100%{opacity:0;transform:translate(var(--confetti-x),var(--confetti-fall)) scale(.7) rotate(var(--confetti-turn))}}
.quiz-wrong-cross{position:absolute;display:grid;place-items:center;width:150px;height:150px;margin:-75px;color:#ff5469;font-size:150px;font-weight:800;line-height:1;text-shadow:0 0 25px #ff314b80;opacity:0;animation:quiz-wrong-pop .75s ease-out both;will-change:transform,opacity}
@keyframes quiz-wrong-pop{0%{opacity:0;transform:scale(.3) rotate(-15deg)}20%{opacity:1;transform:scale(1.15) rotate(6deg)}38%{opacity:1;transform:scale(1) rotate(0)}68%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9)}}
@media(prefers-reduced-motion:reduce){.quiz-answer-effect{display:none}.quiz-confetti-piece,.quiz-wrong-cross{animation:none}}
@media(max-width:600px){.card-header-icon{width:25px;height:25px;margin-right:7px}.world-tab .card-header-icon{width:19px;height:19px}.donation-card{padding:17px}}
/* Open desktop cards share a height; content scrolls inside each card. */
@media (min-width: 1101px) {
  :root {
    --desktop-earth-height: 520px;
    --desktop-ether-height: 580px;
    --desktop-family-height: 580px;
    --desktop-career-height: 400px;
    --desktop-card-gap: 18px;
  }

  #earth-view > .earth-grid {
    max-width: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--desktop-card-gap);
    align-items: start;
  }
  #earth-view > .earth-grid > :is(.piggy-panel, .shop-section, .tasks-panel) {
    min-width: 0;
    margin-top: 0;
    border-radius: 18px;
    box-shadow: 0 14px 36px #050b183b;
  }
  #earth-view > .earth-grid > :is(.piggy-panel, .shop-section, .tasks-panel)[open] {
    height: var(--desktop-earth-height);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  #earth-view > .earth-grid > :is(.piggy-panel, .shop-section, .tasks-panel) > summary {
    flex: none;
    min-height: 52px;
  }
  #earth-view > .earth-grid > :is(.piggy-panel, .shop-section)[open] > .earth-panel-body,
  #earth-view > .earth-grid > .tasks-panel[open] > .tasks-body {
    min-height: 0;
    min-width: 0;
    flex: 1;
    overflow-y: auto;
    overflow-x: clip;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #657696 transparent;
    padding-right: 8px;
  }
  #earth-view .earth-grid .piggy-play {
    grid-template-columns: minmax(0, 1fr);
  }
  #earth-view .earth-grid .piggy-actions,
  #earth-view .earth-grid .piggy-earn {
    min-width: 0;
  }
  #earth-view .earth-grid .auto-click-box {
    flex-wrap: wrap;
  }
  #earth-view .earth-grid .auto-click-box > button {
    margin-left: auto;
  }

  #planet-content > :is(.planet-top, .planet-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--desktop-card-gap);
    align-items: start;
  }
  #planet-content > .planet-grid > .wide {
    grid-column: auto;
  }
  #planet-content > .planet-grid > [data-planet-section="map"] {
    grid-column: 1 / -1;
  }
  #planet-content > :is(.planet-top, .planet-grid) > .planet-fold-card {
    min-width: 0;
    border-radius: 18px;
    box-shadow: 0 14px 36px #050b183b;
  }
  #planet-content > :is(.planet-top, .planet-grid) > .planet-fold-card[open] {
    height: var(--desktop-ether-height);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  #planet-content .planet-fold-card > .planet-panel-summary {
    flex: none;
    min-height: 60px;
  }
  #planet-content .planet-fold-card[open] > .planet-panel-body {
    min-height: 0;
    min-width: 0;
    flex: 1;
    overflow-y: auto;
    overflow-x: clip;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #8174a6 transparent;
    padding-right: 8px;
  }
  /* One scrolling viewport for character and inventory, rather than two nested
     wheel/touch scroll regions. Keep existing mobile inventory rules intact. */
  #planet-content [data-planet-section="character"] > .planet-panel-body .inventory-scroll {
    max-height: none;
    overflow: visible;
  }
  #planet-content .resource-grid,
  #planet-content .growth-grid,
  #planet-content .stat-shop {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #planet-content .monster-grid,
  #planet-content .equipment-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #planet-content .ether-map-caption {
    align-items: start;
  }

  #jobs-content .career-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--desktop-card-gap);
    align-items: stretch;
  }
  #jobs-content .career-card {
    height: var(--desktop-career-height);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 14px 36px #050b183b;
  }
  #jobs-content .career-card > :is(.career-icon, .career-card-heading) {
    flex: none;
  }
  #jobs-content .career-card-scroll {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
    padding-right: 7px;
  }
  #jobs-content .career-card-footer {
    align-items: start;
  }

  #family-content .family-people {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--desktop-card-gap);
    align-items: stretch;
  }
  #family-content .family-people > .family-person {
    height: var(--desktop-family-height);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 14px 36px #050b183b;
  }
  #family-content .family-person-head {
    flex: none;
  }
  #family-content .family-person-scroll {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
    padding-right: 7px;
  }
  #family-content .family-person > .family-callout {
    margin-block: auto;
  }
  #donate-content .donation-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--desktop-card-gap);
    align-items: stretch;
  }
  #donate-content .donation-card {
    min-height: 170px;
    flex-wrap: wrap;
    align-content: center;
    border-radius: 18px;
    box-shadow: 0 14px 36px #050b183b;
  }
  #donate-content .donation-card > button {
    margin-left: auto;
  }
}

@media (min-width: 1440px) {
  #family-content .family-people {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #planet-content > .planet-grid > [data-planet-section="map"] .ether-world-map {
    min-height: 340px;
  }
}

@media (min-width: 1101px) and (max-height: 760px) {
  :root {
    --desktop-earth-height: 470px;
    --desktop-ether-height: 520px;
    --desktop-family-height: 520px;
    --desktop-career-height: 370px;
  }
}

@media(min-width:1101px){
  #family-content .family-person:not([data-member-id]){overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}
  #donate-content .donation-card{height:260px;min-height:260px;flex-wrap:nowrap;align-content:normal;overflow-y:auto}
  #assets-section[open]{max-height:var(--desktop-ether-height);display:flex;flex-direction:column;overflow:hidden}
  #assets-section[open]>.earth-panel-body{overflow-y:auto;min-height:0;flex:1;overscroll-behavior-y:contain;scrollbar-gutter:stable}
  .bottom-grid>.earth-fold-card[open]{height:300px;display:flex;flex-direction:column;overflow:hidden}
  .bottom-grid>.earth-fold-card[open]>.earth-panel-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}
  .leaderboard-card[open]{height:390px;display:flex;flex-direction:column;overflow:hidden}
  .leaderboard-card[open]>.leaderboard-card-head{flex:none}
  .leaderboard-card[open]>.leaderboard-list{min-height:0;flex:1;overflow-y:auto;overscroll-behavior-y:contain}
}

@media(min-width:1101px){
  :is(.earth-fold-card,.tasks-panel,.planet-fold-card,.leaderboard-card)[open]::details-content{display:flex;flex-direction:column;flex:1;min-height:0}
  .earth-grid>:is(.piggy-panel,.shop-section)[open]>.earth-panel-body,.earth-grid>.tasks-panel[open]>.tasks-body{max-height:calc(var(--desktop-earth-height) - 140px)}
  .planet-fold-card[open]>.planet-panel-body{max-height:calc(var(--desktop-ether-height) - 130px)}
}

/* Let the desktop earnings card grow with dice and withdrawal controls. */
@media(min-width:1101px){
  #earth-view>.earth-grid>.piggy-panel[open]{height:auto;min-height:var(--desktop-earth-height);overflow:visible}
  #earth-view>.earth-grid>.piggy-panel[open]::details-content{flex:none;min-height:auto}
  #earth-view>.earth-grid>.piggy-panel[open]>.earth-panel-body{flex:none;max-height:none;overflow:visible;scrollbar-gutter:auto;padding-right:0}
}

.ether-conversion-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:14px 18px;margin:-7px 0 18px;border:1px solid #6a639b;border-radius:13px;background:linear-gradient(110deg,#252748,#142739);box-shadow:0 8px 25px #04091630}
.ether-conversion-heading{min-width:0}
.ether-conversion-heading h2{font-size:1.05rem}
.ether-conversion-heading small{display:block;color:var(--muted);font-size:.875rem;margin-top:5px}
.ether-conversion-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;min-width:0}
.ether-conversion-controls>strong{color:var(--cyan);font-size:1.1rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ether-conversion-controls .convert-buttons{flex-wrap:nowrap}
.ether-conversion-controls .small-button{min-width:76px;min-height:44px;padding:8px 12px;white-space:nowrap}
#ether-conversion-status{font-size:.875rem;color:var(--purple)}
#planet-content>.planet-top{grid-template-columns:minmax(0,1fr)}
@media(max-width:760px){.ether-conversion-bar{flex-direction:column;align-items:stretch;padding:14px;margin-top:-5px}.ether-conversion-controls{justify-content:space-between}.ether-conversion-controls .convert-buttons{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.ether-conversion-controls .small-button{min-width:0;padding:8px 4px;font-size:.875rem}.ether-conversion-controls>strong{font-size:1rem}}
@media(max-width:420px){.ether-conversion-controls .convert-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}

.quiz-confetti-piece:nth-child(3n){width:13px;height:13px;border-radius:50%}.quiz-confetti-piece:nth-child(4n){width:7px;height:25px;border-radius:1px}
/* World artwork stays fixed while the translucent card surfaces scroll. */
:root[data-world]{--glass-surface:#101c2ec7;--glass-inset:#162b4270;--glass-line:#d8e9fa32}
:root[data-world="planet"]{--glass-surface:#171b23cc;--glass-inset:#272c3970;--glass-line:#e4eaf23d}
:root[data-world] body{background:#09121e;isolation:isolate}
:root[data-world] body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#07121d22,#07121d88),url("./evren.webp") center center/cover no-repeat}
:root[data-world="planet"] body{background:#11151c}
:root[data-world="planet"] body::before{background:linear-gradient(180deg,#11151c33,#11151c88),url("./ether-background-v2.webp") center center/cover no-repeat}
:root[data-world="earth"] .scene{background-image:url("./evren.webp");background-position:center 49%}
:root[data-world="planet"] .scene{background-image:url("./ether-background-v2.webp");background-position:center 58%}
:root[data-world="planet"] .scene::after{background:linear-gradient(90deg,#11151cee 0%,#11151cb0 36%,#11151c30 76%,#11151c38)}
:root[data-world] :is(.card,.vitals-panel,.earth-fold-card,.planet-fold-card,.tasks-panel,.family-card,.planet-header,.leaderboard-card,.donation-heading,.portal-celebration,.ether-conversion-bar,.career-card,.family-person,.chat-shell,.planet-intro){background:linear-gradient(135deg,#ffffff06,transparent 68%),var(--glass-surface);border-color:var(--glass-line);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:0 10px 30px #00000020}
:root[data-world] :is(.asset-card,.need-column,.donation-card,.monster-card,.growth-card,.inventory-item,.inventory-scroll,.resource-card,.stat-row.alchemy-card,.potion-card,.equipment-card){background:var(--glass-inset);border-color:var(--glass-line)}
:root[data-world] .career-card.chosen{background:linear-gradient(135deg,#e4bc7422,transparent),var(--glass-surface);border-color:#e4bc74}

.property-purchase-burst{position:fixed;inset:0;z-index:120;overflow:hidden;contain:strict;pointer-events:none;user-select:none}
.property-purchase-particle{position:absolute;display:grid;place-items:center;width:46px;height:46px;margin:-23px;font-size:2.5rem;line-height:1;color:#fff3c7;text-shadow:0 2px 3px #030714;filter:drop-shadow(0 0 9px #ffe4a980);opacity:0;animation:property-purchase-flight .9s cubic-bezier(.15,.55,.35,1) var(--property-delay) both;will-change:transform,opacity}
.property-purchase-particle img{display:block;width:100%;height:100%;object-fit:contain}
@keyframes property-purchase-flight{0%{opacity:0;transform:translate(0,0) scale(.3) rotate(0)}12%{opacity:1}43%{opacity:1;transform:translate(calc(var(--property-x)*.55),var(--property-apex)) scale(1.15) rotate(calc(var(--property-turn)*.5))}75%{opacity:1}100%{opacity:0;transform:translate(var(--property-x),var(--property-fall)) scale(.55) rotate(var(--property-turn))}}
@media(prefers-reduced-motion:reduce){.property-purchase-burst{display:none}.property-purchase-particle{animation:none}}

/* A shared battlefield uses the selected world's map and existing fighter art. */
.battle-dialog{width:min(1060px,100%)}
.battle-body{grid-template-columns:1fr;gap:14px}
.battle-monster{gap:8px;min-width:0}
.battle-scene{position:relative;isolation:isolate;container-type:inline-size;overflow:hidden;border:1px solid #b6b4cf80;border-radius:15px;background:#10162c;box-shadow:inset 0 0 50px #03081380;--battle-lunge:clamp(92px,29vw,320px)}
.battle-scene::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#080e2377 0%,#080e2315 40%,#080e23a6 100%),var(--battle-map) var(--battle-region-x) var(--battle-region-y)/145% auto no-repeat}
.battle-scene-location{padding:10px 14px;text-align:center;background:#080e2373;color:#f1e6c7;font-size:.875rem;line-height:1.4}
.battle-health-hud{position:relative;z-index:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,5vw,70px);padding:12px 18px 0}
.battle-fighter-health{display:grid;gap:5px;min-width:0;padding:9px 11px;border:1px solid #9de4da55;border-radius:10px;background:#081727c9;text-align:left}
.battle-fighter-health.enemy{border-color:#ffadaf55;text-align:right}
.battle-fighter-health>span{overflow-wrap:anywhere;color:#fff;font-size:.9375rem;font-weight:800}
.battle-fighter-health strong{font-size:.875rem;color:#c8fff1;font-variant-numeric:tabular-nums}
.battle-fighter-health.enemy strong{color:#ffd4d6}
.battle-health-track{height:8px;overflow:hidden;background:#0007;border-radius:99px}
.battle-health-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3fab9a,#b1f8cd);transition:width .3s}
.battle-fighter-health.enemy .battle-health-track>span{background:linear-gradient(90deg,#c84e6b,#ffbda1)}
.battle-health-hud.battle-resource-hud{grid-template-columns:repeat(2,minmax(0,240px));justify-content:space-between;gap:10px;padding:8px 10px 0}
.battle-health-hud .battle-fighter-resources{align-self:start;gap:3px;padding:5px;border-radius:8px}
.battle-fighter-resources>span{font-size:.8125rem;line-height:1.3}
.battle-resource{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2px 5px;width:100%;min-width:0;min-height:18px;padding:1px 4px;border:1px solid #87d4bc66;border-radius:4px;background:#102c2b;text-align:left;touch-action:manipulation}
.battle-resource[data-resource="mana"]{border-color:#89baff66;background:#132840}
.battle-resource[data-resource="energy"]{border-color:#ffd28566;background:#332916}
.enemy .battle-resource{border-color:#ff9dac66;background:#3c202c}
.battle-resource-track{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit;pointer-events:none}
.battle-resource-track>span{display:block;height:100%;background:linear-gradient(90deg,#23645b,#377d64);transition:width .3s}
.battle-resource[data-resource="mana"] .battle-resource-track>span{background:linear-gradient(90deg,#244c7a,#315f91)}
.battle-resource[data-resource="energy"] .battle-resource-track>span{background:linear-gradient(90deg,#6a481c,#806025)}
.enemy .battle-resource-track>span{background:linear-gradient(90deg,#763448,#944657)}
.battle-fighter-resources .battle-resource-label,.battle-fighter-resources .battle-resource-value,.battle-fighter-resources .battle-resource-value span{color:#fff;font-size:12px;line-height:14px}
.battle-resource-label{font-weight:600}
.battle-resource-value{min-width:0;max-width:100%;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.battle-resource-full{display:none}
.battle-resource[aria-pressed="true"]{align-items:center;flex-direction:row}
.battle-resource[aria-pressed="true"] .battle-resource-percent{display:none}
.battle-resource[aria-pressed="true"] .battle-resource-full{display:flex;flex-wrap:wrap;column-gap:4px}
.battle-resource-full>span{min-width:0;max-width:100%}
.battle-resource:hover{filter:brightness(1.12)}
.battle-stage{position:relative;height:clamp(220px,30vw,310px);margin:0 12px;pointer-events:none;user-select:none}
.battle-actor{position:absolute;bottom:3%;will-change:transform;transform-origin:50% 94%}
.battle-hero{z-index:3;left:11%;width:23%;height:auto;aspect-ratio:2/3;max-height:93%;animation:none}
.battle-hero-art{display:block;width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 8px 10px #0009)}
.battle-held-blade,.battle-held-staff{position:absolute;z-index:2;left:49%;bottom:33%;width:76%;height:auto;object-fit:contain;transform-origin:20% 82%;filter:drop-shadow(0 0 7px #d9eeff80);transform:rotate(-28deg)}
.battle-held-staff{display:none}
.battle-shield{display:none;position:absolute;z-index:4;left:6%;top:22%;width:105%;height:58%;place-items:center;border:2px solid #88fce1aa;border-radius:50%;background:radial-gradient(ellipse,#96e6e726,transparent 70%);box-shadow:0 0 20px #75eddf66,inset 0 0 20px #75eddf33;font-size:clamp(2rem,5vw,4rem)}
.battle-enemy{z-index:2;right:5%;width:29%;height:85%;display:flex;align-items:end;animation:none}
.battle-stage .battle-enemy-art.monster-portrait{width:100%;aspect-ratio:1;border:0;border-radius:0;box-shadow:none;background-color:transparent;mask-image:radial-gradient(ellipse at 50% 51%,#000 38%,#000c 54%,transparent 73%);-webkit-mask-image:radial-gradient(ellipse at 50% 51%,#000 38%,#000c 54%,transparent 73%)}
.battle-hit-spark{position:absolute;inset:12% 5%;opacity:0;pointer-events:none;background:radial-gradient(ellipse at center,#fff6d9,transparent 55%);mix-blend-mode:screen}
.battle-spell-projectile{display:none;position:absolute;z-index:5;left:29%;top:38%;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle,#fff 0 13%,#c5f5ff 26%,#a79bff 48%,transparent 74%);box-shadow:0 0 18px #bad4ff,0 0 35px #9985ff;opacity:0}
.battle-scene-damage{position:absolute;z-index:6;top:25%;font-size:clamp(1.4rem,3.4vw,2.6rem);font-weight:900;color:#fff1bd;text-shadow:0 2px 4px #000,0 0 12px #cf653f;font-variant-numeric:tabular-nums;opacity:0;animation:battle-damage-rise .65s ease-out .28s both}
.battle-scene-damage.enemy-damage{left:74%}.battle-scene-damage.hero-damage{left:19%;color:#ffb2b6;animation-delay:.62s;animation-duration:.38s}.battle-scene-damage.miss{font-size:clamp(.95rem,2.5vw,1.5rem);color:#cdf0ff}
.battle-round-readout{position:relative;z-index:4;min-height:40px;display:grid;place-items:center;padding:9px 12px;background:#070d22c4;color:#fff0c7;text-align:center;font-size:.875rem;line-height:1.45}
.battle-enemy-details{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 14px}.battle-enemy-details small{color:#c8d0e7;font-size:.875rem}
.battle-accuracy-average{margin:4px 0 6px;color:#d9c9ee;font-size:.875rem}.battle-accuracy-average strong{color:#ffe2a1;margin-left:5px;font-size:1rem}.battle-agility strong{color:#eee5ff}
.battle-scene-finisher{max-width:none}.battle-scene-finisher .battle-scene{text-align:left}.battle-scene-finisher .battle-summary{max-width:650px}
.battle-controls .battle-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.battle-controls h3{margin-top:10px}
.battle-scene[data-style="power"] .battle-hero{animation:battle-power-step 1s ease-in-out both}
.battle-scene[data-style="balanced"] .battle-hero{animation:battle-balanced-step 1s ease-in-out both}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-held-blade{animation:battle-blade-swing .8s ease-in-out both}
.battle-scene[data-style="magic"] .battle-hero{animation:battle-caster-stance 1s ease-in-out both}
.battle-scene[data-style="magic"] .battle-held-blade{display:none}
.battle-scene[data-style="magic"] .battle-held-staff{display:block;animation:battle-staff-raise 1s ease-in-out both}
.battle-scene[data-style="magic"] .battle-spell-projectile{display:block;animation:battle-spell-flight 1s ease-out both}
.battle-scene[data-style="defend"] .battle-hero{animation:battle-guard-stance 1s ease-in-out both}
.battle-scene[data-style="defend"] .battle-held-blade{transform:rotate(-65deg)}
.battle-scene[data-style="defend"] .battle-shield{display:grid;animation:battle-guard-glow 1s ease-out both}
.battle-scene[data-style="balanced"] .battle-shield{display:grid;animation:battle-balanced-guard 1s ease-out both}
.battle-scene[data-enemy-turn="true"] .battle-enemy{animation:battle-enemy-strike 1s ease-in-out both}
.battle-scene[data-hit="true"] .battle-hit-spark{animation:battle-contact-flash 1s ease-out both}
.battle-scene[data-hurt="true"] .battle-hero-art{animation:battle-hero-hit 1s ease-out both}
.battle-scene[data-dodge="true"] .battle-hero-art{animation:battle-hero-dodge 1s ease-in-out both}
.battle-scene[data-defeated="enemy"]:not([data-style="idle"]) .battle-enemy-art{animation:battle-enemy-fall 1s ease-in both}
.battle-scene[data-defeated="hero"]:not([data-style="idle"]) .battle-hero-art{animation:battle-hero-fall 1s ease-in both}
@supports(width:1cqw){.battle-scene{--battle-lunge:34cqw}}
@keyframes battle-power-step{0%,100%{transform:translateX(0)}12%{transform:translateX(-8px) rotate(-5deg)}32%,46%{transform:translateX(var(--battle-lunge)) rotate(8deg)}65%{transform:translateX(0) rotate(-3deg)}82%{transform:translateX(-5px)}}
@keyframes battle-balanced-step{0%,100%{transform:translateX(0)}30%,43%{transform:translateX(calc(var(--battle-lunge)*.68)) rotate(5deg)}60%{transform:translateX(0)}75%{transform:translateX(-3px) rotate(-3deg)}}
@keyframes battle-blade-swing{0%{transform:rotate(-70deg)}18%{transform:rotate(-105deg)}44%{transform:rotate(35deg)}64%{transform:rotate(-15deg)}100%{transform:rotate(-28deg)}}
@keyframes battle-caster-stance{0%,100%{transform:translateY(0)}15%,45%{transform:translateY(-8px) rotate(-4deg)}65%{transform:translateY(0)}}
@keyframes battle-staff-raise{0%,100%{transform:rotate(-28deg)}18%,42%{transform:translateY(-22px) rotate(-70deg);filter:drop-shadow(0 0 16px #ccefff)}65%{transform:translateY(-6px) rotate(-40deg)}}
@keyframes battle-spell-flight{0%,13%{opacity:0;transform:translateX(0) scale(.3)}20%{opacity:1;transform:translateX(0) scale(1)}48%{opacity:1;transform:translateX(calc(var(--battle-lunge)*1.3)) scale(1.3)}58%{opacity:.8;transform:translateX(calc(var(--battle-lunge)*1.3)) scale(4)}72%,100%{opacity:0;transform:translateX(calc(var(--battle-lunge)*1.3)) scale(5)}}
@keyframes battle-guard-stance{0%,100%{transform:translateX(0)}20%,80%{transform:translateX(-6px) rotate(-6deg)}}
@keyframes battle-guard-glow{0%,100%{opacity:.3;transform:scale(.8)}20%,55%{opacity:1;transform:scale(1)}70%{opacity:1;transform:scale(1.12);box-shadow:0 0 35px #b2fff1}}
@keyframes battle-balanced-guard{0%,48%,100%{opacity:0;transform:scale(.8)}65%,80%{opacity:.8;transform:scale(.9)}}
@keyframes battle-enemy-strike{0%,48%,100%{transform:translateX(0)}67%,76%{transform:translateX(calc(var(--battle-lunge)*-.94)) rotate(-7deg)}86%{transform:translateX(calc(var(--battle-lunge)*-.25))}}
@keyframes battle-contact-flash{0%,28%,60%,100%{opacity:0}39%{opacity:.8}}
@keyframes battle-hero-hit{0%,58%,86%,100%{filter:drop-shadow(0 8px 10px #0009)}68%,76%{filter:drop-shadow(0 0 16px #ff706f) brightness(1.6) sepia(.4)}}
@keyframes battle-hero-dodge{0%,56%,100%{transform:translateX(0)}68%,79%{transform:translateX(-24px) rotate(-9deg)}}
@keyframes battle-enemy-fall{0%,40%{opacity:1;transform:scale(1)}80%{opacity:.35;transform:translateY(20px) rotate(12deg) scale(.85)}100%{opacity:0;transform:translateY(35px) scale(.75)}}
@keyframes battle-hero-fall{0%,64%{opacity:1;transform:rotate(0)}100%{opacity:.3;transform:translateY(20px) rotate(-35deg)}}
@keyframes battle-damage-rise{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}20%{opacity:1;transform:translate(-50%,-7px) scale(1.15)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-48px) scale(.9)}}
@media(max-width:680px){.battle-dialog{padding:12px}.battle-health-hud{padding:8px 9px 0;gap:10px}.battle-fighter-health{padding:8px}.battle-fighter-health>span{font-size:.875rem}.battle-stage{height:220px;margin:0 5px}.battle-hero{left:8%;width:27%}.battle-enemy{right:0;width:34%}.battle-scene-location{font-size:.8125rem;padding:8px}.battle-controls .battle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-scene::before{background-size:auto 130%}}
@media(prefers-reduced-motion:reduce){.battle-scene *,.battle-scene *::before,.battle-scene *::after{animation:none!important;transition:none!important}.battle-scene-damage{opacity:1}.battle-held-staff,.battle-spell-projectile{display:none}.battle-actor{will-change:auto}}

/* Cinematic combat: drawn poses, anticipation, contact and counterattack. */
.battle-stage.cinema-viewport{height:clamp(270px,37vw,390px);margin:10px 0 0;overflow:hidden;background:#050916}
.battle-film-camera{position:absolute;inset:0;transform:none;animation:none;perspective:900px;isolation:isolate}
.battle-film-backdrop{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#10152808,#03051028),var(--battle-map) center 40%/cover no-repeat;filter:saturate(1.02) contrast(1.02);animation:none;transform:none}
.battle-film-haze{position:absolute;inset:40% -15% -12%;z-index:4;pointer-events:none;background:radial-gradient(ellipse at 50% 100%,#b4d5fb25,transparent 65%);filter:blur(14px);animation:film-ground-haze 9s ease-in-out infinite alternate}
.battle-film-vignette{position:absolute;z-index:8;inset:0;pointer-events:none;background:radial-gradient(ellipse at 55% 45%,transparent 32%,#02040c88 100%)}
.battle-film-letterbox{position:absolute;z-index:9;inset:0;pointer-events:none;border-top:12px solid #03050bd9;border-bottom:12px solid #03050bd9}
.cinema-viewport .battle-hero{left:5%;bottom:2%;height:94%;width:auto;aspect-ratio:2/3;max-height:none;animation:none}
.battle-hero-reaction{position:absolute;inset:0}
.battle-hero-sprite{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 12px 8px #000a)}
.battle-pose{opacity:0;pointer-events:none}
.battle-pose-ready{opacity:1}
.cinema-viewport :is(.battle-hero-art,.battle-held-blade,.battle-held-staff,.battle-shield,.battle-spell-projectile){display:none!important}
.cinema-viewport .battle-enemy{right:3%;bottom:1%;height:88%;width:35%;animation:none}
.battle-scene[data-boss="true"] .cinema-viewport .battle-enemy{right:-3%;width:44%}
.cinema-viewport .battle-enemy-art{filter:drop-shadow(0 9px 6px #000a);mask-image:radial-gradient(ellipse at 50% 55%,#000 35%,#000d 51%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 55%,#000 35%,#000d 51%,transparent 75%)}
.battle-film-vfx{position:absolute;z-index:6;display:block;opacity:0;pointer-events:none;background-image:url("./battle-cinematic-vfx-v1.webp");background-size:300% 200%;background-repeat:no-repeat;aspect-ratio:2/3;filter:drop-shadow(0 0 9px #cfebff66)}
.battle-vfx-slash{left:45%;top:6%;width:43%;background-position:0% 0%;transform:rotate(-12deg)}
.battle-vfx-cast{left:22%;top:29%;width:26%;background-position:50% 0%;filter:drop-shadow(0 0 12px #8decff99)}
.battle-vfx-impact{left:50%;top:12%;width:43%;background-position:100% 0%}
.battle-vfx-guard{left:9%;top:20%;width:40%;background-position:0% 100%}
.battle-vfx-debris{left:43%;top:23%;width:50%;background-position:50% 100%}
.battle-vfx-counter{left:13%;top:14%;width:43%;background-position:100% 100%;transform:scaleX(-1)}
.battle-scene[data-style="power"] .cinema-viewport .battle-hero{animation:film-power-charge 2.4s cubic-bezier(.2,.65,.3,1) both}
.battle-scene[data-style="balanced"] .cinema-viewport .battle-hero{animation:film-balanced-charge 2.4s ease-in-out both}
.battle-scene[data-style="magic"] .cinema-viewport .battle-hero{animation:film-cast-body 2.4s ease-in-out both}
.battle-scene[data-style="defend"] .cinema-viewport .battle-hero{animation:film-guard-body 2.4s ease-in-out both}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-vfx-slash{animation:film-sword-contact 2.4s ease-out both}
.battle-scene[data-style="magic"] .battle-vfx-cast{animation:film-spell-comet 2.4s ease-in both}
.battle-scene[data-style="magic"][data-hit="true"] .battle-vfx-impact{animation:film-magic-explosion 2.4s ease-out both}
.battle-scene:is([data-style="balanced"],[data-style="defend"])[data-enemy-turn="true"] .battle-vfx-guard{animation:film-shield-contact 2.4s ease-out both}
.battle-scene[data-hit="true"] .battle-vfx-debris{animation:film-impact-debris 2.4s ease-out both}
.battle-scene[data-enemy-turn="true"] .cinema-viewport .battle-enemy{animation:film-enemy-counter 2.4s ease-in-out both}
.battle-scene[data-enemy-turn="true"] .battle-vfx-counter{animation:film-counter-contact 2.4s ease-out both}
.battle-scene[data-hit="true"] .battle-hit-spark{animation:film-contact-light 2.4s ease-out both}
.battle-scene[data-hurt="true"] .battle-hero-reaction::after{content:"";position:absolute;inset:0;background:#ff5f6038;mix-blend-mode:screen;opacity:0;animation:film-hurt-flash 2.4s ease-out both}
.battle-scene[data-dodge="true"] .battle-hero-reaction{animation:film-evade-body 2.4s ease-in-out both}
.battle-scene[data-defeated="enemy"]:not([data-style="idle"]) .cinema-viewport .battle-enemy-art{animation:film-foe-fall 2.4s ease-in both}
.battle-scene[data-defeated="hero"]:not([data-style="idle"]) .battle-hero-reaction{animation:film-hero-fall 2.4s ease-in both}
.cinema-viewport .battle-scene-damage{animation:film-damage-label .85s ease-out .75s both}
.cinema-viewport .battle-scene-damage.hero-damage{animation-delay:1.65s;animation-duration:.7s}
.battle-scene[data-style="defend"] .cinema-viewport .battle-scene-damage.hero-damage{animation-delay:1.1s}
.battle-scene[data-critical="true"] .battle-vfx-debris{filter:drop-shadow(0 0 18px #ffdfaa);width:58%;left:39%}
.battle-scene[data-critical="true"] .battle-round-readout{color:#ffe09a;box-shadow:inset 0 1px #ffe09a77}
.battle-fighter-health strong{overflow-wrap:anywhere}
@keyframes film-ground-haze{0%{transform:translateX(-12px);opacity:.4}100%{transform:translateX(22px);opacity:.75}}
@keyframes film-power-charge{0%,100%{transform:translateX(0)}12%{transform:translateX(-12px) rotate(-7deg)}29%{transform:translateX(var(--battle-lunge)) rotate(4deg)}35%,44%{transform:translateX(var(--battle-lunge)) rotate(7deg)}57%{transform:translateX(0)}73%{transform:translateX(-8px) rotate(-4deg)}88%{transform:translateX(-2px)}}
@keyframes film-balanced-charge{0%,100%{transform:translateX(0)}14%{transform:translateX(-5px)}30%,43%{transform:translateX(calc(var(--battle-lunge)*.8)) rotate(3deg)}58%{transform:translateX(0)}72%{transform:translateX(-5px) rotate(-3deg)}}
@keyframes film-cast-body{0%,100%{transform:translateY(0)}14%,27%{transform:translateY(-5px) rotate(-3deg)}34%,43%{transform:translateY(-8px) rotate(3deg)}59%{transform:translateY(0)}74%{transform:translateX(-5px)}}
@keyframes film-guard-body{0%,100%{transform:translateX(0)}15%,36%{transform:translateX(-3px) rotate(-3deg)}48%{transform:translateX(-12px) rotate(-7deg)}60%,80%{transform:translateX(-6px) rotate(-3deg)}}
@keyframes film-sword-contact{0%,24%,53%,100%{opacity:0;transform:rotate(-24deg) scale(.5)}31%{opacity:.9;transform:rotate(-10deg) scale(1.12)}36%,41%{opacity:1;transform:rotate(7deg) scale(1.22)}48%{opacity:0;transform:rotate(14deg) scale(1.3)}}
@keyframes film-spell-comet{0%,13%{opacity:0;transform:translate(0,0) scale(.15)}19%{opacity:.75;transform:translate(0,-6px) scale(.45)}25%{opacity:1;transform:translate(calc(var(--battle-lunge)*.15),-8px) scale(.8)}35%{opacity:1;transform:translate(calc(var(--battle-lunge)*1.15),0) scale(1.22)}42%,100%{opacity:0;transform:translate(calc(var(--battle-lunge)*1.4),0) scale(1.35)}}
@keyframes film-magic-explosion{0%,31%,59%,100%{opacity:0;transform:scale(.4)}36%{opacity:1;transform:scale(1)}44%{opacity:.85;transform:scale(1.35)}54%{opacity:0;transform:scale(1.65)}}
/* Energy gathers at the hand, splits into two curved trails and reunites at
   contact. Every layer ends before the enemy turn, including a missed shot. */
.battle-magic-effects{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.battle-magic-charge,.battle-magic-wave{position:absolute;display:block;opacity:0;aspect-ratio:1;border:2px solid #a6f4ff;border-radius:50%;box-shadow:inset 0 0 15px #966fff77,0 0 17px #6adaff99;pointer-events:none}
.battle-magic-charge{left:27%;top:35%;width:12%;background:radial-gradient(circle,#f4e9ffcc,transparent 65%)}
.battle-magic-charge::after{content:"";position:absolute;inset:16%;border:2px solid #e2bcff;border-radius:50%;transform:scaleX(.45) rotate(45deg)}
.battle-vfx-orbit{left:22%;top:29%;width:24%;background-position:50% 0%;--orbit-y:-42px;filter:hue-rotate(28deg) saturate(1.2)}
.battle-vfx-orbit.orbit-lower{--orbit-y:38px;filter:hue-rotate(-30deg) saturate(1.2)}
.battle-magic-wave{left:57%;top:24%;width:27%}.battle-magic-wave.wave-echo{border-color:#d6acff;box-shadow:0 0 14px #a47aff88}
.battle-scene[data-style="magic"] .battle-magic-charge{animation:ether-charge 2.4s ease-out both}
.battle-scene[data-style="magic"] .battle-vfx-orbit{animation:ether-orbit-flight 2.4s ease-in-out both}
.battle-scene[data-style="magic"][data-hit="true"] .battle-magic-wave{animation:ether-impact-wave 2.4s ease-out both}
.battle-scene[data-style="magic"][data-hit="true"] .battle-magic-wave.wave-echo{animation-name:ether-impact-echo}
.battle-scene[data-style="magic"][data-hit="false"] .battle-vfx-cast,.battle-scene[data-style="magic"][data-hit="false"] .battle-vfx-orbit{animation-name:ether-missed-flight}
@keyframes ether-charge{0%,8%{opacity:0;transform:scale(1.5) rotate(0)}15%{opacity:.8;transform:scale(1) rotate(45deg)}23%{opacity:1;transform:scale(.4) rotate(110deg)}29%,100%{opacity:0;transform:scale(.1) rotate(150deg)}}
@keyframes ether-orbit-flight{0%,17%{opacity:0;transform:translate(0,0) scale(.15)}23%{opacity:.85;transform:translate(calc(var(--battle-lunge)*.12),var(--orbit-y)) scale(.42) rotate(-12deg)}29%{opacity:.9;transform:translate(calc(var(--battle-lunge)*.62),calc(var(--orbit-y)*.65)) scale(.65)}35%{opacity:.85;transform:translate(calc(var(--battle-lunge)*1.15),0) scale(.75)}40%,100%{opacity:0;transform:translate(calc(var(--battle-lunge)*1.3),0) scale(.2)}}
@keyframes ether-impact-wave{0%,33%{opacity:0;transform:scale(.15)}37%{opacity:.85;transform:scale(.65)}48%{opacity:.35;transform:scale(1.6)}56%,100%{opacity:0;transform:scale(2)}}
@keyframes ether-impact-echo{0%,36%{opacity:0;transform:scale(.2)}41%{opacity:.65;transform:scale(.8)}52%{opacity:.2;transform:scale(1.65)}59%,100%{opacity:0;transform:scale(1.9)}}
@keyframes ether-missed-flight{0%,15%{opacity:0;transform:translate(0,0) scale(.2)}24%{opacity:.8;transform:translate(calc(var(--battle-lunge)*.2),-15px) scale(.65)}35%{opacity:.7;transform:translate(calc(var(--battle-lunge)*1.25),-52px) scale(.9)}46%,100%{opacity:0;transform:translate(calc(var(--battle-lunge)*1.8),-75px) scale(.4)}}
@media(max-width:680px){.battle-vfx-orbit{--orbit-y:-30px}.battle-vfx-orbit.orbit-lower{--orbit-y:28px}.battle-magic-charge,.battle-magic-wave{border-width:1px}}
@media(prefers-reduced-motion:reduce){.battle-magic-effects{display:none}}
@keyframes film-shield-contact{0%,60%,90%,100%{opacity:0;transform:scale(.7)}69%{opacity:.9;transform:scale(1.15)}78%{opacity:.65;transform:scale(1.3)}86%{opacity:0;transform:scale(1.5)}}
@keyframes film-impact-debris{0%,31%,64%,100%{opacity:0;transform:scale(.5)}37%{opacity:.9;transform:scale(1)}49%{opacity:.5;transform:translateY(15px) scale(1.2)}60%{opacity:0;transform:translateY(27px) scale(1.3)}}
@keyframes film-counter-contact{0%,64%,90%,100%{opacity:0;transform:scaleX(-1) scale(.5)}71%{opacity:.95;transform:scaleX(-1) scale(1.1)}77%{opacity:.7;transform:scaleX(-1) scale(1.25)}85%{opacity:0;transform:scaleX(-1) scale(1.4)}}
@keyframes film-enemy-counter{0%,50%,100%{transform:translateX(0)}59%{transform:translateX(9px) rotate(4deg)}69%,75%{transform:translateX(calc(var(--battle-lunge)*-.94)) rotate(-9deg)}83%{transform:translateX(calc(var(--battle-lunge)*-.25))}94%{transform:translateX(0)}}
@keyframes film-contact-light{0%,30%,44%,100%{opacity:0}35%{opacity:.9}40%{opacity:.4}}
@keyframes film-hurt-flash{0%,66%,83%,100%{opacity:0}71%,76%{opacity:1}}
@keyframes film-evade-body{0%,57%,100%{transform:translateX(0)}70%,79%{transform:translateX(-30px) rotate(-8deg)}87%{transform:translateX(-7px)}}
@keyframes film-foe-fall{0%,36%{opacity:1;transform:scale(1)}52%{opacity:.8;transform:translateY(10px) rotate(9deg)}77%{opacity:.4;transform:translateY(30px) rotate(17deg) scale(.9)}100%{opacity:0;transform:translateY(45px) scale(.8)}}
@keyframes film-hero-fall{0%,69%{opacity:1;transform:rotate(0)}100%{opacity:.25;transform:translateY(25px) rotate(-32deg)}}
@keyframes film-damage-label{0%{opacity:0;transform:translate(-50%,7px) scale(.65)}18%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-50px) scale(.95)}}
@media(max-width:680px){.battle-stage.cinema-viewport{height:270px}.cinema-viewport .battle-hero{left:1%;height:90%;width:auto}.cinema-viewport .battle-enemy{right:-3%;width:43%}.battle-scene[data-boss="true"] .cinema-viewport .battle-enemy{right:-7%;width:51%}.battle-film-letterbox{border-width:8px 0}}
@media(prefers-reduced-motion:reduce){.battle-film-camera,.battle-film-haze,.battle-hero-sprite,.battle-hero-reaction::after,.battle-film-vfx{animation:none!important;transition:none!important}.battle-film-vfx{display:none}.battle-film-camera{transform:none}}

.battle-scene[data-style="defend"][data-enemy-turn="true"] .cinema-viewport .battle-enemy{animation:film-defend-counter 2.4s ease-in-out both}
.battle-scene[data-style="defend"][data-enemy-turn="true"] .battle-vfx-counter{animation:film-defend-contact 2.4s ease-out both}
.battle-scene[data-style="defend"] .battle-vfx-guard{animation:film-defend-shield 2.4s ease-out both}
.battle-film-vfx{mask-image:radial-gradient(ellipse,#000 44%,#000c 62%,transparent 78%);-webkit-mask-image:radial-gradient(ellipse,#000 44%,#000c 62%,transparent 78%)}
@keyframes film-defend-counter{0%,25%,100%{transform:translateX(0)}34%{transform:translateX(9px) rotate(4deg)}46%,52%{transform:translateX(calc(var(--battle-lunge)*-.94)) rotate(-9deg)}64%{transform:translateX(calc(var(--battle-lunge)*-.25))}79%{transform:translateX(0)}}
@keyframes film-defend-contact{0%,37%,68%,100%{opacity:0;transform:scaleX(-1) scale(.5)}44%{opacity:.95;transform:scaleX(-1) scale(1.1)}53%{opacity:.6;transform:scaleX(-1) scale(1.3)}64%{opacity:0;transform:scaleX(-1) scale(1.4)}}
/* Match the guarded pose at 10%; the enemy connects at 44–48%. */
.battle-scene[data-style="defend"][data-enemy-turn="true"] .battle-vfx-guard{animation:film-defend-shield 2.4s ease-out both}
@keyframes film-defend-shield{0%,7%{opacity:0;transform:scale(.65)}14%,38%{opacity:.75;transform:scale(1)}44%,50%{opacity:1;transform:scale(1.18)}63%{opacity:.6;transform:scale(1.12)}76%,100%{opacity:0;transform:scale(1.3)}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-hero-reaction::after{animation:film-defend-hurt-flash 2.4s ease-out both}
.battle-scene[data-style="defend"][data-dodge="true"] .battle-hero-reaction{animation:film-defend-evade 2.4s ease-in-out both}
@keyframes film-defend-hurt-flash{0%,42%,61%,100%{opacity:0}46%,52%{opacity:1}}
@keyframes film-defend-evade{0%,33%,100%{transform:translateX(0)}45%,54%{transform:translateX(-30px) rotate(-8deg)}67%{transform:translateX(-7px)}}
@media(prefers-reduced-motion:reduce){.battle-hero-reaction{animation:none!important}}
/* Discrete pose cuts keep the generated arms and held weapons together. */
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-pose-ready{animation:film-sword-ready 2.4s step-end both}
@keyframes film-sword-ready{0%{opacity:1}7%{opacity:0}28%{opacity:0}49%{opacity:1}58%{opacity:0}86%{opacity:1}100%{opacity:1}}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-pose-windup{animation:film-sword-windup 2.4s step-end both}
@keyframes film-sword-windup{0%{opacity:0}7%{opacity:1}28%{opacity:0}49%{opacity:0}58%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-pose-slash{animation:film-sword-slash 2.4s step-end both}
@keyframes film-sword-slash{0%{opacity:0}7%{opacity:0}28%{opacity:1}49%{opacity:0}58%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-pose-magic{animation:film-sword-magic 2.4s step-end both}
@keyframes film-sword-magic{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}58%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-pose-guard{animation:film-sword-guard 2.4s step-end both}
@keyframes film-sword-guard{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}58%{opacity:1}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"]) .battle-pose-recoil{animation:film-sword-recoil 2.4s step-end both}
@keyframes film-sword-recoil{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}58%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"] .battle-pose-ready{animation:film-magic-ready 2.4s step-end both}
@keyframes film-magic-ready{0%{opacity:1}12%{opacity:0}57%{opacity:0}86%{opacity:1}100%{opacity:1}}
.battle-scene[data-style="magic"] .battle-pose-windup{animation:film-magic-windup 2.4s step-end both}
@keyframes film-magic-windup{0%{opacity:0}12%{opacity:0}57%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"] .battle-pose-slash{animation:film-magic-slash 2.4s step-end both}
@keyframes film-magic-slash{0%{opacity:0}12%{opacity:0}57%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"] .battle-pose-magic{animation:film-magic-magic 2.4s step-end both}
@keyframes film-magic-magic{0%{opacity:0}12%{opacity:1}57%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"] .battle-pose-guard{animation:film-magic-guard 2.4s step-end both}
@keyframes film-magic-guard{0%{opacity:0}12%{opacity:0}57%{opacity:1}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"] .battle-pose-recoil{animation:film-magic-recoil 2.4s step-end both}
@keyframes film-magic-recoil{0%{opacity:0}12%{opacity:0}57%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"] .battle-pose-ready{animation:film-guard-ready 2.4s step-end both}
@keyframes film-guard-ready{0%{opacity:1}10%{opacity:0}89%{opacity:1}100%{opacity:1}}
.battle-scene[data-style="defend"] .battle-pose-windup{animation:film-guard-windup 2.4s step-end both}
@keyframes film-guard-windup{0%{opacity:0}10%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"] .battle-pose-slash{animation:film-guard-slash 2.4s step-end both}
@keyframes film-guard-slash{0%{opacity:0}10%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"] .battle-pose-magic{animation:film-guard-magic 2.4s step-end both}
@keyframes film-guard-magic{0%{opacity:0}10%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"] .battle-pose-guard{animation:film-guard-guard 2.4s step-end both}
@keyframes film-guard-guard{0%{opacity:0}10%{opacity:1}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"] .battle-pose-recoil{animation:film-guard-recoil 2.4s step-end both}
@keyframes film-guard-recoil{0%{opacity:0}10%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-hurt="true"] .battle-pose-ready{animation:film-sword-hurt-ready 2.4s step-end both}
@keyframes film-sword-hurt-ready{0%{opacity:1}7%{opacity:0}28%{opacity:0}49%{opacity:1}58%{opacity:0}72%{opacity:0}86%{opacity:1}100%{opacity:1}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-hurt="true"] .battle-pose-windup{animation:film-sword-hurt-windup 2.4s step-end both}
@keyframes film-sword-hurt-windup{0%{opacity:0}7%{opacity:1}28%{opacity:0}49%{opacity:0}58%{opacity:0}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-hurt="true"] .battle-pose-slash{animation:film-sword-hurt-slash 2.4s step-end both}
@keyframes film-sword-hurt-slash{0%{opacity:0}7%{opacity:0}28%{opacity:1}49%{opacity:0}58%{opacity:0}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-hurt="true"] .battle-pose-magic{animation:film-sword-hurt-magic 2.4s step-end both}
@keyframes film-sword-hurt-magic{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}58%{opacity:0}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-hurt="true"] .battle-pose-guard{animation:film-sword-hurt-guard 2.4s step-end both}
@keyframes film-sword-hurt-guard{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}58%{opacity:1}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-hurt="true"] .battle-pose-recoil{animation:film-sword-hurt-recoil 2.4s step-end both}
@keyframes film-sword-hurt-recoil{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}58%{opacity:0}72%{opacity:1}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-hurt="true"] .battle-pose-ready{animation:film-magic-hurt-ready 2.4s step-end both}
@keyframes film-magic-hurt-ready{0%{opacity:1}12%{opacity:0}57%{opacity:0}72%{opacity:0}86%{opacity:1}100%{opacity:1}}
.battle-scene[data-style="magic"][data-hurt="true"] .battle-pose-windup{animation:film-magic-hurt-windup 2.4s step-end both}
@keyframes film-magic-hurt-windup{0%{opacity:0}12%{opacity:0}57%{opacity:0}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-hurt="true"] .battle-pose-slash{animation:film-magic-hurt-slash 2.4s step-end both}
@keyframes film-magic-hurt-slash{0%{opacity:0}12%{opacity:0}57%{opacity:0}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-hurt="true"] .battle-pose-magic{animation:film-magic-hurt-magic 2.4s step-end both}
@keyframes film-magic-hurt-magic{0%{opacity:0}12%{opacity:1}57%{opacity:0}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-hurt="true"] .battle-pose-guard{animation:film-magic-hurt-guard 2.4s step-end both}
@keyframes film-magic-hurt-guard{0%{opacity:0}12%{opacity:0}57%{opacity:1}72%{opacity:0}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-hurt="true"] .battle-pose-recoil{animation:film-magic-hurt-recoil 2.4s step-end both}
@keyframes film-magic-hurt-recoil{0%{opacity:0}12%{opacity:0}57%{opacity:0}72%{opacity:1}86%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-pose-ready{animation:film-guard-hurt-ready 2.4s step-end both}
@keyframes film-guard-hurt-ready{0%{opacity:1}10%{opacity:0}48%{opacity:0}61%{opacity:0}89%{opacity:1}100%{opacity:1}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-pose-windup{animation:film-guard-hurt-windup 2.4s step-end both}
@keyframes film-guard-hurt-windup{0%{opacity:0}10%{opacity:0}48%{opacity:0}61%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-pose-slash{animation:film-guard-hurt-slash 2.4s step-end both}
@keyframes film-guard-hurt-slash{0%{opacity:0}10%{opacity:0}48%{opacity:0}61%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-pose-magic{animation:film-guard-hurt-magic 2.4s step-end both}
@keyframes film-guard-hurt-magic{0%{opacity:0}10%{opacity:0}48%{opacity:0}61%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-pose-guard{animation:film-guard-hurt-guard 2.4s step-end both}
@keyframes film-guard-hurt-guard{0%{opacity:0}10%{opacity:1}48%{opacity:0}61%{opacity:1}89%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"][data-hurt="true"] .battle-pose-recoil{animation:film-guard-hurt-recoil 2.4s step-end both}
@keyframes film-guard-hurt-recoil{0%{opacity:0}10%{opacity:0}48%{opacity:1}61%{opacity:0}89%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-enemy-turn="false"] .battle-pose-ready{animation:film-sword-final-ready 2.4s step-end both}
@keyframes film-sword-final-ready{0%{opacity:1}7%{opacity:0}28%{opacity:0}49%{opacity:1}100%{opacity:1}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-enemy-turn="false"] .battle-pose-windup{animation:film-sword-final-windup 2.4s step-end both}
@keyframes film-sword-final-windup{0%{opacity:0}7%{opacity:1}28%{opacity:0}49%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-enemy-turn="false"] .battle-pose-slash{animation:film-sword-final-slash 2.4s step-end both}
@keyframes film-sword-final-slash{0%{opacity:0}7%{opacity:0}28%{opacity:1}49%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-enemy-turn="false"] .battle-pose-magic{animation:film-sword-final-magic 2.4s step-end both}
@keyframes film-sword-final-magic{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-enemy-turn="false"] .battle-pose-guard{animation:film-sword-final-guard 2.4s step-end both}
@keyframes film-sword-final-guard{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}100%{opacity:0}}
.battle-scene:is([data-style="power"],[data-style="balanced"])[data-enemy-turn="false"] .battle-pose-recoil{animation:film-sword-final-recoil 2.4s step-end both}
@keyframes film-sword-final-recoil{0%{opacity:0}7%{opacity:0}28%{opacity:0}49%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-enemy-turn="false"] .battle-pose-ready{animation:film-magic-final-ready 2.4s step-end both}
@keyframes film-magic-final-ready{0%{opacity:1}12%{opacity:0}57%{opacity:1}100%{opacity:1}}
.battle-scene[data-style="magic"][data-enemy-turn="false"] .battle-pose-windup{animation:film-magic-final-windup 2.4s step-end both}
@keyframes film-magic-final-windup{0%{opacity:0}12%{opacity:0}57%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-enemy-turn="false"] .battle-pose-slash{animation:film-magic-final-slash 2.4s step-end both}
@keyframes film-magic-final-slash{0%{opacity:0}12%{opacity:0}57%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-enemy-turn="false"] .battle-pose-magic{animation:film-magic-final-magic 2.4s step-end both}
@keyframes film-magic-final-magic{0%{opacity:0}12%{opacity:1}57%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-enemy-turn="false"] .battle-pose-guard{animation:film-magic-final-guard 2.4s step-end both}
@keyframes film-magic-final-guard{0%{opacity:0}12%{opacity:0}57%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="magic"][data-enemy-turn="false"] .battle-pose-recoil{animation:film-magic-final-recoil 2.4s step-end both}
@keyframes film-magic-final-recoil{0%{opacity:0}12%{opacity:0}57%{opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.battle-pose{animation:none!important;opacity:0}.battle-pose-ready{opacity:1}}

/* Equipment controls stay readable and easy to tap in narrow slots. */
.ether-character-inventory .inventory-slot-actions .small-button,.gear-slot-actions .small-button{min-height:46px;padding:10px 12px;font-size:.875rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.inventory-slot-actions .small-button{flex:1 1 100%}
.gear-slot-actions .small-button{width:100%;padding:10px 5px}
.inventory-fold-body .inventory-slot-actions{gap:8px}
.profile-portrait-option span{font-size:.8125rem;line-height:1.35;min-height:2.7em;overflow-wrap:anywhere}

/* Keep save/account feedback visible above modal overlays. */
#toast{z-index:200}
#profile-start-error{margin:14px 0 0;color:var(--red);line-height:1.5}

/* Selected identity and equipment use one renderer in the world and both battles. */
.combat-character{position:absolute;inset:0;isolation:isolate;overflow:visible}
.combat-character .battle-pose{position:absolute;inset:0}
.combat-character img{position:absolute;display:block;margin:0;border:0;border-radius:0;max-width:none;object-fit:contain;pointer-events:none}
.combat-character .combat-body-art{inset:0;width:100%;height:100%;object-position:center}
.combat-character .combat-body-layer{position:absolute;inset:0;pointer-events:none}
.combat-character svg.combat-complete-character{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.profile-portrait-option img[src$="-v3.webp"],#profile-avatar[src$="-v3.webp"]{background:radial-gradient(ellipse at 50% 35%,#586b83 0,#24364b 48%,#101a29 100%)}
.combat-character .combat-intact-arm{inset:0;width:100%;height:100%;object-position:center;clip-path:inset(var(--arm-top) 0 var(--arm-inset-bottom) 65%)}
.combat-character .combat-arm-restored .combat-body-art{clip-path:polygon(0 0,100% 0,100% var(--arm-top),65% var(--arm-top),65% var(--arm-bottom),100% var(--arm-bottom),100% 100%,0 100%)}
.combat-character .combat-held-item{position:absolute;z-index:4;width:auto;height:var(--held-height,46%);aspect-ratio:var(--held-ratio);margin:0;transform-origin:50% var(--held-pivot);transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(var(--held-angle));pointer-events:none}
.combat-character .combat-held-item[data-kind="wand"]{height:var(--held-height,56%)}
/* Opaque handles sit behind the character's original gripping fingers. */
.combat-character .combat-held-item img{inset:0;width:100%;height:100%;object-position:center}
.combat-character .combat-weapon-layer{position:absolute;inset:-100%;z-index:4;pointer-events:none;-webkit-mask-image:linear-gradient(#fff,#fff),var(--grip-mask);mask-image:linear-gradient(#fff,#fff),var(--grip-mask);-webkit-mask-size:100% 100%,calc(100% / 3) calc(100% / 3);mask-size:100% 100%,calc(100% / 3) calc(100% / 3);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:xor;mask-composite:exclude;mask-mode:alpha}
.combat-character .combat-weapon-anchor{position:absolute;inset:calc(100% / 3);overflow:visible}
.combat-character .combat-weapon-glow{animation:none;filter:none}
.combat-character .combat-weapon-aura{z-index:-1;opacity:.55;filter:drop-shadow(0 0 min(8px,var(--weapon-glow-size)) var(--weapon-glow));will-change:opacity;animation:weapon-aura-opacity var(--weapon-pulse,2400ms) ease-in-out infinite}
@keyframes weapon-aura-opacity{0%,100%{opacity:.2}50%{opacity:.85}}

.ether-hero .hero-figure{position:relative;align-self:center;width:min(100%,320px);height:auto;aspect-ratio:1/2;padding:0;overflow:visible}
.ether-hero .hero-figure .combat-character{inset:0;width:100%;height:100%;aspect-ratio:1/2;filter:drop-shadow(0 7px 9px #030610b0)}
.ether-hero .hero-name{z-index:5;width:100%;padding:10px 8px;background:#09102099}
.combat-monster{position:absolute;inset:0;filter:drop-shadow(0 9px 6px #000a)}
.monster-pose{position:absolute;inset:0;background-image:var(--monster-strip);background-repeat:no-repeat;background-size:400% 100%;opacity:0}
.monster-pose-ready{opacity:1}
.battle-scene:not([data-style="idle"]) .monster-pose-ready{animation:monster-ready 2.4s step-end both}
.battle-scene:not([data-style="idle"]) .monster-pose-windup{animation:monster-windup 2.4s step-end both}
.battle-scene:not([data-style="idle"]) .monster-pose-attack{animation:monster-strike 2.4s step-end both}
.battle-scene:not([data-style="idle"]) .monster-pose-guard{animation:monster-guard 2.4s step-end both}
@keyframes monster-ready{0%{opacity:1}26%{opacity:0}51%{opacity:1}58%{opacity:0}88%{opacity:1}100%{opacity:1}}
@keyframes monster-windup{0%{opacity:0}58%{opacity:1}68%{opacity:0}100%{opacity:0}}
@keyframes monster-strike{0%{opacity:0}68%{opacity:1}83%{opacity:0}100%{opacity:0}}
@keyframes monster-guard{0%{opacity:0}26%{opacity:1}51%{opacity:0}83%{opacity:1}88%{opacity:0}100%{opacity:0}}
.battle-scene[data-style="defend"] .monster-pose-ready{animation:monster-defend-ready 2.4s step-end both}
.battle-scene[data-style="defend"] .monster-pose-windup{animation:monster-defend-windup 2.4s step-end both}
.battle-scene[data-style="defend"] .monster-pose-attack{animation:monster-defend-strike 2.4s step-end both}
.battle-scene[data-style="defend"] .monster-pose-guard{animation:monster-defend-guard 2.4s step-end both}
@keyframes monster-defend-ready{0%{opacity:1}29%{opacity:0}76%{opacity:1}100%{opacity:1}}
@keyframes monster-defend-windup{0%{opacity:0}29%{opacity:1}43%{opacity:0}100%{opacity:0}}
@keyframes monster-defend-strike{0%{opacity:0}43%{opacity:1}63%{opacity:0}100%{opacity:0}}
@keyframes monster-defend-guard{0%{opacity:0}63%{opacity:1}76%{opacity:0}100%{opacity:0}}
.battle-scene[data-enemy-turn="false"] .monster-pose{animation:none}
.battle-scene[data-enemy-turn="false"] .monster-pose-ready{opacity:0}
.battle-scene[data-enemy-turn="false"] .monster-pose-guard{opacity:1}
.battle-scene[data-style="idle"] .monster-pose-ready{opacity:1}
.battle-scene[data-style="idle"] .monster-pose-guard{opacity:0}
.battle-scene[data-defeated="enemy"]:not([data-style="idle"]) .combat-monster{animation:film-foe-fall 2.4s ease-in both}
.battle-scene[data-enemy-turn="true"][data-attack-kind="claw"] .cinema-viewport .battle-enemy{animation:monster-beast-leap 2.4s ease-in-out both}
.battle-scene[data-enemy-turn="true"][data-attack-kind="wing"] .cinema-viewport .battle-enemy{animation:monster-wing-dive 2.4s ease-in-out both}
.battle-scene[data-enemy-turn="true"][data-attack-kind="spell"] .cinema-viewport .battle-enemy,.battle-scene[data-enemy-turn="true"][data-attack-kind="breath"] .cinema-viewport .battle-enemy{animation:monster-cast-motion 2.4s ease-in-out both}
.battle-scene[data-enemy-turn="true"][data-attack-kind="bite"] .cinema-viewport .battle-enemy{animation:monster-bite-lunge 2.4s ease-in-out both}
.battle-scene[data-style="defend"][data-enemy-turn="true"] .cinema-viewport .battle-enemy{animation:film-defend-counter 2.4s ease-in-out both}
@keyframes monster-beast-leap{0%,52%,100%{transform:translate(0,0)}61%{transform:translate(12px,8px) scaleY(.9)}72%{transform:translate(calc(var(--battle-lunge)*-.92),-35px) rotate(-8deg)}82%{transform:translate(calc(var(--battle-lunge)*-.55),0)}93%{transform:translate(0,-8px)}}
@keyframes monster-wing-dive{0%,50%,100%{transform:translate(0,0)}61%{transform:translate(0,-45px) rotate(8deg)}74%{transform:translate(calc(var(--battle-lunge)*-.95),-10px) rotate(-18deg)}88%{transform:translate(calc(var(--battle-lunge)*-.2),-25px)}}
@keyframes monster-cast-motion{0%,50%,100%{transform:translate(0,0)}60%{transform:translate(10px,-5px) scale(.96)}72%{transform:translate(-30px,-15px) scale(1.05)}87%{transform:translate(0,-5px)}}
@keyframes monster-bite-lunge{0%,53%,100%{transform:translateX(0) scaleX(1)}62%{transform:translateX(10px) scaleX(.88)}73%{transform:translateX(calc(var(--battle-lunge)*-.9)) scaleX(1.1)}86%{transform:translateX(calc(var(--battle-lunge)*-.3))}}
/* Reuse the painted effect atlas with species-specific shapes and motion.
   The same strike clock aligns every effect with guard, recoil and damage. */
.monster-attack-effects{position:absolute;inset:0;z-index:6;pointer-events:none;--enemy-effect-delay:1.38s;--effect-strength:1}
.battle-scene[data-style="defend"] .monster-attack-effects{--enemy-effect-delay:.78s}
.battle-scene[data-intent="heavy"] .monster-attack-effects,.battle-scene[data-boss="true"] .monster-attack-effects{--effect-strength:1.18}
.monster-attack-effects .monster-vfx{left:12%;top:13%;width:38%;background-position:100% 100%;opacity:0;animation:none;transform-origin:center}
.battle-scene[data-enemy-turn="true"] .monster-vfx{animation:monster-effect-cut .72s ease-out calc(var(--enemy-effect-delay) + var(--effect-index)*.045s) both}
.monster-attack-effects[data-effect="claw"] .monster-vfx{background-position:0% 0%;width:33%;left:calc(10% + var(--effect-index)*5%);top:calc(8% + var(--effect-index)*4%)}
.battle-scene[data-enemy-turn="true"] [data-effect="claw"] .monster-vfx{animation-name:monster-effect-claw}
.monster-attack-effects[data-effect="bite"] .monster-vfx{background-position:100% 0%;width:29%;left:calc(14% + var(--effect-index)*3%);top:calc(10% + var(--effect-index)*5%)}
.battle-scene[data-enemy-turn="true"] [data-effect="bite"] .monster-vfx{animation-name:monster-effect-bite}
.monster-attack-effects[data-effect="sting"] .monster-vfx{background-position:50% 0%;width:13%;top:calc(32% + var(--effect-index)*4%);filter:hue-rotate(65deg) saturate(1.8)}
.battle-scene[data-enemy-turn="true"] [data-effect="sting"] .monster-vfx{animation-name:monster-effect-dart}
.monster-attack-effects[data-effect="wing"] .monster-vfx{background-position:0% 0%;width:43%;top:calc(2% + var(--effect-index)*8%);filter:grayscale(.8) brightness(1.3)}
.battle-scene[data-enemy-turn="true"] [data-effect="wing"] .monster-vfx{animation-name:monster-effect-gust}
.monster-attack-effects[data-effect="breath"] .monster-vfx{background-position:50% 0%;width:31%;top:calc(19% + var(--effect-index)*5%);filter:sepia(1) saturate(4) hue-rotate(335deg)}
.battle-scene[data-enemy-turn="true"] [data-effect="breath"] .monster-vfx{animation-name:monster-effect-breath;animation-duration:.84s}
.monster-attack-effects[data-effect="spell"] .monster-vfx{background-position:50% 0%;width:28%;top:calc(10% + var(--effect-index)*9%);filter:hue-rotate(35deg) saturate(1.6)}
.battle-scene[data-enemy-turn="true"] [data-effect="spell"] .monster-vfx{animation-name:monster-effect-orb}
.monster-attack-effects[data-effect="fist"] .monster-vfx{background-position:50% 100%;width:47%;left:6%;top:calc(15% + var(--effect-index)*4%)}
.battle-scene[data-enemy-turn="true"] [data-effect="fist"] .monster-vfx{animation-name:monster-effect-crush}
.monster-attack-effects[data-element="fire"]{filter:sepia(.65) saturate(2) hue-rotate(335deg)}
.monster-attack-effects[data-element="frost"]{filter:hue-rotate(175deg) saturate(1.5) brightness(1.15)}
.monster-attack-effects[data-element="venom"]{filter:hue-rotate(75deg) saturate(2)}
.monster-attack-effects[data-element="shadow"]{filter:hue-rotate(260deg) saturate(1.7)}
.monster-attack-effects[data-element="storm"]{filter:hue-rotate(150deg) brightness(1.25)}
@keyframes monster-effect-cut{0%,20%{opacity:0;transform:rotate(25deg) scale(.35)}42%{opacity:.95;transform:rotate(-15deg) scale(var(--effect-strength))}72%{opacity:.6;transform:rotate(-35deg) scale(1.15)}100%{opacity:0;transform:rotate(-50deg) scale(1.3)}}
@keyframes monster-effect-claw{0%{opacity:0;transform:translate(28px,-20px) rotate(25deg) scale(.5)}38%{opacity:1;transform:translate(0,0) rotate(-12deg) scale(var(--effect-strength))}100%{opacity:0;transform:translate(-24px,34px) rotate(-32deg) scale(1.12)}}
@keyframes monster-effect-bite{0%,18%{opacity:0;transform:rotate(calc(var(--effect-index)*65deg)) scale(1.3)}43%{opacity:1;transform:rotate(calc(var(--effect-index)*65deg)) scale(.8)}64%{opacity:.8;transform:rotate(calc(var(--effect-index)*65deg)) scale(1)}100%{opacity:0;transform:scale(1.4)}}
@keyframes monster-effect-dart{0%{opacity:0;left:70%;transform:rotate(-85deg) scale(.3,.85)}18%{opacity:1}45%{opacity:1;left:20%;transform:rotate(-85deg) scale(.45,1.3)}100%{opacity:0;left:10%;transform:rotate(-85deg) scale(.8,.4)}}
@keyframes monster-effect-gust{0%{opacity:0;left:62%;transform:rotate(50deg) scale(.5,.35)}32%{opacity:.75}56%{opacity:.9;left:12%;transform:rotate(-20deg) scale(1.2,.6)}100%{opacity:0;left:3%;transform:rotate(-45deg) scale(1.5,.8)}}
@keyframes monster-effect-breath{0%{opacity:0;left:60%;transform:rotate(-90deg) scale(.3)}15%{opacity:.9}45%{opacity:1;left:16%;transform:rotate(-90deg) scale(.75,1.65)}75%{opacity:.65;left:9%;transform:rotate(-90deg) scale(1.2,1.8)}100%{opacity:0;left:7%;transform:rotate(-90deg) scale(1.5,1.9)}}
@keyframes monster-effect-orb{0%{opacity:0;left:66%;transform:rotate(0deg) scale(.25)}20%{opacity:1}46%{opacity:1;left:18%;transform:rotate(120deg) scale(.7)}68%{opacity:.85;left:12%;transform:rotate(180deg) scale(1.25)}100%{opacity:0;left:12%;transform:rotate(220deg) scale(1.65)}}
@keyframes monster-effect-crush{0%,25%{opacity:0;transform:translateY(-15px) scale(.25)}43%{opacity:1;transform:translateY(0) scale(var(--effect-strength))}70%{opacity:.75;transform:translateY(14px) scale(1.3,.75)}100%{opacity:0;transform:translateY(30px) scale(1.65,.5)}}
@media(prefers-reduced-motion:reduce){.monster-attack-effects{display:none}.monster-vfx{animation:none!important}}
.arena-combat-scene .cinema-viewport .arena-opponent{right:5%;bottom:2%;width:auto;height:94%;aspect-ratio:2/3}
.arena-enemy-facing{position:absolute;inset:0;transform:scaleX(-1)}
.arena-combat-scene .arena-opponent .battle-pose{animation:none!important;opacity:0}
.arena-combat-scene .arena-opponent .battle-pose-ready{opacity:1}
.arena-combat-scene:not([data-style="idle"]) .arena-opponent .battle-pose-ready{animation:monster-ready 2.4s step-end both!important}
.arena-combat-scene:not([data-style="idle"]) .arena-opponent .battle-pose-windup{animation:monster-windup 2.4s step-end both!important}
.arena-combat-scene:not([data-style="idle"]) .arena-opponent .battle-pose-slash{animation:monster-strike 2.4s step-end both!important}
.arena-combat-scene:not([data-style="idle"]) .arena-opponent .battle-pose-guard{animation:monster-guard 2.4s step-end both!important}
.arena-combat-scene[data-style="defend"] .arena-opponent .battle-pose-ready{animation:monster-defend-ready 2.4s step-end both!important}
.arena-combat-scene[data-style="defend"] .arena-opponent .battle-pose-windup{animation:monster-defend-windup 2.4s step-end both!important}
.arena-combat-scene[data-style="defend"] .arena-opponent .battle-pose-slash{animation:monster-defend-strike 2.4s step-end both!important}
.arena-combat-scene[data-style="defend"] .arena-opponent .battle-pose-guard{animation:monster-defend-guard 2.4s step-end both!important}
.arena-combat-scene[data-enemy-turn="false"]:not([data-style="idle"]) .arena-opponent .battle-pose{animation:none!important;opacity:0}
.arena-combat-scene[data-enemy-turn="false"]:not([data-style="idle"]) .arena-opponent .battle-pose-recoil{opacity:1}
.arena-combat-scene[data-defeated="enemy"]:not([data-style="idle"]) .arena-enemy-facing{animation:arena-enemy-fall 2.4s ease-in both}
@keyframes arena-enemy-fall{0%,36%{opacity:1;transform:scaleX(-1)}100%{opacity:0;transform:scaleX(-1) translateY(45px) rotate(-20deg)}}
@media(max-width:680px){.arena-combat-scene .cinema-viewport .arena-opponent{right:1%;height:90%}.ether-hero .hero-figure{height:auto;aspect-ratio:1/2}}
@media(prefers-reduced-motion:reduce){.combat-character .battle-pose,.arena-combat-scene .arena-opponent .battle-pose,.monster-pose{animation:none!important;opacity:0!important}.combat-character .battle-pose-ready,.arena-combat-scene .arena-opponent .battle-pose-ready,.monster-pose-ready{opacity:1!important}.combat-weapon-glow,.ether-hero .hero-figure .battle-pose-ready{animation:none!important}}
.combat-monster{inset:auto 0 0;width:100%;height:auto;aspect-ratio:6/5}
.monster-portrait.monster-card-sprite{position:relative;background-image:none;overflow:hidden}
.monster-card-sprite .combat-monster{inset:0;width:100%;height:100%;aspect-ratio:6/5;animation:none}
@media(prefers-reduced-motion:reduce){.monster-card-sprite .combat-monster{animation:none!important}}

/* The new adult showcase artwork keeps its natural proportions at every width. */
.ether-hero .hero-figure .combat-character{transform:none;scale:none}

/* Trim transparent sprite margins as one group, keeping every attack pose intact. */
.monster-framing{position:absolute;inset:0;transform-origin:0 0;transform:translate(var(--monster-shift-x,0%),var(--monster-shift-y,0%)) scale(var(--monster-zoom,1))}
#planet-content .monster-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));max-width:1000px}
.monster-card .monster-portrait.monster-card-sprite{aspect-ratio:6/5}
.monster-card-sprite .combat-monster{width:100%;height:auto;aspect-ratio:6/5}

/* Region encounters live over the map; the full cards below remain available. */
.ether-map-node{z-index:2}
.map-encounters{position:absolute;z-index:6;left:50%;transform:translateX(-50%);width:min(390px,calc(100% - 20px));padding:8px;border:1px solid #cbb9ed;border-radius:14px;background:#171e38f5;box-shadow:0 12px 34px #0009;backdrop-filter:blur(8px)}
.map-encounters.at-top{top:10px}.map-encounters.at-bottom{bottom:10px}
.map-encounters>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px 5px;font-size:.8rem;color:#eee0ff}
.map-encounters>header>button{min-width:32px;min-height:32px;border:0;border-radius:8px;background:#333450;color:#fff;cursor:pointer}
.map-monster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.map-monster-card{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:7px;border:1px solid #657295;border-radius:10px;background:linear-gradient(150deg,#303957,#202940);color:#fff;text-align:center;cursor:pointer;min-width:0}
.map-monster-card:hover:not(:disabled){border-color:#ffe1a8;background:#3d4364}
.map-monster-card:focus-visible,.map-goblin:focus-visible,.map-encounters>header>button:focus-visible{outline:3px solid #ffe1a8;outline-offset:2px}
.map-monster-card:disabled{opacity:.55;cursor:default}
.map-monster-card .monster-portrait{display:block;aspect-ratio:6/5;width:112px;max-width:100%;align-self:center;margin:0;border:0;background-color:transparent}
.map-monster-card strong{font-size:.81rem;line-height:1.2;min-height:2.4em;display:grid;place-items:center}
.map-monster-card small{font-size:.7rem;line-height:1.25;color:#d6dcec}
.map-monster-card>span:last-child{font-size:.7rem;line-height:1.3;color:#ffe1a8;margin-top:auto}
.map-help{margin:9px 0 0}.goblin-map-status{margin-top:8px;color:var(--muted);font-size:.82rem}.goblin-map-status p{color:#ffe1a8;margin:6px 0}
.map-goblin{position:absolute;z-index:4;transform:translate(-50%,-50%);display:grid;justify-items:center;width:94px;border:0;background:transparent;color:#fff5bd;padding:2px;cursor:pointer;filter:drop-shadow(0 3px 5px #000c)}
.map-goblin img{width:72px;height:78px;object-fit:contain;filter:drop-shadow(0 0 9px #f5c64a88)}
.map-goblin span{font-weight:700;font-size:.68rem;white-space:nowrap;background:#2e2418ee;border:1px solid #edc368;border-radius:7px;padding:3px 5px}
.map-goblin:hover img{filter:drop-shadow(0 0 12px #f8d66d);transform:scale(1.06)}
.combat-goblin img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
@media(max-width:520px){.ether-world-map{min-height:340px}.map-monster-card .monster-portrait{width:92px}.map-monster-card{gap:3px;padding:6px}.map-encounters{width:min(320px,calc(100% - 16px))}.map-goblin img{width:57px;height:63px}.map-goblin{width:80px}}
/* One compact, level fighting plane and separate standing areas on every screen. */
.battle-scene{--combat-stage-height:clamp(210px,35vw,360px)}
.battle-scene .battle-stage.cinema-viewport{height:var(--combat-stage-height)}
.battle-stage-wrap .battle-potion-panel{box-sizing:border-box;max-height:calc(var(--combat-stage-height) - 62px);overflow-y:auto;overflow-x:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.battle-potion-panel:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}
.battle-resource-status{margin:10px 0;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#101a32;font-size:.8125rem}
.battle-resource-status p{margin:3px 0;line-height:1.45}
.battle-resource-status strong{color:#fff}
.battle-resource-status .battle-capacity-warning{color:#ffdca3}
:is(.battle-controls,.battle-action-dock) .battle-action-reason{display:block;margin-top:5px;font-size:.7rem;font-weight:500;line-height:1.35;color:#fff1cd}
.battle-point-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}
.battle-point-actions button{min-width:0;min-height:44px;padding:6px 4px}
.battle-point-actions small{display:block}
.battle-scene::before{background-size:cover}
.battle-scene .cinema-viewport .battle-actor.battle-hero{left:6%;bottom:14%;width:min(calc(var(--combat-stage-height)*var(--hero-frame-width,.45)),var(--hero-frame-limit,35%));height:auto;aspect-ratio:2/3;max-height:none;translate:var(--hero-align-x,0%) var(--hero-align-y,0%)}
.battle-scene:not(.arena-combat-scene) .cinema-viewport .battle-enemy{right:6%;bottom:14%;width:min(calc(var(--combat-stage-height)*var(--enemy-frame-width,.8)),var(--enemy-frame-limit,35%));height:auto;aspect-ratio:6/5;translate:var(--enemy-align-x,0%) var(--enemy-align-y,0%)}
.battle-scene.arena-combat-scene .cinema-viewport .arena-opponent{right:6%;bottom:14%;width:min(calc(var(--combat-stage-height)*var(--enemy-frame-width,.45)),var(--enemy-frame-limit,35%));height:auto;aspect-ratio:2/3;translate:var(--enemy-align-x,0%) var(--enemy-align-y,0%)}
.battle-scene:not(.arena-combat-scene) .battle-enemy .combat-monster{scale:1;transform-origin:100% 100%}
.battle-scene .combat-character{scale:none;transform-origin:50% 96%}
.battle-scene[data-style="idle"] .cinema-viewport .battle-actor{animation:none!important;transform:none}

/* The store uses the game's gold, indigo and four distinct key colors. */
.store-shell{max-width:1180px;margin:0 auto;padding-bottom:28px;font-size:1rem;line-height:1.5}
.store-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0 18px}
.store-heading h2{font-size:1.75rem;line-height:1.2;margin:6px 0 8px}.store-heading p{margin:0;color:var(--muted)}
.store-heading .ghost-button{min-height:44px;font-size:.875rem}
.store-wallet{display:flex;flex-wrap:wrap;gap:10px;padding:15px;border:1px solid var(--line);background:var(--surface);border-radius:13px}
.store-key{--key-color:#8ed7ce;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:var(--key-color);font-size:.9375rem;font-weight:750;background:#ffffff07;border:1px solid color-mix(in srgb,var(--key-color) 35%,transparent);border-radius:8px;padding:7px 11px;font-variant-numeric:tabular-nums}
.store-key[data-key=boss]{--key-color:#e9afff}.store-key[data-key=property]{--key-color:#f6c57c}.store-key[data-key=era]{--key-color:#a6c9ff}
.store-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.store-tabs button{min-height:46px;padding:10px 17px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:.9375rem;font-weight:700}.store-tabs button.active{border-color:var(--accent);color:var(--accent);background:#463721}.store-tabs b{font-size:.875rem;padding:2px 6px;border-radius:5px;background:#8be5be;color:#16382c;margin-left:4px}
.store-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.store-product{min-width:0;overflow:hidden;border:1px solid #455270;border-radius:16px;background:linear-gradient(145deg,#1a2742,#121b30);display:flex;flex-direction:column}
.store-product-art{position:relative;min-height:162px;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 90%,#657fd03b,transparent 70%);border-bottom:1px solid #ffffff0c;padding:30px 18px 12px}
.store-product-art img{width:176px;height:156px;max-width:100%;object-fit:contain;filter:drop-shadow(0 8px 13px #0008)}
.store-product[data-key=property] .store-product-art,.store-product[data-key=era] .store-product-art{background:radial-gradient(ellipse at bottom,#6d508b55,transparent 80%)}
.store-product-badge{position:absolute;top:10px;left:12px;font-size:.8125rem;font-weight:700;color:#c9d6f1}.store-product-owned{border-color:#528b72}.store-product-owned .store-product-badge{color:#a6e8be}
.store-product-copy{padding:16px 17px 8px;flex:1}.store-product h3{font-size:1.1875rem;line-height:1.35;margin:0 0 9px}.store-product p{font-size:1rem;color:#c6d0e6;margin:0 0 15px}.store-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.store-price strong{font-size:1.2rem;font-variant-numeric:tabular-nums;color:#ffe3b1}.store-price span{font-size:.8125rem;color:#adb8cd}
.store-product-actions{display:grid;gap:10px;padding:14px 17px 18px}.store-product-actions button{min-height:46px;font-size:.875rem;line-height:1.35}.store-product-actions>small{font-size:.875rem;color:#b8c5db}.store-other-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.store-product button:disabled{opacity:.65;cursor:not-allowed}
.store-ad-progress{display:flex;flex-wrap:wrap;align-items:center;gap:5px;justify-content:space-between;font-size:.875rem;color:#c1cee5}.store-ad-progress strong{color:#e2e9f6}
.store-shell progress{appearance:none;display:block;width:100%;height:6px;border:none;border-radius:10px;overflow:hidden;background:#33405b;accent-color:#e1ba7c}.store-shell progress::-webkit-progress-bar{background:#33405b}.store-shell progress::-webkit-progress-value{background:#e1ba7c;border-radius:10px}.store-shell progress::-moz-progress-bar{background:#e1ba7c}
.store-notes{margin-top:20px;padding:2px 0;color:#b8c5db;font-size:.875rem;line-height:1.6}.store-notes p{margin:8px 0}.store-feedback{padding:13px 16px;border:1px solid #4c816f;background:#173a35;color:#d8f6e7;border-radius:10px;font-size:1rem}.store-feedback.error{border-color:#b47583;background:#432734;color:#ffdee3}
.store-mission-intro{font-size:1rem;color:#bac8df}.store-mission-groups{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.store-mission-group{border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}.store-mission-group>summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;cursor:pointer;padding:14px;border-bottom:1px solid var(--line);font-size:.9375rem}.store-mission-group>summary:after{content:'⌄';margin-left:auto;color:var(--accent)}.store-mission-group[open]>summary:after{content:'⌃'}
.store-mission{display:flex;gap:14px;align-items:center;padding:15px;border-bottom:1px solid #ffffff12}.store-mission:last-child{border-bottom:none}.store-mission>div{flex:1;min-width:0}.store-mission h4{font-size:1rem;line-height:1.35;margin:0 0 4px}.store-mission p{font-size:.9375rem;color:#bbc9e0;margin:0 0 5px}.store-mission small{font-size:.875rem;color:#e2c487}.store-mission progress{margin-top:7px}.store-mission button{font-size:.875rem;min-height:44px;flex:none;padding:8px 10px}.store-mission.done small{color:#96d8b5}.store-empty{padding:30px 16px;border:1px dashed #627091;border-radius:12px;color:#c4cce0}
.store-shell button:focus-visible,.store-shell summary:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.store-key-image{display:block;flex:none;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 2px 4px #0006)}
.store-key-button,.store-mission button{display:flex;align-items:center;justify-content:center;gap:7px}
.store-key-button .store-key-image,.store-mission button .store-key-image{width:30px;height:30px}
.store-treasure-card{overflow:hidden;border:1px solid #887147;border-radius:16px;background:linear-gradient(130deg,#28263b,#151e33);margin-bottom:26px}
.store-treasure-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px 14px}
.store-treasure-heading h3{font-size:1.4rem;color:#ffe0a5;margin:5px 0 6px}.store-treasure-heading p{margin:0;font-size:.9375rem;color:#c4cce0}.store-treasure-heading>span{flex:none;font-size:.8125rem;color:#dabb80}
.store-chest-picker{display:flex;gap:8px;padding:0 20px;border-bottom:1px solid #d5b37630}
.store-chest-picker button{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:10px 4px;border:0;border-bottom:3px solid transparent;background:transparent;color:#bec7dd;text-align:left;font-size:.875rem;line-height:1.35;cursor:pointer}
.store-chest-picker button.active{color:#ffdfa3;border-bottom-color:#e6bc70;background:linear-gradient(0deg,#dcb37112,transparent)}
.store-chest-picker button img{width:64px;height:64px;flex:none;object-fit:contain}.store-chest-picker button small{display:block;font-size:.75rem;font-weight:500;margin-top:4px;color:#b4bed4}
.store-featured-product{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(180px,1fr) minmax(230px,1fr);align-items:center;border:0;border-radius:0;background:transparent;padding:12px}
.store-featured-product .store-product-art{border:0;background:radial-gradient(ellipse,#d7ac5620,transparent 72%);min-height:224px;padding-top:28px}.store-featured-product .store-product-art img{width:210px;height:200px}
.store-featured-product .store-product-copy{padding:16px 8px}.store-featured-product .store-product-actions{padding:16px}.store-featured-product .store-product-badge{left:50%;transform:translateX(-50%);white-space:nowrap}
.store-products-title{font-size:1.15rem;margin:0 0 14px;color:#dde5f4}
.store-income-estimate{display:grid;gap:5px;padding:11px 12px;border:1px solid #caa55e44;border-radius:9px;background:#e7bf6d08;margin-bottom:14px;overflow-wrap:anywhere}.store-income-estimate span,.store-income-estimate small{font-size:.8125rem;color:#c6c9d4}.store-income-estimate strong{font-size:1rem;color:#ffdda0;font-variant-numeric:tabular-nums}
.property-boost-status,.store-boost-status{display:flex;align-items:center;gap:12px;border:1px solid #ae894c;background:#372e22;border-radius:12px;padding:12px 16px;margin-bottom:18px}.property-boost-status[hidden]{display:none}.property-boost-status img,.store-boost-status img{width:44px;height:44px;object-fit:contain;flex:none}.property-boost-status div,.store-boost-status div{display:grid;gap:3px;min-width:0}.property-boost-status strong,.store-boost-status strong{font-size:.9375rem;color:#ffe1a6}.property-boost-status span,.store-boost-status span{font-size:.875rem;color:#ddcfb7;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media(max-width:1000px){.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.store-grid,.store-mission-groups{grid-template-columns:1fr}.store-heading{align-items:flex-start}.store-heading h2{font-size:1.5rem}.store-wallet{padding:10px;gap:8px}.store-key{font-size:.875rem;padding:7px 9px}.store-product-art{min-height:144px}.store-tabs button{flex:1;padding:10px}.store-mission{flex-wrap:wrap}.store-mission>div{flex-basis:65%}.store-mission button{flex:1;max-width:150px}.store-product-actions button{min-height:48px}}
@media(max-width:900px){.store-featured-product{grid-template-columns:minmax(140px,.7fr) minmax(180px,1fr)}.store-featured-product .store-product-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:center}.store-featured-product .store-other-options{grid-column:1/-1}.store-chest-picker button{flex-direction:column;text-align:center}}
@media(max-width:480px){.store-treasure-heading{padding:18px 16px 14px}.store-treasure-heading>span{display:none}.store-chest-picker{padding:0 8px;gap:3px}.store-chest-picker button{font-size:.8125rem}.store-chest-picker button img{width:52px;height:52px}.store-featured-product{grid-template-columns:1fr;padding:8px}.store-featured-product .store-product-art{min-height:190px}.store-featured-product .store-product-art img{height:174px}.store-featured-product .store-product-copy{padding:8px 12px}.store-featured-product .store-product-actions{grid-template-columns:1fr;padding:12px}.store-key-image{width:34px;height:34px}.store-treasure-heading h3{font-size:1.25rem}}
/* Progression uses the existing Eter palette without moving equipment slots or combat actors. */
.journey-panel,.progression-panel,.set-bonuses,.workshop-panel,.league-panel{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);min-width:0}
.journey-panel{margin-bottom:18px;border-color:#7460a3;background:linear-gradient(125deg,#24203b,#171e31)}
.journey-panel h2,.progression-panel h3,.workshop-panel h3,.league-panel h3{margin:8px 0 14px}
.journey-goal{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,25%) auto;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.journey-goal>div{display:grid;gap:6px}.journey-goal small,.progression-panel p,.workshop-panel p,.league-panel p{color:var(--muted);font-size:.9rem;line-height:1.6}
.journey-goal progress,.league-panel progress{appearance:auto;accent-color:#b9a0ff;width:100%;height:10px}
.progression-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.progression-heading strong{color:#e8c26e}
.talent-paths{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.talent-paths .chosen{border-color:#cfb3ff;color:#eddbff;background:#4a345f;opacity:1}
.talent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.talent-grid article,.dungeon-choice .talent-grid button{padding:16px;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:10px;background:#161f32;min-width:0;text-align:left;white-space:normal}
.talent-grid article strong{display:flex;gap:8px;justify-content:space-between}.talent-grid article strong span{color:#d5bbff;white-space:nowrap}.talent-grid p{margin:0;flex:1}.talent-grid small{color:var(--muted);font-size:.875rem;line-height:1.5}.talent-grid article button{margin-top:auto}
.set-bonuses{margin-top:18px}.set-bonuses>div{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;padding:10px 0}.set-bonuses>div span{display:flex;gap:14px;flex-wrap:wrap}.set-bonuses b{font-size:.875rem;color:var(--muted)}.set-bonuses b.set-active,.set-active{color:#a9ead8}
.dungeon-steps{display:flex;gap:10px;flex-wrap:wrap}.dungeon-steps span{padding:8px 12px;border-radius:8px;background:#29213e;font-size:.875rem;color:#ddc6ff}.dungeon-choice{width:100%;margin:18px 0;text-align:left}.dungeon-choice>p{font-size:.9rem;color:var(--muted)}
.workshop-panel{margin:14px 0}.workshop-panel>div{padding:12px 0;border-top:1px solid var(--line)}.workshop-panel p{margin:8px 0}
.property-work-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.property-work-actions>p{flex-basis:100%}.property-work-actions progress{flex:1 1 150px;max-width:100%;height:12px;accent-color:var(--mint,#83d5c3)}.property-work-actions button{white-space:normal;min-height:42px}.property-work-result{color:var(--mint,#83d5c3)!important}.property-tour-list{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:12px 0 0;list-style:none}.property-tour-list li{padding:6px 9px;border:1px solid #53607a;border-radius:8px;font-size:.78rem;color:#c5cee4}.property-tour-list li[aria-current="step"]{background:#335444;border-color:#9bd19f;color:#fff}.property-tour-list strong{display:block;font-size:.72rem}@media(max-width:480px){.property-work-actions button{flex:1 1 140px}.property-tour-list li{flex:1 1 100px}}
#quiz-hint{margin-top:12px}#quiz-hint[hidden]{display:none}.quiz-option:disabled:not(.correct):not(.incorrect){opacity:.5}
.tactic-feedback{padding:12px;background:#193a32;border:1px solid #467f6e;border-radius:10px;color:#c2f4df;font-size:.95rem;line-height:1.5}
.league-panel{border-color:var(--league-color,#a98363)}.league-panel progress{display:block;margin:14px 0;accent-color:var(--league-color)}
.league-0,[data-league="0"]{--league-color:#bd936e}.league-1,[data-league="1"]{--league-color:#c3d8ed}.league-2,[data-league="2"]{--league-color:#efc569}.league-3,[data-league="3"]{--league-color:#75dae7}.league-4,[data-league="4"]{--league-color:#c2a0ff}
/* Shared portrait window; ornament artwork stays outside the face, without motion. */
.league-frame{--portrait-size:70%;--portrait-top:50%;--frame-art:none;--frame-glow:transparent;display:inline-block;position:relative;isolation:isolate;width:112px;aspect-ratio:1;flex-shrink:0;vertical-align:middle}
.league-frame::before{content:"";position:absolute;inset:12%;border:2px solid #805339;border-radius:50%;background:linear-gradient(140deg,#eac49e,#a36c47 48%,#e0ab79);box-shadow:0 3px 8px #0008}
.league-frame-portrait{position:absolute;z-index:1;left:50%;top:var(--portrait-top);transform:translate(-50%,-50%);width:var(--portrait-size);height:var(--portrait-size);object-fit:cover;object-position:center 36%;border-radius:50%;background:#121b2e}
.league-frame-ornament{position:absolute;z-index:2;inset:3%;background:var(--frame-art) center/contain no-repeat;filter:drop-shadow(0 0 3px var(--frame-glow));pointer-events:none}
.league-frame.league-1::before{inset:10.5%;border:3px double #ecf4ff;background:linear-gradient(140deg,#fff,#74869a 45%,#dce8f6 68%,#7a94b2);box-shadow:inset 0 0 0 2px #34475b,0 0 8px #c3d8ed30,0 3px 8px #0008}
.league-frame.league-2{--frame-art:url('./arena-frames/gold.webp');--frame-glow:#e5ae3b35}
.league-frame.league-3{--portrait-size:64%;--frame-art:url('./arena-frames/diamond.webp');--frame-glow:#62d9ff45}
.league-frame.league-4{--portrait-size:64%;--portrait-top:48%;--frame-art:url('./arena-frames/aether.webp');--frame-glow:#b788ff65}
.league-frame.league-2::before,.league-frame.league-3::before,.league-frame.league-4::before{inset:17%;border:2px solid var(--league-color);background:#141d32;box-shadow:none}
.league-frame.league-3::before,.league-frame.league-4::before{inset:19%}
.league-frame-profile{width:144px}.league-frame-self{width:92px}.league-frame-list{width:84px;grid-row:1/3;align-self:center}
.profile-identity>div{min-width:0}.profile-identity .profile-id{overflow-wrap:anywhere}
.profile-league-title{display:block;margin-top:6px;font-size:.875rem;font-weight:500;color:#d6c4ee}
.cosmetic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr));gap:12px}
.cosmetic-grid button{border-color:color-mix(in srgb,var(--league-color) 50%,var(--line));display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 10px;white-space:normal;text-align:center;background:radial-gradient(ellipse at 50% 28%,color-mix(in srgb,var(--league-color) 12%,transparent),transparent 65%),var(--surface)}
.cosmetic-grid button:disabled{opacity:1}.cosmetic-grid button:disabled .cosmetic-status{color:var(--muted)}
.cosmetic-grid button:not(:disabled):hover{border-color:var(--league-color);background-color:var(--surface-2)}
.cosmetic-grid button strong{font-size:1rem;color:var(--league-color)}.cosmetic-grid small{font-size:.875rem;line-height:1.5;color:var(--muted)}
.cosmetic-status{margin-top:auto;padding-top:5px;font-size:.78rem;font-weight:600;color:var(--league-color)}
.cosmetic-grid button[aria-pressed="true"]{border-color:var(--league-color);box-shadow:inset 0 0 0 2px var(--league-color),0 0 18px color-mix(in srgb,var(--league-color) 12%,transparent)}
.arena-opponents article{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px 12px;padding:16px}
.arena-opponents article>div{grid-column:2;overflow-wrap:anywhere}.arena-opponents article small{line-height:1.45}.arena-opponents article>button{grid-column:2;justify-self:start}
@media(max-width:500px){.league-frame-profile{width:112px}.profile-identity{gap:12px}.cosmetic-grid{gap:10px}.arena-opponents article{grid-template-columns:76px minmax(0,1fr)}.league-frame-list{width:76px}}
/* Static earned aura: no sway, scale, zoom or extra motion. */
.hero-figure[data-league="1"] .hero-showcase,.hero-figure[data-league="2"] .hero-showcase,.hero-figure[data-league="3"] .hero-showcase,.hero-figure[data-league="4"] .hero-showcase,.battle-actor[data-league="1"] .combat-character,.battle-actor[data-league="2"] .combat-character,.battle-actor[data-league="3"] .combat-character,.battle-actor[data-league="4"] .combat-character{filter:drop-shadow(0 0 7px var(--league-color))}
@media(max-width:650px){.talent-grid{grid-template-columns:1fr}.journey-goal{grid-template-columns:minmax(0,1fr) auto;gap:10px}.journey-goal progress{grid-column:1;grid-row:2}.journey-goal button{grid-column:2;grid-row:1/3}.journey-panel,.progression-panel,.workshop-panel,.set-bonuses,.league-panel{padding:16px}.dungeon-choice .talent-grid{gap:8px}.dungeon-choice .talent-grid button{padding:12px}}

@media(min-width:900px){.journey-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.journey-panel>.eyebrow,.journey-panel>h2{grid-column:1/-1;margin:0}.journey-goal{grid-template-columns:minmax(0,1fr) auto;gap:10px;align-content:start}.journey-goal progress{grid-column:1;grid-row:2}.journey-goal button{grid-column:2;grid-row:1/3}}

.offline-income{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px;padding:20px;border:1px solid #c79b54;border-radius:16px;background:linear-gradient(110deg,#30304b,#172b3d);box-shadow:0 8px 24px #05091740}
.offline-income-copy{min-width:0}.offline-income h2{margin:7px 0 10px;font-size:1.2rem}.offline-income strong{display:block;font-size:1.6rem;color:#ffe0a3;overflow-wrap:anywhere}.offline-income p{margin:8px 0;font-size:1rem;color:#e1e7f4}.offline-income small{font-size:.875rem;color:#b7c7dd}.offline-income button{min-height:48px;flex:none;min-width:120px}.offline-income .offline-income-error{color:#ffbfab}.offline-income[hidden]{display:none}
@media(max-width:600px){.offline-income{align-items:stretch;flex-direction:column;padding:16px;gap:14px}.offline-income button{width:100%}}

.daily-ready{display:inline-block;margin-left:5px;padding:3px 6px;border-radius:6px;background:#f3ba62;color:#201a28;font-size:.875rem;font-weight:800}.daily-ready[hidden]{display:none}
/* A compact edge handle expands into a scrollable shortcut bar. */
.quick-menu{position:fixed;z-index:30;right:max(6px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);display:flex;flex-direction:row-reverse;align-items:center;gap:6px;max-width:calc(100vw - 12px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
.quick-menu[hidden],.quick-menu-links[hidden]{display:none}
.quick-menu-toggle{display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:46px;min-height:70px;padding:8px 4px;border:1px solid #d9ad6b;border-radius:14px 6px 6px 14px;background:linear-gradient(145deg,#35405b,#19223a);color:#ffe0a3;box-shadow:0 5px 20px #0006;cursor:pointer}
.quick-menu-toggle{opacity:.2;transition:opacity .18s ease}
.quick-menu-toggle:hover,.quick-menu-toggle:focus-visible,.quick-menu.is-open .quick-menu-toggle{opacity:1}
.quick-menu-toggle span{font-size:.75rem;font-weight:700}.quick-menu.is-open .quick-menu-toggle svg{transform:rotate(180deg)}
.quick-menu-links{display:grid;gap:4px;min-width:0;width:198px;padding:10px 8px;border:1px solid #667390;border-radius:16px;background:#121d33f5;box-shadow:0 12px 36px #0008;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.quick-menu-heading{padding:4px 8px 7px;color:#b5bfd5;letter-spacing:.12em;font-size:.7rem;font-weight:700}
.quick-menu-links button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:9px 8px;border:1px solid transparent;border-radius:10px;background:transparent;color:#f5f6ff;text-align:left;cursor:pointer;font-size:.875rem;line-height:1.3;font-weight:600}
.quick-menu-links button img{width:28px;height:28px;flex:none;object-fit:contain}.quick-menu-links button span{min-width:0;overflow-wrap:anywhere}
.quick-menu-links button[hidden]{display:none}
.quick-menu-links button:hover,.quick-menu-links button[aria-current="page"]{background:#2a3855;border-color:#536582}.quick-menu-links .quick-menu-world{margin-top:4px;border-top-color:#4d4867;background:#302744;color:#e3caff}
.quick-menu button:focus-visible{outline:2px solid #85e9ee;outline-offset:2px}.quick-menu-toggle:hover{background:#344560}
@media(max-width:380px){.quick-menu-links{width:184px}.quick-menu{right:max(4px,env(safe-area-inset-right));gap:4px}}
.daily-calendar{max-width:1400px;margin:0 auto 36px}.daily-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:20px}.daily-heading h2{margin:8px 0 12px;font-size:1.6rem}.daily-heading p{max-width:620px;margin:0;font-size:1rem;color:var(--muted)}.daily-heading .eyebrow{font-size:.875rem}.daily-claim-box{display:grid;gap:10px;min-width:230px;flex:none}.daily-claim-box>span,.daily-claim-box>small{font-size:.875rem;color:var(--muted)}.daily-claim-box button{min-height:48px}.daily-claim-box small{font-variant-numeric:tabular-nums}
.daily-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.daily-day{min-width:0;padding:16px 12px;border:1px solid var(--line);border-radius:15px;background:var(--surface);display:flex;flex-direction:column;align-items:center;text-align:center}.daily-day-top{width:100%;display:flex;flex-direction:column;gap:7px}.daily-day-top>strong{font-size:1.1rem}.daily-day-top>span{font-size:.875rem;min-height:22px;color:var(--muted)}.daily-day>img{width:112px;max-width:100%;height:112px;object-fit:contain;margin:12px 0}.daily-day h3{font-size:1rem;line-height:1.4;min-height:2.8em;margin:0 0 14px}.daily-day ul{display:grid;gap:13px;padding:0;margin:0;list-style:none;width:100%}.daily-day li{display:grid;gap:4px}.daily-day li strong{font-size:1rem;color:var(--text);overflow-wrap:anywhere}.daily-day li span{font-size:.875rem;color:var(--muted)}.daily-grand{border-color:#927548;background:linear-gradient(160deg,#392c48,var(--surface))}.daily-grand h3{color:#ffda93}.daily-current{border:2px solid #f3ba62;padding:15px 11px;box-shadow:0 0 0 3px #f3ba6218}.daily-current .daily-day-top>span{color:#ffdf99;font-weight:700}.daily-collected .daily-day-top>span{color:#a4e2bc}.daily-collected>img{opacity:.65}.daily-feedback{padding:13px 16px;border:1px solid #50847d;border-radius:10px;background:#153537;color:#e1f8ec;font-size:1rem}.daily-feedback.error{border-color:#a26550;background:#412731;color:#ffded2}.daily-note{margin:18px 0 0;color:var(--muted);font-size:.875rem;line-height:1.6}
@media(max-width:1100px){.daily-days{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-grand{grid-column:span 2}}
@media(max-width:760px){.daily-heading{align-items:stretch;flex-direction:column;padding:18px;gap:18px}.daily-claim-box{min-width:0}.daily-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.daily-grand ul{grid-template-columns:repeat(3,minmax(0,1fr))}.daily-grand h3{min-height:0}.daily-heading h2{font-size:1.35rem}}
@media(max-width:380px){.daily-days{grid-template-columns:minmax(0,1fr)}.daily-grand{grid-column:auto}.daily-grand ul{grid-template-columns:1fr}}

/* Keep equipment light inside its own card, including upgraded item art. */
.ether-character-layout .ether-gear-slot.gear-glow,.inventory-item.gear-glow{isolation:isolate;contain:paint;overflow:clip}
.gear-glow .ether-slot-art,.gear-glow .inventory-slot-art{isolation:isolate;overflow:hidden;outline-offset:-3px;box-shadow:none}

.arena-own-power{margin:8px 0;color:#e1dbff}.arena-own-power strong{color:#b5f7e7;font-variant-numeric:tabular-nums}
.monster-level{display:inline-block;margin:0 0 7px;padding:3px 9px;border:1px solid #8475b8;border-radius:20px;background:#25203e;color:#e3d4ff;font-size:.8rem;font-weight:700}
.battle-head h2 small{display:inline-block;font-size:.6em;color:#c9b6ed;white-space:nowrap}
.inventory-bulk{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.inventory-bulk small{flex-basis:100%;color:#c5c9de;line-height:1.5}
.item-toast{position:fixed;z-index:120;right:20px;bottom:24px;width:min(370px,calc(100vw - 32px));padding:15px 18px;border:1px solid #79d8bd;border-radius:14px;background:#122b31f7;color:#f4fff9;box-shadow:0 8px 28px #0006;pointer-events:none;display:grid;gap:6px;font-size:.92rem;line-height:1.5}
.item-toast[hidden]{display:none}.item-toast strong{color:#a5f4d5;font-size:1rem}
.world-announcement{position:fixed;z-index:140;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:max-content;max-width:min(560px,calc(100vw - 24px));padding:12px 20px;border:1px solid #f4d37a;border-radius:14px;background:#252031f7;color:#fff3c4;box-shadow:0 8px 28px #0008;font-size:1rem;font-weight:700;line-height:1.5;text-align:center;overflow-wrap:anywhere;pointer-events:none}
.world-announcement[hidden]{display:none}
.battle-dialogue{position:relative;padding:12px 16px;background:#151d35;border-top:1px solid #596285;color:#e5e7f4;text-align:left;min-height:90px}
.battle-dialogue>small{display:block;color:#cab6ee;text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;margin-bottom:6px}
#battle-content>.battle-dialogue,.battle-finisher>.battle-dialogue{margin-top:16px;border:1px solid #596285;border-radius:12px}
.battle-dialogue p{margin:4px 0;font-size:.86rem;line-height:1.55}.battle-dialogue strong{color:#d5beff}.battle-round-readout:empty{display:none}
.potion-mist{--mist-color:#ff657d;--mist-light:#ffc3b9;position:absolute;inset:0;z-index:8;pointer-events:none;isolation:isolate}
.potion-mist-mana{--mist-color:#9277ff;--mist-light:#e7cbff}.potion-mist-energy{--mist-color:#39dcc2;--mist-light:#d6fff0}
.potion-mist i{position:absolute;left:8%;bottom:10%;width:84%;height:46%;border-radius:50%;background:radial-gradient(ellipse,var(--mist-light) 0%,var(--mist-color) 38%,transparent 72%);filter:blur(7px);opacity:0;animation:potion-cloud-rise 1.8s ease-out both;animation-delay:var(--mist-age,0ms)}
.potion-mist i:nth-child(2){left:-5%;bottom:22%;width:75%;height:50%;--mist-drift:-16px}
.potion-mist i:nth-child(3){left:33%;bottom:6%;width:72%;height:52%;--mist-drift:16px}
.potion-mist strong{position:absolute;top:13%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(12px,1.2vw,18px);font-weight:800;color:var(--mist-light);padding:4px 7px;background:#111b32e8;border:1px solid var(--mist-color);border-radius:8px;text-shadow:0 1px 2px #000;animation:potion-gain 1.8s ease-out both;animation-delay:var(--mist-age,0ms)}
@keyframes potion-cloud-rise{0%{opacity:0;transform:translate(0,15%) scale(.5)}20%{opacity:.82}70%{opacity:.5}100%{opacity:0;transform:translate(var(--mist-drift,0px),-45%) scale(1.22)}}
@keyframes potion-gain{0%{opacity:0}12%,75%{opacity:1}100%{opacity:0}}
@media(max-width:520px){.item-toast{right:16px;bottom:16px}.battle-dialogue{padding:10px 12px}.inventory-bulk .small-button{flex:1}}
@media(prefers-reduced-motion:reduce){.potion-mist i{animation:none;opacity:.5;transform:none}.potion-mist strong{animation:none}.ether-character-layout .ether-gear-slot.gear-glow,.inventory-item.gear-glow,.gear-glow .ether-slot-art,.gear-glow .inventory-slot-art{animation:none;box-shadow:inset 0 0 5px var(--gear-color)}}

/* Zikir: keep the glow on the Arabic lettering and the counter independent. */
.world-property-entry{margin:24px 0 12px}
.world-property-entry .shop-menu-button{min-height:44px}
.zikir-page{max-width:1100px;margin:0 auto 32px;scroll-margin-top:100px}
.zikir-counter-card{max-width:620px;margin:0 auto 22px;text-align:center;border-color:#8d724d;background:radial-gradient(ellipse at 50% 60%,#28483d55,transparent 70%),linear-gradient(145deg,#19263b,#121b2f)}
.zikir-heading,.esma-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left}
.zikir-heading h2,.esma-heading h2{margin-top:6px}
#zikir-reset{min-height:44px;flex-shrink:0}
.zikir-count{display:block;max-width:100%;margin:24px 0 18px;color:#ffe0a0;font-size:clamp(2.1rem,7vw,3.6rem);font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15;overflow-wrap:anywhere}
.zikir-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:172px;max-width:100%;aspect-ratio:1;margin:0 auto;padding:18px;border:1px solid #ffd890;border-radius:50%;background:linear-gradient(145deg,#ffe09a,#f0b957 62%,#d38d36);color:#2b231b;box-shadow:0 6px 0 #8c5a2c,0 12px 26px #050b1b88,inset 0 0 0 4px #fff1c533;font-size:.86rem;font-weight:800;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .06s ease-out,box-shadow .06s ease-out}
.zikir-button .clover-icon{font-size:3.9rem;line-height:1.15}
.zikir-button:active{transform:translateY(4px) scale(.97);box-shadow:0 2px 0 #8c5a2c,0 5px 16px #050b1b88,inset 0 0 0 4px #fff1c533}
.zikir-counter-note{margin:22px 0 0;color:var(--muted);font-size:.82rem}
.esma-heading{margin-bottom:20px}
.esma-total{flex-shrink:0;padding:7px 10px;border:1px solid #8d724d;border-radius:99px;color:#f8d493;font-size:.76rem;white-space:nowrap}
.esma-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.esma-row{display:grid;grid-template-columns:1.5rem minmax(0,.9fr) minmax(0,1.3fr);align-items:center;gap:12px;min-width:0;padding:16px 12px;border:1px solid #435069;border-radius:12px;background:#0c17277a}
.esma-number{align-self:start;padding-top:8px;color:#acb6ca;font-size:.74rem;font-variant-numeric:tabular-nums}
.esma-arabic{min-width:0;color:#ffd47d;text-align:center;font-family:"Noto Naskh Arabic","Geeza Pro","Traditional Arabic",serif;font-size:2rem;font-weight:500;line-height:1.8;letter-spacing:normal;overflow-wrap:anywhere;text-shadow:0 0 6px #efb75370,0 0 16px #efb75330}
.esma-copy{min-width:0;text-align:left}
.esma-copy h3{color:#fff0d3;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}
.esma-copy p{margin:5px 0 0;color:#c1cadd;font-size:.84rem;line-height:1.5;overflow-wrap:anywhere}
.esma-source{margin:20px 0 0;color:var(--muted);font-size:.73rem;line-height:1.7}
.esma-source a{color:#f8d493;text-underline-offset:3px}
@media(max-width:820px){.esma-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.zikir-counter-card,.esma-card{padding:16px 12px}.zikir-heading,.esma-heading{gap:10px}.esma-heading h2{font-size:1.17rem}.esma-row{grid-template-columns:1.1rem minmax(0,.9fr) minmax(0,1.3fr);gap:8px;padding:12px 8px}.esma-arabic{font-size:1.7rem}.esma-copy h3{font-size:.91rem}.esma-copy p{font-size:.79rem}.zikir-button{width:158px}}
@media(prefers-reduced-motion:reduce){.zikir-button{transition:none}.zikir-button:active{transform:none}}

/* Bounded side tasks and a four-property viewport. */
.tasks-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(460px,94vw);height:100dvh;max-width:100vw;max-height:100dvh;padding:0;border:1px solid var(--line);border-radius:18px 0 0 18px;background:var(--surface);color:var(--text);box-shadow:-12px 0 48px #0008;overflow:hidden}
.tasks-drawer[open]{display:flex;flex-direction:column;animation:tasks-slide-in .22s ease-out}
.tasks-drawer::backdrop{background:#05091799}
.tasks-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(18px + env(safe-area-inset-top)) 18px 16px;border-bottom:1px solid var(--line);flex:none}
.tasks-drawer-head h2{margin:0;font-size:1.3rem}
.tasks-drawer-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px calc(18px + env(safe-area-inset-bottom));scrollbar-width:thin}
.tasks-drawer #tasks-section{margin:0;padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none;height:auto;max-height:none}
.tasks-drawer .tasks-body{overflow:visible;max-height:none}
.tasks-drawer .task-row strong,.tasks-drawer .task-row span,.tasks-drawer .task-row small,.tasks-drawer .tasks-note{font-size:.875rem}
@keyframes tasks-slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}
#asset-shop{display:flex;flex-direction:column;gap:10px;max-height:422px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:6px}
#asset-shop>.asset-card{flex:none;padding:0;min-height:96px;margin:0}
#asset-shop>.asset-card>summary{min-height:96px;box-sizing:border-box;padding:14px;display:flex;align-items:center;gap:10px}
#asset-shop .asset-fold-body{max-height:220px;overflow-y:auto;padding:0 14px 14px;overscroll-behavior:contain}
#asset-shop:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.leaderboard-player .rank-name-pistachio{color:#a7df75!important}.leaderboard-player .rank-name-turquoise{color:#52e2db!important}.leaderboard-player .rank-name-silver{color:#d8e0ec!important}.leaderboard-player .rank-name-gold{color:#ffd369!important}
@media(prefers-reduced-motion:reduce){.tasks-drawer[open]{animation:none}}

/* Keep purchase controls first and visible within each expanded property. */
#asset-shop .asset-fold-body>.asset-bottom{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 -14px 10px;padding:12px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
#asset-shop .asset-bottom>strong{flex:1 1 100%;font-size:.875rem}
#asset-shop .asset-bottom .asset-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;margin:0}
#asset-shop .asset-actions .small-button{min-width:0;min-height:44px;padding:8px 5px;white-space:normal;overflow-wrap:anywhere}

/* One shared quantity choice for the four Ether stat bottles. */
.growth-quantity{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:14px 0 8px}
.growth-quantity>span{font-weight:700;color:var(--text);font-size:.875rem}
.growth-quantity-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:240px}
.growth-quantity-options button{min-height:44px;padding:8px 10px;font-weight:700}
.growth-quantity-options button[aria-pressed="true"]{background:var(--accent);color:#241c28;border-color:var(--accent)}
.growth-quantity-note{margin:0 0 14px}
.alchemy-purchase{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.alchemy-purchase>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.alchemy-purchase strong{font-size:.95rem;overflow-wrap:anywhere}
.alchemy-purchase small{font-size:.85rem;color:var(--cyan)}
.alchemy-purchase button{min-height:44px;min-width:72px;flex:none}
@media(max-width:480px){.growth-quantity-options{width:100%;min-width:0}.alchemy-purchase{gap:8px}}

/* Keep tactics outside the scroll area so long battle details cannot hide them. */
.battle-dialog.battle-action-layout{height:calc(100vh - 32px);height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;gap:10px}
.battle-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding-right:4px}
.battle-scroll:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
.battle-scroll>.battle-dialogue{margin-top:16px;border:1px solid #596285;border-radius:12px}
.battle-action-dock{flex:0 0 auto;max-height:55%;overflow-y:auto;padding-top:8px;border-top:1px solid #596285;background:#151c38;overscroll-behavior-y:contain}
.battle-dock-resources{margin:0 0 7px;font-size:.75rem;line-height:1.35;color:var(--muted)}
.battle-dock-resources strong{color:var(--text)}
.battle-action-dock .battle-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.battle-action-dock .battle-actions button{min-height:56px;margin:0;padding:8px 5px;font-size:.875rem}
.battle-action-dock .battle-actions button small{font-size:.6875rem;line-height:1.25;margin-top:4px}
.battle-action-dock .battle-action-reason{max-height:2.7em;overflow-y:auto;overscroll-behavior-y:contain}
@media(max-width:680px){
  #battle-overlay{padding:8px}
  .battle-dialog.battle-action-layout{height:calc(100vh - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:10px;gap:8px}
  .battle-action-dock .battle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-height:480px){
  .battle-action-dock .battle-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
  .battle-action-dock .battle-actions button{min-height:44px;padding:6px 3px;font-size:.75rem}
  .battle-action-dock .battle-actions button small{font-size:.625rem}
  .battle-action-dock .battle-action-reason{max-height:1.35em}
}

.inventory-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.inventory-heading .inventory-toggle{min-height:46px;padding:10px 18px;font-size:1rem;color:var(--text)}
.inventory-summary{color:var(--muted);font-size:.85rem;line-height:1.5}

.planet-tool-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.planet-tool-nav .planet-tool-button{display:flex;align-items:center;justify-content:center;gap:9px;min-height:62px;padding:12px 8px;font-size:.94rem;background:var(--glass-inset,var(--surface));border:1px solid var(--glass-line,var(--line));color:var(--text);white-space:normal}
.planet-tool-button .card-header-icon{flex:none;width:30px;height:30px;margin:0}
.planet-tool-nav .planet-tool-button.active{border-color:var(--accent);background:#5d456b;color:#fff;box-shadow:inset 0 0 0 1px var(--accent)}
.planet-tool-button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.planet-tool-panel{margin-bottom:18px;min-width:0}
.planet-tool-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.planet-tool-heading .small-button{flex:none;min-height:44px}
.planet-tool-panel .planet-panel-body{height:auto;max-height:none;overflow:visible}
@media(max-width:600px){.planet-tool-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.planet-tool-nav .planet-tool-button{min-height:58px;font-size:.87rem}}

.journey-panel.journey-fold{display:block}
.journey-fold>summary{cursor:pointer;list-style:none}
.journey-fold>summary::-webkit-details-marker{display:none}
.journey-fold>summary h2{margin:4px 0 0}
.journey-fold>summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px;border-radius:8px}
.journey-fold .journey-goals{display:grid;gap:12px;margin-top:14px}
@media(min-width:900px){.journey-fold .journey-goals{grid-template-columns:repeat(3,minmax(0,1fr))}}

.battle-camp{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.battle-camp .camp-rest-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:64px;padding:10px 16px;background:#493328;border-color:#b67a48;color:#ffe4b6}
.camp-rest-button .card-header-icon{width:38px;height:38px;flex:none;margin:0}
.camp-rest-button>span{display:flex;flex-direction:column;gap:3px;text-align:left}
.camp-rest-button strong{font-size:1rem}
.camp-rest-button small{font-size:.85rem;font-weight:500}
.battle-camp .camp-rest-button:hover:not(:disabled){background:#67452e;border-color:#edaa62}
.battle-camp .camp-rest-button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.battle-camp>p{margin-top:9px;line-height:1.5}

.property-ready-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .3rem;border-radius:999px;background:#ffd66b;color:#29200b;font-size:.75rem;font-weight:800;line-height:1;flex-shrink:0}.property-ready-badge[hidden]{display:none}

/* Personal counters and enhancement protection. */
.zikir-selected-name{display:flex;flex-direction:column;gap:4px;margin-top:20px;color:#ffe0a0}
.zikir-selected-name [lang=ar]{font-family:"Noto Naskh Arabic","Geeza Pro",serif;font-size:2.6rem;line-height:1.7}
.zikir-selected-name strong{font-size:1.1rem}
.esma-row{display:flex;padding:10px;gap:8px;flex-wrap:wrap}
.esma-row.selected{border-color:#ffd47d;box-shadow:0 0 0 1px #ffd47d55;background:#3b372555}
.esma-select{display:grid;grid-template-columns:1.1rem minmax(0,.85fr) minmax(0,1.3fr);align-items:center;gap:8px;min-width:0;flex:1 1 230px;padding:4px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}
.esma-select:focus-visible{outline:2px solid #ffd47d;outline-offset:4px}
.esma-copy strong{display:block;color:#fff0d3;font-size:1rem;line-height:1.4}
.esma-copy>span{display:block;margin-top:5px;color:#c1cadd;font-size:.84rem;line-height:1.5}
.esma-counter{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1 1 100%;border-top:1px solid #43506977;padding-top:8px}
.esma-counter output{color:#ffe0a0;font-variant-numeric:tabular-nums;font-weight:800;overflow-wrap:anywhere;min-width:0}
.esma-counter button{min-height:36px;font-size:.73rem;flex-shrink:0}
.forge-market,.forge-protection{margin:18px 0;padding:16px;border:1px solid #a58b5b77;border-radius:14px;background:#242b3655}
.forge-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.forge-potion-card{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:14px 10px;border:1px solid color-mix(in srgb,var(--forge-color) 55%,transparent);border-radius:14px;background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--forge-color) 14%,transparent),transparent 75%),#101b2c;text-align:center}
.forge-potion-symbol{display:grid;place-items:center;width:100%;aspect-ratio:1;max-width:150px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--forge-color) 12%,transparent),transparent 70%)}
.forge-potion-symbol img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 8px #0007)}
.forge-potion-card h4{margin:0;min-height:2.6em;color:var(--forge-color);font-size:clamp(.8rem,2vw,1rem);line-height:1.3;overflow-wrap:anywhere}
.forge-potion-range{display:block;border-radius:20px;padding:4px 8px;color:var(--forge-color);background:#ffffff09;font-size:.85rem;white-space:nowrap}
.forge-potion-stock{margin:0;overflow-wrap:anywhere}
.forge-market-note{margin-bottom:0}
.forge-potion-card p,.forge-odds{font-size:.8rem;line-height:1.6;color:var(--muted)}
.forge-potion-card button{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;margin-top:auto;min-height:46px;width:100%;padding:8px 5px;white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.forge-potion-controls{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.forge-potion-controls [aria-pressed=true]{border-color:#ffd47d;background:#594521;color:#ffe5ae}
@media(max-width:640px){.forge-market-grid{gap:6px}.forge-potion-card{gap:6px;padding:8px 4px;border-radius:10px}.forge-potion-card p{font-size:.68rem;line-height:1.4}.forge-potion-card button{font-size:.7rem}.forge-potion-range{padding:3px 4px;font-size:.72rem}.forge-protection,.forge-market{padding:10px}.esma-row{padding:8px}}

.vip-badge{display:inline-flex;align-items:center;vertical-align:middle;flex-shrink:0;margin-right:4px;padding:2px 5px;border:1px solid #ffd67d;border-radius:5px;color:#ffe5a6;background:linear-gradient(120deg,#685126,#342311);font-size:.68rem;font-weight:900;line-height:1.35;letter-spacing:.03em;text-shadow:none}
.vip-badge.vip-tier-1{border-color:#8f9aa6;color:#dce1e6;background:linear-gradient(120deg,#46515e,#252e39)}
.vip-badge.vip-tier-2{border-color:#cd975d;color:#ffd4a4;background:linear-gradient(120deg,#75502e,#3e291b)}
.vip-badge.vip-tier-3{border-color:#d0dce8;color:#f3f7fc;background:linear-gradient(120deg,#708196,#364456)}
.vip-badge.vip-tier-4{border-color:#ffd67d;color:#ffe5a6;background:linear-gradient(120deg,#685126,#342311)}
.vip-badge.vip-tier-5{border-color:#93e5ed;color:#dbfbff;background:linear-gradient(120deg,#326876,#1c384e);box-shadow:0 0 7px #86dfea33}
.vip-daily-card{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0;padding:20px;border:1px solid #b29451;border-radius:16px;background:linear-gradient(120deg,#372e2355,#19243b)}
.vip-daily-card>div:first-child{flex:1 1 300px;min-width:0}.vip-daily-card h3{margin:0 0 8px}.vip-daily-card p{margin:8px 0;line-height:1.6}.vip-daily-card small{color:var(--muted);line-height:1.7}
.vip-daily-actions{display:flex;flex-direction:column;gap:8px}.vip-daily-card>.store-feedback{flex-basis:100%;margin:0}
.store-vip-product{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:20px;border-color:#b29451}
.store-vip-product .store-product-art{height:auto}.store-vip-product .store-product-art img{max-width:140px}.store-vip-product .store-product-actions{margin:0}.store-vip-product small{color:var(--muted);line-height:1.6}
@media(max-width:700px){.store-vip-product{grid-template-columns:90px minmax(0,1fr);gap:12px}.store-vip-product .store-product-art img{width:86px;height:86px}.store-vip-product .store-product-actions{grid-column:1/-1}.vip-daily-actions{width:100%}.vip-daily-card{padding:15px}}

/* Eter Devri visual system v2: readable surfaces, shared materials and calm scenes. */
:root[data-world]{--glass-surface:#101b2af0;--glass-inset:#142235eb;--glass-line:#9cacbd38;--ui-radius:16px;--ui-shadow:0 12px 28px #00000029;--muted:#b9c6d8}
:root[data-world="earth"]{--world-accent:#efc78b;--world-soft:#efc78b17}
:root[data-world="planet"]{--world-accent:#a9d9ee;--world-soft:#a9d9ee17;--glass-surface:#171f2bef;--glass-inset:#1c2939ed;--glass-line:#b7d0e43b}
:root[data-theme="classic"][data-world="planet"]{--accent:#b7e3f5;--cyan:#b7e3f5;--line:#677f9455;--surface:#172332;--surface-2:#202f40}
:root[data-theme="forest"][data-world]{--glass-surface:#102822f0;--glass-inset:#19382feb;--glass-line:#8ebba23d;--world-accent:#b1e6bf;--world-soft:#b1e6bf14}
:root[data-theme="violet"][data-world]{--glass-surface:#221633f0;--glass-inset:#342247eb;--glass-line:#b89bd33d;--world-accent:#dbc3ff;--world-soft:#dbc3ff14}
:root[data-world] body::before{opacity:.7}
:root[data-world] :is(.card,.vitals-panel,.earth-fold-card,.planet-fold-card,.family-card,.planet-header,.leaderboard-card,.career-card,.chat-shell){border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);backdrop-filter:none;-webkit-backdrop-filter:none}
body{font-variant-numeric:tabular-nums;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:-.018em}
button,summary,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--world-accent,#c9e7f7);outline-offset:3px}
:is(.primary-button,.secondary-button,.small-button,.ghost-button){min-height:44px;border-radius:10px;transition:background .16s,border-color .16s,box-shadow .16s}
.small-note,.asset-detail,.equipment-card p,.inventory-fold-body p{line-height:1.6}
.eyebrow{letter-spacing:.13em;font-weight:750}
.site-header{border-bottom:1px solid #b6c7df20;margin-bottom:16px}
.brand-mark{border:1px solid #f3ca8044;box-shadow:0 0 22px #ebbb4e12}
.world-nav{gap:7px;padding:6px;border:1px solid var(--glass-line);border-radius:14px;background:var(--glass-surface);scrollbar-width:thin;scrollbar-color:#8ca3bb55 transparent}
.world-nav .world-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;padding:9px 12px;border:1px solid transparent;border-radius:9px;background:transparent;white-space:nowrap;color:#ccd7e5;font-weight:650}
.world-nav .card-header-icon{width:23px;height:23px;margin:0;flex:none}
.world-nav .world-tab.active{background:var(--world-soft);color:var(--world-accent);border-color:var(--world-accent);box-shadow:inset 0 -2px var(--world-accent)}
.world-nav .world-tab:hover:not(:disabled){background:#ffffff0b}
.world-nav .world-tab.active:hover{background:var(--world-soft)}
.card-header-icon{object-fit:contain;filter:drop-shadow(0 1px 2px #0006)}
.planet-tool-nav{padding:6px;border:1px solid var(--glass-line);border-radius:15px;background:var(--glass-surface);gap:6px}
.planet-tool-nav .planet-tool-button{min-height:60px;background:transparent;border-color:transparent;border-radius:10px;font-size:.875rem}
.planet-tool-nav .planet-tool-button.active{border-color:#aad7e3aa;background:#a9d9ee15;color:#e7f8ff;box-shadow:none}
.planet-tool-nav .card-header-icon{width:26px;height:26px}
.earth-panel-summary,.planet-panel-summary{min-height:64px}
.ether-conversion-bar{box-shadow:none!important}
.shop-menu{border-color:var(--glass-line);background:var(--glass-surface)}
.scene{border:1px solid #c3d8df40;box-shadow:0 12px 30px #0003}

/* The same artwork also appears in the small owned-property list. */
#asset-shop{max-height:560px;gap:12px;padding-right:5px}
#asset-shop>.illustrated-property{border:1px solid #d1b4853d;background:linear-gradient(110deg,#8b622915,transparent 75%),var(--glass-inset);overflow:hidden}
#asset-shop>.illustrated-property>summary{min-height:124px;padding:10px 14px 10px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto 16px;gap:14px}
.illustrated-property .asset-title{gap:16px;min-width:0}
.illustrated-property .asset-title h3{font-size:1.0625rem;color:#f5e6d0}
.illustrated-property .asset-title small{font-size:.8125rem;color:#c4cdda;margin-top:7px}
.illustrated-property .asset-icon{width:108px;height:108px;flex:none;border-radius:11px;overflow:hidden;background:#0b1422;border:1px solid #e9cca523}
.illustrated-property .asset-icon .property-illustration{width:100%;height:100%;object-fit:contain;border-radius:inherit;filter:none}
.illustrated-property .asset-fold-meta{font-size:.875rem;font-weight:650;line-height:1.5;max-width:175px;color:#efcf98}
.owned-property .property-illustration{width:36px;height:36px;vertical-align:middle;border-radius:7px;object-fit:contain}
.illustrated-property[open]{border-color:#d5b47777!important}
.illustrated-property .asset-fold-body{border-top:1px solid #d4c5ac20;padding-top:10px!important}
.asset-income-milestones .earned{box-shadow:inset 0 0 0 1px #b9dcb532}

/* Materials are consistently named as well as colored. */
[data-tier="0"]{--material-color:#b5c1cc;--material-wash:#b5c1cc15}
[data-tier="1"]{--material-color:#d49c68;--material-wash:#d49c6817}
[data-tier="2"]{--material-color:#d7e8f3;--material-wash:#d7e8f317}
[data-tier="3"]{--material-color:#efce85;--material-wash:#efce8517}
[data-tier="4"]{--material-color:#9ddbd5;--material-wash:#9ddbd517}
[data-tier="5"]{--material-color:#c6b6f0;--material-wash:#c6b6f017}
:root[data-world] :is(.equipment-card,.inventory-item,.ether-gear-slot)[data-tier]{border-color:color-mix(in srgb,var(--material-color,#8194a9) 45%,transparent);background:linear-gradient(145deg,var(--material-wash,#ffffff08),transparent 65%),var(--glass-inset)}
.gear-material-label{display:block;font-size:.6875rem;font-weight:750;letter-spacing:.04em;color:var(--material-color,#bed3df);line-height:1.5}
.equipment-card{position:relative;padding:16px;border-radius:13px;display:flex;flex-direction:column;align-items:stretch;min-width:0}
.equipment-card>.gear-material-label{align-self:flex-start;padding:3px 7px;border:1px solid color-mix(in srgb,var(--material-color) 40%,transparent);border-radius:5px}
.equipment-card>.ether-item-art{height:132px;max-width:100%;width:100%;margin:8px 0 12px;object-fit:contain;filter:drop-shadow(0 8px 7px #0008)}
.equipment-card>.small-button{margin-top:auto}
.equipment-card h3{font-size:.9375rem;line-height:1.4}
.equipment-card .pill{display:inline-block;margin-top:5px;font-size:.6875rem}
.ether-character-layout{position:relative;padding:16px;border:1px solid #bbd7e427;border-radius:14px;background:radial-gradient(ellipse at 50% 12%,#98bdde15,transparent 55%),linear-gradient(160deg,#0b1725c9,#101c2ce8)}
.ether-hero{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 36%,#bbdce416,transparent 62%);overflow:visible}
.ether-hero .hero-figure{isolation:isolate}
.ether-hero .hero-figure::before{content:"";position:absolute;z-index:-1;left:8%;right:8%;top:96%;height:8%;transform:translateY(-50%);border-radius:50%;background:radial-gradient(ellipse,#020812bf 10%,#07111b99 45%,transparent 72%);border-bottom:1px solid #c8e8f025;pointer-events:none}
.ether-hero .hero-name{background:linear-gradient(0deg,#101c2cf5,#101c2cbb);border:1px solid #a9d1e42b;border-radius:9px;padding:9px 12px;margin:0 5px;position:relative;z-index:2}
.hero-showcase .combat-body-art,.hero-showcase .combat-intact-arm{filter:contrast(1.035) saturate(.95) drop-shadow(2px 5px 4px #0007)}
.ether-gear-slot{border-radius:10px}
.ether-gear-slot>span:first-child{font-size:.6875rem;text-transform:uppercase;letter-spacing:.065em;color:#c2d3df;margin-bottom:6px}
.ether-slot-art,.inventory-slot-art{background:radial-gradient(ellipse at 42% 25%,var(--material-wash,#a9d9ee18),#0b142766);border-radius:9px}
.ether-slot-art img,.inventory-slot-art img{object-fit:contain;filter:drop-shadow(0 4px 4px #0008)}
.ether-gear-slot select{border-color:#9bb7cb40;background:#111e2d;color:#e1eaf2;min-height:36px}
.ether-gear-slot .gear-slot-summary strong{line-height:1.35}
.inventory-fold>summary{min-height:88px}
.character-power{border-bottom:1px solid #b1c5de29;padding-bottom:14px;margin-bottom:14px}

/* Read the route at a glance; the actual region map artwork remains static. */
.ether-world-map{min-height:430px;border-color:#a7d5e557;border-radius:15px;background-image:linear-gradient(0deg,#08102052,transparent 45%,#06132515),var(--ether-map);box-shadow:inset 0 0 70px #08101e40}
.ether-map-path polyline{stroke:#e8eef780;stroke-width:1;stroke-dasharray:1.5 1.4}
.ether-map-path .map-route-completed{stroke:#b3e4cd;stroke-width:1.4;stroke-dasharray:none;filter:drop-shadow(0 0 1px #112d24)}
.ether-map-node{width:44px;height:44px;min-height:44px;border:1px solid #d3e9fbbf;background:linear-gradient(145deg,#354c60,#172b3e);box-shadow:0 4px 14px #0009,inset 0 0 0 3px #d0e8f215;color:#eaf4fa;line-height:1;font-size:.9375rem}
.ether-map-node.completed{background:linear-gradient(145deg,#27594f,#173c35);border-color:#b0e6c8;color:#eafff1}
.ether-map-node.selected{background:linear-gradient(145deg,#e9f8ff,#a5d7e8);color:#142e3e;border-color:#fff;box-shadow:0 0 0 4px #b5e2f32b,0 5px 18px #0009}
.ether-map-node.locked{opacity:.85;border-color:#abbaca69;background:#172330e8;color:#aabac8;box-shadow:0 4px 9px #0006}
.map-pin-state{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:#bbe6cf;color:#123f2f;font-size:11px;font-style:normal;border:1px solid #102b24}
.map-pin-lock{width:10px;height:9px;right:0;bottom:0;border-radius:2px;background:#9bafbe;border-color:#172331}
.map-pin-lock::before{content:"";position:absolute;left:1px;right:1px;height:6px;top:-6px;border:2px solid #9bafbe;border-bottom:0;border-radius:5px 5px 0 0}
.map-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:13px 0 0;padding-bottom:12px;border-bottom:1px solid #aecddd23;color:#bfcedd;font-size:.75rem}
.map-legend>span{display:flex;align-items:center;gap:6px}
.map-legend i{display:inline-grid;place-items:center;width:12px;height:12px;border-radius:50%;font-size:9px;font-style:normal}
.legend-current{background:#c9eafa;border:1px solid #fff}.legend-complete{background:#b1e4ca;color:#16392b}.legend-locked{background:#405164;border:1px solid #a1b3c5}
.ether-map-caption{padding:13px 0;align-items:flex-start}.ether-map-caption strong{color:#d9edf6;font-size:.9375rem}
.world-hazard{border-color:#afcde533;background:#121e2a9e;border-radius:10px}
.camp-rest-button{background:linear-gradient(125deg,#3e3020a6,#192937)!important;border-color:#d7af7155!important;border-radius:12px}
.camp-rest-button .card-header-icon{width:38px;height:38px}

/* A single continuous backdrop replaces the repeated top and bottom scenery. */
.battle-dialog{border:1px solid #a8c5d754;border-radius:18px;background:#0f1928;box-shadow:0 28px 90px #0009}
.battle-dialog.battle-action-layout{padding:16px;gap:0}
.battle-head{margin-bottom:10px;gap:10px;align-items:center}
.battle-head h2{font-size:clamp(1.1rem,2.5vw,1.45rem);margin:5px 0 0}
.battle-head .eyebrow{font-size:.65rem;color:#9bb5c9}
.battle-head h2 small{font-size:.7rem;font-weight:500;color:#b8c8d7}
.battle-exit{font-size:.75rem;min-height:40px;padding:7px 10px;flex:none}
.battle-body{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.battle-scene{--combat-stage-height:clamp(210px,30vw,330px);background:linear-gradient(180deg,#08121c36,#08121c0a 45%,#08121c40),var(--battle-map) center 44%/cover no-repeat;border-color:#c9dde742;border-radius:13px;box-shadow:inset 0 0 35px #030c1744}
.battle-scene::before{display:none}
.battle-scene-location{min-height:28px;padding:7px 10px;background:linear-gradient(90deg,#091422cc,#09142288,#091422cc);border-bottom:1px solid #c7e4f01c;font-size:.6875rem;letter-spacing:.025em;color:#d1e3ed}
.battle-scene .battle-health-hud{gap:18px;padding:10px 12px 0;grid-template-columns:repeat(2,minmax(0,220px));align-items:start;justify-content:space-between}
.battle-health-hud .battle-fighter-resources{padding:7px;gap:4px;background:#0b1825d9;border:1px solid #bdd9e137;box-shadow:0 4px 10px #0003}
.battle-fighter-health>span,.battle-fighter-resources>span{font-size:.75rem;line-height:1.3;color:#eff7fa}
.battle-resource{border:0;border-radius:3px;min-height:16px;padding:1px 5px}
.battle-fighter-resources .battle-resource-label,.battle-fighter-resources .battle-resource-value,.battle-fighter-resources .battle-resource-value span{font-size:11px;line-height:14px}
.battle-scene .battle-stage.cinema-viewport{margin:0;background:transparent}
.battle-film-backdrop{background:none;filter:none}
.battle-film-letterbox{border:0}
.battle-film-haze{animation:none;opacity:.45;filter:none;background:radial-gradient(ellipse at 50% 100%,#c4e0ed1c,transparent 65%)}
.battle-film-vignette{background:radial-gradient(ellipse at 50% 38%,transparent 48%,#050c1755 100%)}
.battle-hero-sprite{filter:drop-shadow(1px 7px 5px #0009)}
.battle-scene .combat-body-art,.battle-scene .combat-intact-arm{filter:contrast(1.035) saturate(.96)}
.battle-scene .battle-actor::before{content:"";position:absolute;left:14%;right:14%;bottom:4%;height:9%;border-radius:50%;background:radial-gradient(ellipse,#02070ec9 10%,#02070e60 45%,transparent 72%);pointer-events:none;z-index:-1;transform:scaleX(1.2)}
.battle-scene .battle-enemy::before{left:8%;right:8%;bottom:5%;height:10%}
.battle-round-readout{min-height:28px;padding:8px 12px;background:#091320cf;border-top:1px solid #afcfdf24;font-size:.75rem;line-height:1.5;color:#dfebf4}
.battle-turn-status{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 8px}
.battle-turn-status strong{font-size:.875rem;color:#d9f1ff}.battle-turn-status>span{font-size:.75rem;color:#b7c8da}
.battle-controls{min-width:0}
.battle-controls .battle-forecast{margin:0 0 10px;padding:11px 12px;background:#17283b;border:1px solid #87b8d34a;border-left:3px solid #a8d9f0;border-radius:9px}
.battle-forecast strong{font-size:.8125rem;line-height:1.5;color:#deefff}
.battle-forecast span,.battle-forecast small{font-size:.75rem;line-height:1.5}
.battle-controls .battle-forecast.danger{background:#3b2229;border-color:#d2968955;border-left-color:#efb29e}
.battle-detail-panel,.battle-team-panel{margin:10px 0 0;border:1px solid #96b4cc30;border-radius:10px;background:#132032}
.battle-detail-panel>summary,.battle-team-panel>summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:10px 12px;min-height:46px;cursor:pointer;font-size:.8125rem;font-weight:650;list-style:none;color:#d4e6f1}
.battle-detail-panel>summary::-webkit-details-marker,.battle-team-panel>summary::-webkit-details-marker{display:none}
.battle-detail-panel>summary::after,.battle-team-panel>summary::after{content:'＋';margin-left:auto;font-size:1rem;color:#b4d8e9}
.battle-detail-panel[open]>summary::after,.battle-team-panel[open]>summary::after{content:'−'}
.battle-detail-panel>summary .card-header-icon,.battle-team-panel>summary .card-header-icon{width:20px;height:20px;margin:0}
.battle-detail-panel>summary>span,.battle-team-panel>summary>span{font-size:.6875rem;color:#a5bacd;font-weight:400}
.battle-detail-body{padding:0 12px 12px;border-top:1px solid #a7bcd51c}
.battle-detail-body .battle-enemy-details{margin:10px 0;padding:0}
.battle-detail-body .small-note{font-size:.8125rem}
.battle-team-panel>.battle-party{margin:0;padding:0 12px 12px;border:0;background:transparent}
.battle-party h3{font-size:.875rem;margin-top:5px}
.battle-party p{font-size:.75rem;line-height:1.6}
.battle-action-dock{position:relative;z-index:15;flex:none;max-height:none;overflow:visible;padding:9px 0 env(safe-area-inset-bottom,0px);margin-top:10px;border-top:1px solid #a5c3d54d;background:#0f1928;text-align:left}
.battle-dock-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.battle-dock-resources{font-size:.75rem;line-height:1.5;margin:0;color:#bccdde}
.battle-dock-resources strong{color:#edf7fb}
.battle-action-dock .battle-actions{gap:8px}
.battle-action-dock .battle-actions button{min-height:64px;padding:8px 5px;border-color:#a6c6da54;background:linear-gradient(150deg,#263d50,#1a2c3f);color:#eef8ff;border-radius:10px}
.battle-action-dock .battle-actions button.power-button{background:linear-gradient(150deg,#674a32,#342c29);border-color:#d9ac7673}
.battle-action-dock .battle-actions button.magic-button{background:linear-gradient(150deg,#324a70,#1c2e49);border-color:#a9cbef73}
.battle-action-dock .battle-actions button.defend-button{background:linear-gradient(150deg,#29584f,#1b3736);border-color:#b2e5d173}
.battle-action-dock .battle-actions button:hover:not(:disabled){border-color:#eef8ff;box-shadow:inset 0 0 0 1px #eef8ff40}
.battle-action-dock .battle-actions button:disabled{opacity:.58}
.battle-action-label{display:flex;align-items:center;justify-content:center;gap:7px;line-height:1.3;font-weight:750}
.battle-action-label .card-header-icon{width:24px;height:24px;margin:0;flex:none}
.battle-action-dock .battle-actions button small{font-size:.6875rem;color:#d5e3ee;margin-top:4px}
.battle-action-dock .battle-action-reason{font-size:.6875rem;max-height:2.7em;line-height:1.35}
.battle-action-dock .battle-potion-menu{position:relative;inset:auto;max-width:none;flex:none;z-index:20}
.battle-action-dock .battle-potion-menu>summary{min-height:40px;opacity:1;padding:6px 10px;border-color:#abc8db66;background:#253b4e;border-radius:8px;gap:5px}
.battle-action-dock .battle-potion-menu>summary span{font-size:.8125rem}
.battle-action-dock .battle-potion-panel{position:absolute;right:0;bottom:calc(100% + 8px);width:min(292px,calc(100vw - 56px));max-width:none;max-height:min(360px,48vh);max-height:min(360px,48dvh);margin:0;background:#102033;border-color:#afcde1a6;box-shadow:0 -8px 40px #0009;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.battle-action-dock .battle-potion-slot{min-height:84px;background:#1c3248;border-color:#91b1cb50}
.battle-action-dock .battle-potion-slot img{height:36px;width:32px}
.battle-action-dock .battle-potion-slot:disabled{opacity:.55}
.battle-scene-damage{font-variant-numeric:tabular-nums;text-shadow:0 2px 0 #000,0 0 9px #000;font-weight:850}
.battle-scene[data-critical="true"] .enemy-damage{color:#ffe0a0}
.battle-scene[data-critical="true"] .enemy-damage::after{content:'KRİTİK';display:block;font-size:10px;letter-spacing:.13em;line-height:1.5}

/* Finite reward animations never obscure the repeat/return controls. */
.victory-herald{--reward-color:#aedccf;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:16px;text-align:left;margin:16px auto;padding:18px;border:1px solid color-mix(in srgb,var(--reward-color) 60%,transparent);border-radius:14px;background:linear-gradient(120deg,#b9e6d814,#142436);overflow:hidden;max-width:650px;animation:reward-arrive .5s ease-out both}
.victory-herald[data-reward-kind="boss"]{--reward-color:#edc77d;background:linear-gradient(120deg,#6a452933,#162334)}
.victory-herald[data-reward-kind="level"]{--reward-color:#acdff4;background:linear-gradient(120deg,#4186ad33,#132339)}
.victory-herald[data-reward-kind="rare"]{--reward-color:#cfb6ee;background:linear-gradient(120deg,#8665a633,#1b2238)}
.victory-emblem{display:grid;place-items:center;flex:none;width:58px;height:58px;border:1px solid var(--reward-color);border-radius:50%;background:#080f1e66;box-shadow:0 0 28px color-mix(in srgb,var(--reward-color) 12%,transparent);animation:reward-emblem .65s ease-out both}
.victory-emblem .card-header-icon{width:34px;height:34px;margin:0}
.victory-herald .eyebrow{display:block;color:var(--reward-color);font-size:.6875rem}
.victory-herald strong{display:block;color:#eef8ff;font-size:1.1rem;line-height:1.4;margin:4px 0;overflow-wrap:anywhere}
.victory-herald small{display:block;color:#c2d6e7;font-size:.8125rem}
.reward-rays{position:absolute;pointer-events:none;inset:-100%;z-index:-1;background:conic-gradient(from 45deg,transparent 0 42%,#fff1 45%,transparent 48% 92%,#fff1 95%,transparent 98%);animation:reward-ray 1.4s ease-out both}
.battle-summary{border-color:#9cb9cd30;background:#142235;border-radius:12px;font-size:.8125rem}
.battle-summary-loot{border:1px solid #c8afe27a;border-radius:8px;padding:10px;background:#70558d22;animation:loot-reveal .65s ease-out both}
.battle-victory-actions{position:sticky;bottom:0;z-index:5;padding:12px 0;background:#0f1928}
.item-toast{border-color:#c6dbe577;box-shadow:0 10px 30px #0005;border-radius:12px}
@keyframes reward-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes reward-emblem{0%{transform:scale(.7);opacity:0}65%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
@keyframes reward-ray{from{transform:rotate(-35deg);opacity:0}30%{opacity:1}to{transform:rotate(30deg);opacity:0}}
@keyframes loot-reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

@media(min-width:960px){
 .battle-dialog.battle-action-layout{max-height:min(920px,calc(100dvh - 32px))}
 .battle-body{grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);align-items:start;gap:18px}
 .battle-scene{--combat-stage-height:310px}
 .battle-controls .battle-forecast{padding:14px}
 .battle-turn-status{align-items:flex-start;flex-direction:column;gap:4px}
 .battle-action-dock .battle-actions button{min-height:68px}
}
@media(max-width:680px){
 .app-shell{padding-inline:12px}.site-header{margin-bottom:12px}
 .world-nav{margin-inline:-2px;gap:3px;padding:4px}.world-nav .world-tab{padding:8px 10px;font-size:.8125rem;min-height:46px}
 .planet-tool-nav{gap:3px;padding:4px}.planet-tool-nav .planet-tool-button{flex-direction:column;gap:6px;padding:9px 3px;font-size:.75rem;min-height:68px}.planet-tool-nav .card-header-icon{width:25px;height:25px}
 .ether-character-layout{padding:9px;gap:7px}.ether-gear-slot{padding:7px 5px}.ether-gear-slot>span:first-child{font-size:.625rem}
 .gear-material-label{font-size:.625rem;letter-spacing:0}.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.equipment-card{padding:11px}.equipment-card>.ether-item-art{height:108px}.equipment-card h3{font-size:.8125rem}
 #asset-shop>.illustrated-property>summary{grid-template-columns:minmax(0,1fr) 14px;gap:0 8px;min-height:108px;padding:8px 10px 8px 8px}
 .illustrated-property .asset-title{grid-column:1;grid-row:1/3;gap:12px}.illustrated-property .asset-title h3{font-size:.9375rem}
 .illustrated-property .asset-icon{width:88px;height:88px}.illustrated-property .asset-title small{font-size:.75rem;margin-top:4px}
 .illustrated-property .asset-fold-meta{grid-column:1;grid-row:3;margin:3px 0 0 100px;font-size:.75rem;max-width:none}
 .illustrated-property .product-chevron{grid-column:2;grid-row:1/4}
 .ether-world-map{min-height:340px}.ether-map-node{width:40px;height:40px;min-height:40px;font-size:.8125rem}
 .battle-dialog.battle-action-layout{padding:10px;gap:0;height:calc(100dvh - 16px)}
 .battle-head h2{font-size:1.05rem}.battle-head .eyebrow{font-size:.6rem}.battle-exit{font-size:.6875rem;padding:6px 8px}
 .battle-scene{--combat-stage-height:clamp(195px,28dvh,240px)}
 .battle-scene .battle-health-hud{padding:7px 8px 0;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .battle-health-hud .battle-fighter-resources{padding:5px}.battle-fighter-health>span{font-size:.6875rem}
 .battle-round-readout{font-size:.6875rem;padding:7px 9px}.battle-action-dock{margin-top:8px;padding-top:8px}
 .battle-action-dock .battle-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.battle-action-dock .battle-actions button{min-height:61px;padding:7px 4px}
 .battle-action-label{gap:6px;font-size:.8125rem}.battle-action-label .card-header-icon{width:21px;height:21px}
 .battle-detail-panel>summary>span{display:none}.battle-dock-resources{font-size:.6875rem}
 .victory-herald{padding:14px 12px;gap:12px}.victory-herald strong{font-size:1rem}.victory-emblem{width:48px;height:48px}
}
@media(max-width:360px){
 .illustrated-property .asset-icon{width:72px;height:72px}.illustrated-property .asset-fold-meta{margin-left:84px}.illustrated-property .asset-title{gap:10px}
 .battle-fighter-health>span{font-size:.625rem}.battle-resource-label,.battle-resource-value{font-size:10px!important}
 .battle-dock-resources{font-size:.625rem}.battle-action-dock .battle-potion-menu>summary{padding:6px}
}
@media(max-height:500px){
 .battle-dialog.battle-action-layout{padding:8px;height:calc(100dvh - 16px)}
 .battle-action-dock .battle-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
 .battle-action-dock .battle-actions button{min-height:48px;padding:4px 2px}.battle-action-label{font-size:.75rem;gap:3px}.battle-action-label .card-header-icon{width:17px;height:17px}
 .battle-action-dock .battle-actions button small{font-size:.625rem}.battle-action-dock .battle-action-reason{max-height:1.35em}
 .battle-dock-top{margin-bottom:5px}.battle-action-dock .battle-potion-panel{max-height:42dvh}
 .battle-scene{--combat-stage-height:190px}
}
@media(prefers-reduced-motion:reduce){
 .victory-herald,.victory-emblem,.reward-rays,.battle-summary-loot{animation:none!important;transform:none!important}
 .reward-rays{display:none}.battle-film-haze{display:none}.world-tab,.ether-map-node{transition:none}
}

/* Keep inventory and Eter market rows fixed on phones and desktops. */
#planet-content .ether-character-inventory :is(.inventory-list,.character-potion-list){grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
#planet-content .ether-character-inventory .inventory-fold>summary{gap:4px;padding:6px 4px}
#planet-content .ether-character-inventory .inventory-slot-art{width:min(100%,86px);height:auto;aspect-ratio:1}
#planet-content .ether-character-inventory .inventory-slot-art img{max-width:100%;height:auto;aspect-ratio:1}
#planet-content .ether-character-inventory .inventory-item strong{font-size:clamp(.65rem,1.3vw,.86rem);line-height:1.3;overflow-wrap:anywhere}
#planet-content .ether-character-inventory .inventory-item .pill{max-width:100%;padding:3px 4px;overflow-wrap:anywhere}
#planet-content .ether-character-inventory .inventory-fold-body{padding:0 4px 6px;overflow-wrap:anywhere}
#planet-content .ether-character-inventory .inventory-slot-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
#planet-content .ether-character-inventory .inventory-slot-actions button{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.3}
#planet-content .ether-character-inventory .character-potion-item{grid-template-columns:minmax(0,1fr);justify-items:center;padding:6px 4px;text-align:center;gap:4px;overflow-wrap:anywhere}
#planet-content .ether-character-inventory .character-potion-item img{width:min(100%,44px);height:48px}
#planet-content .ether-character-inventory .character-potion-item span{width:100%;font-size:clamp(.65rem,1.3vw,.8125rem);line-height:1.3}
#planet-content .ether-character-inventory .potion-sale-actions{width:100%;min-width:0}
#planet-content .ether-character-inventory .potion-sale-actions button{font-size:clamp(.6rem,1.2vw,.78rem);padding:6px 3px;line-height:1.3}
#planet-content [data-planet-section="market"] :is(.equipment-grid,.potion-market,.forge-market-grid){grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#planet-content [data-planet-section="market"] :is(.equipment-card,.potion-card){padding:8px 5px;text-align:center;overflow-wrap:anywhere}
#planet-content [data-planet-section="market"] .equipment-card>.gear-material-label{align-self:center;max-width:100%;padding:3px 4px;letter-spacing:0}
#planet-content [data-planet-section="market"] .equipment-card>.ether-item-art{height:clamp(70px,15vw,120px);margin:6px 0}
#planet-content [data-planet-section="market"] .equipment-card h3{font-size:clamp(.68rem,1.5vw,.9375rem);line-height:1.35}
#planet-content [data-planet-section="market"] .equipment-card p{font-size:clamp(.62rem,1.3vw,.75rem);line-height:1.45}
#planet-content [data-planet-section="market"] .potion-card{grid-template-columns:minmax(0,1fr);justify-items:center;align-content:start}
#planet-content [data-planet-section="market"] .potion-card .potion-art{width:min(100%,64px);height:76px}
#planet-content [data-planet-section="market"] .potion-card-copy{width:100%}
#planet-content [data-planet-section="market"] .potion-card h3{font-size:clamp(.68rem,1.5vw,.88rem)}
#planet-content [data-planet-section="market"] .potion-card p{font-size:clamp(.62rem,1.3vw,.74rem);line-height:1.4}
#planet-content [data-planet-section="market"] :is(.equipment-card,.potion-card)>button{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.35;font-size:clamp(.65rem,1.3vw,.78rem);padding:7px 3px}
.battle-potion-menu .battle-potion-panel{width:min(320px,calc(100vw - 40px))}
.battle-potion-menu .battle-potion-slots{grid-template-columns:repeat(4,minmax(0,1fr))}
.battle-potion-menu .battle-potion-slot strong{max-width:100%;overflow-wrap:anywhere;font-size:11px}


.section-guide{margin:10px 0 16px;padding:14px 16px;border:1px solid #d8be82;border-radius:14px;background:linear-gradient(135deg,#273047,#142337);color:#f4eedf}
.section-guide h3{margin:6px 0;font-size:1.05rem;color:#ffe4a4}.section-guide p{margin:0;line-height:1.65;font-size:.94rem;color:#e0e8f4}
.section-guide-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.section-guide-actions button{min-height:42px}
.section-guide-preference{display:flex;align-items:center;gap:9px;margin-top:12px;min-height:44px;cursor:pointer;font-size:.9rem;color:#dfdfdf}
.section-guide-preference input{width:20px;height:20px;margin:0;accent-color:#e8c476;flex-shrink:0}
.section-guide-target{outline:2px solid #e6c779;outline-offset:4px;border-radius:12px}
.section-guide-replay{min-height:40px;margin:0 0 8px}.battle-head .section-guide-replay{margin:0;flex-shrink:0}
@media(max-width:600px){.section-guide{padding:12px}.section-guide-actions button{flex:1}.battle-head{flex-wrap:wrap}.battle-head>div:first-child{flex:1 1 100%}.battle-head .section-guide-replay{flex:1}.section-guide p{font-size:.9rem}}

.planet-reset-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:12px;padding:12px 16px;border:1px solid #baa6ff55;border-radius:14px;background:#1b1835cc;color:var(--text)}
.planet-reset-status strong{color:#e4d6ff}.planet-reset-status span{font-size:.85rem;color:var(--muted)}

.combat-reset-rank{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 10px;border:1px solid var(--rank-color);border-radius:999px;color:var(--rank-color);background:#080d22bb;font-size:.8rem;font-weight:700;line-height:1.35;white-space:nowrap}.hero-name .combat-reset-rank{margin-top:4px}.leaderboard-player .combat-reset-rank{margin-top:3px;width:max-content}

/* Product lists and their expanded properties grow with the page on every screen. */
#asset-shop,#asset-shop .asset-fold-body,.inventory-scroll{max-height:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
#earth-view .earth-grid #assets-section[open],#planet-content .planet-fold-card[data-planet-section="market"][open],#planet-content .planet-fold-card[data-planet-section="character"][open]{height:auto;max-height:none;overflow:visible}
#earth-view .earth-grid #assets-section[open]>.earth-panel-body,#planet-content [data-planet-section="market"]>.planet-panel-body,#planet-content [data-planet-section="character"]>.planet-panel-body{height:auto;max-height:none;overflow:visible;flex:none;scrollbar-gutter:auto;padding-right:0}

/* Critical resource warnings use a slow pulse and retain readable labels. */
.battle-resource.resource-critical,.resource-card.resource-critical{background:#521b27;border:1px solid #ff7381;animation:resource-warning-pulse 1.2s ease-in-out infinite}
.battle-resource.resource-critical .battle-resource-track>span,.resource-card.resource-critical .bar-fill{background:#e44255}
@keyframes resource-warning-pulse{0%,100%{background-color:#521b27;border-color:#ff7381}50%{background-color:#912638;border-color:#ffd1d6}}

@media(prefers-reduced-motion:reduce){
 .battle-resource.resource-critical,.resource-card.resource-critical{animation:none;background:#912638;border-color:#ffd1d6}
}

/* Equipment actions float across the four-slot row without expanding it. */
#planet-content .ether-character-inventory .inventory-list{align-items:start}
#planet-content .ether-character-inventory .inventory-fold{position:relative;overflow:visible}
#planet-content .ether-character-inventory .inventory-fold[open]{z-index:12}
#planet-content .ether-character-inventory .inventory-fold-body{position:absolute;top:calc(100% + 4px);left:calc(var(--inventory-column,0) * (100% + 6px) * -1);width:calc(400% + 18px);padding:12px;border:1px solid #a195c8;border-radius:12px;background:#172035;color:var(--text);box-shadow:0 12px 28px #0009;text-align:left}
#planet-content .ether-character-inventory .inventory-menu-above .inventory-fold-body{top:auto;bottom:calc(100% + 4px)}
#planet-content .ether-character-inventory .inventory-selected-name{display:block;min-height:0;margin:0 0 10px;font-size:.875rem;text-align:left}
#planet-content .ether-character-inventory .inventory-slot-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#planet-content .ether-character-inventory .inventory-slot-actions .small-button{min-height:46px;padding:8px 4px;font-size:.875rem}
#planet-content .ether-character-inventory .inventory-slot-actions small{display:block;margin-top:3px;font-size:.6875rem;color:#d0daee}
#planet-content .ether-character-inventory .inventory-fold-body p{min-height:0;margin:10px 0 0;text-align:left}

/* Equipped-item menus float over adjacent slots, including glowing frames. */
#planet-content .ether-character-layout .ether-gear-slot{position:relative}
#planet-content .ether-character-layout .ether-gear-slot.gear-menu-open,#planet-content .ether-character-inventory .inventory-fold[open]{z-index:12;contain:none;isolation:auto;overflow:visible}
#planet-content .ether-character-layout .gear-slot-actions{position:absolute;top:calc(100% + 4px);left:0;z-index:1;width:min(300px,calc(100vw - 80px));padding:12px;border:1px solid #a195c8;border-radius:12px;background:#172035;color:var(--text);box-shadow:0 12px 28px #0009;text-align:left}
#planet-content .ether-character-layout :is(.ether-slot-armor,.ether-slot-necklace,.ether-slot-accessory) .gear-slot-actions{left:auto;right:0}
#planet-content .ether-character-layout :is(.ether-slot-ring,.ether-slot-accessory) .gear-slot-actions{top:auto;bottom:calc(100% + 4px)}
#planet-content .ether-character-layout .gear-selected-name{font-size:.875rem;line-height:1.35;margin-bottom:4px}
#planet-content .ether-character-layout .gear-slot-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#planet-content .ether-character-layout .gear-slot-buttons small{display:block;margin-top:3px;font-size:.6875rem;color:#d0daee}

/* Amount selection never spends currency until conversion is confirmed. */
.ether-conversion-controls{flex:1 1 360px}
.conversion-amount-control{flex:1 1 320px;min-width:0;width:100%}
.conversion-amount-control label{display:flex;justify-content:space-between;gap:12px;font-size:.875rem;color:var(--muted)}
.conversion-amount-control output{font-weight:800;color:var(--cyan);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.conversion-range{display:block;width:100%;min-height:34px;margin:6px 0;accent-color:var(--accent);touch-action:pan-y;cursor:pointer}
.conversion-range:disabled{opacity:.45;cursor:not-allowed}
.conversion-range:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:7px}
.conversion-amount-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
.conversion-amount-footer small{color:var(--muted);overflow-wrap:anywhere}
#planet-content .ether-character-inventory .forge-protection{padding:0;margin:0;border:0;background:none}
#planet-content .ether-character-inventory .forge-potion-controls{display:grid;margin:0}
#planet-content .ether-character-inventory .forge-owned-potion small{display:block;margin:4px 0;color:var(--muted);font-size:.6875rem}
#planet-content .ether-character-inventory .forge-owned-potion [aria-pressed=true]{border-color:#ffd47d;background:#594521;color:#ffe5ae}
.inventory-info{margin-top:18px}
@media(max-width:760px){.ether-conversion-controls{flex:none;width:100%}}

@media(prefers-reduced-motion:reduce){.gear-glow :is(.ether-slot-art,.inventory-slot-art)::after,.combat-character .combat-weapon-aura{animation:none!important;opacity:.6}}

.round-wait{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;box-sizing:border-box;padding:16px;margin:12px 0;border:1px solid #b49654;border-radius:14px;background:linear-gradient(120deg,#222b45,#17323e);color:#edf5ff}.round-wait strong{color:#ffe2a0}.round-wait p{margin:6px 0}.round-wait small{color:#c6d4e5}.round-wait output{font-size:clamp(1.5rem,5vw,2.25rem);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:#ffe2a0}.round-wait-ready{border-color:#75b990}.round-wait-ready output{color:#9ce9b6}@media(max-width:480px){.round-wait{align-items:flex-start;flex-direction:column;gap:10px}}

/* Backdrop-matched finishes. Paint only: keep all existing page and slot geometry. */
:root[data-theme][data-world="earth"]{
  --surface:#192131;--surface-2:#232d40;--line:#d9b78638;
  --text:#fbf5eb;--muted:#c8c8d3;--accent:#f2c58b;--accent-deep:#bb8651;
  --cyan:#c6d6ee;--purple:#c4b5e8;
  --glass-surface:#171f30ec;--glass-inset:#222c3bdf;--glass-line:#d9b78638;
  --world-accent:#f2c58b;--world-soft:#f2c58b19;
  --finish-top:#354052;--finish-hover:#3a4353;--finish-bright:#ffe2b6;
  --finish-button-text:#30251b;--finish-edge:#ddb98570;
}
:root[data-theme][data-world="planet"]{
  --surface:#22252b;--surface-2:#30343c;--line:#dce0e547;
  --text:#f4f5f7;--muted:#c2c6ce;--accent:#e1e5eb;--accent-deep:#9098a4;
  --cyan:#e1e5eb;--purple:#c9c4dc;
  --glass-surface:#22252bec;--glass-inset:#30343cdf;--glass-line:#dce0e547;
  --world-accent:#e1e5eb;--world-soft:#e1e5eb15;
  --finish-top:#484d56;--finish-hover:#4b515b;--finish-bright:#ffffff;
  --finish-button-text:#242830;--finish-edge:#dce0e57a;
}
/* User-selected themes keep a subtle tint within each world's palette. */
:root[data-theme="forest"][data-world="earth"]{--glass-surface:#172a2dec;--glass-inset:#24383bdf;--finish-top:#304648;--finish-hover:#3d5351}
:root[data-theme="violet"][data-world="earth"]{--glass-surface:#242236ec;--glass-inset:#302e43df;--finish-top:#443d55;--finish-hover:#51465f}
:root[data-theme="forest"][data-world="planet"]{--glass-surface:#242b2bec;--glass-inset:#323c3bdf;--finish-top:#46504f;--finish-hover:#505c59}
:root[data-theme="violet"][data-world="planet"]{--glass-surface:#292730ec;--glass-inset:#38343fdf;--finish-top:#504a58;--finish-hover:#59515f}

:root[data-world] :is(.card,.vitals-panel,.earth-fold-card,.planet-fold-card,.tasks-panel,.family-card,.family-person,.planet-header,.leaderboard-card,.donation-heading,.career-card,.chat-shell,.planet-intro,.ether-conversion-bar,.planet-tool-panel){
  background:linear-gradient(145deg,#ffffff07,transparent 55%),var(--glass-surface);
  border-color:var(--glass-line);
  box-shadow:inset 0 1px #ffffff0a,0 10px 26px #00000030;
}
:root[data-world] :is(.earth-panel-summary,.planet-panel-summary,.tasks-head,.leaderboard-card-head){
  color:var(--text);background:linear-gradient(90deg,var(--world-soft),transparent 80%);border-radius:10px;
}
:root[data-world] :is(.earth-panel-body,.planet-panel-body,.need-column-heading,.character-power,.inventory-info){border-color:var(--glass-line)}
:root[data-world] :is(.eyebrow,.earth-chevron,.planet-chevron,.tasks-chevron){color:var(--world-accent)}
:root[data-world] :is(.earth-panel-meta,.planet-panel-meta,.metric-label,.vital-note,.small-note,.hint,.family-note,.card-corner){color:var(--muted)}
:root[data-world] :is(.family-card h2,.planet-header h2,.planet-intro h2,.chat-heading h2,.hero-name strong){color:var(--text)}
:root[data-world] .site-header{border-bottom-color:var(--glass-line)}
:root[data-world] .brand-mark{background:linear-gradient(145deg,var(--finish-top),var(--surface));border-color:var(--finish-edge);color:var(--world-accent);box-shadow:inset 0 1px #ffffff16}
:root[data-world] :is(.world-nav,.shop-menu,.planet-tool-nav){background:var(--glass-surface);border-color:var(--glass-line);box-shadow:inset 0 1px #ffffff0b,0 6px 18px #00000020}
:root[data-world] :is(.world-nav .world-tab,.shop-menu-button,.planet-tool-nav .planet-tool-button){color:var(--muted)}
:root[data-world] :is(.world-nav .world-tab.active,.shop-menu-button.active,.planet-tool-nav .planet-tool-button.active){
  color:var(--finish-bright);background:linear-gradient(145deg,var(--world-soft),#ffffff08);border-color:var(--finish-edge);box-shadow:inset 0 -2px var(--world-accent);
}
:root[data-world] :is(.world-nav .world-tab,.shop-menu-button,.planet-tool-nav .planet-tool-button):hover:not(:disabled){color:var(--text);background-color:var(--world-soft)}
:root[data-world] :is(.small-button,.secondary-button,.percent-grid button,.family-action-list button){
  color:var(--text);background:linear-gradient(145deg,var(--finish-top),var(--surface-2));border-color:var(--glass-line);box-shadow:inset 0 1px #ffffff0c;
}
:root[data-world] :is(.small-button,.secondary-button,.percent-grid button,.family-action-list button):hover:not(:disabled){background:var(--finish-hover);border-color:var(--finish-edge)}
:root[data-world] .primary-button{
  background:linear-gradient(145deg,var(--finish-bright),var(--world-accent));color:var(--finish-button-text);border-color:var(--finish-bright);box-shadow:inset 0 1px #ffffff60,0 3px 12px #00000020;
}
:root[data-world] .primary-button:hover:not(:disabled){background:var(--finish-bright);box-shadow:inset 0 1px #ffffff70,0 4px 16px #00000030}
:root[data-world] .ghost-button{color:var(--muted);border-color:var(--glass-line);background:#ffffff04}
:root[data-world] .ghost-button:hover:not(:disabled){color:var(--text);background:var(--world-soft);border-color:var(--finish-edge)}
:root[data-world] :is(.percent-grid button.active,.small-button[aria-pressed="true"],.growth-quantity-options [aria-pressed="true"]){color:var(--finish-bright);background:var(--world-soft);border-color:var(--world-accent);box-shadow:inset 0 0 0 1px var(--finish-edge)}
:root[data-world] :is(.family-fields input,.family-fields select,.inventory-controls select,.ether-gear-slot select,.chat-form input,.chat-form select){background:var(--surface);color:var(--text);border-color:var(--finish-edge)}
:root[data-world] input::placeholder{color:var(--muted)}
:root[data-world] :is(.family-fields label,.chat-form label){color:var(--muted)}

/* World-side details take their warmth from the city and sunset. */
:root[data-world="earth"] :is(.vital-card,.asset-card,.need-column,.donation-card,.career-summary span,.career-seniority,.profile-avatar-editor,.family-callout){background:linear-gradient(145deg,#f2c58b09,transparent 75%),var(--glass-inset);border-color:var(--glass-line)}
:root[data-world="earth"] :is(.dice-box,.auto-click-box,.bank-withdraw,.task-row,.side-task-row){background:var(--glass-inset);border-color:var(--glass-line)}
:root[data-world="earth"] .deposit-box{background:linear-gradient(135deg,#a2cbb014,transparent),var(--glass-inset);border-color:#a2cbb050}
:root[data-world="earth"] .deposit-all-button{background:linear-gradient(145deg,#d6e2c8,#a8c5b1);color:#20352d;border-color:#d6e2c8}
:root[data-world="earth"] .deposit-all-button:hover:not(:disabled){background:#d6e2c8}
:root[data-world="earth"] .asset-actions .buy{background:linear-gradient(145deg,#664b34,#41392e);color:#ffe2b6;border-color:var(--finish-edge)}
:root[data-world="earth"] .asset-actions .buy:hover:not(:disabled){background:#755637}
:root[data-world="earth"] :is(.career-card.chosen,.family-portrait-option.selected,.family-choice input:checked+span){background:linear-gradient(145deg,#f2c58b20,transparent),var(--glass-inset);border-color:var(--world-accent)}
:root[data-world="earth"] :is(.illustrated-property .asset-fold-meta,.asset-bottom strong,.career-summary strong,.family-meter strong,.click-level strong){color:var(--world-accent)}
:root[data-world="earth"] :is(.illustrated-property .asset-title small,.family-card p,.family-person-head small,.career-card p){color:var(--muted)}
:root[data-world="earth"] :is(.owned-row,.event-row,.need-item){border-bottom-color:var(--glass-line)}

/* Eter-side silver finishes retain the full character and inventory layout. */
:root[data-world="planet"] :is(.growth-card,.resource-card,.stat-row.alchemy-card,.potion-card,.inventory-scroll,.character-potion-item,.journey-card,.world-hazard){background:linear-gradient(145deg,#ffffff07,transparent 70%),var(--glass-inset);border-color:var(--glass-line)}
:root[data-world="planet"] .ether-character-layout{background:radial-gradient(ellipse at 50% 12%,#eff2fa13,transparent 58%),linear-gradient(160deg,#1c1f25e8,#292d34eb);border-color:var(--glass-line)}
:root[data-world="planet"] .ether-hero{background:radial-gradient(ellipse at 50% 36%,#e5e8ef13,transparent 62%)}
:root[data-world="planet"] .ether-hero .hero-name{background:linear-gradient(0deg,#22252bf5,#22252bca);color:var(--text);border-color:var(--glass-line)}
:root[data-world="planet"] :is(.ether-gear-slot>span:first-child,.planet-header p,.growth-card small,.resource-card small,.inventory-controls label,.inventory-count){color:var(--muted)}
:root[data-world="planet"] :is(.growth-card strong,.planet-money strong,.ether-conversion-amount,.conversion-amount-control output){color:var(--world-accent)}
:root[data-world="planet"] :is(.inventory-empty,.ether-gear-slot[data-tier="none"]){background:linear-gradient(145deg,#ffffff05,transparent),var(--glass-inset);border-color:#dce0e52a;color:#a5acb7}
:root[data-world="planet"] :is(.ether-slot-art,.inventory-slot-art){background:radial-gradient(ellipse at 42% 25%,var(--material-wash,#e1e5eb15),#16191e66)}
:root[data-world="planet"] .pill{background:#dadde416;color:#e3e5ed}
:root[data-world="planet"] #planet-content .ether-character-inventory .inventory-fold-body,
:root[data-world="planet"] #planet-content .ether-character-layout .gear-slot-actions{background:linear-gradient(145deg,#343942,#24282f);border-color:#b9bfc980;color:var(--text);box-shadow:inset 0 1px #ffffff14,0 12px 28px #0009}
:root[data-world="planet"] #planet-content :is(.inventory-slot-actions small,.gear-slot-buttons small){color:var(--muted)}
:root[data-world="planet"] .character-power{border-color:var(--glass-line)}
:root[data-world="planet"] .planet-panel-body .bar-track{background:#13161cc9}
:root[data-world="planet"] .camp-rest-button{background:linear-gradient(125deg,#493c2ce6,#2b2e34)!important;border-color:#d7af7170!important}

/* Shared pages and activity states, with clear text over the existing scenery. */
:root[data-world] :is(.chat-heading,.chat-form,.chat-status,.chat-message,.daily-day,.store-card,.store-product,.store-offer,.profile-id,.family-history span){background:var(--glass-inset);border-color:var(--glass-line)}
:root[data-world] :is(.chat-channel,.family-portrait-option,.family-choice span){color:var(--text);background:var(--glass-inset);border-color:var(--glass-line)}
:root[data-world] .chat-channel.active{color:var(--finish-bright);background:var(--world-soft);border-color:var(--world-accent)}
:root[data-world] :is(.chat-heading p,.chat-help,.chat-form small,.chat-message time,.donation-card p){color:var(--muted)}
:root[data-world] .round-wait{background:linear-gradient(120deg,var(--world-soft),transparent),var(--glass-surface);border-color:var(--finish-edge)}
:root[data-world] .round-wait :is(strong,output){color:var(--world-accent)}
:root[data-world] .round-wait :is(p,small){color:var(--muted)}
:root[data-world] .round-wait-ready{border-color:#75b990}
:root[data-world] .round-wait-ready output{color:#9ce9b6}
:root[data-world] :is(.vital-card.low,.resource-card.resource-critical){background:#42292fcc;border-color:#c17e83;color:#ffe6e7}
:root[data-world] .vital-card.recent{border-color:#92c7ab}
:root[data-world] :is(.store-wallet,.store-treasure-card,.daily-heading,.profile-avatar-editor){background:linear-gradient(145deg,var(--world-soft),transparent 65%),var(--glass-surface);border-color:var(--finish-edge)}
:root[data-world] .store-featured-product{background:transparent}
:root[data-world] :is(.store-tabs button.active,.store-chest-picker button.active){background:var(--world-soft);border-color:var(--world-accent);color:var(--finish-bright)}
:root[data-world] :is(.store-price strong,.store-treasure-heading h3,.store-income-estimate strong,.daily-grand h3){color:var(--world-accent)}
:root[data-world] :is(.store-product p,.store-treasure-heading p,.store-product-actions>small){color:var(--muted)}
:root[data-world] .store-product-owned{border-color:#92c7ab}
:root[data-world] .daily-grand{background:linear-gradient(145deg,var(--world-soft),transparent),var(--glass-inset);border-color:var(--finish-edge)}
:root[data-world] .daily-current{border-color:var(--world-accent);box-shadow:0 0 0 3px var(--world-soft)}
:root[data-world] .daily-current .daily-day-top>span{color:var(--finish-bright)}
:root[data-world] .chat-messages{background:var(--surface);border-color:var(--glass-line)}
:root[data-world] .chat-messages li{background:var(--glass-inset);border-color:var(--glass-line)}
:root[data-world] .chat-messages .chat-own{background:var(--world-soft)!important;border-color:var(--finish-edge)!important}
:root[data-world] .chat-messages .chat-empty{background:transparent;color:var(--muted)}
:root[data-world] .chat-messages strong{color:var(--world-accent)}
:root[data-world] .chat-messages time{color:var(--muted)}
:root[data-world="planet"] :is(.ether-map-caption strong,.map-legend){color:var(--muted);border-color:var(--glass-line)}
:root[data-world="planet"] .ether-map-node:not(.completed):not(.locked){background:linear-gradient(145deg,#565d68,#2b3038);border-color:#d7dce6b0;color:#f4f5f7}
:root[data-world="planet"] .ether-map-node.selected{background:linear-gradient(145deg,#ffffff,#bec6d2);border-color:#fff;color:#242830;box-shadow:0 0 0 4px #dce0e52b,0 5px 18px #0009}

/* The remaining navy Eter panels use subdued, shadowed silver. */
:root[data-world="planet"] :is(.planet-reset-status,.journey-panel,.character-power,.progression-panel,.set-bonuses,.workshop-panel,.league-panel){
  background:linear-gradient(145deg,#454a52eF,#30343bee);
  border-color:#a2a9b55c;
  color:#f1f2f4;
  box-shadow:inset 0 1px #ffffff09,inset 0 -1px #00000025,0 8px 22px #00000045;
}
:root[data-world="planet"] .planet-reset-status strong{color:#e2e5ea}
:root[data-world="planet"] :is(.planet-reset-status>span,.character-power span,.journey-goal small){color:#c9cdd4}
:root[data-world="planet"] .journey-panel>.planet-panel-summary{background:linear-gradient(90deg,#d8dce409,transparent 80%)}
:root[data-world="planet"] .combat-reset-rank{background:#272b32cc}

/* Small gemstone accents bring color to the matte silver Eter surfaces. */
:root[data-theme][data-world="planet"]{
  --accent:#9cdbd5;--cyan:#9cdbd5;--purple:#c6b4e9;
  --world-accent:#9cdbd5;--world-soft:#9cdbd519;
  --finish-bright:#c9eee6;--finish-edge:#9cdbd570;
}
:root[data-world="planet"] .planet-reset-status{background:linear-gradient(120deg,#71618a24,transparent 75%),linear-gradient(145deg,#454750ef,#30343bee);border-color:#bc9de56b}
:root[data-world="planet"] .planet-reset-status strong{color:#d9c5f2}
:root[data-world="planet"] .journey-panel{background:linear-gradient(120deg,#5daba324,transparent 75%),linear-gradient(145deg,#414b50ef,#30343bee);border-color:#83c6bf66}
:root[data-world="planet"] .journey-panel>.planet-panel-summary{background:linear-gradient(90deg,#9cdbd516,transparent 80%)}
:root[data-world="planet"] .journey-panel .eyebrow{color:#bce8df}
:root[data-world="planet"] .character-power{background:linear-gradient(120deg,#b8944f1c,transparent 72%),linear-gradient(145deg,#454a52ef,#30343bee);border-color:#d7b77c65}
:root[data-world="planet"] .character-power strong{color:#f1cf91}
:root[data-world="planet"] .planet-header>.planet-panel-summary{background:linear-gradient(90deg,#9cdbd512,transparent 75%)}

:root[data-world="planet"] .planet-tool-button[data-id="resources"]{--tool-color:#a8deda;--tool-wash:#60bcb51b}
:root[data-world="planet"] .planet-tool-button[data-id="growth"]{--tool-color:#d0b7ee;--tool-wash:#a983d71b}
:root[data-world="planet"] .planet-tool-button[data-id="market"]{--tool-color:#edce96;--tool-wash:#cea75d1b}
:root[data-world="planet"] .planet-tool-button[data-id="dungeon"]{--tool-color:#b6c9ed;--tool-wash:#7b9bcf1b}
:root[data-world="planet"] .planet-tool-nav .planet-tool-button[data-id]{background:linear-gradient(145deg,var(--tool-wash),transparent 80%),var(--glass-inset);border-color:color-mix(in srgb,var(--tool-color) 38%,transparent);color:var(--tool-color)}
:root[data-world="planet"] .planet-tool-nav .planet-tool-button[data-id].active{background:linear-gradient(145deg,var(--tool-wash),#ffffff0a),var(--glass-inset);border-color:var(--tool-color);box-shadow:inset 0 -2px var(--tool-color)}
:root[data-world="planet"] .planet-tool-nav .planet-tool-button[data-id]:hover:not(:disabled){background-color:var(--finish-hover);border-color:var(--tool-color)}

:root[data-world="planet"] .resource-card:not(.resource-critical):nth-child(1){border-color:#d38c9466}
:root[data-world="planet"] .resource-card:not(.resource-critical):nth-child(2){border-color:#b49add70}
:root[data-world="planet"] .resource-card:not(.resource-critical):nth-child(3){border-color:#83c6bf70}
:root[data-world="planet"] .potion-card.potion-health{background:linear-gradient(145deg,#d38c9412,transparent 75%),var(--glass-inset);border-color:#d38c9466}
:root[data-world="planet"] .potion-card.potion-mana{background:linear-gradient(145deg,#b49add12,transparent 75%),var(--glass-inset);border-color:#b49add70}
:root[data-world="planet"] .potion-card.potion-energy{background:linear-gradient(145deg,#83c6bf12,transparent 75%),var(--glass-inset);border-color:#83c6bf70}
:root[data-world="planet"] .growth-card strong{color:#d0b7ee}
:root[data-world="planet"] .ether-map-node.selected:not(.completed):not(.locked){background:linear-gradient(145deg,#c9eee6,#9cdbd5);border-color:#d9f8ee;color:#203a3b;box-shadow:0 0 0 4px #9cdbd52b,0 5px 18px #0009}
:root[data-world="planet"] .legend-current{background:#9cdbd5;border-color:#d9f8ee}
:root[data-world="planet"] .ether-map-caption strong{color:#bce8df}

/* Richer colors and still light reflections, without changing artwork or geometry. */
:root[data-theme][data-world="earth"]{
  --glass-surface:#1e253adc;--glass-inset:#2b3549da;--glass-line:#efc78b66;
  --accent:#ffd08a;--world-accent:#ffd08a;--world-soft:#ffc77526;
  --finish-top:#46536f;--finish-hover:#54627e;--finish-bright:#ffe9b8;--finish-edge:#f3cb8b9c;
  --panel-reflection:#ffe6b820;
}
:root[data-theme][data-world="planet"]{
  --glass-surface:#293642db;--glass-inset:#344555d9;--glass-line:#9fe6e269;
  --accent:#91eee3;--cyan:#91eee3;--purple:#ceb4ff;
  --world-accent:#91eee3;--world-soft:#76e3d827;
  --finish-top:#4d687c;--finish-hover:#5a7489;--finish-bright:#cffff3;--finish-edge:#a4eee3a3;
  --panel-reflection:#baf5ff24;
}
:root[data-theme="forest"][data-world="earth"]{--glass-surface:#1c3639dc;--glass-inset:#2c484bda;--finish-top:#416967;--finish-hover:#4b7771}
:root[data-theme="violet"][data-world="earth"]{--glass-surface:#322c47dc;--glass-inset:#453957da;--finish-top:#6a527a;--finish-hover:#7b608a}
:root[data-theme="forest"][data-world="planet"]{--glass-surface:#293b3edb;--glass-inset:#365056d9}
:root[data-theme="violet"][data-world="planet"]{--glass-surface:#343447db;--glass-inset:#46465bd9}

:root[data-world] :is(.card,.vitals-panel,.earth-fold-card,.planet-fold-card,.tasks-panel,.family-card,.family-person,.planet-header,.leaderboard-card,.donation-heading,.career-card,.chat-shell,.planet-intro,.ether-conversion-bar,.planet-tool-panel,.daily-heading,.store-wallet,.store-treasure-card){
  background:linear-gradient(135deg,var(--panel-reflection),#ffffff05 42%,transparent 72%),var(--glass-surface);
  border-color:var(--glass-line);
  box-shadow:inset 0 1px #ffffff30,inset 0 -1px #00000024,0 8px 24px #00000038;
}
:root[data-world] :is(.earth-panel-summary,.planet-panel-summary,.tasks-head,.leaderboard-card-head){background:linear-gradient(115deg,var(--world-soft),#ffffff08 45%,transparent 85%)}
:root[data-world] :is(.world-nav,.shop-menu,.planet-tool-nav){background:linear-gradient(135deg,#ffffff13,transparent 60%),var(--glass-surface);border-color:var(--glass-line);box-shadow:inset 0 1px #ffffff28,0 6px 18px #00000030}
:root[data-world] :is(.small-button,.secondary-button,.percent-grid button,.family-action-list button){background:linear-gradient(160deg,#ffffff15,transparent 45%),linear-gradient(145deg,var(--finish-top),var(--surface-2));box-shadow:inset 0 1px #ffffff38,0 3px 8px #00000020}
:root[data-world] :is(.world-nav .world-tab.active,.shop-menu-button.active){background:linear-gradient(145deg,#ffffff18,var(--world-soft));border-color:var(--world-accent);color:var(--finish-bright);box-shadow:inset 0 1px #ffffff38,inset 0 -2px var(--world-accent),0 3px 12px #00000025}
:root[data-world] .primary-button{background:linear-gradient(160deg,#ffffff55,transparent 45%),linear-gradient(145deg,var(--finish-bright),var(--world-accent));box-shadow:inset 0 1px #ffffff80,0 4px 14px #00000035}
:root[data-world] .round-wait{background:linear-gradient(135deg,var(--world-soft),#ffffff07 65%),var(--glass-surface);box-shadow:inset 0 1px #ffffff24,0 5px 18px #00000030}
:root[data-world="earth"] :is(.vital-card:not(.low),.asset-card,.need-column,.donation-card,.career-summary span,.profile-avatar-editor,.daily-day:not(.daily-grand),.store-product:not(.store-featured-product)){
  background:linear-gradient(145deg,#ffd08a18,#ffffff08 35%,transparent 75%),var(--glass-inset);border-color:var(--glass-line);box-shadow:inset 0 1px #ffffff24,0 4px 12px #00000020;
}
:root[data-world="earth"] .deposit-box{background:linear-gradient(135deg,#a9ebd12b,transparent 70%),var(--glass-inset);border-color:#a9ebd183;box-shadow:inset 0 1px #ffffff24}
:root[data-world="earth"] .career-card.chosen{background:linear-gradient(135deg,#f9c36d30,transparent 75%),var(--glass-inset);border-color:#ffd08a}

:root[data-world="planet"] :is(.planet-reset-status,.journey-panel,.character-power,.progression-panel,.set-bonuses,.workshop-panel,.league-panel){
  background:linear-gradient(135deg,#e5f4ff25,#ffffff08 35%,transparent 75%),linear-gradient(145deg,#4a5969ed,#2d3a46e8);
  box-shadow:inset 0 1px #e4f2ff45,inset 0 -1px #00000024,0 8px 24px #00000040;
}
:root[data-world="planet"] .planet-reset-status{background:linear-gradient(135deg,#d6b6ff30,#ffffff0a 38%,transparent 78%),linear-gradient(145deg,#574d70ec,#343e51e8);border-color:#cbb0f2a6}
:root[data-world="planet"] .planet-reset-status strong{color:#e9d5ff}
:root[data-world="planet"] .journey-panel{background:linear-gradient(135deg,#89f3df30,#ffffff0a 38%,transparent 78%),linear-gradient(145deg,#3a6666ec,#2d424de8);border-color:#a1e9dba3}
:root[data-world="planet"] .character-power{background:linear-gradient(135deg,#ffda9130,#ffffff0a 38%,transparent 78%),linear-gradient(145deg,#635d55ed,#37434ce8);border-color:#f0cc8e9c}
:root[data-world="planet"] .character-power strong{color:#ffe2a1}
:root[data-world="planet"] .journey-panel>.planet-panel-summary{background:linear-gradient(90deg,#b0ffe420,transparent 80%)}
:root[data-world="planet"] .planet-tool-button[data-id="resources"]{--tool-color:#a4f6eb;--tool-wash:#4bdac843}
:root[data-world="planet"] .planet-tool-button[data-id="growth"]{--tool-color:#e2c4ff;--tool-wash:#b885f543}
:root[data-world="planet"] .planet-tool-button[data-id="market"]{--tool-color:#ffe1a1;--tool-wash:#eabc5b43}
:root[data-world="planet"] .planet-tool-button[data-id="dungeon"]{--tool-color:#c5dcff;--tool-wash:#749fed43}
:root[data-world="planet"] .planet-tool-nav .planet-tool-button[data-id]{background:linear-gradient(160deg,#ffffff16,transparent 42%),linear-gradient(135deg,var(--tool-wash),transparent 90%),var(--glass-inset);border-color:color-mix(in srgb,var(--tool-color) 65%,transparent);box-shadow:inset 0 1px #ffffff38,0 4px 10px #00000025}
:root[data-world="planet"] .planet-tool-nav .planet-tool-button[data-id].active{background:linear-gradient(160deg,#ffffff2b,transparent 48%),linear-gradient(135deg,var(--tool-wash),#ffffff10),var(--glass-inset);border-color:var(--tool-color);box-shadow:inset 0 1px #ffffff48,inset 0 -2px var(--tool-color),0 4px 14px #00000030}
:root[data-world="planet"] :is(.growth-card,.stat-row.alchemy-card,.inventory-scroll,.character-potion-item){background:linear-gradient(135deg,#b0e8ff1e,#ffffff05 45%,transparent 80%),var(--glass-inset);border-color:#badcef66;box-shadow:inset 0 1px #ffffff24}
:root[data-world="planet"] .resource-card:not(.resource-critical){background:linear-gradient(145deg,#aee7ee1a,transparent 75%),var(--glass-inset);box-shadow:inset 0 1px #ffffff24}
:root[data-world="planet"] .potion-card.potion-health{background:linear-gradient(145deg,#ed82962b,transparent 75%),var(--glass-inset);border-color:#ed829695;box-shadow:inset 0 1px #ffffff24}
:root[data-world="planet"] .potion-card.potion-mana{background:linear-gradient(145deg,#bc96f72b,transparent 75%),var(--glass-inset);border-color:#bc96f79c;box-shadow:inset 0 1px #ffffff24}
:root[data-world="planet"] .potion-card.potion-energy{background:linear-gradient(145deg,#70dec52b,transparent 75%),var(--glass-inset);border-color:#70dec59c;box-shadow:inset 0 1px #ffffff24}
:root[data-world="planet"] .ether-character-layout{background:radial-gradient(ellipse at 50% 12%,#a4e9ef29,transparent 58%),linear-gradient(160deg,#263747e5,#364252e8);border-color:#b8e4ed66}
:root[data-world="planet"] .ether-hero{background:radial-gradient(ellipse at 50% 36%,#b6e4ef27,transparent 65%)}
:root[data-world="planet"] :is(.equipment-card,.inventory-item,.ether-gear-slot)[data-tier]{background:linear-gradient(145deg,var(--material-wash,#c5ebff19),#ffffff09 45%,transparent 85%),var(--glass-inset);border-color:color-mix(in srgb,var(--material-color,#8194a9) 65%,transparent)}
:root[data-world] .daily-day.daily-current{border-color:var(--world-accent);box-shadow:inset 0 1px #ffffff38,0 0 0 3px var(--world-soft),0 4px 14px #00000025}
:root[data-world] .vital-card.recent{border-color:#a9ebd1;box-shadow:inset 0 1px #ffffff24,0 0 0 1px #a9ebd122}

/* Preserve the original tactic colors above the shared button finish. */
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style="balanced"]{--tactic-light:#263d50;--tactic-dark:#1a2c3f;--tactic-border:#a6c6da;--tactic-hover:#3c5870}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style="power"]{--tactic-light:#674a32;--tactic-dark:#342c29;--tactic-border:#d9ac76;--tactic-hover:#88613e}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style="magic"]{--tactic-light:#324a70;--tactic-dark:#1c2e49;--tactic-border:#a9cbef;--tactic-hover:#466595}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style="defend"]{--tactic-light:#29584f;--tactic-dark:#1b3736;--tactic-border:#b2e5d1;--tactic-hover:#39786a}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style]{background:linear-gradient(150deg,var(--tactic-light),var(--tactic-dark));border-color:color-mix(in srgb,var(--tactic-border) 65%,transparent);color:#eef8ff;box-shadow:inset 0 1px #ffffff18}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style]:hover:not(:disabled){background:linear-gradient(150deg,var(--tactic-hover),var(--tactic-dark));border-color:var(--tactic-border);box-shadow:inset 0 0 0 1px #ffffff30}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style][aria-pressed="true"]{border-color:var(--tactic-border);box-shadow:inset 0 0 0 1px var(--tactic-border),0 2px 8px #0004}
:root[data-world] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style] small{color:#d5e3ee}

/* Eter fantasy colors with soft, non-metallic surfaces; paint only. */
:root[data-theme][data-world="planet"]{
  --surface:#142035;--surface-2:#263650;--line:#809abc65;
  --text:#f1f5ff;--muted:#bdcbe0;--accent:#ebc479;--accent-deep:#aa7c3f;
  --cyan:#b3d0ff;--purple:#cfb7ff;--world-accent:#b8cbed;--world-soft:#8caee82b;
  --glass-surface:#1c2a42eb;--glass-inset:#2a3952de;--glass-line:#809abc65;
  --finish-top:#334866;--finish-hover:#445f83;--finish-bright:#e5efff;--finish-edge:#90acd080;
  --finish-button-text:#261d12;--panel-reflection:transparent;
  --eter-panel:#1c2a42eb;
  --eter-inset:var(--glass-inset);
  --eter-shadow:0 6px 20px #00000035;
}
:root[data-theme="forest"][data-world="planet"],:root[data-theme="violet"][data-world="planet"]{--glass-surface:#1c2a42eb;--glass-inset:#2a3952de}
:root[data-theme][data-world="planet"] :is(.card,.vitals-panel,.planet-fold-card,.planet-header,.planet-intro,.ether-conversion-bar,.planet-tool-panel,.leaderboard-card,.store-wallet,.store-treasure-card,.daily-heading,.chat-shell){background:var(--eter-panel);border-color:var(--glass-line);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] :is(.planet-reset-status,.journey-panel,.character-power,.progression-panel,.set-bonuses,.workshop-panel,.league-panel){background:var(--eter-panel);border-color:#8fa8cc75;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] :is(.planet-reset-status strong,.character-power strong,.growth-card strong,.journey-panel .eyebrow,.ether-map-caption strong){color:#edf3ff}
:root[data-theme][data-world="planet"] :is(.planet-reset-status>span,.character-power span,.journey-goal small){color:#d0d9e9}
:root[data-theme][data-world="planet"] :is(.planet-header>.planet-panel-summary,.journey-panel>.planet-panel-summary){background:#8caee818}
:root[data-theme][data-world="planet"] :is(.world-nav,.shop-menu,.planet-tool-nav){background:#19283fef;border-color:var(--glass-line);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .planet-tool-button[data-id="resources"]{--tool-color:#cef4e9;--tool-bg:#244d50}
:root[data-theme][data-world="planet"] .planet-tool-button[data-id="growth"]{--tool-color:#e9d8ff;--tool-bg:#493957}
:root[data-theme][data-world="planet"] .planet-tool-button[data-id="market"]{--tool-color:#ffe5b2;--tool-bg:#594a32}
:root[data-theme][data-world="planet"] .planet-tool-button[data-id="dungeon"]{--tool-color:#cde0ff;--tool-bg:#304763}
:root[data-theme][data-world="planet"] .planet-tool-button[data-id="challenges"]{--tool-color:#ffd4df;--tool-bg:#543443}
:root[data-theme][data-world="planet"] .planet-tool-button[data-id="talents"]{--tool-color:#ffd6bb;--tool-bg:#594032}
:root[data-theme][data-world="planet"] .planet-tool-nav .planet-tool-button[data-id]{background:linear-gradient(145deg,var(--tool-bg),#17263b);border-color:var(--tool-bg);color:var(--tool-color);box-shadow:0 3px 10px #00000028;transition:filter .15s,border-color .15s}
:root[data-theme][data-world="planet"] .planet-tool-nav .planet-tool-button[data-id]:hover:not(:disabled){background:linear-gradient(145deg,var(--tool-bg),#17263b);border-color:var(--tool-color);filter:brightness(1.1)}
:root[data-theme][data-world="planet"] .planet-tool-nav .planet-tool-button[data-id].active{background:var(--tool-bg);border-color:var(--tool-color);color:var(--tool-color);box-shadow:inset 0 -3px var(--tool-color),0 3px 10px #00000028}
:root[data-theme][data-world="planet"] .planet-tool-nav .planet-tool-button[data-id]:focus-visible{outline:3px solid var(--tool-color);outline-offset:3px}
:root[data-theme][data-world="planet"] :is(.growth-card,.stat-row.alchemy-card,.inventory-scroll,.character-potion-item,.journey-card,.world-hazard){background:var(--eter-inset);border-color:var(--glass-line);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .resource-card:not(.resource-critical):nth-child(n){background:var(--eter-inset);border-color:var(--glass-line);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] :is(.potion-card.potion-health,.potion-card.potion-mana,.potion-card.potion-energy){background:var(--eter-inset);border-color:var(--glass-line);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .ether-character-layout{background:#23344ae8;border-color:#8fa8cc75;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .ether-hero{background:transparent}
:root[data-theme][data-world="planet"] .ether-hero .hero-name{background:#1b293fef;border-color:var(--glass-line)}
:root[data-theme][data-world="planet"] :is(.equipment-card,.inventory-item,.ether-gear-slot)[data-tier]{background:linear-gradient(145deg,var(--material-wash,#8baadd12),transparent),var(--glass-inset);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] #planet-content .ether-character-inventory .inventory-fold-body,
:root[data-theme][data-world="planet"] #planet-content .ether-character-layout .gear-slot-actions{background:var(--eter-panel);border-color:var(--finish-edge);box-shadow:0 12px 28px #00000065}
:root[data-theme][data-world="planet"] :is(.small-button,.secondary-button,.percent-grid button){background:#334866;border-color:#90acd080;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] :is(.small-button,.secondary-button,.percent-grid button):hover:not(:disabled){background:#445f83;border-color:#bad0ed}
:root[data-theme][data-world="planet"] .primary-button{background:#ebc479;border-color:#ffe9ba;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .primary-button:hover:not(:disabled){background:#f3d496;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .ether-map-node:not(.completed):not(.locked){background:#344a6c;border-color:#97b5dd7a;color:#f6f8ff;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .ether-map-node.selected:not(.completed):not(.locked){background:#e1bc77;border-color:#f2d499;color:#1b2b47;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .ether-map-node.completed{background:#2c4167;border-color:#aec3e6;color:#eef4ff;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .ether-map-node.locked{background:#25324a;border-color:#8f9cb36b;color:#c0cadc}
:root[data-theme][data-world="planet"] .legend-current{background:#e1bc77;border-color:#ffe9ba}
:root[data-theme][data-world="planet"] .combat-reset-rank{background:#35435b;border-color:#c5d1e8a6;color:#edf3ff;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .round-wait{background:var(--eter-panel);border-color:var(--finish-edge);box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .round-wait :is(strong,output){color:#edf3ff}

:root[data-theme][data-world="planet"] :is(.small-button[aria-pressed="true"],.percent-grid button.active,.growth-quantity-options [aria-pressed="true"]){background:#425b80;border-color:#f4f7ff;color:#eff5ff;box-shadow:0 5px 18px #00000030}

:root[data-theme][data-world="planet"] .planet-reset-status{background:#302b47ed;border-color:#bea0ed90}
:root[data-theme][data-world="planet"] .planet-reset-status strong{color:#e1ccff}
:root[data-theme][data-world="planet"] .journey-panel{background:#243855ed;border-color:#a8c7f3a0}
:root[data-theme][data-world="planet"] .journey-panel .eyebrow{color:#d2e4ff}
:root[data-theme][data-world="planet"] .character-power{background:#2d3a4eed;border-color:#ebc47990}
:root[data-theme][data-world="planet"] :is(.character-power strong,.planet-money strong,.ether-conversion-amount,.conversion-amount-control output){color:#ffe0a5}
:root[data-theme][data-world="planet"] .growth-card{background:#342d4ee8;border-color:#b59be780}
:root[data-theme][data-world="planet"] .growth-card strong{color:#dfccff}
:root[data-theme][data-world="planet"] .resource-card:not(.resource-critical):nth-child(1),
:root[data-theme][data-world="planet"] .potion-card.potion-health{background:#3a2d43e8;border-color:#e49bb583}
:root[data-theme][data-world="planet"] .resource-card:not(.resource-critical):nth-child(2),
:root[data-theme][data-world="planet"] .potion-card.potion-mana{background:#243a5be8;border-color:#91b9f39c}
:root[data-theme][data-world="planet"] .resource-card:not(.resource-critical):nth-child(3),
:root[data-theme][data-world="planet"] .potion-card.potion-energy{background:#3d3847e8;border-color:#e9c17c8c}
:root[data-theme][data-world="planet"] .ether-map-node.selected:not(.completed):not(.locked){border-color:#ffe9ba;color:#342819;box-shadow:0 5px 18px #00000030}
:root[data-theme][data-world="planet"] .round-wait output{color:#ffe0a5}

:root[data-theme][data-world="planet"] :is(#battle-content,#arena-battle-content) .battle-actions button[data-style]{box-shadow:0 3px 10px #00000025}

/* Profile content can shrink and wrap within the existing page width. */
#profile-content,.profile-shell,.profile-shell>.family-card{min-width:0;max-width:100%}
.profile-shell{grid-template-columns:minmax(0,1fr);overflow-wrap:anywhere}
#profile-content .profile-identity{flex-wrap:wrap}
#profile-content .profile-identity>div{flex:1 1 160px;min-width:0}
#profile-display{flex-wrap:wrap;row-gap:6px;overflow-wrap:anywhere}
#profile-display .profile-league-title{flex-basis:100%;max-width:100%}
#profile-content :is(.profile-id,.league-frame){max-width:100%}
#profile-content .family-fields :is(label,input,select){min-width:0;max-width:100%}
#profile-content :is(.profile-avatar-editor,.profile-theme-options,.profile-portrait-options,.cosmetic-grid){min-width:0}
#profile-content :is(.progress-milestones>div>*,.cosmetic-grid button){min-width:0;overflow-wrap:anywhere}

/* More colorful Earth artwork, with dark surfaces that keep text readable. */
:root[data-theme][data-world="earth"]{
  --glass-surface:#142640f2;--glass-inset:#1e3652ee;--glass-line:#ffbf607a;
  --accent:#ffc254;--world-accent:#ffc254;--world-soft:#ffaf3826;
  --muted:#d0def2;--finish-top:#365f89;--finish-hover:#4375a1;
  --finish-bright:#ffe7a5;--finish-edge:#ffcb78b3;--panel-reflection:#ffb53612;
}
:root[data-theme="forest"][data-world="earth"]{--glass-surface:#11332cf2;--glass-inset:#1b4a3fee;--finish-top:#287258;--finish-hover:#358866;--glass-line:#8ae5ad80;--world-accent:#8ef0b1;--accent:#8ef0b1;--world-soft:#4adf8c24;--finish-bright:#d6ffe6}
:root[data-theme="violet"][data-world="earth"]{--glass-surface:#291b45f2;--glass-inset:#3d2a60ee;--finish-top:#6b4494;--finish-hover:#8255ad;--glass-line:#c19aff85;--world-accent:#c99aff;--accent:#c99aff;--world-soft:#ad6dff26;--finish-bright:#f0dfff}
:root[data-world="earth"] body::before{
  opacity:1;
  background:linear-gradient(180deg,#07121d0d,#07121d55),url("./evren.webp") center center/cover no-repeat;
  filter:saturate(1.28) contrast(1.06) brightness(1.08);
}
:root[data-world="earth"] #earth-view .asset-card{background:linear-gradient(135deg,#ffbe4818,transparent 65%),var(--glass-inset);border-color:var(--glass-line)}
:root[data-world="earth"] #earth-view .asset-icon{background:radial-gradient(ellipse at 50% 30%,#3570a3,#0b2039 80%);border-color:#ffc96e6b}
:root[data-world="earth"] #earth-view :is(.asset-icon img,.owned-property .property-illustration){filter:saturate(1.3) contrast(1.06) brightness(1.1)}
:root[data-world="earth"] #earth-view .piggy-button{background:linear-gradient(135deg,#ffe77a,#ffb33c);border-color:#ffef9b;color:#2b1b05;box-shadow:0 6px 0 #ac5e19,0 12px 25px #0005}
:root[data-world="earth"] #earth-view .deposit-all-button{background:linear-gradient(135deg,#a1f4c5,#4bd3a1);border-color:#baffda;color:#103c2c}
:root[data-world="earth"] #earth-view .asset-actions .buy{background:linear-gradient(135deg,#d58329,#9b5121);border-color:#ffc571;color:#fff7df}
:root[data-world="earth"] #earth-view .asset-actions .buy:hover:not(:disabled){background:#e59132}

/* Clan hub: readable shared-world surfaces and compact mobile controls. */
.clan-shell{max-width:1040px;margin:0 auto;display:grid;gap:18px;min-width:0}
.clan-shell *{box-sizing:border-box;min-width:0}
.clan-heading,.clan-section-title,.clan-application,.clan-pending{display:flex;align-items:center;justify-content:space-between;gap:16px}
.clan-heading h2{display:flex;align-items:center;gap:10px;font-size:clamp(23px,4vw,34px);margin:8px 0}
.clan-heading p,.clan-contribution-help,.clan-chat-note,.clan-form small{color:var(--muted);line-height:1.6}
.clan-heading p{margin:0}.clan-tabs{display:flex;gap:8px;flex-wrap:wrap}
.clan-tabs button{flex:1;border:1px solid var(--glass-line);border-radius:14px;padding:13px 18px;background:var(--glass-inset);color:var(--text);font-weight:750}
.clan-tabs button.active{background:var(--world-soft);border-color:var(--accent);color:var(--accent)}
.clan-card,.clan-hero,.clan-directory-card{background:var(--glass-surface);border:1px solid var(--glass-line);border-radius:22px;padding:24px;box-shadow:0 12px 24px #0003}
.clan-hero{display:flex;align-items:center;gap:22px;background:radial-gradient(ellipse at 10% 0%,#edab3025,transparent 60%),var(--glass-surface);border-color:var(--accent)}
.clan-hero>div:nth-child(2){flex:1}.clan-hero h3{font-size:clamp(24px,4vw,34px);margin:8px 0;overflow-wrap:anywhere}.clan-hero p{margin:0 0 15px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.clan-hero-actions{display:grid;gap:10px;max-width:210px}.clan-emblem{flex:none;display:grid;place-items:center;width:60px;height:68px;clip-path:polygon(50% 0,100% 15%,96% 70%,50% 100%,4% 70%,0 15%);background:linear-gradient(145deg,#5689b1,#172c4a);color:#ffe3a4;font-size:32px;text-shadow:0 3px 7px #0008}
.clan-emblem-large{width:90px;height:106px;font-size:50px}.clan-emblem-flame{background:linear-gradient(145deg,#be602e,#491d22)}.clan-emblem-moon{background:linear-gradient(145deg,#9971bd,#2c2448)}.clan-emblem-star{background:linear-gradient(145deg,#c89c49,#46331c)}.clan-emblem-mountain{background:linear-gradient(145deg,#608690,#223c49)}.clan-emblem-leaf{background:linear-gradient(145deg,#4b9f70,#193b34)}
.clan-stat-chips{display:flex;flex-wrap:wrap;gap:8px}.clan-stat-chips span{border:1px solid var(--glass-line);border-radius:10px;padding:7px 10px;background:#0002;font-size:14px}.clan-stat-chips strong{color:var(--accent)}
.clan-section-title h3,.clan-card>h3{margin:0 0 15px;font-size:22px}.clan-section-title>span{color:var(--muted);font-size:14px}.clan-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.clan-member{padding:14px;border:1px solid var(--glass-line);border-radius:15px;background:var(--glass-inset)}.clan-person{display:flex;gap:12px;align-items:center}.clan-person img{width:52px;height:58px;object-fit:cover;object-position:top;border-radius:12px;flex:none;background:#12233c}.clan-person>div{flex:1}.clan-person strong{display:block;overflow-wrap:anywhere}.clan-person> b{text-align:right;color:var(--accent)}.clan-person b small{display:block;color:var(--muted);font-size:11px;font-weight:500;margin-top:3px}.clan-person strong small{font-size:10px;color:var(--muted)}
.clan-role{font-size:12px;display:inline-block;margin-top:5px;color:var(--muted)}.clan-role-leader{color:#ffd67b}.clan-role-deputy{color:#bda6ff}.clan-member-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.clan-member-actions button{font-size:12px;padding:8px 10px;flex:1}
.clan-form{display:grid;gap:16px}.clan-form label,.clan-search label,.clan-chat-form label{display:grid;gap:8px;font-size:14px;font-weight:700}.clan-form :is(input,textarea,select),.clan-chat-form input,.clan-search input{width:100%;padding:13px 14px;border:1px solid var(--glass-line);border-radius:12px;background:var(--glass-inset);color:var(--text);font:inherit;font-size:16px}.clan-form textarea{resize:vertical;min-height:90px}.clan-form .primary-button{justify-self:start}.clan-form select option{background:#17283e}
.clan-application{padding:15px 0;border-top:1px solid var(--glass-line)}.clan-application>div{display:flex;gap:8px}.clan-application strong{overflow-wrap:anywhere}.clan-empty{color:var(--muted);line-height:1.6}.clan-pending strong{color:var(--accent)}.clan-pending p{margin:7px 0 0;color:var(--muted)}
.clan-directory{display:grid;gap:12px}.clan-directory-card{display:flex;align-items:center;gap:16px;padding:18px}.clan-directory-copy{flex:1}.clan-directory-copy h3{margin:0 0 8px;font-size:21px;overflow-wrap:anywhere}.clan-directory-copy p{margin:0 0 8px;color:var(--muted);overflow-wrap:anywhere}.clan-directory-copy>span{font-size:13px;color:var(--accent)}.clan-place{font-size:24px;font-weight:800;flex:none;width:30px;text-align:center;color:var(--accent)}.clan-search>div,.clan-chat-form>div{display:flex;gap:10px;margin-top:9px}.clan-search button,.clan-chat-form button{flex:none}
.clan-messages{list-style:none;padding:0 5px 0 0;margin:18px 0;display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;overscroll-behavior:contain}.clan-messages li{align-self:flex-start;background:var(--glass-inset);border:1px solid var(--glass-line);border-radius:14px;padding:12px 14px;max-width:92%;min-width:190px}.clan-messages li.clan-message-own{align-self:flex-end;border-color:var(--accent);background:var(--world-soft)}.clan-messages li>div{display:flex;justify-content:space-between;gap:18px;font-size:13px}.clan-messages time{font-size:11px;color:var(--muted);white-space:nowrap}.clan-messages p{margin:8px 0 0;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}.clan-chat-note{font-size:12px}.clan-feedback{padding:13px 16px;border:1px solid #63c89f;border-radius:13px;color:#b8f5d4;background:#215c382b;margin:0;overflow-wrap:anywhere}.clan-feedback.error{border-color:#e28a8a;color:#ffc4c4;background:#842e3226}
.clan-settings summary{cursor:pointer;font-weight:750;font-size:18px;padding:4px 0}.clan-settings[open] .clan-form{margin-top:18px}.clan-full{color:var(--muted);font-size:14px}
@media(max-width:640px){.clan-shell{gap:14px}.clan-heading{align-items:flex-start}.clan-heading>button{padding:10px 12px;font-size:12px}.clan-card,.clan-hero{padding:18px}.clan-hero{flex-wrap:wrap;gap:14px}.clan-emblem-large{width:65px;height:78px;font-size:36px}.clan-hero>div:nth-child(2){flex-basis:calc(100% - 90px)}.clan-hero-actions{display:flex;flex-wrap:wrap;max-width:none;width:100%}.clan-hero-actions button{flex:1}.clan-roster{grid-template-columns:1fr}.clan-tabs button{padding:12px 8px}.clan-directory-card{flex-wrap:wrap;gap:12px;padding:16px}.clan-directory-card>button{width:100%}.clan-directory-copy{flex-basis:calc(100% - 115px)}.clan-application{align-items:flex-start;flex-wrap:wrap;gap:10px}.clan-pending{flex-wrap:wrap}.clan-messages li{max-width:96%;min-width:0}.clan-form .primary-button{width:100%}.clan-chat-form>div{gap:8px}.clan-chat-form button{padding:12px}.clan-section-title{gap:8px}}

/* Individual and clan achievements share one public snapshot and keep lists mounted. */
#leaderboard-content .leaderboard-columns{display:block}
.leaderboard-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.leaderboard-group[hidden]{display:none!important}
.leaderboard-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 20px;padding:6px;border:1px solid var(--glass-line,var(--line));border-radius:15px;background:var(--glass-surface,var(--surface))}
.leaderboard-sections button{min-height:48px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-weight:800;cursor:pointer}
.leaderboard-sections button[aria-pressed="true"]{background:linear-gradient(120deg,#91672d,#544168);border-color:#deb97c;color:#fff1cf;box-shadow:0 3px 12px #0003}
.leaderboard-sections button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.leaderboard-clan-list .clan-emblem{width:36px;height:42px;font-size:22px}
.leaderboard-clan-list .leaderboard-player strong{white-space:normal;overflow-wrap:anywhere}
.leaderboard-clan-list li>b{max-width:48%;white-space:normal;text-align:right;overflow-wrap:anywhere}
@media(max-width:760px){.leaderboard-group{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.leaderboard-clan-list li{gap:7px;flex-wrap:wrap}.leaderboard-clan-list .leaderboard-player{min-width:90px}.leaderboard-clan-list li>b{max-width:100%;margin-left:auto}}

/* Klan amblemleri, ortak envanter ve kütüphane. */
.clan-emblem img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.clan-emblem-flag{clip-path:none;border-radius:10px;background:linear-gradient(140deg,#355079,#14213c);font-size:36px}
.clan-emblem-mythic{display:block;position:relative;height:60px;clip-path:none;border-radius:12px;border:1px solid #d2a85f;background:radial-gradient(circle,#30486a,#101b30);overflow:hidden}
.clan-emblem-mythic img,.leaderboard-clan-list .clan-emblem-mythic img{display:block;object-fit:contain;object-position:center}
.clan-emblem-large.clan-emblem-mythic{height:90px}
.clan-emblem-sprite img,.leaderboard-clan-list .clan-emblem-sprite img{position:absolute;inset:0 auto 0 0;width:400%;max-width:none;height:100%;object-fit:contain;object-position:left center}
.leaderboard-clan-list .clan-emblem-mythic{height:36px}
.clan-emblem-picker{min-width:0;padding:14px;border:1px solid var(--glass-line,var(--line));border-radius:14px}
.clan-emblem-picker legend{font-weight:800;color:#ffdf9f;padding:0 8px}
.clan-emblem-preview{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.clan-emblem-group{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.clan-emblem-group>summary{cursor:pointer;font-weight:800;padding:5px 0}
.clan-emblem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:9px;margin-top:12px;max-height:350px;overflow-y:auto;padding:4px;overscroll-behavior:contain}
.clan-emblem-choice{display:grid;justify-items:center;align-content:start;gap:8px;min-width:0;min-height:105px;padding:10px 6px;background:#17243b;border:1px solid #405276;border-radius:12px;color:var(--text);cursor:pointer;font:inherit}
.clan-emblem-choice>span:last-child{font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.clan-emblem-choice.selected{border:2px solid #ffce72;background:linear-gradient(145deg,#655027,#253854);box-shadow:0 0 12px #ffc86a33}
.clan-emblem-choice:focus-visible{outline:3px solid var(--cyan);outline-offset:1px}
.clan-emblem-choice .clan-emblem{width:46px;height:50px;font-size:28px}
.clan-emblem-choice .clan-emblem-mythic{width:min(68px,100%);height:auto;aspect-ratio:1}
@media(max-width:640px){.clan-emblem-large.clan-emblem-mythic{height:65px}}
.clan-inner-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 18px}
.clan-inner-tabs button{min-height:46px;padding:10px 8px}
.clan-inner-tabs button[aria-pressed="true"]{background:linear-gradient(130deg,#946d34,#4e466e);border-color:#ddb777;color:#fff0cd}
.clan-vault-role{display:block;font-size:11px;color:#ffde9f;margin-top:5px}
.clan-vault-balances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.clan-vault-balances>div{display:grid;gap:6px;padding:16px;border:1px solid #687798;border-radius:13px;background:linear-gradient(130deg,#293752,#1c2a44)}
.clan-vault-balances span{color:var(--muted);font-size:13px}.clan-vault-balances strong{color:#ffe0a1;font-size:20px;overflow-wrap:anywhere}
.clan-ether-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.clan-ether-form label{display:grid;gap:8px;flex:1;min-width:160px}.clan-ether-form input{min-height:46px;min-width:0;width:100%;padding:10px;font:inherit;font-size:16px;border-radius:10px;border:1px solid #65718f;background:#111c32;color:var(--text)}.clan-ether-form>div{display:flex;gap:8px;flex-wrap:wrap}.clan-ether-form button{min-height:46px}
.clan-item-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 24px}
.clan-item-card{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:15px 12px;border:1px solid #66708a;border-radius:14px;background:linear-gradient(145deg,#28334b,#17243b);text-align:center}
.clan-item-card>img{width:82px;height:90px;object-fit:contain;filter:drop-shadow(0 3px 8px #0006)}.clan-item-card strong{font-size:14px;overflow-wrap:anywhere}.clan-item-card small,.clan-item-card p{font-size:12px;color:var(--muted);margin:0;line-height:1.5}.clan-item-card>button{margin-top:auto;width:100%;min-height:42px}
.clan-book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}
.clan-book-card{--book:#a9503c;display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px 14px;border:1px solid #6f7190;border-radius:15px;background:radial-gradient(ellipse at top,#b48c4022,transparent 60%),#1b2840;text-align:center;align-items:center}
.clan-book-intelligence{--book:#5267b0}.clan-book-endurance{--book:#a38436}.clan-book-agility{--book:#3d8566}
.clan-book-art{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border:1px solid #ba985e;border-radius:12px;box-shadow:0 8px 20px #0005;margin:0 0 4px}
.clan-book-card h4{margin:0;color:#ffe0ac}.clan-book-card>strong{font-size:13px;line-height:1.5}.clan-book-card p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.clan-book-card progress{width:100%;height:7px;accent-color:#e8b96e}.clan-book-card button{width:100%;margin-top:auto;min-height:44px}
.leaderboard-clan-list .clan-emblem img{width:100%;height:100%;object-fit:cover}
.leaderboard-clan-list .clan-emblem-mythic img{object-fit:contain}
.leaderboard-clan-list .clan-emblem-sprite img{width:400%;max-width:none;object-fit:contain;object-position:left center}
@media(max-width:850px){.clan-book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.clan-emblem-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.clan-vault-balances{grid-template-columns:1fr}.clan-ether-form>div{width:100%}.clan-ether-form button{flex:1}.clan-item-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.clan-item-card{padding:8px 4px;gap:5px}.clan-item-card>img{width:100%;height:64px}.clan-item-card strong{font-size:11px}.clan-item-card small,.clan-item-card p{font-size:10px;overflow-wrap:anywhere}.clan-item-card>button{font-size:10px;padding:7px 3px;min-height:44px}.clan-inner-tabs button{font-size:13px}.clan-book-card{padding:15px 10px}}

/* Illustrated clan headquarters, with seven accessible object destinations. */
.clan-hall{padding:0;background:#171b29;border:1px solid #c49a56;border-radius:20px;overflow:hidden;box-shadow:0 15px 45px #0005}
.clan-hall>.clan-section-title{padding:18px 20px;background:linear-gradient(110deg,#392d25,#1a2539);flex-wrap:wrap;gap:6px}.clan-hall>.clan-section-title h3{margin:0;color:#ffdea0}
.clan-hall-scene{position:relative;aspect-ratio:1;isolation:isolate}.clan-hall-scene>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
/* Object hotspots are visually empty; keyboard focus remains clearly visible. */
.clan-hall-point{position:absolute;transform:translate(-50%,-50%);z-index:1;width:24%;height:28%;min-width:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation}
.clan-hall-point-exit{width:22%;height:30%}.clan-hall-point-inventory{width:28%;height:30%}.clan-hall-point-wars{width:32%;height:20%}.clan-hall-point-members{width:24%;height:20%}.clan-hall-point-boss{width:29%;height:33%}.clan-hall-point-chat{width:23%;height:24%}
.clan-hall-point:focus-visible{outline:3px solid #94e8ff;outline-offset:-3px;background:#94e8ff18}.clan-hall-links button:focus-visible,.clan-room-nav button:focus-visible{outline:3px solid #94e8ff;outline-offset:4px}
.clan-hall-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:16px;background:#172138}.clan-hall-links button{min-height:44px;font-size:13px;padding:9px 5px}
.clan-room-content{display:grid;gap:18px}.clan-room-nav{display:flex;justify-content:flex-start}.clan-room-nav button{min-height:44px}
.clan-tactics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.clan-tactic-card{display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:0;overflow:hidden;border:1px solid #6c7590;border-radius:14px;color:#e4e9f6;background:#19283d;cursor:pointer;font:inherit}.clan-tactic-card img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.clan-tactic-card strong{padding:12px 6px;min-height:44px;font-size:16px}.clan-tactic-card:focus-visible{outline:3px solid #94e8ff;outline-offset:3px}.clan-tactics button[aria-pressed="true"]{border-color:#eac27e;color:#ffdfa2;background:#48351f}
.clan-war-result{padding:14px 0;border-top:1px solid var(--glass-line);overflow-wrap:anywhere}.clan-war-result summary{cursor:pointer;line-height:1.6}.clan-war-result summary strong{color:#f2cd87}.clan-war-result p,.clan-war-result li{color:var(--muted);font-size:13px;line-height:1.7}.clan-war-result ol{padding-left:22px}
.clan-boss-panel{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.clan-boss-panel>.clan-section-title{width:100%;flex-wrap:wrap}.clan-boss-art{width:min(440px,100%);height:auto;aspect-ratio:1;object-fit:cover;align-self:center;border-radius:18px;border:1px solid #aa724c;box-shadow:0 8px 30px #0006}.clan-boss-panel progress{width:100%;height:18px;accent-color:#e66a78}.clan-boss-panel h4,.clan-boss-panel p{margin:0}.clan-boss-damage{padding:0;list-style:none;width:100%;margin:0}.clan-boss-damage li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--glass-line)}.clan-boss-damage span{color:#ffda8c}
@media(max-width:640px){.clan-hall-point{border-radius:9px}.clan-hall-links{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.clan-hall>.clan-section-title{padding:14px}.clan-hall>.clan-section-title>span{font-size:12px}.clan-hall-point-chat{left:15%!important}.clan-hall-point-boss{left:83%!important}}


.clan-item-grid>.clan-empty{grid-column:1/-1}
@media(max-width:480px){.clan-tactics{gap:7px}.clan-tactic-card strong{font-size:13px;padding:10px 4px}}

.clan-hall-point-members-left{width:18%;height:20%}.gear-access-note{color:#efc78c;font-size:12px;line-height:1.5}

/* Archer uses the measured extended-arm pose and its own string/projectiles. */
.archer-class-note{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#22372f;border:1px solid #7ca98a;border-radius:12px;color:#e5f1dd;line-height:1.55}
.archer-class-note .card-header-icon{flex:none;width:30px;height:30px}
.talent-paths button[data-id="archer"]{border-color:#86b49b;color:#ddf4cf}
.talent-paths button[data-id="archer"].chosen{background:#2a493a;border-color:#c3dda5}
.combat-held-item[data-kind="bow"]{isolation:isolate}
.combat-bow-string{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:1;fill:none;stroke:#ece0bb;stroke-width:2.2;pointer-events:none}
.combat-held-item[data-kind="bow"]>img{z-index:2}
.bow-string-drawn{opacity:0}
.combat-nocked-arrow{position:absolute;left:2%;top:49.6%;width:94%;height:1.2%;z-index:3;background:linear-gradient(90deg,#ddd9b9,#a68656 65%,#fff3c9);clip-path:polygon(0 10%,85% 10%,85% 0,100% 50%,85% 100%,85% 90%,0 90%)}
.battle-pose-slash .combat-nocked-arrow,.battle-pose-guard .combat-nocked-arrow,.battle-pose-recoil .combat-nocked-arrow{opacity:0}
.battle-pose-windup .bow-string-rest{opacity:0}
.battle-pose-windup .bow-string-drawn{opacity:1;animation:archer-string-draw 2.4s ease-out both}
.combat-drawn-arrow{stroke:#eed8a1;stroke-width:3}
.combat-archer-bow-arm{z-index:1}
@keyframes archer-string-draw{0%,8%{transform:scaleX(.05);transform-origin:48px 260px}26%,100%{transform:scaleX(1);transform-origin:48px 260px}}
.battle-arrow-flight{position:absolute;z-index:9;left:27%;top:40%;width:18%;height:3px;opacity:0;background:linear-gradient(90deg,#ac8254,#fff2c5);pointer-events:none;filter:drop-shadow(0 0 3px #f6d79c)}
.battle-arrow-flight::before{content:"";position:absolute;left:0;top:-3px;width:16%;height:9px;background:#cde8c7;clip-path:polygon(0 0,100% 40%,100% 60%,0 100%,28% 50%)}
.battle-arrow-flight::after{content:"";position:absolute;right:-7px;top:-4px;border-left:12px solid #f7efcf;border-top:5px solid transparent;border-bottom:5px solid transparent}
.battle-arrow-flight.arrow-enemy{left:auto;right:27%;transform:rotate(180deg)}
.battle-arrow-flight.arrow-second{top:43%;filter:drop-shadow(0 0 4px #9fd8b6)}
.battle-scene[data-own-weapon="bow"]:is([data-style="balanced"],[data-style="power"]) .battle-hero{animation:none!important}
.battle-scene[data-own-weapon="bow"]:is([data-style="balanced"],[data-style="power"]) .battle-vfx-slash{animation:none!important;opacity:0}
.battle-scene[data-own-weapon="bow"][data-fired="true"]:is([data-style="balanced"],[data-style="power"]) .arrow-own:not(.arrow-second){animation:archer-arrow-flight 2.4s linear both}
.battle-scene[data-own-weapon="bow"][data-hit="true"][data-double-shot="true"]:is([data-style="balanced"],[data-style="power"]) .arrow-own.arrow-second{animation:archer-arrow-flight-second 2.4s linear both}
.arena-combat-scene[data-enemy-weapon="bow"][data-enemy-turn="true"] .arrow-enemy:not(.arrow-second){animation:archer-arrow-return 2.4s linear both}
.arena-combat-scene[data-enemy-weapon="bow"][data-enemy-turn="true"][data-enemy-double-shot="true"] .arrow-enemy.arrow-second{animation:archer-arrow-return-second 2.4s linear both}
@keyframes archer-arrow-flight{0%,27%{opacity:0;transform:translateX(0)}28%{opacity:1;transform:translateX(0)}43%{opacity:1;transform:translateX(220%)}44%,100%{opacity:0;transform:translateX(220%)}}
@keyframes archer-arrow-flight-second{0%,32%{opacity:0;transform:translateX(0)}33%{opacity:1;transform:translateX(0)}48%{opacity:1;transform:translateX(220%)}49%,100%{opacity:0;transform:translateX(220%)}}
@keyframes archer-arrow-return{0%,53%{opacity:0;transform:translateX(0) rotate(180deg)}54%{opacity:1;transform:translateX(0) rotate(180deg)}69%{opacity:1;transform:translateX(-220%) rotate(180deg)}70%,100%{opacity:0;transform:translateX(-220%) rotate(180deg)}}
@keyframes archer-arrow-return-second{0%,58%{opacity:0;transform:translateX(0) rotate(180deg)}59%{opacity:1;transform:translateX(0) rotate(180deg)}74%{opacity:1;transform:translateX(-220%) rotate(180deg)}75%,100%{opacity:0;transform:translateX(-220%) rotate(180deg)}}
@media(prefers-reduced-motion:reduce){.battle-arrow-flight,.bow-string-drawn{animation:none!important}}

/* Opposite slots share a row: weapon/offhand, armor/shoes, and accessories. */
.ether-character-layout{grid-template-areas:'weapon hero shield' 'armor hero boots' 'earring hero necklace' 'ring hero accessory'}
.ether-slot-shield{grid-area:shield;justify-content:center}
.ether-slot-boots{grid-area:boots;justify-content:center}
#planet-content .ether-character-layout .ether-slot-armor .gear-slot-actions{left:0;right:auto}
#planet-content .ether-character-layout :is(.ether-slot-shield,.ether-slot-boots) .gear-slot-actions{left:auto;right:0;top:calc(100% + 4px);bottom:auto}
.class-equipment-note{font-size:.8rem;color:var(--muted);line-height:1.65;overflow-wrap:anywhere}
.guardian-class-note{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #a7b9d3;border-radius:12px;background:#2a354b;color:#e7edf6;line-height:1.55}
.guardian-class-note .card-header-icon{flex:none;width:30px;height:30px}
.combat-character .combat-body-layer{z-index:2}
.combat-offhand{position:absolute;left:var(--offhand-x);top:var(--offhand-y);height:var(--offhand-height);width:auto;transform:translate(-50%,-50%) rotate(var(--offhand-angle));pointer-events:none}
.combat-offhand-shield{z-index:3;aspect-ratio:260/320;filter:drop-shadow(0 2px 3px #0008)}
.combat-offhand-quiver{z-index:1;aspect-ratio:260/380}
.combat-character .combat-offhand img{inset:0;width:100%;height:100%;object-fit:contain}
@media(max-width:520px){.ether-slot-shield>span{font-size:.67rem}.guardian-class-note,.archer-class-note{font-size:.8rem}}

/* Class choreography operates on the whole anchored pose, so weapons stay
   attached to their hands for every portrait and armor variant. */
@media(prefers-reduced-motion:no-preference){
 .battle-scene:is([data-style="balanced"],[data-style="power"]) .battle-hero .combat-character[data-weapon-kind="bow"] .battle-pose-windup{transform-origin:50% 92%;animation:film-sword-windup 2.4s step-end both,archer-draw-stance 2.4s ease-in-out both}
 .battle-scene:is([data-style="balanced"],[data-style="power"]) .battle-hero .combat-character[data-weapon-kind="bow"] .battle-pose-slash{transform-origin:50% 92%;animation:film-sword-slash 2.4s step-end both,archer-release-stance 2.4s ease-out both}
 .battle-scene[data-style="defend"] .battle-hero .combat-character[data-weapon-kind="bow"] .battle-pose-guard{transform-origin:50% 92%;animation:film-guard-guard 2.4s step-end both,archer-evasive-step 2.4s ease-in-out both}
 .battle-scene:is([data-style="balanced"],[data-style="power"]) .battle-hero .combat-character[data-weapon-kind="mace"] .battle-pose-windup{transform-origin:50% 92%;animation:film-sword-windup 2.4s step-end both,guardian-brace 2.4s ease-in-out both}
 .battle-scene:is([data-style="balanced"],[data-style="power"]) .battle-hero .combat-character[data-weapon-kind="mace"] .battle-pose-slash{transform-origin:50% 92%;animation:film-sword-slash 2.4s step-end both,guardian-mace-step 2.4s ease-out both}
 .battle-scene:is([data-style="balanced"],[data-style="power"]) .battle-hero .combat-character[data-weapon-kind="mace"] .battle-pose-slash .combat-held-item{animation:guardian-mace-swing 2.4s ease-in-out both}
 .battle-scene[data-style="defend"] .battle-hero .combat-character[data-weapon-kind="mace"] .battle-pose-guard{transform-origin:50% 92%;animation:film-guard-guard 2.4s step-end both,guardian-shield-brace 2.4s ease-in-out both}
 .battle-scene[data-own-weapon="mace"]:is([data-style="balanced"],[data-style="power"]) .battle-vfx-slash{border-radius:50%;border-width:7px;filter:drop-shadow(0 0 9px #f8d78b)}
 .arena-combat-scene:not([data-style="idle"])[data-enemy-turn="true"] .arena-opponent .combat-character[data-weapon-kind="bow"] .battle-pose-windup{transform-origin:50% 92%;animation:monster-windup 2.4s step-end both,archer-draw-enemy 2.4s ease-in-out both!important}
 .arena-combat-scene:not([data-style="idle"])[data-enemy-turn="true"] .arena-opponent .combat-character[data-weapon-kind="bow"] .battle-pose-slash{transform-origin:50% 92%;animation:monster-strike 2.4s step-end both,archer-release-enemy 2.4s ease-out both!important}
 .arena-combat-scene:not([data-style="idle"])[data-enemy-turn="true"] .arena-opponent .combat-character[data-weapon-kind="mace"] .battle-pose-slash{transform-origin:50% 92%;animation:monster-strike 2.4s step-end both,guardian-mace-enemy 2.4s ease-out both!important}
 .arena-combat-scene:not([data-style="idle"])[data-enemy-turn="true"] .arena-opponent .combat-character[data-weapon-kind="mace"] .battle-pose-slash .combat-held-item{animation:guardian-mace-swing-enemy 2.4s ease-in-out both}
}
@keyframes archer-draw-stance{0%,7%{transform:translateX(0) rotate(0)}24%,28%{transform:translateX(-5%) rotate(-4deg)}49%,100%{transform:none}}
@keyframes archer-release-stance{0%,28%{transform:translateX(-5%) rotate(-4deg)}34%{transform:translateX(3%) rotate(2deg)}44%,100%{transform:none}}
@keyframes archer-evasive-step{0%,10%{transform:none}35%,65%{transform:translate(-8%,4%) rotate(-7deg)}89%,100%{transform:none}}
@keyframes guardian-brace{0%,7%{transform:none}24%,28%{transform:translateX(-3%) rotate(-3deg)}49%,100%{transform:none}}
@keyframes guardian-mace-step{0%,28%{transform:translateX(-3%) rotate(-3deg)}35%{transform:translateX(7%) rotate(6deg)}49%,100%{transform:none}}
@keyframes guardian-mace-swing{0%,28%{transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(var(--held-angle))}35%,42%{transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(calc(var(--held-angle) + 80deg))}49%,100%{transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(var(--held-angle))}}
@keyframes guardian-shield-brace{0%,10%{transform:none}28%,52%{transform:translateX(3%) rotate(3deg)}66%{transform:translateX(-2%) rotate(-2deg)}89%,100%{transform:none}}
@keyframes archer-draw-enemy{0%,48%{transform:none}54%{transform:translateX(-5%) rotate(-4deg)}70%,100%{transform:none}}
@keyframes archer-release-enemy{0%,54%{transform:translateX(-5%) rotate(-4deg)}60%{transform:translateX(3%) rotate(2deg)}70%,100%{transform:none}}
@keyframes guardian-mace-enemy{0%,54%{transform:translateX(-3%) rotate(-3deg)}62%{transform:translateX(7%) rotate(6deg)}74%,100%{transform:none}}
@keyframes guardian-mace-swing-enemy{0%,54%{transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(var(--held-angle))}62%,69%{transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(calc(var(--held-angle) + 80deg))}74%,100%{transform:translate(-50%,calc(-1 * var(--held-pivot))) rotate(var(--held-angle))}}
.battle-ammo-status{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.battle-ammo-status .small-button{margin-left:auto}
.challenge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.challenge-grid .progression-panel{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.challenge-grid .primary-button{margin-top:auto}
.ether-item-art{filter:hue-rotate(var(--material-hue,0deg))}
.gear-material-label{color:var(--material-color,inherit)}
.combat-held-item>img{filter:hue-rotate(var(--material-hue,0deg))}
@media(max-width:700px){.challenge-grid{grid-template-columns:1fr}}

/* VIP levels: keep mission controls readable on narrow screens. */
.vip-progression{margin:20px 0;padding:20px;border:1px solid #b29451;border-radius:16px;background:linear-gradient(120deg,#372e2355,#19243b);min-width:0}
.vip-level-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.vip-level-heading h3{margin:6px 0 10px;color:#ffe5a6}.vip-level-heading>strong{color:#ffe5a6}
.vip-progression>progress{display:block;width:100%;height:12px;margin:12px 0;accent-color:#ffd67d}
.vip-progression p{line-height:1.6;margin:10px 0}.vip-progression small{color:var(--muted);line-height:1.7}
.vip-progression details{margin-top:16px;border-top:1px solid #b2945144;padding-top:12px}
.vip-progression summary{cursor:pointer;font-weight:800;color:#ffe5a6;line-height:1.6}
.vip-quest-list .store-mission{margin-top:12px}.vip-quest-list .store-mission>div{min-width:0}.vip-quest-list progress{width:100%;accent-color:#ffd67d}
.vip-reward-table{overflow-x:auto;margin-top:12px}.vip-reward-table table{width:100%;border-collapse:collapse;text-align:left;font-size:.86rem}
.vip-reward-table th,.vip-reward-table td{padding:10px 8px;border-bottom:1px solid #ffffff1a;white-space:nowrap}
.vip-reward-table thead{color:#ffe5a6}.vip-reward-table .current{background:#b2945122;color:#ffe5a6}
.store-vip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.store-vip-grid .store-vip-product{grid-template-columns:86px minmax(0,1fr);gap:12px;margin-top:0;min-width:0}
.store-vip-grid .store-product-art img{width:86px;height:86px}.store-vip-grid .store-product-actions{grid-column:1/-1}.store-vip-grid .store-product-actions button{width:100%}
.store-vip-grid .store-product-badge{font-size:.7rem}.store-vip-bonus{color:#ffe5a6;font-size:.85rem}
@media(max-width:680px){.store-vip-grid{grid-template-columns:1fr}.vip-progression{padding:15px}.vip-quest-list .store-mission{flex-wrap:wrap}.vip-quest-list .store-mission>div{flex:1 1 100%}.vip-quest-list .store-mission>button{width:100%}}

/* Class attacks and the energy absorbed after a monster victory. */
.planet-tool-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
.attack-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.attack-class-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--glass-inset,var(--surface))}
.attack-class-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.attack-class-card>button{width:100%;font-weight:800;margin-bottom:10px}
.attack-skill-list{display:grid;gap:8px}.attack-skill-card{display:grid;gap:6px;padding:10px;background:#101e2f66;border:1px solid #b2d9ed26;border-radius:9px}
.attack-skill-card strong{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;color:var(--text)}
.attack-skill-card small,.attack-skill-card span{font-size:.75rem;color:var(--muted)}.attack-skill-card p{margin:0;font-size:.8rem;line-height:1.45}.attack-skills-panel{margin:14px 0}
.victory-energy{position:absolute;inset:0;z-index:14;pointer-events:none;overflow:hidden}
.victory-energy-orb{position:absolute;inset:0;opacity:0;--energy-color:#ff5c65;animation:victory-energy-flight 1450ms cubic-bezier(.3,.05,.35,1) both;animation-delay:calc(350ms + var(--orb-delay) + var(--energy-elapsed))}
.energy-blue{--energy-color:#55b9ff}.energy-green{--energy-color:#66ef96}.energy-yellow{--energy-color:#ffe16a}
.victory-energy-orb i{position:absolute;left:78%;top:48%;width:var(--energy-size,9px);height:var(--energy-size,9px);border-radius:50%;background:radial-gradient(circle,#fff 0 15%,var(--energy-color) 45%);box-shadow:0 0 var(--energy-glow,7px) 3px var(--energy-color)}
.victory-energy-orb i::after{content:'';position:absolute;left:6px;top:2px;width:52px;height:5px;border-radius:50%;background:linear-gradient(90deg,var(--energy-color),transparent);transform-origin:left;opacity:0;animation:victory-energy-trail 1450ms both;animation-delay:calc(350ms + var(--orb-delay) + var(--energy-elapsed))}
.victory-energy-absorb{position:absolute;left:18%;top:49%;width:30px;height:30px;margin:-15px;border-radius:50%;border:2px solid #dffbff;box-shadow:0 0 15px #71dfff;opacity:0;animation:victory-energy-absorb 500ms ease-out both;animation-delay:calc(1500ms + var(--energy-elapsed))}
@keyframes victory-energy-flight{0%{opacity:0;transform:translate(0,0)}12%{opacity:1}30%{opacity:1;transform:translate(var(--orb-x),var(--orb-y))}50%{opacity:1;transform:translate(-15%,calc(var(--orb-y)*1.4))}90%{opacity:1;transform:translate(-59%,2%)}100%{opacity:0;transform:translate(-60%,2%)}}
@keyframes victory-energy-trail{0%,30%{opacity:0;transform:scaleX(.15)}50%,85%{opacity:.8;transform:scaleX(1)}100%{opacity:0;transform:scaleX(.2)}}
@keyframes victory-energy-absorb{0%{opacity:0;transform:scale(.3)}40%{opacity:1}100%{opacity:0;transform:scale(2)}}
@media(max-width:600px){.planet-tool-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.attack-class-grid{grid-template-columns:1fr}.attack-class-card{padding:10px}.attack-skill-card{padding:9px}}
@media(prefers-reduced-motion:reduce){.victory-energy-orb,.victory-energy-orb i::after{animation:none}.victory-energy-absorb{animation:none;opacity:.6;box-shadow:none}}

/* Named attack skills: SVG geometry is animated for one 2.4-second turn. */
.skill-fx{position:absolute;inset:0;z-index:8;pointer-events:none;color:var(--skill-color);overflow:hidden}
.skill-fx-canvas{width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px var(--skill-color))}
.skill-fx-charge,.skill-fx-attack,.skill-fx-impact{opacity:0}
.skill-fx-charge{transform-origin:250px 310px;animation:skill-charge 2.4s ease-out both}
.skill-fx-attack{animation:skill-contact 2.4s ease-out both}
.skill-fx-stroke{stroke-width:9;stroke-dasharray:1;stroke-dashoffset:1;animation:skill-draw 2.4s ease-out both}
.skill-fx-echo{stroke-width:3;animation-delay:80ms}
.skill-fx-trail{stroke-width:3;opacity:.65}
.skill-fx-shot{animation:skill-flight 2.4s cubic-bezier(.3,0,.7,1) both}
.skill-fx-second{translate:0 25px}.skill-fx-second .skill-fx-shot{animation-delay:100ms}
.skill-fx-impact{transform-origin:765px 310px;animation:skill-impact 2.4s ease-out both;stroke:#fffc;stroke-width:4}
.skill-fx[data-hit="false"] .skill-fx-aim{transform:translateY(-85px)}
.skill-fx[data-hit="false"] .skill-fx-shot{animation-name:skill-missed-flight}
.skill-motion-sweep .skill-fx-stroke{stroke-width:7}
.skill-motion-crush .skill-fx-stroke{stroke-width:18;animation-name:skill-heavy-draw}
.skill-motion-flame .skill-fx-stroke{stroke-width:13}
.skill-fx-flame{fill:currentColor;fill-opacity:.22;stroke-width:3;transform-origin:765px 310px;animation:skill-flame 2.4s ease-out both}
.skill-motion-bolt .skill-fx-shot{stroke-width:4}.skill-motion-bolt .skill-fx-shot path:not(.skill-fx-trail){fill:currentColor;fill-opacity:.5}
.skill-motion-fireball .skill-fx-core{fill:#fff4b1;stroke-width:12;stroke:var(--skill-color)}
.skill-motion-fireball .skill-fx-trail{fill:currentColor;fill-opacity:.4}
.skill-impact-fireball{animation-name:skill-fire-explosion}
.skill-motion-lightning .skill-fx-stroke{stroke-width:7;animation-name:skill-lightning-draw}
.skill-motion-lightning .skill-fx-echo{stroke-width:3;animation-delay:60ms}
.skill-impact-lightning{animation-name:skill-lightning-impact}
.skill-motion-arrow .skill-fx-shot{stroke-width:4}
.skill-motion-pierce .skill-fx-shot{stroke-width:6;animation-name:skill-piercing-flight}
.skill-impact-pierce{animation-name:skill-pierce-impact}
.skill-motion-spirit .skill-fx-shot{stroke-width:4;animation-name:skill-spirit-flight}
.skill-motion-spirit .skill-fx-shot ellipse{fill:currentColor;fill-opacity:.18}
.skill-impact-spirit{animation-name:skill-spirit-impact}
.skill-motion-mace .skill-fx-stroke{stroke-width:15;animation-name:skill-heavy-draw}
.skill-impact-mace{stroke-width:8;animation-name:skill-mace-impact}
.skill-motion-shock .skill-fx-stroke{stroke-width:6;animation-name:skill-ground-draw}
.skill-fx-ground-wave{transform-origin:520px 450px;animation:skill-ground-wave 2.4s ease-out both}
.skill-impact-shock{transform-origin:765px 445px;animation-name:skill-ground-impact}
.skill-motion-light .skill-fx-stroke{stroke-width:18;animation-name:skill-light-draw}.skill-motion-light .skill-fx-echo{stroke-width:4}
.skill-impact-light{animation-name:skill-light-impact}
.skill-fx-ribbon{stroke:none;opacity:.92}
.skill-fx-hotline{stroke:#fffbe8!important;stroke-width:3!important;fill:none!important;fill-opacity:0!important}
.skill-fx-speed{stroke-width:2;stroke-dasharray:65 14 18 10;opacity:.7}
.skill-fx-white-core{fill:#fffbe8;stroke:var(--skill-color);stroke-width:6}
.skill-fx-plume{stroke:var(--skill-color);stroke-width:2;transform-origin:765px 310px;animation:skill-plume 2.4s ease-out both}
.skill-motion-fireball .skill-fx-plume{transform-origin:245px 310px}
.skill-fx-orbit{stroke-width:2;opacity:.8;stroke-dasharray:18 5}
.skill-fx-electric-halo{stroke-width:23;stroke-opacity:.2;animation:skill-lightning-draw 2.4s ease-out both}
.skill-fx-electric-branch{stroke-width:2;stroke-dasharray:3 0;animation:skill-electric-branches 2.4s ease-out both}
.skill-fx-earth-fissure{fill:#ffde9b;fill-opacity:.75;stroke:var(--skill-color);stroke-width:3}
.skill-fx-seismic-ring{stroke-width:10;stroke-opacity:.4;transform-origin:575px 446px;animation:skill-seismic 2.4s ease-out both}
.skill-fx-charge{stroke-width:2;fill:none}
.skill-fx-rune-wheel{transform-origin:250px 310px;animation:skill-rune-wheel 2.4s ease-out both}
.skill-fx-burst{opacity:0;animation:skill-burst 2.4s ease-out both}
.skill-fx-bloom{stroke:none;animation:skill-bloom 2.4s ease-out both;transform-origin:765px 310px}
.skill-burst-shock .skill-fx-bloom{transform-origin:765px 442px}
.skill-fx-ring{stroke-width:5;animation:skill-ring 2.4s ease-out both;transform-origin:0 0}
.skill-fx-ring-outer{stroke-width:2;stroke-dasharray:21 8;animation-delay:60ms}
.skill-burst-shock .skill-fx-ring{animation-name:skill-earth-ring}
.skill-burst-pierce .skill-fx-ring{animation-name:skill-penetration-ring}
.skill-burst-spirit .skill-fx-ring-outer,.skill-burst-bolt .skill-fx-ring-outer{stroke-dasharray:6 7;stroke-width:4}
.skill-fx-rayburst{stroke-width:3;stroke:#fffce7;animation:skill-rays 2.4s ease-out both;transform-origin:0 0}
.skill-fx-crown-wrap{animation:skill-crown 2.4s ease-out both;transform-origin:0 0}
.skill-fx-crown{transform-origin:0 0;stroke-width:2}
.skill-fx-fracture{stroke-width:3;fill:var(--skill-color);fill-opacity:.16}
.skill-fx-sigil{stroke-width:2;animation:skill-sigil 2.4s ease-out both;transform-origin:0 0}
.skill-fx-flare{stroke:#fff;stroke-width:7;animation:skill-flare 2.4s ease-out both;transform-origin:0 0}
.skill-fx-particle{fill:var(--skill-color);stroke:#fff5;stroke-width:2;animation:skill-sparks 2.4s cubic-bezier(.14,.72,.35,1) both;animation-delay:var(--spark-delay);transform-origin:0 0}
.skill-burst-shock .skill-fx-particle,.skill-burst-mace .skill-fx-particle{fill:#d3af84;stroke:#fff7}
.skill-burst-fireball .skill-fx-particle,.skill-burst-flame .skill-fx-particle{fill:#ffce6e;stroke:#fff2}
.skill-motion-light .skill-fx-hotline{stroke-width:6!important}
.skill-motion-lightning .skill-fx-hotline{stroke-width:3!important;animation:skill-lightning-draw 2.4s ease-out both}
.skill-fx-preparation{opacity:0;animation:skill-preparation 2.4s ease-out both}
.skill-fx-source-glow{stroke:none;transform-origin:250px 310px;animation:skill-source-glow 2.4s ease-out both}
.skill-fx-source-rings{stroke-width:2;stroke-dasharray:16 7;transform-origin:250px 310px;animation:skill-source-rings 2.4s ease-out both}
.skill-fx-gather-mote{fill:#fff6df;stroke:var(--skill-color);stroke-width:3;transform-origin:0 0;animation:skill-gather-motes 2.4s ease-out both;animation-delay:var(--gather-delay)}
.skill-fx-comet-glow{stroke:none;opacity:.8}
.skill-fx-comet-stream{stroke:#fffb;stroke-width:3;stroke-dasharray:30 10;animation:skill-comet-stream 2.4s ease-out both}
.skill-fx-comet-mote{fill:#fffbdc;stroke:var(--skill-color);stroke-width:2;animation:skill-comet-motes 2.4s ease-out both;animation-delay:var(--comet-delay)}
.skill-fx-shockfront{stroke-width:12;stroke-opacity:.25;animation:skill-shockfront 2.4s ease-out both;transform-origin:0 0}
.skill-fx-vortex{stroke-width:4;stroke-dasharray:55 12;animation:skill-impact-vortex 2.4s ease-out both;transform-origin:0 0}
.skill-fx-shatter{stroke:#ffe4ab;stroke-width:5;animation:skill-ground-shatter 2.4s ease-out both;transform-origin:0 0}
.skill-fx-counter-seal{stroke:#ffe4a2;stroke-width:3;opacity:0;animation:skill-counter-seal 2.4s ease-out both}
.skill-fx-counter-ring{stroke-dasharray:22 9;transform-origin:0 0;animation:skill-counter-ring 2.4s ease-out both}
.skill-fx-counter-ring.counter-inner{stroke:#fff9dd;stroke-dasharray:6 12;animation-direction:normal;animation-delay:50ms}
.skill-fx-counter-rays{stroke:#fff4c9;stroke-width:5;transform-origin:0 0;animation:skill-counter-rays 2.4s ease-out both}
.skill-fx[data-counter="true"] .skill-fx-rayburst{stroke-width:5}
.skill-tactic-label{color:#8edecb;font-size:.74rem}
.battle-forecast.counter-ready{border-color:#e4bc69;box-shadow:inset 0 0 0 1px #e4bc6933}
.battle-scene[data-style="idle"]:is([data-intent="guard"],[data-intent="shield"]) .monster-pose-ready{opacity:0}
.battle-scene[data-style="idle"]:is([data-intent="guard"],[data-intent="shield"]) .monster-pose-guard{opacity:1}
@keyframes skill-preparation{0%,3%{opacity:0}9%,23%{opacity:1}32%,100%{opacity:0}}
@keyframes skill-source-glow{0%{scale:.4;opacity:0}15%{scale:1;opacity:.85}29%,100%{scale:1.25;opacity:0}}
@keyframes skill-source-rings{0%{scale:.5;rotate:-55deg}27%,100%{scale:1.15;rotate:40deg}}
@keyframes skill-gather-motes{0%,5%{opacity:0;transform:translate(var(--gather-x),var(--gather-y)) scale(.4)}10%{opacity:1}25%{opacity:.9;transform:translate(0,0) scale(1)}30%,100%{opacity:0;transform:translate(0,0) scale(.1)}}
@keyframes skill-comet-stream{0%,25%{opacity:0;stroke-dashoffset:70}30%,37%{opacity:.9;stroke-dashoffset:0}44%,100%{opacity:0;stroke-dashoffset:-70}}
@keyframes skill-comet-motes{0%,25%{opacity:0;translate:0 0}29%,37%{opacity:1;translate:-20px var(--comet-drift)}45%,100%{opacity:0;translate:-55px var(--comet-drift)}}
@keyframes skill-shockfront{0%,35%{opacity:0;scale:.35}39%{opacity:1;scale:.8}57%{opacity:.25;scale:1.8}68%,100%{opacity:0;scale:2}}
@keyframes skill-impact-vortex{0%,35%{opacity:0;rotate:-30deg;scale:.4}40%{opacity:.9;rotate:0deg;scale:.8}61%{opacity:.3;rotate:70deg;scale:1.3}71%,100%{opacity:0;rotate:95deg;scale:1.45}}
@keyframes skill-ground-shatter{0%,35%{opacity:0;scale:.4 .1}40%{opacity:1;scale:1 .8}58%{opacity:.4;scale:1.25 1.15}68%,100%{opacity:0;scale:1.4 1.3}}
@keyframes skill-counter-seal{0%,35%{opacity:0}39%,51%{opacity:1}71%,100%{opacity:0}}
@keyframes skill-counter-ring{0%,35%{scale:.3;rotate:-20deg}40%{scale:.8;rotate:0deg}70%,100%{scale:1.35;rotate:70deg}}
@keyframes skill-counter-rays{0%,35%{scale:.2;opacity:0}39%{scale:1;opacity:1}53%{scale:1.25;opacity:.55}65%,100%{scale:1.35;opacity:0}}
@keyframes skill-plume{0%,25%{opacity:0;scale:.7}29%,39%{opacity:.9;scale:1}57%,100%{opacity:0;scale:1.18}}
@keyframes skill-electric-branches{0%,30%{opacity:0;stroke-dasharray:1 90}34%,41%{opacity:.9;stroke-dasharray:90 0}49%,100%{opacity:0}}
@keyframes skill-rune-wheel{0%{rotate:-65deg}33%,100%{rotate:45deg}}
@keyframes skill-seismic{0%,28%{opacity:0;scale:.3 .5}35%{opacity:.9;scale:.85 1}53%,100%{opacity:0;scale:1.35 1.2}}
@keyframes skill-burst{0%,35%{opacity:0}38%,56%{opacity:1}75%,100%{opacity:0}}
@keyframes skill-bloom{0%,35%{opacity:0;scale:.35}38%{opacity:1;scale:1}49%{opacity:.28;scale:1.25}61%,100%{opacity:0;scale:1.5}}
@keyframes skill-ring{0%,35%{opacity:0;scale:.25}38%{opacity:1;scale:.65}55%{opacity:.5;scale:1.8}68%,100%{opacity:0;scale:2.6}}
@keyframes skill-earth-ring{0%,35%{opacity:0;scale:.25 .15}38%{opacity:1;scale:.85 .3}57%{opacity:.45;scale:2.3 .65}70%,100%{opacity:0;scale:3 .8}}
@keyframes skill-penetration-ring{0%,35%{opacity:0;scale:.15 .25}38%{opacity:1;scale:.35 .85}57%{opacity:.5;scale:.6 1.8}68%,100%{opacity:0;scale:.85 2.4}}
@keyframes skill-rays{0%,35%{opacity:0;scale:.3}38%{opacity:1;scale:.8}50%{opacity:.25;scale:1.25}60%,100%{opacity:0;scale:1.5}}
@keyframes skill-crown{0%,35%{opacity:0;scale:.3}39%{opacity:1;scale:.95}53%{opacity:.55;scale:1.3}66%,100%{opacity:0;scale:1.45}}
@keyframes skill-sigil{0%{rotate:-30deg}70%,100%{rotate:60deg}}
@keyframes skill-flare{0%,35%{opacity:0;scale:.25}38%{opacity:1;scale:1.1 .65}43%{opacity:.6;scale:.75 1}51%,100%{opacity:0;scale:.4 1.2}}
@keyframes skill-sparks{0%,35%{opacity:0;transform:translate(0,0) scale(.3)}38%{opacity:1;transform:translate(0,0) scale(1)}57%{opacity:.85;transform:translate(var(--spark-x),var(--spark-y)) rotate(var(--spark-turn)) scale(.75)}71%,100%{opacity:0;transform:translate(calc(var(--spark-x)*1.2),calc(var(--spark-y)*1.2 + 18px)) rotate(var(--spark-turn)) scale(.1)}}
.battle-scene[data-skill]:not([data-skill=""]) .cinema-viewport :is(.battle-vfx-slash,.battle-magic-effects,.battle-vfx-impact,.arrow-own){display:none}
@keyframes skill-charge{0%,7%{opacity:0;transform:scale(.2)}17%{opacity:.8;transform:scale(1)}27%{opacity:1;transform:scale(.5)}32%,100%{opacity:0;transform:scale(.1)}}
@keyframes skill-contact{0%,26%{opacity:0}28%,44%{opacity:1}53%,100%{opacity:0}}
@keyframes skill-draw{0%,27%{stroke-dashoffset:1}35%,100%{stroke-dashoffset:0}}
@keyframes skill-heavy-draw{0%,27%{stroke-dashoffset:1}38%,100%{stroke-dashoffset:0}}
@keyframes skill-flight{0%,25%{opacity:0;transform:translateX(0)}28%{opacity:1;transform:translateX(0)}37%{opacity:1;transform:translateX(520px)}42%,100%{opacity:0;transform:translateX(570px)}}
@keyframes skill-missed-flight{0%,25%{opacity:0;transform:translateX(0)}28%{opacity:1;transform:translateX(0)}43%{opacity:.6;transform:translateX(640px)}48%,100%{opacity:0;transform:translateX(780px)}}
@keyframes skill-impact{0%,35%{opacity:0;transform:scale(.35)}38%{opacity:1;transform:scale(1)}47%{opacity:.5;transform:scale(1.3)}54%,100%{opacity:0;transform:scale(1.6)}}
@keyframes skill-flame{0%,27%{opacity:0;transform:scale(.6) rotate(-20deg)}34%,40%{opacity:.85;transform:scale(1) rotate(0)}50%,100%{opacity:0;transform:scale(1.2) rotate(12deg)}}
@keyframes skill-fire-explosion{0%,34%{opacity:0;transform:scale(.1)}37%{opacity:1;transform:scale(.7)}43%{opacity:.85;transform:scale(1.6)}56%,100%{opacity:0;transform:scale(2)}}
@keyframes skill-lightning-draw{0%,27%{stroke-dashoffset:1;opacity:0}29%{stroke-dashoffset:.25;opacity:1}32%{stroke-dashoffset:0;opacity:.35}35%{opacity:1}37%{opacity:.25}40%{opacity:1}46%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes skill-lightning-impact{0%,30%{opacity:0}33%{opacity:1}35%{opacity:.15}37%{opacity:1}40%{opacity:.2}43%{opacity:.9}48%,100%{opacity:0}}
@keyframes skill-piercing-flight{0%,26%{opacity:0;transform:translateX(0)}28%{opacity:1;transform:translateX(0)}35%{opacity:1;transform:translateX(500px)}44%{opacity:.5;transform:translateX(780px)}48%,100%{opacity:0;transform:translateX(840px)}}
@keyframes skill-pierce-impact{0%,33%{opacity:0;transform:scaleX(.25)}36%{opacity:1;transform:scaleX(1)}44%{opacity:.4;transform:scaleX(1.8)}50%,100%{opacity:0;transform:scaleX(2)}}
@keyframes skill-spirit-flight{0%,25%{opacity:0;transform:translate(0,0)}28%{opacity:1;transform:translate(0,0)}32%{transform:translate(220px,-35px)}38%{opacity:1;transform:translate(520px,0)}44%,100%{opacity:0;transform:translate(580px,10px)}}
@keyframes skill-spirit-impact{0%,36%{opacity:0;transform:scale(.2) rotate(-40deg)}39%{opacity:1;transform:scale(.8) rotate(0)}50%{opacity:.4;transform:scale(1.5) rotate(70deg)}58%,100%{opacity:0;transform:scale(1.8) rotate(110deg)}}
@keyframes skill-mace-impact{0%,35%{opacity:0;transform:scale(.3) rotate(-12deg)}38%{opacity:1;transform:scale(1.3) rotate(8deg)}43%{opacity:.65;transform:scale(.9) rotate(0)}51%,100%{opacity:0;transform:scale(1.6)}}
@keyframes skill-ground-draw{0%,29%{stroke-dashoffset:1}40%,100%{stroke-dashoffset:0}}
@keyframes skill-ground-wave{0%,29%{opacity:0;transform:scaleX(.2)}33%{opacity:1;transform:scaleX(.5)}43%{opacity:.6;transform:scaleX(1.4)}52%,100%{opacity:0;transform:scaleX(1.8)}}
@keyframes skill-ground-impact{0%,37%{opacity:0;transform:translateY(25px)}41%{opacity:1;transform:translateY(-12px)}47%{opacity:.6;transform:translateY(0)}55%,100%{opacity:0;transform:translateY(15px)}}
@keyframes skill-light-draw{0%,24%{stroke-dashoffset:1;opacity:0}29%{stroke-dashoffset:0;opacity:.9}35%{opacity:1}44%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes skill-light-impact{0%,28%{opacity:0;transform:scale(.2) rotate(0)}33%{opacity:1;transform:scale(1) rotate(0)}45%{opacity:.5;transform:scale(1.4) rotate(35deg)}54%,100%{opacity:0;transform:scale(1.8) rotate(45deg)}}

.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .cinema-viewport .battle-hero{animation:film-cast-body 2.4s ease-in-out both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .battle-hero .battle-pose-ready{animation:film-magic-ready 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .battle-hero .battle-pose-windup{animation:film-magic-windup 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .battle-hero .battle-pose-slash{animation:film-magic-slash 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .battle-hero .battle-pose-magic{animation:film-magic-magic 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .battle-hero .battle-pose-guard{animation:film-magic-guard 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"]) .battle-hero .battle-pose-recoil{animation:film-magic-recoil 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-ready{animation:film-magic-final-ready 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-windup{animation:film-magic-final-windup 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-slash{animation:film-magic-final-slash 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-magic{animation:film-magic-final-magic 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-guard{animation:film-magic-final-guard 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-recoil{animation:film-magic-final-recoil 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-ready{animation:film-magic-hurt-ready 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-windup{animation:film-magic-hurt-windup 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-slash{animation:film-magic-hurt-slash 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-magic{animation:film-magic-hurt-magic 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-guard{animation:film-magic-hurt-guard 2.4s step-end both}
.battle-scene[data-skill-pose="cast"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-recoil{animation:film-magic-hurt-recoil 2.4s step-end both}

.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .cinema-viewport .battle-hero{animation:film-balanced-charge 2.4s ease-in-out both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .battle-hero .battle-pose-ready{animation:film-sword-ready 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .battle-hero .battle-pose-windup{animation:film-sword-windup 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .battle-hero .battle-pose-slash{animation:film-sword-slash 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .battle-hero .battle-pose-magic{animation:film-sword-magic 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .battle-hero .battle-pose-guard{animation:film-sword-guard 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"]) .battle-hero .battle-pose-recoil{animation:film-sword-recoil 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-ready{animation:film-sword-final-ready 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-windup{animation:film-sword-final-windup 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-slash{animation:film-sword-final-slash 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-magic{animation:film-sword-final-magic 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-guard{animation:film-sword-final-guard 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-enemy-turn="false"] .battle-hero .battle-pose-recoil{animation:film-sword-final-recoil 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-ready{animation:film-sword-hurt-ready 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-windup{animation:film-sword-hurt-windup 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-slash{animation:film-sword-hurt-slash 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-magic{animation:film-sword-hurt-magic 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-guard{animation:film-sword-hurt-guard 2.4s step-end both}
.battle-scene[data-skill-pose="slash"][data-skill="flame-blade"]:not([data-style="idle"])[data-hurt="true"] .battle-hero .battle-pose-recoil{animation:film-sword-hurt-recoil 2.4s step-end both}
@media(prefers-reduced-motion:reduce){.skill-fx{display:none}.battle-scene[data-skill-pose] .cinema-viewport .battle-hero,.battle-scene[data-skill-pose] .battle-hero .battle-pose{animation:none!important}.battle-scene[data-skill-pose] .battle-hero .battle-pose-ready{opacity:1}}
.talent-path-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.talent-path-tabs [aria-pressed="true"]{color:#142333;background:var(--accent);border-color:var(--accent);opacity:1}
.passive-talents-panel,.attack-skills-panel{padding:14px;border:1px solid var(--line);border-radius:12px;background:#101e2f44}.attack-skills-panel{margin-bottom:0}.attack-skill-list{grid-template-columns:repeat(3,minmax(0,1fr))}.class-select-prompt{margin:16px 0 0}.attack-skill-card{min-width:0}.attack-skill-card>.small-button{margin-top:auto}
@media(max-width:700px){.talent-path-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.attack-skill-list{grid-template-columns:1fr}.passive-talents-panel,.attack-skills-panel{padding:10px}}

/* Friend directory and private conversations share the game's theme surfaces. */
#chat-general-panel[hidden],#chat-friends-panel[hidden],#friends-directory[hidden],#friend-conversation[hidden],#chat-active[hidden]{display:none}
.friends-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.friends-toolbar p{margin:0;color:var(--muted,#c5cce2);font-size:.88rem}.friends-toolbar button{flex:none}
.friend-search{display:grid;gap:8px;padding:17px;border:1px solid var(--glass-line,#38496c);border-radius:12px;background:var(--glass-inset,#101831)}.friend-search label{font-weight:700}.friend-search>div{display:flex;gap:10px}.friend-search input{box-sizing:border-box;min-width:0;flex:1;padding:12px;border:1px solid var(--glass-line,#7787ad);border-radius:9px;background:var(--surface,#101831);color:var(--text,#fff);font:inherit;font-size:16px}.friend-search input:focus-visible{outline:3px solid var(--cyan)}.friend-search small,.friend-person small,.friend-conversation-heading small{color:var(--muted,#aebad6);font-size:.8rem}
.friend-group{display:grid;gap:10px;margin-top:24px}.friend-group h3{display:flex;align-items:center;gap:10px;margin:0 0 3px;font-size:1rem}.friend-group h3>span{padding:3px 9px;border-radius:20px;background:var(--glass-inset,#29344e);color:var(--accent,#f3ba62);font-size:.8rem}.friend-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border:1px solid var(--glass-line,#38496c);border-radius:12px;background:var(--glass-inset,#1b2643)}.friend-person{display:flex;align-items:center;gap:12px;min-width:0}.friend-person>div{display:grid;gap:5px;min-width:0}.friend-person strong,.friend-person small{overflow-wrap:anywhere}.friend-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid var(--finish-edge,#786d96);border-radius:50%;background:var(--surface,#292b49);color:var(--accent,#f3ba62);font-size:1.1rem;font-weight:800}.friend-actions{display:flex;flex-wrap:wrap;gap:8px;flex:none}.friend-actions button{font-size:.8rem;padding:10px 12px}.friend-new,.friend-waiting{color:var(--accent,#f3ba62);font-size:.8rem}.friend-empty{color:var(--muted,#c5cce2);line-height:1.6;margin:0;padding:14px 0}.friend-conversation-heading{display:flex;align-items:center;gap:16px;margin:14px 0}.friend-conversation-heading h3{margin:0 0 5px;overflow-wrap:anywhere}
@media(max-width:600px){.friend-card{align-items:flex-start;flex-direction:column}.friend-actions{width:100%}.friend-actions button{flex:1}.friend-search>div{flex-wrap:wrap}.friend-search button{width:100%}.friend-conversation-heading{align-items:flex-start;flex-direction:column;gap:10px}.friends-toolbar{align-items:flex-start}.friends-toolbar button{padding:10px}}

.skill-progress{margin:14px 0;padding:12px;border:1px solid #66e0cd55;border-radius:12px;background:linear-gradient(120deg,#123f4855,#1b2c4855)}
.skill-progress-heading,.skill-progress-readout{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.8rem;line-height:1.5}
.skill-progress-heading{margin-bottom:8px}.skill-progress-heading>span{color:#a7f2de}.skill-progress-readout{margin-top:6px;color:var(--muted)}
.skill-progress .bar-fill{box-shadow:0 0 9px #66e0cd66}.skill-progress .bar-track{height:12px}

/* The sanctum grows with the live level; original body and equipment art keep their scale. */
.character-majesty{--majesty-color:#b9d1e9;--majesty-text:#ffcc99;--majesty-edge:#6387b5;--majesty-size:1.28rem;--majesty-light:.08}
:root[data-theme][data-world="planet"] .character-majesty.planet-header{border-color:var(--majesty-edge);background:linear-gradient(140deg,color-mix(in srgb,var(--majesty-edge) 14%,#1c2a42),#18263c);box-shadow:inset 0 1px color-mix(in srgb,var(--majesty-color) 25%,transparent),0 6px 22px #0004}
.character-majesty .planet-panel-summary{position:relative;flex-wrap:wrap}
.character-majesty .planet-panel-title{min-width:150px}
.character-majesty .planet-section-title{flex-wrap:wrap;gap:6px 10px}
.character-majesty .character-level-title{color:var(--majesty-text);font-size:var(--majesty-size);font-weight:900;letter-spacing:.015em;line-height:1.2;overflow-wrap:anywhere;text-shadow:0 2px 3px #0008}
.character-majesty .character-majesty-title{display:block;flex-basis:100%;font-size:.67rem;letter-spacing:.2em;text-transform:uppercase;color:var(--majesty-text);opacity:.8;padding-left:2px}
.character-majesty .majesty-crest{display:block;width:70px;height:70px;color:var(--majesty-color);flex:none}
:root[data-theme][data-world="planet"] .character-majesty .character-power.character-power-display{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px;border-color:var(--majesty-edge);background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--majesty-edge) 20%,transparent),transparent 75%),#1a2940;box-shadow:inset 0 0 0 3px #ffffff03,0 5px 18px #0003}
.character-majesty .character-power-emblem{align-self:center}
.character-majesty .character-power-total{min-width:0}
.character-majesty .character-power-total small{display:block;color:var(--majesty-text);font-size:.65rem;letter-spacing:.12em;line-height:1.5}
.character-majesty .character-power-total small:last-child{letter-spacing:.02em;color:var(--majesty-text);margin-top:3px}
:root[data-theme][data-world="planet"] .character-majesty .character-power-total strong{display:block;font-size:calc(var(--majesty-size) + .35rem);font-weight:900;line-height:1.2;color:var(--majesty-text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-shadow:0 2px 4px #0007}
.character-majesty .character-power-display button{margin:0;font-size:.7rem}
.character-majesty .character-stat-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding-top:12px;border-top:1px solid #9fbad82e}
.character-stat-grid>div{--stat-color:#ffb9b1;min-width:0;padding:10px;border:1px solid color-mix(in srgb,var(--stat-color) 25%,transparent);border-radius:9px;background:linear-gradient(145deg,color-mix(in srgb,var(--stat-color) 7%,transparent),#102137)}
.character-stat-grid>div[data-stat="intelligence"]{--stat-color:#b6d2ff}.character-stat-grid>div[data-stat="endurance"]{--stat-color:#abe6d5}.character-stat-grid>div[data-stat="agility"]{--stat-color:#ffe0a3}
.character-stat-grid dt{display:flex;align-items:center;gap:6px;color:#d7e1ee;font-size:.72rem;font-weight:600;line-height:1.4}
.character-stat-grid dt i{color:var(--stat-color);font-style:normal;font-size:1rem}
.character-stat-grid dd{margin:4px 0 0;color:var(--stat-color);font-size:1.12rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.2}
:root[data-theme][data-world="planet"] .character-majesty .ether-character-layout{border-color:color-mix(in srgb,var(--majesty-edge) 65%,#8fa8cc);background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--majesty-edge) 15%,transparent),transparent 62%),#203147}
:root[data-theme][data-world="planet"] .character-majesty .ether-hero{padding:112px 4px 12px;border-color:color-mix(in srgb,var(--majesty-edge) 70%,transparent);border-radius:90px 90px 14px 14px;background:linear-gradient(180deg,#111e3280,transparent 60%,#101e3380);min-width:0}
.character-majesty .ether-hero .hero-sanctum{position:absolute;inset:7px;z-index:-1;overflow:hidden;border-radius:inherit;padding:0;pointer-events:none;color:var(--majesty-color)}
.hero-sanctum-arch{position:absolute;inset:0;width:100%;height:100%;opacity:.65}
.hero-sanctum-seal{position:absolute;width:100%;height:auto;aspect-ratio:1;left:0;top:42%;transform:translateY(-50%);opacity:calc(.3 + var(--majesty-intensity)*.55)}
.hero-sanctum-light{position:absolute;inset:10% 5% 9%;border-radius:50%;background:radial-gradient(ellipse at 50% 55%,var(--majesty-edge),transparent 65%);opacity:var(--majesty-light)}
.hero-sanctum-floor{position:absolute;left:10%;right:10%;bottom:10%;height:5%;border-radius:50%;border:1px solid var(--majesty-edge);box-shadow:inset 0 0 0 5px #9ecad20a;background:radial-gradient(ellipse,var(--majesty-edge),transparent 75%);opacity:.35}
.hero-sanctum-star{position:absolute;top:32%;font-size:1rem;color:var(--majesty-color);font-style:normal;opacity:.65}.hero-sanctum-star.star-left{left:9%}.hero-sanctum-star.star-right{right:9%;top:65%;font-size:.7rem}
.character-majesty .ether-hero .hero-level-medallion{position:absolute;top:13px;left:4px;right:4px;z-index:3;display:flex;flex-direction:column;align-items:center;padding:0;line-height:1.25;pointer-events:none}
.character-majesty .hero-level-medallion .majesty-crest{width:48px;height:48px;margin-bottom:3px}
.character-majesty .hero-level-medallion b{color:var(--majesty-text);font-size:clamp(.85rem,1.8vw,var(--majesty-size));font-weight:900;text-shadow:0 2px 4px #000a}
.character-majesty .hero-level-medallion small{color:var(--majesty-text);font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;max-width:100%;overflow-wrap:anywhere;margin-top:4px}
.character-majesty .ether-hero .hero-figure{z-index:1}
:root[data-theme][data-world="planet"] .character-majesty .ether-hero .hero-name{width:calc(100% - 10px);border-color:var(--majesty-edge);background:linear-gradient(150deg,#273a50,#15253a);box-shadow:inset 0 1px #ffffff16}
.character-majesty .ether-hero .hero-name strong{font-size:.85rem;overflow-wrap:anywhere;color:#f0f5ff}
.character-majesty .ether-hero .hero-name-level{color:var(--majesty-text);font-weight:800;font-size:.8rem}
.character-majesty .character-rank-progress{padding:12px;border:1px solid color-mix(in srgb,var(--majesty-edge) 45%,transparent);border-radius:10px;background:#12243a70}
.character-majesty .character-rank-progress .bar-track{height:10px;background:#0f1b2e}
.character-majesty .character-rank-progress .bar-fill{background:linear-gradient(90deg,var(--majesty-edge),var(--majesty-color))}
.character-majesty[data-majesty="5"] .hero-sanctum-arch,.character-majesty[data-majesty="6"] .hero-sanctum-arch,.character-majesty[data-majesty="7"] .hero-sanctum-arch{stroke-width:1.5;opacity:.9}
.character-majesty[data-majesty-glow="true"]:not([data-majesty="0"]) .hero-sanctum-light{animation:majesty-breathe 5s ease-in-out infinite alternate}
.character-majesty[data-majesty-glow="true"] .character-level-title,.character-majesty[data-majesty-glow="true"] .character-power-total strong{text-shadow:0 2px 4px #0008,0 0 14px color-mix(in srgb,var(--majesty-text) 35%,transparent)}
.character-majesty[data-majesty-glow="false"] .hero-sanctum-light{display:none}
@keyframes majesty-breathe{from{opacity:var(--majesty-light)}to{opacity:calc(var(--majesty-light) + .08)}}
@media(max-width:580px){
 .character-majesty .planet-panel-meta{font-size:.7rem;max-width:40%}
 :root[data-theme][data-world="planet"] .character-majesty .character-power.character-power-display{grid-template-columns:48px minmax(0,1fr);gap:10px;padding:12px}
 .character-majesty .character-power-emblem .majesty-crest{width:48px;height:48px}
 .character-majesty .character-power-display button{grid-column:1/-1;justify-self:end;min-height:34px}
 .character-majesty .character-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:10px;gap:6px}
 .character-stat-grid>div{padding:8px}.character-stat-grid dd{font-size:1rem}
 :root[data-theme][data-world="planet"] .character-majesty .ether-character-layout{padding:7px;gap:6px;grid-template-columns:minmax(0,1fr) minmax(108px,1.5fr) minmax(0,1fr)}
 :root[data-theme][data-world="planet"] .character-majesty .ether-hero{padding:106px 1px 9px}
 .character-majesty .hero-level-medallion b{font-size:calc(.82rem + var(--majesty-intensity)*.28rem)}
 .character-majesty .ether-hero .hero-name{padding:8px 4px}.character-majesty .ether-hero .hero-name strong{font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){.character-majesty .hero-sanctum-light{animation:none!important}}

/* Translucent map markers reveal the artwork without dimming their numbers. */
:root[data-theme][data-world="planet"] .ether-world-map .ether-map-node:not(.completed):not(.locked){background:#344a6ca6;opacity:1;color:#f6f8ff;text-shadow:0 1px 3px #000c}
:root[data-theme][data-world="planet"] .ether-world-map .ether-map-node.completed{background:#2c4167a6;opacity:1;color:#eef4ff;text-shadow:0 1px 3px #000c}
:root[data-theme][data-world="planet"] .ether-world-map .ether-map-node.locked{background:#25324a99;opacity:1;color:#d5deed;text-shadow:0 1px 3px #000c}
:root[data-theme][data-world="planet"] .ether-world-map .ether-map-node.selected:not(.completed):not(.locked){background:#e1bc77bd;color:#342819;text-shadow:0 1px 2px #fff6;border-color:#ffe9ba}
:root[data-theme][data-world="planet"] .ether-world-map .ether-map-node:hover:not(:disabled){background:#344a6ccc}
:root[data-theme][data-world="planet"] .ether-world-map .ether-map-node.selected:hover:not(:disabled){background:#e1bc77df}
.character-majesty .character-stat-grid>div[data-stat="strength"]{--stat-color:var(--majesty-text)}
.character-majesty .character-stat-grid>div[data-stat="strength"] dt{color:var(--majesty-text)}
.character-majesty .character-rank-progress>.small-note{color:var(--majesty-text)}

/* A compass-led journey card with distinct map, equipment and reward goals. */
:root[data-theme][data-world="planet"] .journey-panel.journey-fold{position:relative;padding:12px;border:1px solid #bba1789c;border-radius:18px;background:radial-gradient(ellipse at 0 0,#52889b26,transparent 60%),linear-gradient(135deg,#263b51f2,#1b293fed);box-shadow:inset 0 1px #f4d4a92a,0 7px 22px #0004}
:root[data-theme][data-world="planet"] .journey-panel.journey-fold>.planet-panel-summary{position:relative;isolation:isolate;min-height:98px;gap:15px;padding:16px;border:1px solid #b7d5e322;border-radius:12px;background:linear-gradient(115deg,#6094ad18,#ffbd7612 70%,#26385270)}
.journey-panel.journey-fold>.planet-panel-summary::after{content:"";position:absolute;right:20px;top:12px;width:90px;height:76px;z-index:-1;pointer-events:none;opacity:.22;background:radial-gradient(circle at 15% 80%,#f6cf97 2px,transparent 3px),radial-gradient(circle at 45% 45%,#a1d7df 2px,transparent 3px),radial-gradient(circle at 85% 15%,#f6cf97 3px,transparent 4px),linear-gradient(135deg,transparent 46%,#a4cedb 47%,transparent 48%)}
.journey-panel.journey-fold .journey-compass{display:grid;place-items:center;flex:none;width:68px;height:68px;border-radius:50%;background:radial-gradient(circle,#e9b57916,transparent 70%)}
.journey-compass>img{display:block;width:64px;height:64px;filter:drop-shadow(0 3px 4px #0005)}
:root[data-theme][data-world="planet"] .journey-panel.journey-fold .eyebrow{color:#f7c28a;letter-spacing:.18em;font-size:.65rem}
.journey-panel.journey-fold .planet-panel-title{min-width:0}
.journey-panel.journey-fold .planet-section-title{font-size:clamp(1.12rem,2.4vw,1.5rem);line-height:1.25;color:#f4f6ff;letter-spacing:-.015em;margin:5px 0 7px;overflow-wrap:anywhere}
.journey-summary-note{display:block;color:#c3d3e4;font-size:.72rem;line-height:1.5}
.journey-summary-note b{color:#ffca90;font-weight:700}
.journey-panel.journey-fold>.planet-panel-summary>.planet-chevron{display:grid;place-items:center;width:28px;height:28px;border:1px solid #dec39a50;border-radius:50%;color:#ffd099;font-size:1rem}
.journey-panel.journey-fold[open]>.planet-panel-summary{border-bottom-color:#e5bd7d66}
.journey-panel.journey-fold .journey-goals{gap:12px;padding:3px;margin-top:14px}
.journey-panel.journey-fold .journey-goal{--goal-color:#ffca90;--goal-edge:#c58e55;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;align-items:stretch;gap:14px;min-width:0;padding:16px;border:1px solid color-mix(in srgb,var(--goal-edge) 55%,transparent);border-radius:12px;background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--goal-edge) 12%,transparent),transparent 70%),#14273ccf;box-shadow:inset 0 2px var(--goal-edge),0 4px 12px #0002}
.journey-panel.journey-fold .journey-goal[data-goal-kind="gear"]{--goal-color:#d8c5ff;--goal-edge:#9880c5}
.journey-panel.journey-fold .journey-goal[data-goal-kind="reward"]{--goal-color:#ace9df;--goal-edge:#639e9d}
.journey-panel.journey-fold .journey-goal>.journey-goal-heading{display:flex;align-items:flex-start;gap:11px;min-width:0}
.journey-goal-icon{display:grid;place-items:center;flex:none;width:39px;height:39px;border:1px solid color-mix(in srgb,var(--goal-color) 30%,transparent);border-radius:10px;background:color-mix(in srgb,var(--goal-color) 8%,transparent)}
.journey-goal-icon>.card-header-icon{width:27px;height:27px;margin:0}
.journey-goal-copy{display:grid;gap:6px;min-width:0}
.journey-goal-category{color:var(--goal-color);font-size:.59rem;letter-spacing:.1em;font-weight:800;line-height:1.4}
.journey-goal-copy strong{color:#eff4ff;font-size:.95rem;line-height:1.4;overflow-wrap:anywhere}
:root[data-theme][data-world="planet"] .journey-panel.journey-fold .journey-goal-copy small{color:#bfcfe0;font-size:.77rem;line-height:1.55}
.journey-panel.journey-fold .journey-goal>.journey-goal-meter{display:block;align-self:end}
.journey-goal-values{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#c5d6e7;font-size:.72rem;font-variant-numeric:tabular-nums;margin-bottom:7px}
.journey-goal-values b{color:var(--goal-color);font-size:.77rem}
.journey-panel.journey-fold .journey-goal progress{display:block;appearance:none;border:0;border-radius:99px;width:100%;height:8px;background:#0c1b2e;overflow:hidden;accent-color:var(--goal-color)}
.journey-goal progress::-webkit-progress-bar{background:#0c1b2e;border-radius:99px}
.journey-goal progress::-webkit-progress-value{background:linear-gradient(90deg,var(--goal-edge),var(--goal-color));border-radius:99px}
.journey-goal progress::-moz-progress-bar{background:linear-gradient(90deg,var(--goal-edge),var(--goal-color));border-radius:99px}
:root[data-theme][data-world="planet"] .journey-panel.journey-fold .journey-goal>.journey-goal-link{display:flex;justify-content:space-between;align-items:center;grid-column:auto;grid-row:auto;gap:10px;width:100%;margin-top:auto;padding:10px 12px;min-height:40px;border-color:color-mix(in srgb,var(--goal-color) 40%,transparent);background:color-mix(in srgb,var(--goal-edge) 17%,#192b40);color:var(--goal-color);font-size:.76rem}
:root[data-theme][data-world="planet"] .journey-panel.journey-fold .journey-goal>.journey-goal-link:hover{border-color:var(--goal-color);background:color-mix(in srgb,var(--goal-edge) 30%,#192b40)}
@media(min-width:680px) and (max-width:899px){.journey-panel.journey-fold .journey-goals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){
 :root[data-theme][data-world="planet"] .journey-panel.journey-fold{padding:8px}
 :root[data-theme][data-world="planet"] .journey-panel.journey-fold>.planet-panel-summary{padding:13px 10px;gap:10px}
 .journey-panel.journey-fold .journey-compass{width:49px;height:49px}.journey-compass>img{width:49px;height:49px}
 .journey-panel.journey-fold .planet-section-title{font-size:1.1rem}.journey-summary-note{font-size:.64rem}
 .journey-panel.journey-fold>.planet-panel-summary>.planet-chevron{width:24px;height:24px;flex:none}
 .journey-panel.journey-fold .journey-goal{padding:13px}.journey-panel.journey-fold .journey-goals{padding:2px;margin-top:12px}
}

/* Illustrated interiors for the six Eter tools. Static SVG art stays light on phones. */
#planet-content .planet-tool-panel{--panel-accent:#9de2cc;--panel-wash:#24454a;min-width:0;border-top:2px solid var(--panel-accent)}
#planet-content [data-planet-section="growth"]{--panel-accent:#d7baff;--panel-wash:#443458}
#planet-content [data-planet-section="market"]{--panel-accent:#f2d092;--panel-wash:#51432f}
#planet-content [data-planet-section="dungeon"]{--panel-accent:#aacbfa;--panel-wash:#2e4360}
#planet-content [data-planet-section="challenges"]{--panel-accent:#f3b7ca;--panel-wash:#503344}
#planet-content [data-planet-section="talents"]{--panel-accent:#f5bb8c;--panel-wash:#513a31}
#planet-content .planet-tool-heading{position:relative;isolation:isolate;min-height:156px;padding:20px;margin:0 0 18px;border:1px solid color-mix(in srgb,var(--panel-accent) 35%,transparent);border-radius:14px;overflow:hidden;background:#122036;align-items:center}
#planet-content .planet-tool-scene{position:absolute;z-index:-2;right:0;top:0;width:58%;height:100%;object-fit:cover;object-position:center;opacity:.95;pointer-events:none}
#planet-content .planet-tool-heading::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#142036 34%,#142036d9 52%,#14203600 82%);pointer-events:none}
#planet-content .planet-tool-heading-copy{min-width:0;max-width:65%}
#planet-content .planet-tool-heading .eyebrow{color:var(--panel-accent)}
#planet-content .planet-tool-heading h2{font-size:clamp(1.22rem,2.4vw,1.65rem);line-height:1.25;flex-wrap:wrap;gap:8px;margin:7px 0 9px;overflow-wrap:anywhere}
#planet-content .planet-tool-heading .small-note{margin:0;color:#dae1f1;line-height:1.5;font-size:.82rem}
#planet-content .planet-tool-heading>button{align-self:flex-start;z-index:1;background:#122036e8;border-color:#afbbcf66;color:#f0f3fc;padding:8px 12px}
#planet-content .planet-tool-panel .planet-panel-body{min-width:0}
#planet-content .planet-tool-panel .section-guide-replay{margin-bottom:12px;color:var(--panel-accent);border-color:color-mix(in srgb,var(--panel-accent) 40%,transparent)}
#planet-content .resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#planet-content .resource-card{--resource-accent:#f5a1b0;--resource-wash:#3f2d40;min-width:0;padding:16px;border-radius:14px}
#planet-content .resource-card[data-resource="mana"]{--resource-accent:#c6afff;--resource-wash:#352e50}
#planet-content .resource-card[data-resource="energy"]{--resource-accent:#9ae8ca;--resource-wash:#234440}
#planet-content .resource-card:not(.resource-critical){background:linear-gradient(150deg,var(--resource-wash),#18273b);border-color:color-mix(in srgb,var(--resource-accent) 48%,transparent);box-shadow:0 5px 14px #080f2033}
#planet-content .resource-card-heading{display:flex;align-items:center;gap:12px;margin-bottom:15px;min-width:0}
#planet-content .resource-card-heading img{width:64px;height:64px;flex:none}
#planet-content .resource-card-heading>span{font-size:.97rem;font-weight:800;color:var(--resource-accent);line-height:1.3}
#planet-content .resource-card-heading small{display:block;font-size:.69rem;font-weight:500;color:#c2cce0;margin-top:5px}
#planet-content .resource-card>strong{font-size:clamp(1.3rem,2.6vw,1.8rem);line-height:1.35;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:#f5f7ff;margin-bottom:14px}
#planet-content .resource-card>strong small{display:block;margin-top:3px;font-size:.8rem;color:#bdc8dc}
#planet-content .resource-card .bar-track{height:10px;background:#0c172bc9;border:1px solid #ffffff18}
#planet-content .resource-card .bar-fill{background:linear-gradient(90deg,var(--bar-color),var(--resource-accent))}
#planet-content .resource-card.resource-critical .bar-fill{background:#f26e87}
#planet-content .resource-card .small-button{min-height:44px;margin-top:14px;line-height:1.4;white-space:normal;background:#132237;border-color:color-mix(in srgb,var(--resource-accent) 50%,transparent);color:var(--resource-accent)}
#planet-content .resource-card .small-button:focus-visible{outline-color:var(--resource-accent)}
#planet-content .resource-card.resource-critical .resource-card-heading>span{color:#ffd3dd}
#planet-content .growth-card{min-width:0;border-radius:13px;background:linear-gradient(145deg,#3c3152,#1c2b41);padding:14px}
#planet-content .growth-card-heading{display:flex;gap:9px;align-items:center;margin-bottom:12px}
#planet-content .growth-card-heading .card-header-icon{width:34px;height:34px;flex:none}
#planet-content .growth-card-heading>span{font-weight:700;font-size:.86rem;color:#e9d9ff}
#planet-content .growth-card>strong{color:#f1d6ae;font-size:1.6rem;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#planet-content .growth-card>small{line-height:1.6;color:#c2cbe0}
#planet-content .planet-tool-panel .alchemy-card{border-radius:14px;background:linear-gradient(145deg,#3b3150,#182a40);border-color:#ae91d666;padding:16px}
#planet-content .planet-tool-panel .alchemy-heading{gap:14px}
#planet-content .planet-tool-panel .alchemy-art{border-radius:16px;background-color:#0d192c55}
#planet-content .planet-tool-panel .alchemy-purchase{border-color:#b39ada40}
#planet-content [data-planet-section="market"] :is(.equipment-card,.potion-card,.forge-potion-card){border-radius:13px;min-width:0;background:linear-gradient(145deg,#383340,#18283d);border-color:#cab48455;box-shadow:0 4px 12px #07101d44}
#planet-content [data-planet-section="market"] .equipment-card>.ether-item-art{background:radial-gradient(ellipse,#d3b67b26,transparent 70%);object-fit:contain;padding:4px}
#planet-content [data-planet-section="market"] .potion-art{background:radial-gradient(ellipse,#f4dbb72b,transparent 72%);object-fit:contain}
#planet-content [data-planet-section="market"] :is(.potion-market-title,.gear-market-title){color:#f2d092;padding:8px 0;border-bottom:1px solid #e3c18f40;margin-bottom:12px}
#planet-content .planet-tool-panel .progression-panel{background:linear-gradient(145deg,var(--panel-wash),#1b293e);border-color:color-mix(in srgb,var(--panel-accent) 35%,transparent);border-radius:14px}
#planet-content .dungeon-panel h3{color:#d6e6ff;font-size:1.2rem}
#planet-content .dungeon-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}
#planet-content .dungeon-steps>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:16px 8px;min-width:0;background:#14243be8;border:1px solid #99bdf25c;border-radius:12px;color:#d5e5ff}
#planet-content .dungeon-steps .card-header-icon{width:38px;height:38px}
#planet-content .dungeon-steps b{font-size:.8rem}
#planet-content .challenge-emblem{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;border:1px solid #e7aeca66;background:#17273b;margin-bottom:10px}
#planet-content .challenge-emblem .card-header-icon{width:40px;height:40px}
#planet-content .challenge-grid h3{color:#f5cbda;font-size:1.16rem;margin:3px 0 8px}
#planet-content .challenge-grid .primary-button{width:100%;min-height:44px}
#planet-content .talent-path-tabs{gap:10px}
#planet-content .talent-path-tabs>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px 8px;min-height:108px;white-space:normal;border-color:#bc917060;background:#14243b;color:#f1d5bd}
#planet-content .talent-path-tabs .card-header-icon{width:42px;height:42px}
#planet-content .talent-path-tabs>button[aria-pressed="true"]{background:linear-gradient(145deg,#735036,#3b2d29);border-color:#f3bd86;color:#ffe1b9;box-shadow:inset 0 -3px #f3bd86}
#planet-content [data-planet-section="talents"] :is(.talent-grid>article,.attack-skill-card){border-radius:12px;background:linear-gradient(145deg,#352d36,#14243b);border-color:#e4ac7944;padding:14px}
#planet-content [data-planet-section="talents"] .attack-skill-card strong{color:#f5cca8}
#planet-content .planet-tool-panel :is(button,p,strong,small){overflow-wrap:anywhere}
@media(max-width:700px){
 #planet-content .planet-tool-panel{padding:14px}
 #planet-content .planet-tool-heading{min-height:0;padding:126px 14px 16px;align-items:flex-start;gap:8px}
 #planet-content .planet-tool-scene{width:100%;height:116px;object-fit:cover;object-position:center 52%}
 #planet-content .planet-tool-heading::after{background:linear-gradient(0deg,#142036 0%,#142036 38%,#14203600 70%)}
 #planet-content .planet-tool-heading-copy{max-width:none;flex:1}
 #planet-content .planet-tool-heading>button{font-size:.72rem;padding:7px 9px}
 #planet-content .planet-tool-heading h2{font-size:1.2rem}
 #planet-content .resource-grid{grid-template-columns:1fr}
 #planet-content .resource-card{padding:14px}
 #planet-content .resource-card-heading{margin-bottom:8px;gap:14px}
 #planet-content .resource-card-heading img{width:56px;height:56px}
 #planet-content .resource-card>strong small{display:inline;margin-left:4px}
 #planet-content .growth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #planet-content .growth-card{padding:12px}
 #planet-content .growth-card-heading{gap:6px;flex-wrap:wrap}
 #planet-content .planet-tool-panel .stat-shop{grid-template-columns:1fr}
 #planet-content .planet-tool-panel .alchemy-heading{gap:12px}
 #planet-content .challenge-grid{grid-template-columns:1fr}
 #planet-content .dungeon-steps{gap:6px}
 #planet-content .dungeon-steps>span{padding:12px 4px}
 #planet-content .dungeon-steps b{font-size:.7rem}
}

/* Incoming friendship requests stay above player search and the friend list. */
#friends-requests .friend-incoming{margin:0 0 18px;padding:16px;border:1px solid #b7945b;border-radius:14px;background:linear-gradient(135deg,#493c2b88,#19263bdd)}
#friends-requests .friend-incoming h3{color:#ffe0a6;font-size:1.06rem}
#friends-requests .friend-card{background:#18273dc9;border-color:#d7b57366}
#friends-requests .friend-empty{padding:5px 0;color:#cbd5e6}
#friends-requests .friend-actions button{min-height:44px}
@media(max-width:600px){#friends-requests .friend-incoming{padding:12px}}

/* Earth: warm green scenery, clear life resources and illustrated investments. */
#earth-view{--earth-gold:#efd19a;--earth-green:#a4dfc0;--earth-line:#a9c3b44a}
#earth-view :is(.earth-fold-card,.shop-section){border-color:var(--earth-line);border-radius:18px;background:linear-gradient(135deg,#28443caa,#172c33f0 52%,#18283ded);box-shadow:0 7px 22px #030b172e}
#earth-view .earth-panel-summary{gap:12px;padding-bottom:4px}
#earth-view .earth-panel-summary .eyebrow{color:var(--earth-gold)}
#earth-view .earth-panel-summary h2{color:#f4eedf;line-height:1.3}
#earth-view .earth-panel-meta{color:#bccfc9;line-height:1.45;overflow-wrap:anywhere}
#earth-view .earth-chevron{display:grid;place-items:center;width:28px;height:28px;border:1px solid #bfd8cc40;border-radius:50%;background:#ffffff06;color:#e2d3b3;flex:none}
#earth-view .earth-savings-scene{position:relative;isolation:isolate;height:152px;border:1px solid #d0c28e66;border-radius:14px;overflow:hidden;background:#203e35;margin:2px 0 20px}
#earth-view .earth-savings-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
#earth-view .earth-savings-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#102a24bf,transparent 78%);z-index:0;pointer-events:none}
#earth-view .earth-savings-scene>div{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;gap:9px;padding:18px 20px;max-width:65%}
#earth-view .earth-savings-scene small{color:#eacb8e;font-size:.59rem;letter-spacing:.12em;font-weight:800;line-height:1.45}
#earth-view .earth-savings-scene strong{font-size:clamp(1.15rem,2.2vw,1.5rem);color:#fff0cf;line-height:1.25;text-shadow:0 2px 10px #071710}
#earth-view .piggy-panel .piggy-summary .wallet-line strong{font-variant-numeric:tabular-nums;color:#ffe0a3;font-size:clamp(.95rem,2vw,1.3rem);overflow-wrap:anywhere;max-width:210px}
#earth-view .piggy-button{background:radial-gradient(circle at 35% 20%,#ffefb2,#efc165 65%,#dba850);border-color:#ffe8aa;box-shadow:0 5px 0 #9f742f,0 10px 20px #030a153a;width:min(100%,14rem)}
#earth-view .piggy-button .clover-icon{display:block;width:94px;height:94px;line-height:1}
#earth-view .piggy-button .clover-icon img{width:100%;height:100%;object-fit:contain;pointer-events:none}
#earth-view .piggy-button:active{box-shadow:0 2px 0 #9f742f,0 5px 12px #030a153a}
#earth-view .click-level{padding:12px;border-radius:12px;background:#122d2aaa;border:1px solid #a9d6bc40}
#earth-view .click-level strong{color:#eed09a}
#earth-view :is(.auto-click-box,.deposit-box,.dice-box){border-radius:14px;border-color:#a5cabb55;box-shadow:none;background:linear-gradient(145deg,#244039cc,#142c32e0)}
#earth-view .auto-click-box strong,#earth-view .deposit-heading h3{color:#d6eee0}
#earth-view .auto-click-box>button{min-height:44px}
#earth-view .deposit-all-button{background:linear-gradient(135deg,#bce8ca,#8ccdb3);color:#163e31;border-color:#d0f1d9;min-height:50px;white-space:normal;box-shadow:0 3px 10px #00000020}
#earth-view .deposit-all-button strong{white-space:normal;overflow-wrap:anywhere;text-align:right}
#earth-view .vitals-panel{background:linear-gradient(135deg,#254337ef,#142c32f5);border-color:#9fc3ac77;padding:12px}
#earth-view .vitals-panel .vitals-grid{gap:7px}
#earth-view .vitals-panel button.vital-card{padding:10px 8px;border:1px solid #b3d0c32b;border-radius:11px;background:#102b30b3;min-width:0}
#earth-view .vitals-panel .vital-card+.vital-card{border-left:1px solid #b3d0c32b}
#earth-view .vitals-panel .vital-name{display:flex;align-items:center;gap:5px;line-height:1.3;font-size:.81rem;white-space:normal}
#earth-view .vital-name .earth-vital-art{width:25px;height:25px;flex:none;pointer-events:none}
#earth-view .vital-product-cue{margin-left:auto;color:#cfdfd4}
#earth-view .vitals-panel .vital-value{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;color:#f3eee0}
#earth-view .vitals-panel .bar-track{height:7px;background:#061923;border:1px solid #ffffff12}
#earth-view .vitals-panel .vital-note{font-size:.69rem;color:#bdd4c9;line-height:1.4}
#earth-view .vitals-panel button.vital-card.selected:not(.low):not(.urgent){background:#25443a;border-color:#dfc58c;outline:1px solid #dfc58c;outline-offset:-1px}
#earth-view .vitals-panel button.vital-card.low{background:#472b3a;border-color:#df8e9c}
#earth-view .vitals-panel button.vital-card.urgent{background:#642936;border-color:#ffc5cb;box-shadow:inset 0 0 0 1px #ffc5cb}
#earth-view .vitals-panel button.vital-card.urgent .vital-note{color:#ffe1e4;font-weight:800}
#earth-view .vitals-panel button.vital-card.recent:not(.low):not(.urgent){background:#285143;border-color:#a4ebc0}
#earth-view .vitals-panel button.vital-card:focus-visible{outline:3px solid #bdf0d1;outline-offset:2px}
#earth-view .need-column{border-radius:14px;border-color:var(--need-accent);background:linear-gradient(150deg,#1e3837,#16283b);overflow:hidden}
#earth-view .need-column-heading{padding:14px!important;gap:12px;border-color:#ffffff18}
#earth-view .need-column-heading>.earth-vital-art{width:56px;height:56px;flex:none}
#earth-view .need-column-heading>div{min-width:0;flex:1}
#earth-view .need-column-heading h3{font-size:1.08rem;line-height:1.4;margin-bottom:5px}
#earth-view .need-column-heading .product-chevron{color:var(--need-accent);margin-left:auto}
#earth-view .need-list{display:grid;gap:9px;padding:12px!important}
#earth-view .need-item{padding:12px;border:1px solid #b3cdb833;border-radius:11px;background:#102431b3;gap:12px;min-width:0}
#earth-view .need-item>div{min-width:0}
#earth-view .need-item strong{display:block;color:#f5e9d3;font-size:.9rem;line-height:1.4}
#earth-view .need-item small{display:block;color:#bfd0ca;font-size:.73rem;line-height:1.5;margin-top:5px}
#earth-view .need-quality-label{display:block;color:var(--need-accent);font-size:.56rem;font-weight:800;letter-spacing:.11em;margin-bottom:4px}
#earth-view .need-item button{min-height:44px;color:#f4d8a4;background:#354030;border-color:#cdb68277;font-size:.81rem;white-space:normal;overflow-wrap:anywhere}
#earth-view .need-free-item{border-style:dashed;background:#1c363366}
#earth-view .need-item button.free{color:#bde6cf;border-color:#8ebba966;background:#243e36}
#earth-view .need-item button.unaffordable{color:#c4b9bb;border-color:#836c70;background:#302e34}
#earth-view #assets-section{background:linear-gradient(150deg,#3a3e2cdb,#1b3032f0 45%,#18283ded);border-color:#dcc18c69}
#earth-view .asset-card{min-width:0;border-radius:14px;background:linear-gradient(135deg,#2f4133,#172b38);border-color:#c7bc8d45;overflow:hidden;box-shadow:0 4px 12px #06132128}
#earth-view .illustrated-property>summary{padding:12px;gap:12px}
#earth-view .asset-title h3{color:#f3e7c9;font-size:1.05rem;line-height:1.35}
#earth-view .asset-title small{display:inline-block;line-height:1.4;padding:4px 7px;border-radius:7px;border:1px solid #b9d2bd33;background:#ffffff05;color:#c8dfcb;font-size:.74rem}
#earth-view .illustrated-property .asset-icon{width:108px;height:108px;background:radial-gradient(ellipse at center,#315049,#122832 76%);border:1px solid #ccbf9166;border-radius:13px}
#earth-view .illustrated-property .asset-icon .property-illustration{filter:none;object-fit:contain}
#earth-view .asset-fold-meta{color:#efd19a;font-variant-numeric:tabular-nums;line-height:1.5;overflow-wrap:anywhere}
#earth-view .asset-fold-body{margin-top:0;padding:14px!important;background:#10273380;border-top:1px solid #d8c58c35}
#earth-view .asset-bottom{gap:12px}
#earth-view .asset-bottom>strong{color:#f0d49d;overflow-wrap:anywhere}
#earth-view .asset-actions{gap:7px}
#earth-view .asset-actions>button{min-height:44px;white-space:normal;overflow-wrap:anywhere;background:#243a37;border-color:#abccaf55;color:#cbe5d1}
#earth-view .asset-actions>button.buy{background:#4a452f;border-color:#dfc18a77;color:#ffe1a4}
#earth-view .asset-detail{color:#bed0c9;line-height:1.65}
#earth-view .asset-income-milestones>span{border-radius:8px;background:#172b32;border-color:#9ab6a93a}
#earth-view .asset-income-milestones>span.earned{background:#35513b;color:#cdecc5;border-color:#a9cf8c}
#earth-view .property-prestige{border-radius:14px;border-color:#c5b57d55;background:linear-gradient(135deg,#3f422b80,#142c3580)}
#earth-view .property-prestige>div>strong,#earth-view .property-economy>strong{color:#f4d89d}
#earth-view .property-tour-list li[aria-current]{background:#42603e;color:#e8f2cc;border-color:#c5d3a477}
#earth-view :is(.owned-row,.event-row){padding:11px 12px;border-radius:9px;background:#112b32a1;border-bottom:1px solid #bad4b925;margin-bottom:7px;gap:12px}
#earth-view .owned-row strong{color:#efd19a}
#earth-view .event-row>span{color:#d8e6db}
#earth-view .event-row time{color:#a6c2b6}
#earth-view .starter-mission{border-color:#cbb78477;background:linear-gradient(135deg,#374c35,#1a3037);border-radius:14px}
@media(max-width:600px){
 #earth-view .earth-savings-scene{height:136px;margin-bottom:18px}
 #earth-view .earth-savings-scene>div{padding:14px;max-width:62%}
 #earth-view .earth-savings-scene>img{object-position:60% center}
 #earth-view .earth-savings-scene strong{font-size:1.1rem}
 #earth-view .earth-savings-scene small{font-size:.51rem;letter-spacing:.07em}
 #earth-view .vitals-panel{padding:9px}
 #earth-view .vitals-panel .vitals-grid{gap:4px}
 #earth-view .vitals-panel button.vital-card{padding:7px 5px}
 #earth-view .vitals-panel .vital-name{font-size:.67rem;gap:3px;flex-wrap:wrap}
 #earth-view .vital-name .earth-vital-art{width:20px;height:20px}
 #earth-view .vitals-panel .vital-value{font-size:1.12rem}
 #earth-view .vitals-panel .vital-note{font-size:.6rem;line-height:1.3}
 #earth-view .illustrated-property .asset-icon{width:86px;height:86px}
 #earth-view .illustrated-property .asset-title{gap:11px}
 #earth-view .illustrated-property .asset-title h3{font-size:.95rem}
 #earth-view .illustrated-property .asset-fold-meta{margin-left:97px;font-size:.76rem}
 #earth-view .asset-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
 #earth-view .asset-actions>button{font-size:.73rem;padding:8px 5px}
 #earth-view .asset-bottom{flex-wrap:wrap}
 #earth-view .need-column-heading>.earth-vital-art{width:48px;height:48px}
 #earth-view .need-item{padding:10px;gap:8px}
 #earth-view .piggy-summary{flex-wrap:wrap;gap:6px}
 #earth-view .piggy-summary .wallet-line{max-width:100%}
}


/* Desktop backgrounds: detailed 16:9 scenes, high quality WebP delivery.
   Large variants are delivery upscales of regenerated artwork, not native 4K.
   Keep phone and tablet imagery on the existing lightweight assets. */
@media (min-width:1024px){
 :root[data-world]{--desktop-background:url("./backgrounds/earth-desktop-v364.webp")}
 :root[data-world="planet"]{--desktop-background:url("./backgrounds/ether-desktop-v364.webp")}
 :root[data-world] body::before{
  background-image:linear-gradient(180deg,#07121d0d,#07121d55),var(--desktop-background);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:1;
  filter:none;
 }
 :root[data-world="planet"] body::before{background-image:linear-gradient(180deg,#11151c33,#11151c88),var(--desktop-background)}
 :root[data-world="earth"] .scene,:root[data-world="planet"] .scene{
  background-image:var(--desktop-background);
  background-size:cover;
  background-position:center 54%;
 }
}
@media (min-width:1921px), (min-width:1024px) and (min-resolution:1.5dppx){
 :root[data-world]{--desktop-background:url("./backgrounds/earth-desktop-large-v364.webp")}
 :root[data-world="planet"]{--desktop-background:url("./backgrounds/ether-desktop-large-v364.webp")}
}

/* Family choices are previewable before creation, including modern appearances. */
.family-choice .family-type-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:0;margin-top:10px;background:none;border:0}
.family-type-previews img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:6px}
.family-setup-portrait{position:relative;cursor:pointer;min-width:0}
.family-setup-portrait input{position:absolute;opacity:0;width:1px;height:1px}
.family-setup-portrait>span{display:block;padding:5px;border:2px solid var(--line);border-radius:13px;background:var(--surface)}
.family-setup-portrait img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:8px}
.family-setup-portrait b{display:block;text-align:center;padding:8px 2px;font-size:.8rem}
.family-setup-portrait input:checked+span{border-color:var(--accent);box-shadow:0 0 0 2px #f3ba6233}
.family-setup-portrait input:focus-visible+span{outline:3px solid var(--cyan);outline-offset:3px}
@media(min-width:1101px){
 #need-section{height:auto!important;max-height:none!important;overflow:visible!important}
 #need-section::details-content{height:auto!important;max-height:none!important;overflow:visible!important}
 #need-section .earth-panel-body,#need-section .need-shop{height:auto!important;max-height:none!important;overflow:visible!important}
}
/* The shared encounter stays on the map until its server-confirmed defeat. */
.map-mystic{position:absolute;left:47%;top:39%;z-index:4;width:clamp(92px,15%,148px);padding:0;background:none;border:0;color:#fff1c6;filter:drop-shadow(0 0 14px var(--mystic-color));transform:translate(-50%,-50%)}
.map-mystic img{display:block;width:100%;aspect-ratio:1;object-fit:contain;animation:mystic-hover 3s ease-in-out infinite}
.map-mystic>span{display:block;padding:5px 8px;border:1px solid #f5d992;border-radius:10px;background:#170e30ed;font-size:.75rem;font-weight:800;box-shadow:0 0 20px #c293ea66}
.map-mystic small{display:block;color:#e5b8ff;font-size:.6rem;letter-spacing:.18em}
.mystic-map-status{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:12px 0;padding:16px;border:1px solid #a784c8;border-radius:13px;background:radial-gradient(ellipse at 90% 0,#743b7050,transparent 70%),#1c1730}
.mystic-map-status>div:first-child{flex:1 1 240px}.mystic-map-status strong{display:block;margin:6px 0}.mystic-map-status p{font-size:.8rem;margin:4px 0;color:#d1c9e5}.mystic-map-status small{font-size:.75rem;color:#e7d9fd}
.mystic-relic-preview{display:flex;align-items:center;gap:8px;max-width:230px}.mystic-relic-preview img{width:80px;height:80px;object-fit:contain;filter:drop-shadow(0 0 10px #daa3ff66)}
.mystic-overlay{position:fixed;inset:0;z-index:160;background:#030410ed;overflow-y:auto;padding:20px;backdrop-filter:blur(10px)}.mystic-overlay[hidden]{display:none}
.mystic-dialog{max-width:1050px;margin:auto;border:1px solid #d6b470;border-radius:20px;background:#10152b;box-shadow:0 0 65px #9f64bb44;overflow:hidden}
.mystic-dialog header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 25px;background:linear-gradient(100deg,#483358,#1b2338)}.mystic-dialog h2{margin-top:7px;font-size:clamp(1.5rem,4vw,2.1rem)}
.mystic-arena{position:relative;display:grid;grid-template-columns:1fr 36px 1fr;align-items:end;padding:18px 32px 0;min-height:360px;background:radial-gradient(ellipse at 73% 60%,#a879bd45,transparent 50%),linear-gradient(#070b2388,#060c1c77),url('./evren.webp') center/cover;overflow:hidden}
.mystic-fighter{position:relative;min-width:0;display:flex;align-items:center;flex-direction:column}.mystic-health{align-self:stretch;display:grid;gap:5px;text-align:center;padding:8px 12px;border-radius:10px;background:#080c25c9;z-index:1}.mystic-health strong{font-size:.85rem}.mystic-health progress{width:100%;height:12px;accent-color:#81e7d4}.mystic-health.enemy progress{accent-color:#eeb264}.mystic-health span{font-size:.72rem;color:#d7d9eb}
.mystic-hero-art{position:relative;height:320px;width:160px;max-width:100%;display:flex;justify-content:center;align-items:flex-end}.mystic-hero-art>*{width:100%;height:100%;max-height:320px}.mystic-enemy-art{height:320px;width:100%;object-fit:contain;filter:drop-shadow(0 0 20px var(--mystic-color));animation:mystic-hover 4s ease-in-out infinite}
.mystic-versus{align-self:center;text-align:center;font-size:2rem;color:#ffd577}.mystic-damage{position:absolute;top:42%;right:15%;font-size:clamp(1.2rem,3vw,2rem);color:#fff2b9;text-shadow:0 2px 4px #200c00,0 0 12px #eea345}
.mystic-combat-content{padding:18px 25px}.mystic-turn{font-weight:800;color:#f4dfa4}.mystic-error{width:100%;color:#ffbbbb!important;font-size:.85rem;margin:7px 0}
.mystic-reward{display:flex;align-items:center;gap:16px;padding:12px;border:1px solid #685085;border-radius:13px;background:linear-gradient(110deg,#302444,#121b32);margin-bottom:16px}.mystic-reward>img{width:100px;height:100px;object-fit:contain;filter:drop-shadow(0 0 10px #d3a4ff88)}.mystic-reward>div{flex:1;display:grid;gap:5px;min-width:0}.mystic-reward strong{color:#f4ddff}.mystic-reward span:not(.eyebrow),.mystic-reward small{font-size:.78rem;color:#d8cde8}.mystic-delivered{font-size:.85rem;color:#9ce5ba!important}
.mystic-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:15px 0}.mystic-actions button{padding:12px 8px;font-size:.86rem}.mystic-actions button:only-child{grid-column:1/-1}
@keyframes mystic-hover{50%{transform:translateY(-6px)}}
@media(max-width:600px){.mystic-overlay{padding:8px}.mystic-dialog header,.mystic-combat-content{padding:15px}.mystic-arena{grid-template-columns:1fr 15px 1fr;padding:12px 9px 0;min-height:290px}.mystic-hero-art,.mystic-enemy-art{height:230px}.mystic-hero-art{width:115px}.mystic-health{padding:7px 4px}.mystic-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.mystic-reward{gap:7px;flex-wrap:wrap}.mystic-reward>img{width:75px;height:75px}.mystic-reward>button{width:100%}}
@media(prefers-reduced-motion:reduce){.map-mystic img,.mystic-enemy-art{animation:none}}
.world-announcement[data-kind="mystic"]{z-index:220;top:22px;max-width:min(760px,calc(100vw - 28px));width:max-content;padding:22px 32px;border:2px solid #f9dd9c;border-radius:18px;background:radial-gradient(ellipse at 50% 0,#986245aa,transparent 70%),linear-gradient(135deg,#422656,#1a183c 60%,#402a42);color:#fff3d0;font-size:clamp(1rem,2.3vw,1.3rem);font-weight:800;line-height:1.5;text-align:center;box-shadow:0 0 0 5px #eed69b22,0 0 55px #c593e777,0 20px 80px #000a;text-shadow:0 2px 7px #0008;overflow-wrap:anywhere;pointer-events:none}
.world-victory-title{display:block;margin-bottom:7px;color:#ffdc8f;font-size:.72rem;letter-spacing:.26em}.world-confetti-layer{position:fixed;inset:0;z-index:221;pointer-events:none;overflow:hidden}.world-confetti-layer i{position:absolute;left:var(--x);top:-25px;width:9px;height:17px;background:var(--color);box-shadow:0 0 6px #fff7;animation:world-confetti-fall var(--duration) var(--delay) cubic-bezier(.16,.58,.6,.96) both}.world-confetti-layer i:nth-child(3n){border-radius:50%;width:9px;height:9px}.world-confetti-layer i:nth-child(4n){width:5px;height:23px}
@keyframes world-confetti-fall{0%{transform:translateY(-5vh) rotate(0);opacity:1}85%{opacity:1}100%{transform:translate(var(--drift),110vh) rotate(var(--spin));opacity:0}}
@media(prefers-reduced-motion:reduce){.world-confetti-layer{display:none}}

/* Explicit equipment toggles keep menus visible above painted glow slots. */
#planet-content .ether-character-layout .gear-slot-summary{appearance:none;width:100%;min-height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;box-shadow:none;transform:none}
#planet-content .ether-character-layout .gear-slot-actions[hidden]{display:none!important}

/* The full equipped card is one stable tap area, including its heading. */
#planet-content .ether-character-layout .ether-gear-slot[data-gear-slot]:has(.gear-slot-summary){cursor:pointer}
#planet-content .ether-character-layout .gear-slot-detail{flex:1;display:flex;flex-direction:column;justify-content:center}
#planet-content .ether-character-layout .gear-slot-summary{flex:1;align-content:center;gap:7px;touch-action:manipulation}
#planet-content .ether-character-layout .gear-slot-label{font-size:.875rem;font-weight:700}

/* Retain automatic scene sizing while using the restored 354 CSS renderer. */
.auto-battle-visual{max-width:820px;margin:12px auto}.auto-battle-visual .battle-stage{height:clamp(230px,35vw,330px)}
/* The complete 354 drawing grows around its soles: body, fingers, masks and
   equipment share one transform, including every attack/defense frame. */
.ether-hero .hero-figure{aspect-ratio:1/2.32;flex-shrink:0}
.ether-hero .hero-figure .hero-showcase{inset:auto 0 0;height:calc(100% / 1.16);aspect-ratio:1/2;scale:.96 1.16;transform-origin:50% 95.6%}
.battle-scene[data-renderer="v354"] .combat-character{scale:.96 1.16;transform-origin:50% var(--character-ground,95.6%)}
.battle-scene[data-renderer="v354"] .battle-hero .combat-character{--character-ground:var(--hero-ground,95.6%)}
.battle-scene[data-renderer="v354"] .arena-opponent .combat-character{--character-ground:var(--enemy-ground,95.6%)}
.mystic-hero-art{height:371.2px}
.mystic-hero-art .hero-showcase{inset:auto 0 0;height:calc(100% / 1.16);scale:.96 1.16;transform-origin:50% 95.6%}
@media(max-width:600px){.mystic-hero-art{height:266.8px}}
/* Text spacing must not shift nested body, mask and weapon anchor layers. */
.ether-hero .hero-figure .combat-character span{margin:0;padding:0;line-height:normal}
/* Add only the measured raised-weapon space. The camera's original fighting
   plane retains every percentage-based character, impact and projectile anchor. */
.auto-battle-visual .battle-scene[data-renderer="v354"]{--combat-stage-height:clamp(230px,35vw,330px)}
.battle-scene[data-renderer="v354"] .battle-stage.cinema-viewport{height:calc(var(--combat-stage-height) * (1 + var(--battle-headroom,0)))}
.battle-scene[data-renderer="v354"] .battle-film-camera{inset:auto 0 0;height:var(--combat-stage-height);overflow:visible}
.battle-scene[data-renderer="v354"] .battle-film-backdrop{top:calc(var(--combat-stage-height) * var(--battle-headroom,0) * -1)}
