:root{color-scheme:dark;--ink:#edf2dc;--muted:#a7b7a4;--gold:#e9c777;--line:#d4d9b32b;--glass:#10241ef2;--green:#88b783;font-family:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#0c1b19;color:var(--ink)}body{overscroll-behavior:none}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{cursor:default;opacity:.42}[hidden]{display:none!important}input{color:var(--ink);width:100%;background:#091b16b8;border:1px solid #d4d9b340;border-radius:6px;padding:11px 13px;font:14px system-ui,sans-serif}input:focus{border-color:#d7bd78;outline:none}input::placeholder{color:#8b9b8f}#world,#vignette{position:absolute;inset:0;width:100%;height:100%}#world{touch-action:none}#vignette{pointer-events:none;background:radial-gradient(ellipse at 48% 50%,transparent 38%,#03100b4d 100%)}.eyebrow{font:10px system-ui,sans-serif;letter-spacing:1.7px;font-weight:650;color:var(--gold)}.muted{color:var(--muted);font:12px/1.6 system-ui,sans-serif}.auth-screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:clamp(35px,8vw,140px);padding:28px;background:linear-gradient(90deg,#061712e8,#09201a77 70%,#061712cc);overflow:auto}.intro{width:440px;flex-shrink:1}.intro h1{font-weight:normal;font-size:clamp(60px,6.6vw,98px);line-height:1.05;letter-spacing:-4px;margin:29px 0}.intro h1 em{font-weight:normal;color:var(--gold)}.intro p{font-size:20px;line-height:1.6;color:#d1decb}.intro-bottom{margin-top:54px;display:flex;align-items:center;gap:13px;font:10px system-ui,sans-serif;letter-spacing:1.6px;color:#abc0a7}.intro-bottom i{height:1px;width:30px;background:#afc39c66}.auth-card{width:410px;flex-shrink:0;padding:27px 30px;background:linear-gradient(145deg,#17382ef7,#0d211df7);border:1px solid #b6cfa445;border-radius:12px;box-shadow:0 30px 90px #0007;position:relative;margin:auto 0}.auth-card h2{font-size:27px;font-weight:normal;margin:12px 0 8px;letter-spacing:-.5px}.auth-card .eyebrow{font-size:8px;letter-spacing:1.4px}.auth-card .muted{margin:0 0 16px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:14px}.tabs button{flex:1;border:none;border-bottom:2px solid transparent;color:#a0b6a4;background:none;font:12px system-ui,sans-serif;padding:10px 3px}.tabs button.active{border-bottom-color:var(--gold);color:var(--gold)}label{display:block;font:11px system-ui,sans-serif;color:#c3d0bd;margin:12px 0 6px}.server-settings{margin:12px 0 8px;font:11px system-ui,sans-serif;color:#9db2a2}.server-settings summary{cursor:pointer}.server-settings input{margin-top:10px;font-size:11px}.server-settings p{font-size:10px;line-height:1.5}.auth-error{font:12px/1.5 system-ui,sans-serif;color:#ffba9a;margin:10px 0}.auth-error:empty{display:none}.primary{border:1px solid #ecd39a;background:linear-gradient(#e6cc8b,#cba55f);color:#17271b;display:flex;justify-content:space-between;align-items:center;width:100%;font:bold 13px system-ui,sans-serif;padding:13px 16px;border-radius:5px;margin-top:15px;box-shadow:0 4px 16px #0003}.primary span{font-size:20px}.primary:hover{filter:brightness(1.07)}.auth-foot{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;color:#94ab96;font:8px system-ui,sans-serif;letter-spacing:1px}.status-dot{width:5px;height:5px;background:#9ac984;border-radius:50%}.class-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px;border:0;padding:0;margin:16px 0 0}.class-picker legend{font:11px system-ui,sans-serif;color:#c3d0bd;margin-bottom:8px}.class-option{text-align:left;padding:10px 9px;border:1px solid #78927850;border-radius:6px;background:#0c251faa;display:grid;grid-template-columns:25px 1fr;align-items:center;column-gap:5px;min-height:64px}.class-option>span{grid-row:1/3;font-size:24px;color:var(--gold)}.class-option strong{font:600 12px system-ui,sans-serif}.class-option small{font:9px/1.4 system-ui,sans-serif;color:#abbcac;margin-top:3px}.class-option.selected,.class-option:hover{border-color:#d3b56b;background:#3e492cb0}.class-option[data-class=ranger]>span{color:#c7cf89}.class-option[data-class=mage]>span{color:#b7b4ed}.class-option[data-class=druid]>span{color:#88c3a7}
.game-ui{position:absolute;inset:0;pointer-events:none;font-family:system-ui,sans-serif}.game-ui button,.game-ui input,.game-ui form,.side-panel,.help-panel,.disconnect-panel,.modal-panel{pointer-events:auto}.topbar{position:absolute;left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));top:max(15px,env(safe-area-inset-top));display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:10px;font:15px Georgia,serif;letter-spacing:2px;text-shadow:0 2px 5px #000}.brand>span{font-size:32px;color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:2.8px;color:var(--gold);margin-top:4px}.player-card{width:235px;padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:var(--glass);box-shadow:0 5px 22px #0002}.player-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}.player-top strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.player-top>span{font-size:10px;color:var(--gold);white-space:nowrap}.player-sub{display:flex;justify-content:space-between;font-size:9px;color:#a7b9a4;margin:3px 0 5px}.health-track,.mana-track{height:12px;background:#071711;border-radius:2px;position:relative;overflow:hidden;border:1px solid #284937}.health-track>div{height:100%;background:linear-gradient(90deg,#427e50,#a5bd79);transition:width .18s}.mana-track{margin-top:3px;border-color:#2b4249}.mana-track>div{height:100%;background:linear-gradient(90deg,#345e86,#72a5c6);transition:width .18s}.health-track>span,.mana-track>span{position:absolute;inset:0;text-align:center;font-size:8px;line-height:10px;text-shadow:0 1px 3px #000}.xp-track{height:2px;background:#3b4b3a;margin-top:5px}.xp-track>div{height:100%;background:var(--gold);transition:width .18s}.gold-chip{display:flex;gap:6px;align-items:center;font-size:13px;text-shadow:0 2px 6px #000}.gold-chip>span{color:var(--gold);font-size:17px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}#connectionStatus{font-size:8px;letter-spacing:1px;color:#b3c7a8;display:flex;align-items:center;margin-right:5px;gap:5px;text-shadow:0 2px 5px #000}#connectionStatus>i{height:5px;width:5px;border-radius:50%;background:#97c087}.icon-button{width:35px;height:35px;background:var(--glass);border:1px solid var(--line);border-radius:5px;font-size:18px;color:#c6d5b4}.world-status{position:absolute;left:max(24px,env(safe-area-inset-left));top:119px;display:flex;flex-direction:column;gap:4px;text-shadow:0 2px 6px #000}.world-status strong{font:19px Georgia,serif;color:#e6dfc3}.world-status>span{font-size:10px;color:#bfd1b2}.world-status #combatStatus{color:#f0b897;max-width:230px}.world-status button{background:#344a30;border:1px solid #cbb67180;border-radius:4px;color:var(--gold);font:10px system-ui;padding:7px}.pvp-bar{position:absolute;left:max(24px,env(safe-area-inset-left));top:186px;display:flex;gap:6px;flex-wrap:wrap;max-width:330px;align-items:center}.safety-button{border:1px solid #9aba8477;background:#122b20e8;color:#bad7a3;border-radius:4px;padding:7px 10px;font:10px system-ui}.safety-button.danger{border-color:#d39473;background:#4b2923e8;color:#f1b997}.target-card{display:flex;align-items:center;gap:8px;background:#472b25ed;border:1px solid #c7816680;border-radius:4px;padding:3px 6px 3px 8px;font-size:10px;color:#f2c1a7;max-width:100%}.target-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-card button{background:none;border:0;color:#efc4af;font-size:20px}#skullStatus{font-size:10px;color:#efd0b9;flex-basis:100%}.minimap-card{position:absolute;right:max(23px,env(safe-area-inset-right));top:118px;width:190px;background:var(--glass);border:1px solid var(--line);border-radius:7px;padding:6px;box-shadow:0 8px 28px #0003}.minimap-card canvas{width:100%;height:auto;display:block;opacity:.93;border-radius:2px}.minimap-card>div{display:flex;justify-content:space-between;color:#b5c4a8;font-size:8px;letter-spacing:.3px;margin:6px 3px 2px}.notice-feed{position:absolute;left:185px;bottom:146px;width:min(390px,calc(100% - 425px));display:flex;flex-direction:column;gap:5px}.notice{animation:notice-in .2s ease-out;background:linear-gradient(90deg,#10291ef2,#10291e99);border-left:2px solid #79976b;padding:7px 10px;color:#ccddc0;font:11px/1.4 system-ui,sans-serif;text-shadow:0 1px 3px #000}.notice.error{border-color:#cf876c;color:#ffd7bd}.notice.reward{border-color:var(--gold);color:#f6e1aa}.notice.chat{border-color:#7bafa5;color:#d0ece5}.notice.fade{opacity:0;transition:opacity 1.2s}.interact-prompt{position:absolute;left:50%;top:calc(50% + 74px);transform:translateX(-50%);display:flex;align-items:center;gap:9px;border:1px solid #cfcd9055;background:#152a20ed;border-radius:7px;padding:8px 12px;box-shadow:0 6px 25px #0004;max-width:280px}.interact-prompt>span{border:1px solid #d3cf9477;border-radius:4px;color:var(--gold);padding:5px 9px;font-size:12px}.interact-prompt small{display:block;font-size:7px;color:var(--gold);letter-spacing:1px}.interact-prompt strong{display:block;font:13px Georgia,serif;margin-top:3px;white-space:nowrap}
.side-panel{position:absolute;right:max(22px,env(safe-area-inset-right));top:112px;bottom:150px;width:350px;display:flex;flex-direction:column;background:linear-gradient(145deg,#16342cfb,#0d201bfc);border:1px solid #abbc9444;border-radius:9px;box-shadow:0 12px 50px #0007;overflow:hidden;z-index:3}.panel-head{position:relative;flex-shrink:0;padding:6px 38px 0 16px}.panel-head .tabs{margin-bottom:0}.panel-content{padding:14px 16px 18px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6e836a #142e24;min-height:0}.stat-line{display:flex;justify-content:space-between;font-size:10px;color:#c2d1b4;gap:8px;margin-bottom:12px}.equipment-slots{display:flex;flex-direction:column;gap:5px;margin-bottom:17px}.equipment-slot{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:5px;padding:8px 9px;background:#0b231b80;min-height:51px}.equipment-slot .item-icon{font-size:23px;color:#d5c18b;width:24px;text-align:center;flex-shrink:0}.equipment-slot .item-copy{min-width:0;flex:1}.equipment-slot .slot-name{display:block;font-size:8px;color:#8ea488;text-transform:uppercase;letter-spacing:.7px}.equipment-slot strong{display:block;font-size:11px;margin-top:3px;font-weight:500;overflow-wrap:anywhere}.section-label{font-size:9px;letter-spacing:1.6px;color:var(--gold);margin:3px 0 9px}.inventory-list{display:flex;flex-direction:column;gap:7px}.inventory-item{padding:9px 10px;border:1px solid var(--line);border-radius:5px;background:#0a211b77}.inventory-item.rare{border-color:#6b92b979}.inventory-item.epic{border-color:#a082b980}.item-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.item-heading strong{font-size:11px;line-height:1.4;font-weight:550}.item-heading>span{font-size:9px;white-space:nowrap;color:#dac281}.item-stats{font-size:10px;color:#a8c0a5;margin:4px 0;line-height:1.5}.item-actions{display:flex;gap:6px;margin-top:8px;align-items:center}.item-actions button,.equipment-slot button,.shop-row button,.text-button,.player-row button,.party-invite button{font:10px system-ui;padding:7px 10px;background:#294432;border:1px solid #91a47766;border-radius:4px;color:#d3dfc0}.item-actions .equipped-tag{font-size:9px;color:#9dc890}.item-requirement{font-size:9px;color:#cfae98}.merchant-section{margin-top:19px;padding-top:15px;border-top:1px solid var(--line)}.merchant-section .muted{font-size:10px;margin:5px 0 10px}.shop-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;font-size:11px}.shop-row small{display:block;color:#d1bc80;margin-top:3px}.text-button{margin-top:6px}.panel-tip{font-size:10px;line-height:1.55;color:#9fb89c;margin:8px 0 15px}.player-row{border:1px solid var(--line);border-radius:5px;margin:7px 0;padding:10px;background:#0c241c99}.player-row.targeted{border-color:#d0956f}.player-row .player-heading{font-size:12px;display:flex;justify-content:space-between;gap:8px}.player-row .player-heading small{font-size:9px;color:#d4c18a}.player-row .player-detail{font-size:10px;color:#a7bda0;margin:4px 0 9px}.player-row .player-buttons{display:flex;gap:6px}.player-row .target-button{background:#4b3329;border-color:#c1946966}.empty-message{font-size:11px;line-height:1.6;color:#8fa789;margin:8px 0 14px}.party-invite{position:absolute;left:50%;top:114px;transform:translateX(-50%);background:#273f27f5;border:1px solid #c0be7780;border-radius:6px;padding:12px 15px;z-index:6;max-width:330px;width:calc(100% - 32px);font-size:12px;box-shadow:0 8px 35px #0005}.party-invite div{display:flex;gap:8px;margin-top:9px}
.movement-controls{position:absolute;left:max(33px,env(safe-area-inset-left));bottom:27px;display:flex;align-items:center;flex-direction:column}.joystick{width:122px;height:122px;border:1px solid #b4c9a144;border-radius:50%;background:#142b1c77;box-shadow:inset 0 0 35px #05180c33;position:relative;pointer-events:auto;touch-action:none;user-select:none}.joystick-cross{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:100 80px system-ui;line-height:1;color:#cad5a920}.joystick:before{content:"";position:absolute;inset:16px;border:1px dashed #b4c9a133;border-radius:50%}#joystickKnob{position:absolute;width:42px;height:42px;border-radius:50%;top:calc(50% - 21px);left:calc(50% - 21px);background:radial-gradient(circle at 38% 30%,#647c5acc,#20382edd);border:1px solid #bdd3a388;box-shadow:0 4px 12px #0003;pointer-events:none}.keyboard-hint{font-size:8px;letter-spacing:1.1px;color:#b2c5a5;margin-top:9px;text-shadow:0 2px 5px #000}.keyboard-hint span{color:#83977a}.combat-controls{position:absolute;right:max(28px,env(safe-area-inset-right));bottom:31px;display:flex;gap:13px;align-items:flex-end}.action-button{border:1px solid #bdd1a877;background:radial-gradient(circle at 30% 20%,#38513df8,#132c24fc);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;touch-action:none;box-shadow:0 6px 20px #0003}.action-button span{display:block}.action-button small{font:9px system-ui;letter-spacing:.3px}.action-button kbd{position:absolute;bottom:-16px;color:#b0bf9d;font:7px system-ui;letter-spacing:.6px}.attack-button{width:94px;height:94px;color:#e7d6a0;border-color:#d3bd7a8c;background:radial-gradient(circle at 30% 20%,#665d38fa,#2d3926fc)}.attack-button>span{font-size:32px;line-height:40px}.attack-button.held{filter:brightness(1.35);transform:scale(.96)}.attack-button.pvp-target{border-color:#e39874;color:#f6c3a9;background:radial-gradient(circle at 30% 20%,#734331fa,#422720fc)}.interact-button{width:61px;height:61px;margin-bottom:8px;color:#b3caa5}.interact-button>span{font-size:24px;line-height:28px}.interact-button.available{box-shadow:0 0 25px #e0cd7645;border-color:#e0cd76;color:#eee0a9}.quickbar{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:7px}.potion-button,.ability-button{position:relative;background:#11281ff5;border:1px solid #a9c49b66;border-radius:7px;min-width:60px;height:70px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:8px 7px 5px;box-shadow:0 7px 30px #0004}.potion-button>span,.ability-button>span{font-size:26px;line-height:32px;color:#d8c48e}.potion-button small,.ability-button small{font-size:8px;color:#cbd6bc;max-width:95px;line-height:1.2}.potion-button kbd,.ability-button kbd{position:absolute;left:5px;top:4px;font:8px system-ui;color:#a5b594}.potion-button b,.ability-button b{position:absolute;right:5px;top:4px;font-size:9px;color:#e6e7d1}.health-potion>span{color:#db9d83}.ability-button{width:96px;border-color:#ceb87680}.ability-button.cooldown{filter:saturate(.45)}.chat-wrap{position:absolute;bottom:111px;left:calc(50% - 145px);width:290px}.chat-button{display:block;margin:0 auto;padding:6px 11px;color:#b2c4a7;background:#112c21da;border:1px solid var(--line);border-radius:4px;font:10px system-ui}.chat-button kbd{font:8px system-ui;margin-left:5px;color:#90a283}#chatForm{display:flex;gap:4px;margin-top:5px}#chatInput{font-size:12px;padding:8px 10px}#chatForm button{background:#263e2c;border:1px solid #8da47455;border-radius:4px}.death-panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#07150b9c;text-align:center;text-shadow:0 3px 15px #000;z-index:7}.death-panel>div{font-size:40px;color:var(--gold)}.death-panel h2{font:28px Georgia;margin:14px 0}.death-panel p{font-size:12px;color:#cad6be;padding:0 15px}.disconnect-panel,.help-panel,.modal-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(460px,calc(100% - 32px));padding:26px 28px;background:linear-gradient(145deg,#19372ffc,#0d201bfe);border:1px solid #cbd3a655;border-radius:10px;box-shadow:0 20px 150px #000c;z-index:10;max-height:calc(100% - 30px);overflow:auto;overscroll-behavior:contain}.disconnect-panel h2,.help-panel h2,.modal-panel h2{font:26px/1.2 Georgia;margin:10px 0 15px}.disconnect-panel p,.help-panel p,.modal-panel p{font-size:12px;line-height:1.6;color:#bacbb1}.help-panel dl{display:grid;grid-template-columns:1fr 1.4fr;gap:11px 10px;font-size:11px;margin:21px 0}.help-panel dt{color:#e3d4a5}.help-panel dd{margin:0;color:#a7bd9c}.help-footer{font-size:10px;line-height:1.6;color:var(--gold);border-top:1px solid var(--line);padding-top:13px;margin-top:18px}.close-button{position:absolute;right:10px;top:7px;border:none;background:none;font-size:25px;color:#b8c7ae;width:28px;height:30px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes notice-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1050px){.auth-screen{gap:35px}.intro h1{font-size:66px}.intro p{font-size:17px}.brand{font-size:12px}.brand small{font-size:7px;letter-spacing:1.9px}.brand>span{font-size:25px}.topbar{gap:13px}.player-card{width:212px}.minimap-card{width:165px}.notice-feed{left:165px;width:calc(100% - 375px)}}
@media(max-height:680px){.auth-screen{align-items:flex-start;padding-top:20px;padding-bottom:20px}.intro{align-self:center}.auth-card{padding:20px 25px;margin:0}.auth-card h2{font-size:23px}.auth-card .muted{font-size:11px;margin-bottom:9px}.class-option{min-height:57px;padding:8px}.topbar{top:10px}.world-status{top:105px}.pvp-bar{top:166px}.minimap-card{top:105px;width:142px}.side-panel{top:103px;bottom:118px}.notice-feed{bottom:128px}.movement-controls{bottom:20px;left:24px}.joystick{width:96px;height:96px}.combat-controls{bottom:25px;right:24px}.attack-button{width:80px;height:80px}.interact-button{width:52px;height:52px}.quickbar{bottom:19px}.potion-button,.ability-button{height:63px}.chat-wrap{bottom:91px}.keyboard-hint{font-size:7px}.interact-prompt{top:calc(50% + 48px)}}
@media(max-width:759px){.intro{display:none}.auth-screen{padding:20px 16px}.auth-card{max-width:420px;width:100%;padding:24px}.brand,#connectionStatus{display:none}.topbar{left:12px;right:12px;gap:10px;flex-wrap:wrap;align-items:flex-start}.player-card{width:197px}.top-actions{gap:4px;align-items:center;align-self:center}.icon-button{width:31px;height:33px}.gold-chip{font-size:11px;margin-top:10px}.world-status{left:13px;top:112px}.world-status strong{font-size:17px}.world-status>span{font-size:9px}.world-status #combatStatus{max-width:210px}.pvp-bar{left:13px;top:177px;max-width:235px}.safety-button{font-size:9px;padding:6px 8px}.target-card{font-size:9px}.minimap-card{right:13px;top:113px;width:137px}.minimap-card>div{font-size:7px}.side-panel{right:12px;width:330px;top:111px;bottom:144px}.movement-controls{left:18px;bottom:22px}.joystick{width:98px;height:98px}.keyboard-hint{display:none}.combat-controls{right:18px;bottom:27px;gap:8px}.attack-button{width:78px;height:78px}.interact-button{width:51px;height:51px}.quickbar{bottom:22px}.potion-button{min-width:48px}.ability-button{width:82px}.potion-button,.ability-button{height:65px}.potion-button small,.ability-button small{font-size:7px}.notice-feed{left:135px;bottom:145px;width:calc(100% - 295px)}.notice{font-size:10px;padding:6px 8px}.chat-wrap{bottom:104px;width:235px;left:calc(50% - 118px)}}
@media(max-width:559px){.topbar{gap:6px}.player-card{width:calc(100% - 77px);max-width:275px;padding:7px 10px}.gold-chip{margin-left:auto;margin-top:8px;max-width:70px}.gold-chip b{overflow:hidden;text-overflow:ellipsis;font-size:11px}.top-actions{position:absolute;right:0;top:45px;gap:5px}.top-actions .icon-button{width:29px;height:30px}.player-card{max-width:none}.player-top strong{max-width:130px}.world-status{top:113px;max-width:calc(100% - 135px)}.world-status strong{font-size:15px}.world-status #combatStatus{max-width:190px;font-size:9px}.pvp-bar{top:177px;max-width:calc(100% - 26px)}.minimap-card{top:113px;width:115px;padding:4px}.minimap-card>div{font-size:6px}.side-panel{left:12px;right:12px;top:109px;width:auto;bottom:188px}.panel-content{padding:12px 14px 16px}.movement-controls{bottom:24px;left:16px}.joystick{width:100px;height:100px}.combat-controls{right:15px;bottom:28px}.quickbar{bottom:145px;gap:7px}.potion-button{min-width:55px;height:61px}.ability-button{height:61px;width:100px}.potion-button small,.ability-button small{font-size:8px}.chat-wrap{bottom:216px;width:240px;left:calc(50% - 120px)}.notice-feed{left:14px;bottom:254px;width:calc(100% - 28px)}.notice{font-size:10px}.interact-prompt{top:calc(50% + 15px);padding:7px 10px}.interact-prompt strong{font-size:12px}.party-invite{top:225px}.target-card{max-width:220px}.help-panel{padding:24px 22px}.death-panel h2{font-size:23px}.auth-card h2{font-size:25px}.auth-card{margin:0}}
@media(max-width:359px){.top-actions{gap:3px}.top-actions .icon-button{width:25px}.player-top strong{max-width:110px}.player-card{width:calc(100% - 62px)}.gold-chip{max-width:57px}.joystick{width:85px;height:85px}.movement-controls{left:12px}.combat-controls{right:12px;gap:6px}.attack-button{width:70px;height:70px}.interact-button{width:47px;height:47px}.auth-card{padding:20px}.class-option small{font-size:8px}}
@media(max-height:500px) and (min-width:560px){.topbar{top:8px}.player-card{padding:5px 9px;width:190px}.player-sub{margin:2px 0 3px}.health-track,.mana-track{height:10px}.health-track>span,.mana-track>span{line-height:8px;font-size:7px}.brand{display:none}.world-status{top:88px}.world-status strong{font-size:15px}.world-status>span{font-size:8px}.pvp-bar{top:139px}.minimap-card{top:90px;width:118px}.side-panel{top:87px;bottom:99px;width:320px}.movement-controls{bottom:14px;left:18px}.joystick{width:83px;height:83px}.quickbar{bottom:14px}.potion-button,.ability-button{height:54px}.potion-button{min-width:47px}.ability-button{width:90px}.potion-button>span,.ability-button>span{font-size:23px;line-height:25px}.combat-controls{bottom:21px;right:18px}.attack-button{width:69px;height:69px}.interact-button{width:47px;height:47px}.attack-button>span{font-size:26px;line-height:31px}.chat-wrap{bottom:76px}.notice-feed{bottom:112px;left:120px;width:calc(100% - 290px)}.notice{font-size:9px;padding:4px 7px}.party-invite{top:86px}.interact-prompt{top:calc(50% + 37px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media(max-width:559px){.top-actions{top:92px}.world-status{top:119px;max-width:calc(100% - 187px)}.world-status strong{font-size:14px}.world-status>span{font-size:8px}.world-status #combatStatus{max-width:190px}.minimap-card{top:153px}.side-panel{top:145px}.pvp-bar{top:185px}}
/* Wyprawy 0.3: a compact stone-and-brass desk around a bright game world. */
:root{--ink:#f6efd9;--muted:#b6c2b2;--gold:#f2d183;--line:#d7bf8250;--glass:#242925f2;--green:#a9d574}
#vignette{background:none;box-shadow:inset 0 0 0 5px #342c22,inset 0 0 0 7px #b39154,inset 0 0 0 9px #332c23;z-index:1}
#world{image-rendering:pixelated}
.auth-screen{background:linear-gradient(90deg,#163226f0,#16322685 67%,#122a27dc);z-index:3}
.auth-card{background:linear-gradient(145deg,#303d30fa,#1d2a27fc);border-color:#cdb67888;box-shadow:0 24px 80px #0006,inset 0 0 0 3px #c3a36816;border-radius:5px}
.game-ui{z-index:2}
.topbar{gap:16px}.brand{color:#f8e1a8;filter:drop-shadow(0 2px 3px #27341e)}
.player-card{background:linear-gradient(130deg,#303b31fa,#1f2b25fa);border-color:#cbb57a80;border-radius:4px;box-shadow:0 3px 0 #171e16,inset 0 0 0 2px #d7c28310}
.health-track>div{background:linear-gradient(#e96249,#b53931)}.mana-track>div{background:linear-gradient(#59a4ec,#326abb)}.xp-track{height:3px}.xp-track>div{background:#f0cf67}
.icon-button,.safety-button,.chat-button{border-radius:3px;background:linear-gradient(#3a4335f5,#242e27fa);box-shadow:inset 0 1px #c5b77c25,0 2px 0 #14221955}
.icon-button:hover,.text-button:hover,.item-actions button:hover{filter:brightness(1.22)}
.minimap-card,.side-panel{border-radius:4px;background:linear-gradient(135deg,#303b30fc,#1b2824fc);border-color:#b5a47788;box-shadow:0 5px 24px #14211088,inset 0 0 0 2px #ddcf9a10}
.world-status{padding:8px 10px;background:linear-gradient(90deg,#233626dc,#25362470);border-left:2px solid #edd582;left:24px;top:121px;max-width:305px}.world-status strong{font-size:18px}.world-status>span{color:#d3dfc5}
.pvp-bar{top:203px}.quest-tracker{position:absolute;left:24px;top:249px;width:255px;display:flex;flex-direction:column;text-align:left;gap:7px;background:linear-gradient(135deg,#263c29f0,#233028e8);border:1px solid #e2c17977;border-left:3px solid #edcf7b;border-radius:3px;padding:12px 13px;box-shadow:0 4px 15px #10201645;color:#f4e8c3;pointer-events:auto;font-family:system-ui,sans-serif}
.tracker-eyebrow{font-size:9px;letter-spacing:1.6px;color:#e6c477;display:flex;justify-content:space-between}.tracker-eyebrow kbd{font:9px system-ui;border:1px solid #b8a37366;padding:0 4px;border-radius:2px}.quest-tracker strong{font:17px/1.2 Georgia,serif}.quest-tracker>span:not(.tracker-eyebrow){font-size:11px;line-height:1.5;color:#c6d9b4}.quest-tracker .tracker-direction{font-size:10px!important;color:#f4d88c!important;padding-top:4px;border-top:1px solid #a2b88430}.quest-tracker.ready{border-color:#b4e885;background:#30462dec}
.side-panel{top:113px;bottom:154px;width:365px}.panel-head{padding-left:9px;padding-right:36px}.panel-head .tabs button{font-size:11px}.panel-content{scrollbar-color:#b0a170 #253126}.journal-intro h2{font:25px Georgia;margin:9px 0}.journal-intro p{font-size:11px;line-height:1.6;color:#becbb5;margin:0 0 18px}.quest-entry{border:1px solid #89956b55;background:#162c2155;padding:12px;margin-bottom:10px;border-radius:3px}.quest-entry.ready{border-color:#c4d98188}.quest-entry.active{border-left:3px solid #dbbd73}.quest-entry.locked{opacity:.63}.quest-entry.claimed{opacity:.7}.quest-title{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.quest-title strong{font:17px/1.2 Georgia}.quest-status{font-size:8px;text-transform:uppercase;color:#efd394;white-space:nowrap;padding-top:4px}.quest-description{font:11px/1.55 system-ui;color:#c0ceb6;margin:8px 0}.quest-objective{display:flex;justify-content:space-between;gap:10px;font-size:11px;line-height:1.5;margin:5px 0;color:#d5dec7}.quest-objective.complete{color:#acd68a}.quest-reward{font-size:10px;color:#f1d37a;margin:10px 0;line-height:1.6}.quest-location{font-size:10px;color:#a8c5ba;line-height:1.5}.quest-entry button{background:#73623a;border:1px solid #c6af70;border-radius:3px;color:#fff0c8;font:11px system-ui;padding:8px 11px;margin-top:10px}.discoveries-heading{margin:24px 0 12px}.discoveries-heading span{float:right}.discovery-entry{padding:10px 0;border-top:1px solid #a1b78b25;font-size:11px}.discovery-entry strong{font:14px Georgia;color:#e8d095}.discovery-entry p{font-size:10px;line-height:1.5;color:#aebfa8;margin:5px 0}.discovery-entry.unknown strong{color:#a3b59c}.discovery-entry small{font-size:9px;color:#dbcca2}
.battle-list{position:absolute;right:24px;top:298px;width:190px;background:#26342ae8;border:1px solid #b7a67355;border-radius:3px;padding:10px 11px;box-shadow:0 5px 18px #14271444}.battle-enemy{font:10px system-ui;display:flex;justify-content:space-between;gap:7px;margin:6px 0;color:#e9d8ac}.battle-enemy small{color:#adbfa2;font-size:9px}.battle-enemy:first-child{color:#f8dda2}.battle-hp{height:3px;background:#171e1a;margin-top:3px}.battle-hp>div{height:100%;background:#d5784e}
.notice-feed{left:300px;bottom:155px;width:min(410px,calc(100% - 610px))}.notice{background:linear-gradient(90deg,#263a28ee,#263a28b8);font-size:11px}.chat-wrap{left:24px;bottom:25px;width:330px}.chat-log{max-height:78px;overflow:auto;background:#202e25d9;border:1px solid #b3b28a44;border-bottom:0;padding:8px 10px;scrollbar-width:thin;scrollbar-color:#98ac80 #1b2b20;font:11px/1.5 system-ui;pointer-events:auto;color:#f1e4b0;text-shadow:1px 1px #223221;overflow-wrap:anywhere}.chat-hint{color:#a5b59b;font-size:10px}.chat-line b{color:#adddd1;font-weight:600}.chat-button{width:100%;border-radius:0 0 3px 3px;text-align:left;padding:7px 10px;color:#d4dfbf}.chat-button kbd{float:right;color:#e2cc8f}#chatForm{margin-top:4px}#chatInput{background:#172d20f7;color:#fff1b4;border-color:#d4ba7699;font-size:12px}.chat-wrap.writing .chat-button{border-color:#e5cb7a}.chat-wrap.writing .chat-log{max-height:110px;border-color:#e5cb7a}.chat-wrap.writing .chat-hint{color:#f0d892}
@media(pointer:fine) and (min-width:1000px){.movement-controls{left:385px;bottom:24px}.joystick{display:none}.keyboard-hint{color:#e4e9ca;padding:6px 9px;background:#243622e0;border:1px solid #acbb8455;border-radius:3px;font-size:9px;letter-spacing:1px}.quickbar{left:62%;bottom:26px}.potion-button,.ability-button{height:64px}.combat-controls{right:28px;bottom:31px}.action-button{border-radius:5px}.attack-button{height:68px;width:90px}.interact-button{height:54px;width:67px;margin-bottom:0}.action-button kbd{bottom:-17px}.attack-button>span{font-size:27px;line-height:30px}}
@media(max-width:999px){.quest-tracker{width:215px;left:18px;top:236px;padding:9px 11px}.quest-tracker strong{font-size:15px}.quest-tracker>span:not(.tracker-eyebrow){font-size:10px}.chat-wrap{left:135px;bottom:111px;width:250px}.chat-log{max-height:47px;padding:5px 8px;font-size:10px}.notice-feed{left:250px;bottom:188px;width:calc(100% - 460px)}.battle-list{width:165px;top:276px}.world-status{left:18px;max-width:270px}.pvp-bar{top:200px}.side-panel{width:340px}}
@media(max-width:759px){.world-status{top:111px;left:13px;padding:6px 8px;max-width:250px}.world-status strong{font-size:15px}.quest-tracker{top:226px;left:13px;width:200px}.pvp-bar{top:184px}.battle-list{display:none}.chat-wrap{left:calc(50% - 118px);bottom:105px;width:235px}.chat-log{max-height:38px;font-size:9px}.side-panel{top:110px;bottom:145px;right:12px;width:335px}.notice-feed{left:220px;bottom:170px;width:calc(100% - 370px)}.top-actions{gap:3px}.icon-button{width:29px}}
@media(max-width:559px){#vignette{box-shadow:inset 0 0 0 3px #342c22,inset 0 0 0 4px #b39154}.top-actions{top:88px;left:0;right:auto;gap:6px}.top-actions .icon-button{width:32px;height:29px}.world-status{top:139px;max-width:230px;background:#263c29d9}.world-status strong{font-size:14px}.world-status>span{font-size:8px}.world-status #combatStatus{max-width:210px;font-size:8px}.pvp-bar{top:209px}.quest-tracker{top:248px;width:220px;padding:8px 10px;gap:4px}.quest-tracker strong{font-size:15px}.quest-tracker>span:not(.tracker-eyebrow){font-size:9px}.tracker-eyebrow{font-size:8px}.quest-tracker .tracker-direction{font-size:9px!important}.minimap-card{top:139px;width:126px;right:12px}.side-panel{top:137px;bottom:208px;left:12px;right:12px;width:auto}.chat-wrap{bottom:217px;left:14px;width:calc(100% - 28px)}.chat-log{max-height:42px}.chat-button{padding:5px 8px;font-size:9px}.chat-log:has(.chat-hint:only-child){display:none}.notice-feed{left:14px;bottom:295px;width:calc(100% - 28px)}.notice{font-size:9px}.quickbar{bottom:144px}.interact-prompt{top:calc(50% + 28px)}.panel-head .tabs button{font-size:10px}}
@media(max-height:500px) and (min-width:560px){.top-actions{gap:4px}.topbar{gap:10px}.top-actions .icon-button{width:30px}.world-status{top:88px;max-width:208px;padding:4px 7px}.world-status strong{font-size:13px}.world-status>span{font-size:8px}.pvp-bar{top:140px}.quest-tracker{top:180px;width:200px;padding:7px 9px;gap:4px}.quest-tracker strong{font-size:14px}.quest-tracker>span:not(.tracker-eyebrow){font-size:9px}.tracker-eyebrow{font-size:7px}.battle-list{display:none}.chat-wrap{left:225px;bottom:85px;width:235px}.chat-log{max-height:34px;font-size:9px}.chat-log:has(.chat-hint:only-child){display:none}.chat-button{padding:5px 8px}.notice-feed{left:225px;bottom:139px;width:calc(100% - 400px)}.notice{font-size:9px}.side-panel{top:88px;bottom:88px;width:330px}.minimap-card{top:90px;width:118px}.panel-content{padding:10px 13px}.journal-intro h2{font-size:22px}.interact-prompt{top:calc(50% + 38px);padding:5px 8px}}
@media(max-height:500px) and (min-width:560px){.notice-feed{top:86px;bottom:auto;left:225px;width:calc(100% - 385px);max-width:420px}.notice{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.interact-prompt{left:auto;right:150px;top:auto;bottom:82px;transform:none;max-width:190px;padding:5px 8px}.interact-prompt small{font-size:6px;letter-spacing:.5px}.interact-prompt strong{font-size:11px}.interact-prompt>span{padding:4px 6px;font-size:10px}}

/* 0.4: compact spell bar and a scrollable world/profession book. */
.progress-nav{display:flex;gap:4px;margin:12px 0;position:sticky;top:-14px;background:#15342d;padding:7px 0;z-index:2}.progress-nav button,.progress-actions button,#progressionContent>button{font:11px system-ui;padding:8px 9px;border:1px solid #afc79255;border-radius:4px;background:#274535;color:#eee5c3}.progress-nav button.active,.progress-actions button.active{border-color:#e9c777;color:#e9c777;background:#414e32}.progress-entry{border:1px solid #bac6a432;padding:11px;margin:9px 0;border-radius:5px;background:#091d1744}.progress-entry>strong{font:600 12px/1.5 system-ui;color:#ecdfb7}.progress-entry .muted{font-size:11px;margin:6px 0;line-height:1.6}.progress-actions{display:flex;flex-wrap:wrap;gap:5px}.progress-entry button{min-height:32px}.skill-track{height:5px;background:#0c211b;margin:8px 0 2px}.skill-track i{display:block;height:100%;background:#d7be75}.atlas-canvas{width:100%;height:auto;border:1px solid #b99c67;cursor:crosshair;touch-action:manipulation}.atlas-link{border:0;background:none;color:#ebd295;font:9px system-ui;padding:0}.spellbar{position:absolute;bottom:112px;left:50%;transform:translateX(-50%);display:flex;gap:4px}.spellbar button{border:1px solid #bbae7655;background:#152c24ed;color:#efda99;font:11px system-ui;min-height:30px;min-width:35px;border-radius:4px;padding:5px 7px}#progressionSubtitle{font:16px/1.5 Georgia;margin:6px 0}#progressionContent>.section-label{margin-top:20px}#progressionContent>button{margin:3px 0;width:100%;text-align:left}.side-panel:has(#progressionView:not([hidden])){width:430px}.side-panel:has(#progressionView:not([hidden])) .panel-content{padding-top:12px}
@media(max-width:559px){.side-panel:has(#progressionView:not([hidden])){width:auto;bottom:205px}.spellbar{bottom:209px;width:calc(100% - 28px);justify-content:center}.spellbar button{font-size:10px;padding:5px;min-width:34px}.chat-wrap{bottom:249px}.notice-feed{bottom:319px}.side-panel:has(#progressionView:not([hidden]))~.spellbar{z-index:1}.top-actions{gap:4px}}
@media(max-height:500px) and (min-width:560px){.spellbar{bottom:80px;left:auto;right:12px;transform:none;gap:3px}.spellbar button{min-width:29px;padding:4px;font-size:10px;min-height:25px}.side-panel:has(#progressionView:not([hidden])){width:360px;top:83px;bottom:114px}.chat-wrap{left:225px;bottom:75px;width:205px}.interact-prompt{bottom:110px}}

/* 0.4.1: target interaction and an unobtrusive measured frame-rate counter. */
.fps-counter{position:fixed;right:max(9px,env(safe-area-inset-right));bottom:max(3px,env(safe-area-inset-bottom));z-index:80;pointer-events:none;font:600 11px/16px ui-monospace,monospace;color:#eee6ce;text-shadow:0 1px 3px #000,1px 0 2px #000;font-variant-numeric:tabular-nums}
.battle-row{display:block;width:100%;padding:0;margin:0;border:0;background:transparent;text-align:left;border-radius:0;box-shadow:none}
.battle-row.targeted{outline:1px solid #f05942;outline-offset:2px}

.progress-nav{flex-wrap:wrap}#movementStatus{color:#d8cc9b;font-size:10px}

.inventory-item.uncommon {border-left-color:#92b978}.inventory-item.legendary {border-left-color:#edbe58;box-shadow:inset 3px 0 #edbe58}.inventory-item.legendary .item-heading strong {color:#f5ce77}

/* 0.7: action readiness and a single current roll, using the existing HUD space. */
.attack-button #actionProgress{position:absolute;display:block;left:0;bottom:0;height:4px;background:#edcf82;pointer-events:none;transition:width .1s linear;border-radius:2px}
.attack-button.recovering{border-color:#8b886c}
.attack-button #attackLabel{font-variant-numeric:tabular-nums}
.combat-roll-notice{color:#f1ddb2;border-left:2px solid #dbc179;font-variant-numeric:tabular-nums}
#noticeFeed{display:flex;flex-direction:column;gap:7px}

/* 0.8: persistent dismissible tutorial, editable eight-slot spell hotbar. */
.ranking-card{margin:20px 0 16px;padding:14px 16px;max-width:470px;background:#10231edb;border:1px solid #cdb27755;border-radius:10px}.ranking-heading{font-size:12px;letter-spacing:1.3px;color:#e7d89c;display:flex;justify-content:space-between;gap:12px}.ranking-heading small{font-size:10px;letter-spacing:0;color:#a0b89d}.ranking-list{margin-top:10px;max-height:180px;overflow-y:auto;font-size:12px;color:#b7c8ae}.ranking-row{display:grid;grid-template-columns:24px minmax(60px,1fr) 82px 30px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid #b2c38622}.ranking-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-row b{color:#d5bb72}.ranking-row strong{text-align:right;color:#f2e1ac}.ranking-row.online span:after{content:' ●';color:#96d787;font-size:8px}.ranking-row small{font-size:10px}
.control-tip{position:absolute;bottom:180px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);display:flex;align-items:center;gap:12px;background:#14271eea;border:1px solid #b2bb7960;border-radius:6px;color:#e8e0b8;padding:7px 9px;font-size:11px;z-index:3}.control-tip[hidden]{display:none}.control-tip kbd{font-size:10px}.control-tip button{background:transparent;border:0;color:#ecdab2;font-size:22px;line-height:24px;min-width:28px}.control-tip span{white-space:nowrap}
.spellbar{bottom:24px;left:50%;right:auto;transform:translateX(-50%);width:auto;max-width:calc(100% - 320px);display:flex;gap:5px;z-index:2}.hotbar-slots{display:grid;grid-template-columns:repeat(8,minmax(44px,64px));gap:4px}.spellbar .hotbar-slot{position:relative;width:64px;height:68px;padding:4px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.hotbar-slot kbd{position:absolute;top:2px;left:4px;font-size:10px;opacity:.8}.hotbar-slot span{font-size:21px;height:25px}.hotbar-slot small{font-size:9px;display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:15px}.hotbar-slot b{font-size:9px;font-weight:400;color:#8ebdd7;line-height:12px}.hotbar-slot.locked{filter:grayscale(.6);opacity:.5}.hotbar-slot.queued{outline:2px solid #d7b05b}.hotbar-slot.active-spell{background:#355b35;border-color:#aace73}.spellbar #bookSpell{min-width:46px;font-size:10px}.quickbar{bottom:104px;left:50%;transform:translateX(-50%)}.slot-picker{max-width:190px;padding:6px;background:#203729;color:#eee1b7;border:1px solid #789164;border-radius:4px;font-size:11px}.keyboard-hint{display:none!important}
@media(max-width:1100px) and (min-width:701px){.spellbar{max-width:calc(100% - 310px)}.spellbar .hotbar-slot{width:48px;height:60px}.hotbar-slots{grid-template-columns:repeat(8,48px)}.quickbar{bottom:92px}.control-tip{bottom:166px}.hotbar-slot small{font-size:8px}}
@media(max-width:700px) and (orientation:portrait){.auth-screen{overflow:auto}.ranking-card{margin:10px 0;max-width:none}.ranking-list{max-height:100px}.intro h1{font-size:42px}.spellbar{bottom:130px;max-width:none;width:calc(100% - 32px)}.hotbar-slots{width:100%;grid-template-columns:repeat(4,minmax(0,1fr))}.spellbar .hotbar-slot{width:100%;height:50px}.hotbar-slot span{height:18px;font-size:16px}.hotbar-slot small{line-height:12px}.spellbar #bookSpell{position:absolute;right:0;bottom:110px;min-height:28px}.quickbar{bottom:245px;left:50%}.control-tip{bottom:326px;max-width:calc(100% - 22px);font-size:10px}.control-tip span{white-space:normal}.control-tip kbd{font-size:9px}.control-tip button{font-size:23px}}
@media(max-height:540px) and (orientation:landscape){.spellbar{bottom:14px;max-width:calc(100% - 260px);left:50%;right:auto;transform:translateX(-50%)}.hotbar-slots{grid-template-columns:repeat(8,minmax(34px,44px))}.spellbar .hotbar-slot{width:42px;height:50px}.hotbar-slot span{font-size:17px;height:20px}.hotbar-slot small{font-size:8px;line-height:11px}.spellbar #bookSpell{min-width:30px;padding:2px;font-size:9px}.quickbar{bottom:72px;left:56%}.control-tip{bottom:148px;font-size:9px}.ranking-list{max-height:120px}.ranking-card{margin:8px 0}.intro h1{font-size:46px}}

/* Final layout QA: retain login ranking on phones and keep chat off the potions. */
@media(max-width:759px){
 .auth-screen{flex-direction:column;align-items:center;justify-content:flex-start;gap:18px;padding:20px 16px}
 .auth-card{order:0;flex-shrink:0;margin:0;width:min(100%,420px)}
 .intro{order:1;display:block;width:min(100%,420px);flex-shrink:0}
 .intro>.eyebrow,.intro>h1,.intro>p,.intro-bottom{display:none}
 .ranking-card{max-width:none;margin:0}.ranking-list{max-height:150px}
}
@media(max-width:700px) and (orientation:portrait){
 .chat-wrap{left:16px;bottom:300px;width:calc(100% - 80px)}
 .chat-log{display:none}.chat-wrap:has(#chatForm:not([hidden])){z-index:12}
 .chat-wrap:has(#chatForm:not([hidden])) .chat-log{display:block}
 .quickbar{bottom:240px}.spellbar #bookSpell{bottom:170px}
 .control-tip{bottom:335px}.notice-feed{bottom:365px}
 .side-panel:has(#progressionView:not([hidden])){bottom:242px}
}

/* 0.8.4: unlocked-spell pages and a compact, tappable effect strip. */
.hotbar-pages{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:auto;flex-shrink:0}
.spellbar .hotbar-pages button{font-size:20px;line-height:20px;min-height:22px;min-width:27px;padding:0 5px}
.hotbar-pages output{font-size:10px;font-variant-numeric:tabular-nums;line-height:16px;color:#e8d395}
.hotbar-slot.empty{opacity:.3}
.effects-panel{position:absolute;bottom:184px;left:50%;transform:translateX(-50%);width:min(590px,calc(100% - 48px));z-index:4;background:#10251feb;border:1px solid #b4c48966;border-radius:6px;padding:5px 7px;pointer-events:auto}
.effects-row{display:flex;gap:5px;align-items:center;min-width:0}.effects-row+.effects-row{margin-top:4px}
.effects-label{font-size:8px;color:#d8cf9a;min-width:21px;letter-spacing:.6px}
.effects-strip{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#809568 #172d24;min-width:0;padding:1px 0 3px}
.effect-chip{flex-shrink:0;background:#29462b;border:1px solid #88b1748c;border-radius:4px;font:10px/18px system-ui;padding:2px 7px;color:#e4edcc;white-space:nowrap;font-variant-numeric:tabular-nums}
.effect-chip.harmful{background:#553326;border-color:#d9986d;color:#ffe2bd}.effect-chip.concentration{border-style:dashed}
.effect-detail{position:absolute;bottom:calc(100% + 5px);left:0;right:0;padding:12px 32px 10px 12px;background:#122e26f7;border:1px solid #c9b981;border-radius:5px;box-shadow:0 4px 15px #0008;font-size:11px}
.effect-detail strong{color:#e9d7a2}.effect-detail p{margin:6px 0 0;line-height:1.6;color:#d2e0c5}.effect-detail button{position:absolute;right:3px;top:3px;font:22px system-ui;background:none;border:0;color:#ecdfa6}
.game-ui:has(.effects-panel:not([hidden])) .control-tip{bottom:269px}
@media(max-width:1100px){.spellbar{max-width:calc(100% - 275px)}}
@media(max-width:700px) and (orientation:portrait){
 .effects-panel{bottom:291px;width:calc(100% - 28px);padding:3px 5px}
 .effect-chip{font-size:9px;line-height:17px;padding:2px 6px}
 .game-ui:has(.effects-panel:not([hidden])) .control-tip{bottom:373px}
 .spellbar{max-width:none}.spellbar .hotbar-pages{position:absolute;right:0;bottom:110px;flex-direction:row;gap:6px;height:28px}
 .spellbar .hotbar-pages button{min-width:32px;min-height:28px}.hotbar-pages output{min-width:28px;text-align:center}
 .game-ui:has(#chatForm:not([hidden])) .effects-panel{visibility:hidden}
}
@media(max-height:540px) and (orientation:landscape){
 .effects-panel{bottom:125px;left:auto;right:12px;transform:none;width:min(390px,calc(100% - 245px));padding:2px 5px}
 .effect-chip{font-size:9px;padding:1px 5px}.effects-label{font-size:8px}
 .game-ui:has(.effects-panel:not([hidden])) .control-tip{bottom:195px}
 .spellbar .hotbar-pages button{min-width:24px;min-height:20px;font-size:17px}.hotbar-pages output{font-size:9px;line-height:12px}
}
/* Keep the mobile book/pages separate from effects and potion buttons. */
@media(max-width:700px) and (orientation:portrait){
 .effects-panel{bottom:308px}
 .quickbar{left:16px;transform:none;gap:4px}
 .quickbar>button{width:48px;min-width:48px;height:54px;padding:3px}
 .spellbar #bookSpell{right:116px;bottom:110px;min-width:42px;min-height:28px;padding:2px 4px}
}
@media(max-width:360px) and (orientation:portrait){
 .quickbar>button{width:40px;min-width:40px}
 .quickbar>button small{font-size:8px}
 .spellbar #bookSpell{right:110px;min-width:38px;font-size:9px}
 .spellbar .hotbar-pages{gap:3px}
}
/* Menus take focus; effect badges must not cover the spell-book buttons. */
.game-ui:has(#sidePanel:not([hidden])) .effects-panel,
.game-ui:has(#helpPanel:not([hidden])) .effects-panel{visibility:hidden}

/* Quest tracking is available beside the quest title in the journal. */
#minimapButton{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation}
#minimapButton:focus-visible{outline:2px solid #eed58d;outline-offset:2px}
.quest-entry.tracked{border-color:#d5bb77}
.quest-entry>.quest-track-button{min-height:38px;margin:4px 0 8px}
.quest-track-button[aria-pressed="true"]{border-color:#d5bb77;background:#405439;color:#fff0bd}
@media(pointer:coarse){.quest-entry>.quest-track-button{min-height:44px}}
