:root{--red:#a91834;--cream:#eee8dd;--fat:0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 30%,#22060d,#050505 55%);color:var(--cream);font-family:Arial,Helvetica,sans-serif;min-height:100vh}header{padding:25px 35px;border-bottom:1px solid #4d0d1a;background:#070707}.logo{font-weight:900;font-size:clamp(32px,5vw,64px);letter-spacing:-3px}.logo span{color:var(--red)}.tag{margin-top:6px;color:#bbb}main{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(520px,1.5fr) minmax(240px,.8fr);gap:18px;padding:20px;max-width:1550px;margin:auto}.card,.scene{background:linear-gradient(145deg,#151515,#090909);border:1px solid #333;box-shadow:0 20px 50px #0008}.card{padding:25px}.card h2{text-align:center;color:#b72a43;font-size:16px;letter-spacing:2px}.stats #count{text-align:center;font-size:clamp(70px,8vw,120px);font-weight:900}.stats p{text-align:center;color:#bbb;min-height:42px}.bar{height:15px;border:1px solid #333;background:#030303;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8e112b,#d92b4c);transition:.25s}.row{display:flex;justify-content:space-between;margin:12px 0}.stats ul{list-style:none;padding:0;margin:30px 0 0}.stats li{padding:11px 0;border-bottom:1px solid #222;color:#aaa}.scene{position:relative;min-height:620px;overflow:hidden}.poster{position:absolute;top:25px;width:115px;height:145px;border:5px solid #2a1b15;text-align:center;padding-top:35px;font-weight:900;z-index:1}.p1{left:35px;background:#352719;color:#c79655;transform:rotate(-2deg)}.p2{right:35px;background:#501317;color:#d27e72;transform:rotate(2deg)}.monitor{position:absolute;right:9%;top:145px;width:43%;height:240px;z-index:4}.screen{position:absolute;inset:0 0 30px;border:9px solid #151515;background:linear-gradient(#788b50 0 62%,#675740 62%);box-shadow:0 15px 35px #000;overflow:hidden}.minimap{position:absolute;right:8px;top:8px;width:67px;height:67px;border-radius:50%;border:5px solid #494438;background:conic-gradient(#71834a,#a38d61,#4f6c40,#8c7c50)}.player{position:absolute;left:45%;top:45%;width:12px;height:25px;background:#2f3132;box-shadow:0 -7px #c99d75}.chat{position:absolute;left:0;right:0;bottom:0;height:48px;background:#7a684fc9;color:#ead7ad;font:10px monospace;padding:6px}.stand{position:absolute;left:42%;bottom:0;width:18%;height:40px;background:#191919}.stand:after{content:"";position:absolute;left:-25%;bottom:0;width:150%;height:8px;background:#111}.desk{position:absolute;right:-3%;bottom:73px;width:66%;height:34px;background:#341e13;border-top:5px solid #50301f;z-index:6}.keyboard{position:absolute;right:15%;bottom:103px;width:29%;height:18px;background:repeating-linear-gradient(90deg,#121212 0 6px,#333 6px 7px);transform:skewX(-18deg);z-index:7}.chair{position:absolute;left:4%;bottom:32px;width:44%;height:470px;z-index:2}.back{position:absolute;left:5%;top:0;width:75%;height:355px;border-radius:70px 65px 48px 52px;background:linear-gradient(90deg,#111,#292929,#111);border:5px solid #070707;box-shadow:inset 0 0 0 3px #333;transform:rotate(-4deg)}.seat{position:absolute;left:25%;bottom:82px;width:68%;height:92px;border-radius:42% 45% 27% 30%;background:#181818;border:5px solid #090909}.base{position:absolute;left:51%;bottom:0;width:10px;height:92px;background:#171717}.base:after{content:"";position:absolute;left:-65px;bottom:0;width:140px;height:8px;background:#181818}.gamer{position:absolute;left:17%;bottom:87px;width:360px;height:390px;z-index:5;--fat:0}.head{position:absolute;left:160px;top:48px;width:92px;height:110px;background:#d3a17a;border-radius:45% 52% 48% 44%;transform:scaleX(calc(1 + var(--fat)*.13));transform-origin:left center;z-index:4}.ear{position:absolute;left:-11px;top:51px;width:22px;height:31px;background:#c58f69;border-radius:50%}.nose{position:absolute;right:-13px;top:59px;width:24px;height:18px;background:#d3a17a;border-radius:45% 60% 60% 45%}.hairback{position:absolute;left:124px;top:32px;width:116px;height:112px;background:#472414;border-radius:52% 48% 42% 45%;z-index:3}.curls{position:absolute;left:127px;top:20px;width:130px;height:70px;z-index:6}.curls i{position:absolute;width:40px;height:40px;border-radius:50%;background:#4a2817;box-shadow:inset -5px -5px #32190f}.curls i:nth-child(1){left:0;top:18px}.curls i:nth-child(2){left:23px;top:0}.curls i:nth-child(3){left:50px;top:7px}.curls i:nth-child(4){left:77px;top:0}.curls i:nth-child(5){left:95px;top:20px}.curls i:nth-child(6){left:46px;top:30px}.neck{position:absolute;left:172px;top:140px;width:57px;height:43px;background:#c9916b}.body{position:absolute;left:74px;top:157px;width:205px;height:167px;background:#17191c;border-radius:50% 42% 40% 30%;transform:scaleX(calc(1 + var(--fat)*.42));transform-origin:42% 55%;transition:.25s;z-index:3}.belly{position:absolute;left:118px;top:215px;width:172px;height:126px;background:#17191c;border-radius:45% 52% 48% 46%;transform:scale(calc(1 + var(--fat)*.85),calc(1 + var(--fat)*.42));transform-origin:35% 30%;transition:.25s;z-index:3}.arm{position:absolute;left:218px;top:205px;width:143px;height:45px;background:#d3a17a;border-radius:25px;transform:rotate(10deg) scaleX(calc(1 + var(--fat)*.14));transform-origin:left center;z-index:5}.hand{position:absolute;right:-7px;top:-1px;width:47px;height:43px;background:#d3a17a;border-radius:45%}.leg{position:absolute;top:305px;width:145px;height:74px;background:#1e4673;border-radius:38px;z-index:4}.one{left:113px;transform:rotate(4deg) scaleX(calc(1 + var(--fat)*.25))}.two{left:200px;top:325px;transform:rotate(-4deg) scaleX(calc(1 + var(--fat)*.15))}.level{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);color:#b32a42;font-weight:900;letter-spacing:2px;z-index:10;white-space:nowrap}.actions{display:flex;flex-direction:column;align-items:center}.can{position:relative;width:178px;height:310px;margin:20px 0;border:0;border-radius:46px 46px 34px 34px;cursor:pointer;color:white;background:linear-gradient(90deg,#5d0017,#bd1738 47%,#6b0019);box-shadow:0 0 48px #bf163944,inset 12px 0 22px #ffffff14,inset -13px 0 18px #0006,0 22px 28px #0008;transition:.12s}.can:hover{transform:translateY(-5px) rotate(-1deg);filter:brightness(1.08)}.can:active{transform:translateY(4px) scale(.97)}.can.pop{animation:pop .25s ease}@keyframes pop{50%{transform:scale(1.08) rotate(3deg)}}.top{position:absolute;left:7px;right:7px;top:1px;height:24px;border-radius:50%;background:linear-gradient(#e5e5e5,#777 48%,#d9d9d9 52%,#6d6d6d)}.shine{position:absolute;left:17px;top:30px;bottom:30px;width:12px;border-radius:99px;background:linear-gradient(transparent,#ffffff59,transparent)}.word{position:absolute;top:77px;left:0;right:0;font:italic 31px/.8 Georgia,serif;transform:rotate(-7deg);text-shadow:0 3px #430010}.word b{font-size:39px}.num{position:absolute;top:170px;left:50%;transform:translateX(-50%);width:57px;height:57px;border:3px solid #fffd;border-radius:50%;display:grid;place-items:center;font-weight:900}.can em{position:absolute;left:0;right:0;bottom:32px;font-style:normal;font-size:12px;font-weight:900;letter-spacing:1px}.actions>button:not(.can),dialog button{width:100%;padding:13px 14px;margin-top:10px;background:#111;border:1px solid #3f3f3f;color:#ddd;cursor:pointer;font-weight:900}.actions .danger,dialog .danger{border-color:#651326;color:#d1576d}.actions small{margin-top:18px;color:#777;text-align:center}footer{max-width:1510px;margin:0 auto 25px;padding:22px 30px;border:1px solid #4d111c;background:#0d0d0d;display:flex;gap:25px;color:#aaa}footer b{color:#b5263f;white-space:nowrap}dialog{background:#111;color:#fff;border:1px solid #4d111c;width:min(430px,calc(100% - 30px));padding:24px}dialog::backdrop{background:#000c}dialog form{display:flex;gap:10px}@media(max-width:1100px){main{grid-template-columns:1fr 1.4fr}.actions{grid-column:1/-1}}@media(max-width:760px){main{grid-template-columns:1fr;padding:12px}.scene{min-height:560px}.gamer{left:0;transform:scale(.84);transform-origin:left bottom}.monitor{right:3%;width:48%}footer{margin:0 12px 18px;flex-direction:column}header{padding:20px}.logo{font-size:36px}}

/* Lightweight character and skilling add-on */
header{display:flex;align-items:center;justify-content:space-between;gap:20px}.hidden{display:none!important}.character-box{min-width:190px;text-align:right}.character-button,.character-summary,.game-strip button,.game-dialog button{background:#111;border:1px solid #5b1725;color:#eee;padding:11px 15px;font-weight:900;cursor:pointer}.character-summary{display:inline-flex;flex-direction:column;gap:4px;text-align:left;min-width:180px}.character-summary b{color:#d52c4b;letter-spacing:1px}.character-summary span{font-size:12px;color:#aaa}.character-summary strong{color:#eee}.resource-layer{position:absolute;inset:0;z-index:15;pointer-events:none}.resource-node{position:absolute;width:96px;height:96px;padding:4px;background:#090909d9;border:1px solid #a88a51;border-radius:50%;cursor:pointer;pointer-events:auto;filter:drop-shadow(0 8px 12px #000);animation:resourceIn .45s ease,resourcePulse 1.6s ease-in-out infinite alternate}.resource-node img{width:78px;height:70px;object-fit:contain;display:block;margin:auto}.resource-node span{position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);background:#080808e8;border:1px solid #4a3821;padding:4px 7px;color:#e8d7a9;font-size:10px;font-weight:900;white-space:nowrap}.resource-node:hover{filter:brightness(1.2) drop-shadow(0 8px 18px #cba35b66)}.resource-node.working img{animation:resourceShake .22s linear infinite}.resource-node.collected{animation:resourceCollect .35s forwards}.resource-node.expired{animation:resourceExpire .35s forwards}@keyframes resourceIn{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes resourcePulse{to{transform:scale(1.07)}}@keyframes resourceShake{50%{transform:rotate(5deg)}}@keyframes resourceCollect{to{opacity:0;transform:scale(1.45)}}@keyframes resourceExpire{to{opacity:0;transform:scale(.6)}}.game-strip{max-width:1510px;margin:0 auto 14px;padding:14px 20px;border:1px solid #4d111c;background:#0d0d0d;display:flex;align-items:center;gap:10px}.game-strip>div{display:flex;flex-direction:column;gap:4px;margin-right:auto}.game-strip b{color:#b5263f}.game-strip span{color:#888;font-size:13px}.game-strip button:disabled{opacity:.35;cursor:not-allowed}.toast{position:fixed;left:50%;bottom:25px;z-index:100;transform:translate(-50%,30px);opacity:0;background:#17120a;border:2px solid #9c783e;color:#f0d99b;padding:12px 20px;font-weight:900;box-shadow:0 8px 35px #000;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.game-dialog{position:relative;background:linear-gradient(#1b160d,#0e0c08);border:2px solid #73582d;color:#eee;width:min(440px,calc(100% - 24px));padding:25px;box-shadow:inset 0 0 0 2px #21180c}.game-dialog.wide{width:min(620px,calc(100% - 24px))}.game-dialog h3,.game-dialog h4{color:#d9bd75;letter-spacing:2px}.game-dialog p{color:#aaa}.game-dialog form{display:flex;flex-direction:column;gap:9px}.game-dialog input{background:#090909;border:1px solid #6b5531;color:#fff;padding:12px;font:inherit}.game-dialog form small{min-height:16px;color:#d65b70}.dialog-x{position:absolute;right:10px;top:8px!important;width:auto!important;margin:0!important;border:0!important;font-size:22px;padding:5px 10px!important}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.skill-card{display:flex;gap:8px;align-items:center;background:#0a0a08;border:1px solid #4c3b20;padding:10px}.skill-card img{width:55px;height:55px;object-fit:contain}.skill-card>div{min-width:0;flex:1;display:grid;grid-template-columns:1fr auto;gap:3px}.skill-card b{font-size:12px;color:#d9bd75}.skill-card strong{grid-row:1/3;grid-column:2;font-size:28px}.skill-card small{color:#888}.skill-card i{grid-column:1/-1;height:5px;background:#222}.skill-card i span{display:block;height:100%;background:#9f762c}.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.collectible{padding:10px;background:#080808;border:1px solid #292929;color:#666}.collectible span{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border:1px solid #333}.collectible.found{color:#e5cf92;border-color:#705725}.leaderboard>div{display:grid;grid-template-columns:35px 1fr 65px;padding:11px;border-bottom:1px solid #302618}.leaderboard>div b{color:#9e7936}.leaderboard>div strong{text-align:right;color:#d9bd75}.leaderboard>div span{overflow:hidden;text-overflow:ellipsis}@media(max-width:760px){header{align-items:flex-start}.character-box{min-width:0}.character-summary{min-width:145px}.game-strip{margin:0 12px 14px;flex-wrap:wrap}.game-strip>div{width:100%}.game-strip button{flex:1}.skills-grid{grid-template-columns:1fr}.resource-node{width:78px;height:78px}.resource-node img{width:64px;height:58px}}

.existing-character{display:flex;flex-direction:column;gap:12px;padding:14px;background:#090909;border:1px solid #5b4728}.existing-character b{font-size:22px;color:#d9bd75}.change-character{width:100%;margin-top:18px;border-color:#444!important;color:#aaa!important}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.auth-tabs button{margin:0!important;border-color:#3f3f3f!important;color:#888!important}.auth-tabs button.active{border-color:#9c783e!important;color:#f0d99b!important;background:#1b160d!important}.game-dialog label{font-size:13px;color:#d9bd75;font-weight:700}.change-character{width:100%;margin-top:18px;border-color:#651326!important;color:#d1576d!important}

/* Clicking Agility minigame */
.agility-dialog{width:min(700px,calc(100% - 24px))}.agility-stats{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 0;color:#aaa;font-size:13px}.agility-stats b{color:#e5cf92}.agility-arena{position:relative;height:390px;overflow:hidden;border:2px solid #654f29;background:radial-gradient(circle at 50% 45%,#242014,#080806 70%);box-shadow:inset 0 0 35px #000}.agility-arena:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff06 1px,transparent 1px),linear-gradient(#ffffff06 1px,transparent 1px);background-size:32px 32px;pointer-events:none}.agility-arena #agilityStart{position:absolute;left:50%;top:50%;width:auto;transform:translate(-50%,-50%);margin:0;background:#1b160d;border-color:#9c783e;color:#f0d99b;padding:15px 24px;z-index:2}.agility-target{position:absolute;width:62px!important;height:62px;padding:0!important;margin:0!important;border-radius:50%;border:3px solid #e2c574!important;background:radial-gradient(circle,#fff3a6 0 12%,#d79b28 13% 38%,#6f4711 39% 60%,#1b1207 61%)!important;box-shadow:0 0 0 7px #e4bd4b33,0 0 28px #ffc84e;animation:agilityFlash .55s ease-in-out infinite alternate;transform:translate(-50%,-50%);z-index:4}.agility-target:after{content:"CLICK";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:9px;color:#241500;font-weight:900}.agility-target.hit{animation:agilityHit .16s forwards}.agility-message{display:block;min-height:22px;margin-top:10px;color:#d9bd75;text-align:center}.skill-card.agility img{filter:grayscale(1) sepia(.7)}@keyframes agilityFlash{to{filter:brightness(1.45);box-shadow:0 0 0 12px #e4bd4b18,0 0 42px #ffc84e;transform:translate(-50%,-50%) scale(1.08)}}@keyframes agilityHit{to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}@media(max-width:600px){.agility-arena{height:330px}.agility-target{width:54px!important;height:54px}.agility-stats{font-size:12px}}
.agility-skill-icon{width:55px;height:55px;display:grid;place-items:center;border:1px solid #705725;background:#17120a;color:#e5cf92;font-size:31px;font-weight:900;border-radius:50%}

/* Repo XP Rush */
.agility-open-button{display:inline-flex!important;align-items:center;justify-content:center;gap:9px}
.agility-open-button img{width:24px;height:24px;object-fit:contain}
.agility-skill-icon{width:55px!important;height:55px!important;object-fit:contain!important;border:1px solid #705725!important;background:#17120a!important;border-radius:50%!important;padding:5px!important;filter:none!important}
.agility-arena{background:radial-gradient(circle at 50% 42%,#342812,#0b0804 72%)}
.agility-arena:after{content:"DR PEPPER DASH";position:absolute;left:12px;bottom:8px;color:#e7ca7a22;font-size:26px;font-weight:900;letter-spacing:3px;pointer-events:none}
.agility-runner{position:absolute;left:50%;top:55%;width:360px;height:390px;z-index:3;transform:translate(-50%,-50%) scale(.28);transform-origin:center;transition:left .18s ease-out,top .18s ease-out;pointer-events:none;--fat:0}
.agility-runner.running{animation:runnerBob .2s ease-out}
.agility-runner .leg.one{animation:runnerLegOne .22s linear infinite alternate}
.agility-runner .leg.two{animation:runnerLegTwo .22s linear infinite alternate}
.agility-target{width:48px!important;height:78px!important;border:0!important;border-radius:13px 13px 10px 10px!important;background:linear-gradient(90deg,#5b0016,#c51b3d 48%,#690018)!important;box-shadow:0 0 0 6px #d9234733,0 0 25px #e52a4f!important;overflow:visible;animation:canFlash .48s ease-in-out infinite alternate!important}
.agility-target:after{content:""!important}
.agility-target .mini-can-top{position:absolute;left:3px;right:3px;top:0;height:8px;border-radius:50%;background:linear-gradient(#eee,#777 50%,#ddd 52%,#666)}
.agility-target .mini-can-shine{position:absolute;left:7px;top:10px;bottom:9px;width:4px;border-radius:99px;background:#ffffff3d}
.agility-target .mini-can-label{position:absolute;left:0;right:0;top:25px;color:#fff;font:italic 10px/.85 Georgia,serif;text-shadow:0 1px #39000d;transform:rotate(-5deg)}
.agility-target .mini-can-label b{font-size:12px}
.agility-target.hit{animation:canCaught .2s forwards!important}
@keyframes canFlash{to{filter:brightness(1.35);transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 0 11px #d923471a,0 0 38px #ee3659}}
@keyframes canCaught{to{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(18deg)}}
@keyframes runnerBob{50%{transform:translate(-50%,-53%) scale(.3) rotate(-2deg)}}
@keyframes runnerLegOne{to{transform:rotate(-14deg) scaleX(calc(1 + var(--fat)*.25))}}
@keyframes runnerLegTwo{to{transform:rotate(14deg) scaleX(calc(1 + var(--fat)*.15))}}
@media(max-width:600px){.agility-runner{transform:translate(-50%,-50%) scale(.23)}.agility-target{width:42px!important;height:68px!important}}

/* Hard limit for the Agility icon so its source dimensions can never stretch the strip. */
#openAgility {
  width: auto;
  min-width: 150px;
  flex: 0 0 auto;
}
#openAgility > img {
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  object-fit: contain !important;
  flex: 0 0 24px !important;
}
@media (max-width:760px) {
  #openAgility { min-width: 0; }
}


/* Clickable profiles and Repo XP Rush records */
.leaderboard-help{margin-top:-6px!important;font-size:12px}
.leaderboard .player-link{min-width:0;width:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:#e6cf91!important;text-align:left;font:inherit;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leaderboard .player-link:hover{text-decoration:underline;color:#fff0bd!important}
.leaderboard.compact{max-height:190px;overflow:auto;border:1px solid #302618;background:#090806}
.leaderboard.compact>div{padding:8px 10px;grid-template-columns:30px 1fr 80px}
.dash-leaderboard-section{margin-top:16px;border-top:1px solid #4c3b20;padding-top:10px}
.dash-leaderboard-section h4{margin:0 0 8px}
.public-profile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.public-profile-summary>div{background:#090806;border:1px solid #4c3b20;padding:10px;display:flex;flex-direction:column;gap:4px}
.public-profile-summary span{color:#888;font-size:11px;text-transform:uppercase;letter-spacing:1px}
.public-profile-summary strong{color:#e5cf92;font-size:18px}
.public-skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.public-skill{display:flex;align-items:center;gap:10px;background:#090806;border:1px solid #4c3b20;padding:9px}
.public-skill img{width:46px;height:46px;object-fit:contain}
.public-skill div{display:flex;flex-direction:column;min-width:0}
.public-skill b{color:#d9bd75}
.public-skill strong{font-size:13px}
.public-skill small{color:#888}
#playerStatsBody h4 small{color:#888;letter-spacing:0;font-weight:normal}
@media(max-width:600px){.public-profile-summary{grid-template-columns:1fr}.public-skills-grid{grid-template-columns:1fr}.leaderboard.compact{max-height:150px}}


/* Slayer / Jad simulator */
.slayer-open-button{display:inline-flex!important;align-items:center;justify-content:center;gap:9px}
.slayer-open-button img{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;object-fit:contain;image-rendering:pixelated}
.slayer-skill-icon{width:55px!important;height:55px!important;object-fit:contain!important;image-rendering:pixelated;border:1px solid #705725;background:#17120a;padding:4px}
.slayer-dialog{width:min(720px,calc(100% - 24px))}
.jad-status-row{display:flex;justify-content:space-between;gap:12px;margin:12px 0 7px;color:#aaa;font-size:13px}.jad-status-row b{color:#e5cf92}
.jad-health{height:15px;border:2px solid #4f3b1e;background:#090806;margin-bottom:10px}.jad-health i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#6e0d16,#c52b34);transition:width .25s ease}
.jad-arena{position:relative;height:330px;overflow:hidden;border:2px solid #654f29;background:radial-gradient(circle at 50% 72%,#462c15,#140c06 58%,#050403);box-shadow:inset 0 0 45px #000}
.jad-arena:before{content:"";position:absolute;left:0;right:0;bottom:0;height:36%;background:repeating-linear-gradient(165deg,#2d1c0d 0 22px,#3a2410 23px 44px);clip-path:polygon(0 58%,8% 40%,17% 62%,27% 35%,39% 61%,50% 30%,61% 60%,73% 38%,84% 63%,93% 42%,100% 55%,100% 100%,0 100%)}
.jad-arena #jadStart{position:absolute;left:50%;top:74%;transform:translate(-50%,-50%);z-index:8;background:#1b160d;border-color:#9c783e;color:#f0d99b;padding:14px 24px}
.jad-cue{position:absolute;top:15px;left:50%;transform:translateX(-50%);z-index:7;background:#090806d9;border:1px solid #725a2d;padding:8px 13px;color:#e7ca7a;font-weight:900;letter-spacing:1px;white-space:nowrap}
.jad-boss{position:absolute;left:50%;top:53%;width:190px;height:190px;transform:translate(-50%,-50%);transition:transform .2s,filter .2s;z-index:4}
.jad-body{position:absolute;left:36px;top:65px;width:120px;height:90px;background:linear-gradient(135deg,#6b391d,#32190d);clip-path:polygon(15% 0,85% 0,100% 45%,80% 100%,18% 100%,0 45%);border-radius:35%}
.jad-head{position:absolute;left:57px;top:25px;width:77px;height:66px;background:#8a4c24;clip-path:polygon(18% 0,82% 0,100% 35%,82% 100%,18% 100%,0 35%);z-index:3}
.jad-eye{position:absolute;top:28px;width:9px;height:9px;background:#ffe95d;box-shadow:0 0 9px #ff7028}.jad-eye.one{left:19px}.jad-eye.two{right:19px}
.jad-horns i{position:absolute;top:10px;width:62px;height:31px;background:#c0b9a1;clip-path:polygon(0 65%,100% 0,70% 100%);z-index:2}.jad-horns i:first-child{left:10px;transform:rotate(-15deg)}.jad-horns i:last-child{right:10px;transform:scaleX(-1) rotate(-15deg)}
.jad-leg{position:absolute;top:137px;width:60px;height:43px;background:#42200e;clip-path:polygon(0 0,100% 15%,80% 100%,10% 85%)}.jad-leg.one{left:25px;transform:rotate(15deg)}.jad-leg.two{right:25px;transform:scaleX(-1) rotate(15deg)}
.jad-projectile{position:absolute;left:82px;top:70px;width:28px;height:28px;border-radius:50%;opacity:0;z-index:6}.jad-projectile.magic{opacity:1;background:#5da7ff;box-shadow:0 0 22px #5da7ff}.jad-projectile.ranged{opacity:1;background:#8ad14b;clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%);border-radius:0;box-shadow:0 0 18px #8ad14b}.jad-projectile.land{animation:jadProjectile .45s forwards}
.jad-boss.attacking.magic{animation:jadRise .45s ease-in-out infinite alternate}.jad-boss.attacking.ranged{animation:jadStomp .28s ease-in-out infinite alternate}.jad-boss.blocked{filter:brightness(1.5)}.jad-boss.defeated{transform:translate(-50%,-36%) rotate(90deg);filter:grayscale(1)}.jad-boss.victorious{filter:drop-shadow(0 0 18px #d62b23)}
.prayer-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.prayer-button{display:grid!important;grid-template-columns:44px 1fr;grid-template-rows:auto auto;text-align:left!important;align-items:center;gap:2px 9px;border-color:#4c3b20!important}.prayer-button .prayer-symbol{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:24px;background:#222}.prayer-button b{font-size:12px;color:#e5cf92}.prayer-button small{color:#888}.prayer-button.active{border-color:#e3c36e!important;box-shadow:inset 0 0 0 2px #e3c36e55}.prayer-button.ranged.active .prayer-symbol{background:#245b1e;color:#b8ff8d}.prayer-button.magic.active .prayer-symbol{background:#183a67;color:#9bd1ff}
.jad-message{display:block;min-height:22px;margin-top:10px;color:#d9bd75;text-align:center}
@keyframes jadRise{to{transform:translate(-50%,-57%) scale(1.08)}}@keyframes jadStomp{to{transform:translate(-50%,-47%) rotate(2deg)}}@keyframes jadProjectile{to{transform:translate(0,170px) scale(1.7);opacity:0}}
@media(max-width:600px){.jad-arena{height:290px}.jad-boss{transform:translate(-50%,-50%) scale(.82)}.prayer-controls{grid-template-columns:1fr}.jad-cue{font-size:11px}}


/* Jad music finale effect */
.jad-arena.danger{animation:jadDangerPulse .8s ease-in-out infinite alternate;box-shadow:inset 0 0 45px #000,0 0 0 2px rgba(170,22,22,.35)}
.jad-arena.danger .jad-health{filter:saturate(1.25)}
@keyframes jadDangerPulse{from{border-color:#654f29}to{border-color:#a61c22;box-shadow:inset 0 0 55px #180000,0 0 16px rgba(170,22,22,.35)}}

/* One-minute Combat Survival */
.combat-open-button{display:inline-flex!important;align-items:center;justify-content:center;gap:8px}.combat-open-button>span{font-size:23px;color:#e4c570}.combat-dialog{width:min(850px,calc(100% - 18px))}.combat-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0 7px}.combat-hud span{background:#090806;border:1px solid #4c3b20;padding:8px;text-align:center;color:#999;font-size:12px}.combat-hud b{display:block;color:#e8d79f;font-size:16px;margin-top:2px}.combat-xp-bar{height:8px;border:1px solid #4c3b20;background:#090806;margin-bottom:8px;overflow:hidden}.combat-xp-bar i{display:block;width:0;height:100%;background:#5aa7d8;transition:width .12s}.combat-arena{position:relative;overflow:hidden;border:2px solid #604a29;background:#152416}.combat-arena canvas{display:block;width:100%;height:auto;aspect-ratio:760/430;image-rendering:pixelated}.combat-overlay{position:absolute;inset:0;z-index:8;background:#050504c9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;padding:20px}.combat-overlay>b{color:#e7cb82;font-size:20px;letter-spacing:1px}.combat-overlay>span{color:#bbb;max-width:480px}.combat-overlay>#combatStart{width:auto;padding:13px 30px;border-color:#9a783e;color:#f0d99b}.combat-upgrades{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;width:min(650px,100%)}.combat-upgrades button{display:flex!important;flex-direction:column;align-items:center;gap:5px;min-height:82px;border-color:#7b6335!important}.combat-upgrades button b{color:#e9d28f}.combat-upgrades button small{color:#aaa}.combat-message{display:block;text-align:center;min-height:22px;margin-top:9px;color:#d9bd75}.combat-touch{display:none;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.combat-touch button{margin:0!important;padding:10px!important}.combat-skill-icon{width:55px!important;height:55px!important;object-fit:contain;image-rendering:pixelated;background:#17120a;border:1px solid #705725;padding:8px;box-sizing:border-box;flex:0 0 55px}.public-combat-icon{width:46px;height:46px;display:grid;place-items:center;background:#17120a;border:1px solid #705725;color:#e8cf85;font-size:23px;flex:0 0 46px}.public-skill img[src*="attack-icon"],.public-skill img[src*="strength-icon"],.public-skill img[src*="defence-icon"]{object-fit:contain!important;image-rendering:pixelated;padding:6px;box-sizing:border-box;background:#17120a}
@media(max-width:700px){.combat-hud{grid-template-columns:1fr 1fr}.combat-touch{display:grid}.combat-upgrades{grid-template-columns:1fr}.combat-overlay>b{font-size:17px}.combat-dialog{padding:14px}.combat-dialog>p{font-size:12px}}


/* Repo Company High Seas — rhythm sailing */
.sailing-open-button{display:inline-flex!important;align-items:center;justify-content:center;gap:8px}.sailing-open-button img{width:24px;height:24px;object-fit:contain;image-rendering:pixelated}.sailing-dialog{width:min(850px,calc(100% - 18px))}.sailing-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0 8px}.sailing-hud span{background:#071015;border:1px solid #31586b;padding:8px;text-align:center;color:#9fb5bf;font-size:12px}.sailing-hud b{display:block;color:#ccecff;font-size:16px;margin-top:2px}.sailing-arena{position:relative;overflow:hidden;border:2px solid #56839a;background:#07151d;box-shadow:inset 0 0 24px #000}.sailing-arena canvas{display:block;width:100%;height:auto;aspect-ratio:760/430;image-rendering:pixelated;cursor:pointer;touch-action:none}.sailing-overlay{position:absolute;inset:0;z-index:8;background:#02080de8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:22px}.sailing-overlay>b{color:#d4f1ff;font-size:21px;letter-spacing:1px;text-shadow:0 2px #000}.sailing-overlay>span{color:#b7cad3;max-width:590px}.sailing-overlay button{width:auto;padding:13px 31px;border-color:#6ca5be!important;color:#d7f4ff!important}.sailing-touch{display:none;margin-top:8px}.sailing-touch button{width:100%;margin:0!important;padding:13px!important;font-size:16px!important;touch-action:none}.sailing-message{display:block;text-align:center;min-height:22px;margin-top:9px;color:#bfe9fb}.sailing-skill-icon{width:55px!important;height:55px!important;object-fit:contain;image-rendering:pixelated;background:#09161b;border:1px solid #47788e;padding:8px;box-sizing:border-box;flex:0 0 55px}.sailing-dialog.shake{animation:sailShake .3s linear}.sailing-dialog.danger .sailing-arena{animation:sailPulse .45s alternate infinite}@keyframes sailShake{20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}@keyframes sailPulse{to{border-color:#d84d56;box-shadow:inset 0 0 32px #711b28}}
@media(max-width:700px){.sailing-hud{grid-template-columns:1fr 1fr}.sailing-touch{display:block}.sailing-overlay>b{font-size:17px}.sailing-dialog>p{font-size:13px}}


/* Combat starting weapon selector */
.combat-weapon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(690px,100%);margin:4px 0 2px}
.combat-weapon-choice{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:78px;padding:10px!important;margin:0!important;border:1px solid #5d4a2b!important;background:#11100d!important;color:#d7c9a2!important}
.combat-weapon-choice strong{font-size:14px;color:#ead89f}.combat-weapon-choice small{font-size:11px;color:#aaa}
.combat-weapon-choice:hover,.combat-weapon-choice.selected{border-color:#d4ab51!important;background:#292113!important;box-shadow:inset 0 0 0 1px #8e6e30}
@media(max-width:700px){.combat-weapon-grid{grid-template-columns:1fr}.combat-weapon-choice{min-height:58px}}

/* Repo Company rebrand */
:root{--red:#63d39a;--cream:#e8f1ec;--repo:#63d39a;--repo-dark:#07130e}
body{background:radial-gradient(circle at 50% 25%,#123226,#050807 58%);color:var(--cream)}
header{border-bottom-color:#286248;background:#050807}.logo{letter-spacing:-2px}.logo span{color:var(--repo)}
.card,.scene{background:linear-gradient(145deg,#111a16,#070b09);border-color:#294538}.card h2,.level{color:var(--repo)}
.bar i{background:linear-gradient(90deg,#28734f,#72e0a7)}
.p1{background:#17241d;color:#9ad1b2;border-color:#24372d}.p2{background:#103323;color:#75e3aa;border-color:#1d4c36}
.scene{box-shadow:0 20px 50px #0009,inset 0 0 80px #1f6d4820}
/* Normal anonymous RuneScape player rather than Connor */
.gamer{--fat:0!important;filter:saturate(.85)}
.gamer .curls{display:none}.gamer .hairback{left:142px;top:34px;width:101px;height:74px;border-radius:48% 52% 30% 34%;background:#3a2b20}
.gamer .head{transform:none!important}.gamer .body{width:185px;transform:none!important;border-radius:35% 38% 30% 28%;background:#26382f}
.gamer .belly{left:128px;top:235px;width:135px;height:92px;transform:none!important;background:#26382f;border-radius:35%}
.gamer .arm{transform:rotate(10deg)}.gamer .leg{transform:none;background:#324e66}.gamer .one{transform:rotate(4deg)}.gamer .two{transform:rotate(-4deg)}
/* Replace the drink can with an XP-waste control */
.xp-waste-button{position:relative;width:220px;height:220px;margin:35px 0;border:2px solid #69dca2;border-radius:28px;cursor:pointer;color:#eafff3;background:linear-gradient(145deg,#163d2b,#08150f);box-shadow:0 0 0 8px #63d39a15,0 0 45px #54d39442,inset 0 0 38px #69dca218;transition:.12s;overflow:hidden}
.xp-waste-button:hover{transform:translateY(-5px) scale(1.02);filter:brightness(1.12)}.xp-waste-button:active{transform:translateY(3px) scale(.97)}.xp-waste-button.pop{animation:repoPop .25s ease}
.xp-waste-button .xp-runes{display:block;font:900 74px/1 Georgia,serif;color:#86efb9;text-shadow:0 4px #174b33,0 0 20px #64d79e;margin-top:22px}.xp-waste-button .xp-spark{position:absolute;right:22px;top:18px;font-size:30px;color:#d9ffe9;animation:repoSpark 1s alternate infinite}.xp-waste-button strong{display:block;font-size:24px;line-height:.95;letter-spacing:1px}.xp-waste-button em{position:absolute;left:12px;right:12px;bottom:15px;font-style:normal;font-size:10px;letter-spacing:1px;color:#a8c9b7}@keyframes repoPop{50%{transform:scale(1.08) rotate(2deg)}}@keyframes repoSpark{to{transform:rotate(30deg) scale(1.2);opacity:.65}}
/* Agility XP drops */
.agility-target{width:54px!important;height:54px!important;border:2px solid #8af0bb!important;border-radius:14px!important;background:radial-gradient(circle,#276c4a,#07160f 72%)!important;box-shadow:0 0 0 6px #63d39a24,0 0 28px #63d39a!important;animation:xpDropPulse .48s ease-in-out infinite alternate!important}
.agility-target .mini-can-top,.agility-target .mini-can-shine{display:none!important}.agility-target .xp-drop-star{position:absolute;inset:2px 0 auto;font-size:25px;color:#dffff0;text-shadow:0 0 10px #fff}.agility-target .mini-can-label{top:30px!important;color:#8df1bd!important;font:bold 12px/1 Arial,sans-serif!important;transform:none!important;text-shadow:0 1px #062014!important}.agility-target.hit{animation:xpDropCaught .2s forwards!important}@keyframes xpDropPulse{to{filter:brightness(1.35);transform:translate(-50%,-50%) scale(1.1)}}@keyframes xpDropCaught{to{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(30deg)}}
.game-strip,footer{border-color:#285c44!important;background:#07100c!important}.game-strip button,button{border-color:#376b51}.game-dialog{border-color:#35684f!important}.toast{border-color:#4a9c71!important}
.agility-arena:after{content:"REPO XP RUSH"!important;color:#71dfa62b!important}

.combat-option-title{display:block;margin-top:12px;color:#d7e7d8}.combat-difficulty-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:7px 0 12px}.combat-difficulty-choice{background:#17241b;border:2px solid #4c654f;color:#eee;padding:10px 7px}.combat-difficulty-choice small{display:block;color:#aebbad;margin-top:4px}.combat-difficulty-choice.selected{border-color:#d5b65c;background:#293422;box-shadow:0 0 0 2px rgba(213,182,92,.18)}
.runecrafting-open-button{background:inherit}.runecrafting-dialog{width:min(920px,96vw)}.rc-lobby{padding:18px;background:#111a16;border:1px solid #405a49;border-radius:10px}.rc-lobby-actions{display:grid;grid-template-columns:1fr 2fr;gap:14px;align-items:end}.rc-lobby-actions>div{display:grid;grid-template-columns:1fr auto;gap:7px}.rc-lobby-actions label{grid-column:1/-1}.rc-lobby input{background:#0d1410;color:#fff;border:1px solid #617665;padding:11px;text-transform:uppercase;font-weight:bold;letter-spacing:3px}.rc-hud{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.rc-hud span{background:#14221a;border:1px solid #3d654d;padding:7px 10px;border-radius:7px}.runecrafting-dialog canvas{display:block;width:100%;height:auto;touch-action:none;border:4px solid #24170f;border-radius:8px;background:#176044}.rc-power{display:grid;grid-template-columns:auto 180px 1fr;align-items:center;gap:10px;margin:10px 0}.rc-power input{accent-color:var(--repo)}.rc-controls{display:flex;gap:8px}.rc-message{display:block;margin-top:9px;color:#cddbcf}.skill-card.runecrafting .rc-skill-icon,.rc-skill-icon{display:block;width:42px;height:42px;object-fit:contain;image-rendering:auto}.runecrafting-open-button img{width:24px;height:24px;object-fit:contain;display:block;flex:0 0 24px}@media(max-width:650px){.combat-difficulty-grid{grid-template-columns:1fr}.rc-lobby-actions{grid-template-columns:1fr}.rc-power{grid-template-columns:1fr}.rc-lobby-actions>div{grid-template-columns:1fr}.rc-lobby-actions label{grid-column:auto}}

.rc-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.rc-legend span{display:flex;align-items:center;gap:6px;background:#14221a;border:1px solid #3d654d;padding:6px 9px;border-radius:7px}.rc-legend img{width:24px;height:24px;object-fit:contain;border-radius:50%}

/* Runecrafting Pool: match the Repo Company controls and show pocketed runes */
.runecrafting-open-button{background:transparent!important;color:inherit!important}
.runecrafting-open-button:hover:not(:disabled){background:#14221a!important;border-color:#63d39a!important}
.rc-potted{display:grid;grid-template-columns:1fr 1fr minmax(110px,.45fr);gap:10px;margin:10px 0}
.rc-potted>div{background:#0d1712;border:1px solid #355b46;border-radius:8px;padding:8px}
.rc-potted b{display:block;margin-bottom:6px;font-size:11px;letter-spacing:.5px;color:#b9d4c3}
.rc-potted-tray{display:flex;align-items:center;gap:4px;min-height:30px;flex-wrap:wrap}
.rc-potted-ball{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;border:2px solid #151515;overflow:hidden;box-shadow:inset 0 0 5px #0008}
.rc-potted-ball.fire{background:#c92720}.rc-potted-ball.chaos{background:#f0ba00}.rc-potted-ball.wrath{background:#111;border-color:#d8d8d8}
.rc-potted-ball img{width:23px;height:23px;object-fit:cover;border-radius:50%}
.rc-potted-empty{font-size:12px;color:#71877a}
@media(max-width:650px){.rc-potted{grid-template-columns:1fr}}

/* Balanced game-strip sizing and new mode selectors */
.game-strip button{min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.15}
.runecrafting-open-button{width:auto!important;min-width:154px!important;max-width:154px!important;padding:11px 12px!important}
.runecrafting-open-button img{flex:0 0 24px!important}
.slayer-option-title{display:block;margin-top:8px;color:#d7e7d8}
.slayer-difficulty-grid,.combat-location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:7px 0 12px}
.slayer-difficulty-choice,.combat-location-choice{background:#17241b!important;border:2px solid #4c654f!important;color:#eee!important;padding:9px 7px!important;margin:0!important}
.slayer-difficulty-choice small,.combat-location-choice small{display:block;color:#aebbad;margin-top:4px;font-weight:normal}
.slayer-difficulty-choice.selected,.combat-location-choice.selected{border-color:#d5b65c!important;background:#293422!important;box-shadow:0 0 0 2px rgba(213,182,92,.18)}
@media(max-width:650px){.slayer-difficulty-grid,.combat-location-grid{grid-template-columns:1fr}.runecrafting-open-button{min-width:0!important;max-width:none!important;width:auto!important}}
.runecrafting-open-button{font-size:12px!important;white-space:nowrap!important}
\n
/* Unlimited counter and compact navigation fixes */
.stats{min-width:0;overflow:hidden}
.stats #count{
  width:100%;
  min-width:0;
  font-size:clamp(42px,6.1vw,96px)!important;
  line-height:.95;
  letter-spacing:-.045em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
  font-variant-numeric:tabular-nums;
}
.stats .row{gap:12px;align-items:center}
.stats .row b{white-space:nowrap;color:var(--repo)}
.stats ul{margin-top:22px}
.stats li{font-size:clamp(12px,1vw,16px)}
.runecrafting-open-button{
  width:154px!important;
  min-width:154px!important;
  max-width:154px!important;
  padding:9px 8px!important;
  font-size:11px!important;
  line-height:1.05!important;
  white-space:normal!important;
  overflow:visible!important;
  text-align:center!important;
}
.runecrafting-open-button img{width:22px!important;height:22px!important;flex:0 0 22px!important}
@media(max-width:1100px){
  .stats #count{font-size:clamp(48px,10vw,92px)!important}
}
@media(max-width:760px){
  .stats #count{font-size:clamp(46px,17vw,88px)!important}
  .runecrafting-open-button{width:auto!important;min-width:145px!important;max-width:none!important;flex:1 1 145px!important}
}


/* Wise Old Man personal task system */
.wise-task-open-button{position:relative;min-width:132px;padding:8px 12px!important}
.wise-task-open-button img{width:30px;height:30px;object-fit:contain;image-rendering:pixelated;flex:0 0 30px}
.wise-task-open-button span{color:#eee!important;font-size:12px!important;font-weight:900;line-height:1.15}
.wise-task-badge{position:absolute;right:4px;top:3px;display:grid!important;place-items:center;width:18px;height:18px;border-radius:50%;background:#e2bd35;color:#171005!important;font-size:12px!important;border:1px solid #fff3a6}
.wise-task-dialog{width:min(560px,calc(100% - 24px));background:linear-gradient(145deg,#192319,#090e0a)!important}
.wise-task-heading{display:flex;align-items:center;gap:15px;padding-right:28px}.wise-task-heading>img{width:76px;height:76px;object-fit:contain;image-rendering:pixelated}.wise-task-heading h3{margin:0 0 5px}.wise-task-heading p{margin:0}
.wise-wallet{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:10px;margin:16px 0;padding:10px 13px;background:#0b130d;border:1px solid #625622}.wise-wallet img{width:50px;height:42px;object-fit:contain}.wise-wallet span{color:#9eb4a5}.wise-wallet strong{font-size:20px;color:#f2cf42;text-shadow:0 1px #6d5600}
.wise-task-empty,.wise-active-task{padding:16px;background:#0d1710;border:1px solid #3d684c}.wise-task-empty p{margin-top:0}.wise-task-empty button,.wise-active-task button{width:100%;background:#253a29!important;border-color:#82aa60!important;color:#f1e9bf!important}
.wise-scroll-label{display:block;color:#d2b85a;font-size:11px;font-weight:900;letter-spacing:1.4px}.wise-active-task h4{margin:7px 0!important;color:#e7d58d!important}.wise-active-task p{margin:5px 0 12px}.wise-progress{height:14px;border:1px solid #4c604e;background:#050806;overflow:hidden}.wise-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3b8d5e,#e1c341);transition:width .35s}.wise-task-numbers{display:flex;justify-content:space-between;margin:8px 0 12px;color:#c4d4c8}.wise-task-numbers strong{color:#f0ce3f}.wise-active-task small{display:block;margin-top:9px;color:#9eada1}.wise-active-task.complete{border-color:#d2b63f;box-shadow:inset 0 0 24px #d8b52b18}
.wise-task-actions{display:grid;grid-template-columns:1fr;gap:8px}.wise-task-actions button{margin:0}.wise-skip-task{background:#3b211d!important;border-color:#a86150!important;color:#ffd5c7!important}.wise-skip-task:hover:not(:disabled){background:#553027!important}.wise-skip-task:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.wise-task-open-button{min-width:0}.wise-task-heading>img{width:60px;height:60px}.wise-wallet{grid-template-columns:45px 1fr auto}.wise-wallet img{width:42px}}


/* Single-player Rune Pool and Inferno additions */
.rc-single-panel{border:1px solid #285e47;padding:12px;background:#07130e;margin-bottom:12px}.rc-single-panel>b{display:block;color:#65e5a8;letter-spacing:1px;margin-bottom:9px}.rc-ai-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.rc-ai-choice{min-height:66px}.rc-ai-choice strong,.rc-ai-choice small{display:block}.rc-ai-choice small{margin-top:4px;color:#8fa99c}.rc-ai-choice.selected{border-color:#70e2aa!important;box-shadow:inset 0 0 0 1px #70e2aa;background:#10241b}.rc-online-divider{display:flex;align-items:center;gap:10px;color:#668174;font-size:11px;letter-spacing:1px;margin:10px 0}.rc-online-divider:before,.rc-online-divider:after{content:"";height:1px;background:#214735;flex:1}.inferno-choice{border-color:#7a2e1b!important}.combat-arena:has(+*){} 
@media(max-width:620px){.rc-ai-grid{grid-template-columns:1fr}.combat-location-grid{grid-template-columns:1fr 1fr}}

/* Keep the larger combat setup usable with four locations. */
.combat-location-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
#combatIntro{justify-content:flex-start;overflow-y:auto;padding-top:14px;padding-bottom:14px}
#combatIntro .combat-weapon-grid,#combatIntro .combat-location-grid,#combatIntro .combat-difficulty-grid{flex:0 0 auto;width:min(720px,100%)}
@media(max-width:760px){.combat-location-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:480px){.combat-location-grid{grid-template-columns:1fr!important}}


/* Personal bank */
.bank-open-button{min-width:96px;padding:8px 12px!important;gap:7px!important}
.bank-open-button img{width:30px;height:26px;object-fit:contain;flex:0 0 30px}
.bank-open-button span{font-weight:900;color:#eee}
.bank-dialog{width:min(720px,calc(100% - 24px));background:linear-gradient(145deg,#172219,#080d09)!important}
.bank-heading{display:flex;align-items:center;gap:15px;padding-right:28px}.bank-heading>img{width:78px;height:62px;object-fit:contain}.bank-heading h3{margin:0 0 5px}.bank-heading p{margin:0}
.bank-balance-panel{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:16px 0;padding:14px 16px;background:#0a120c;border:1px solid #76631d}.bank-balance-panel span{color:#b9c9bd;font-weight:900;letter-spacing:1px}.bank-balance-panel strong{color:#f2cf42;font-size:25px;text-shadow:0 1px #6d5600}
.bank-section-title{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:15px 0 8px}.bank-section-title b{color:#73dfa8;letter-spacing:1px}.bank-section-title small{color:#8ea296;text-align:right}
.bank-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:10px;background:#07100b;border:1px solid #315640}
.bank-slot{position:relative;min-height:86px;padding:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,#18231c,#0c120e);border:1px solid #3a5544;overflow:hidden}.bank-slot.empty{background:#0a0f0c;color:#405548}.bank-slot span{font-size:10px;letter-spacing:.5px}.bank-slot b{text-transform:capitalize;font-size:11px;color:#d9e7dc}.bank-slot strong{position:absolute;right:5px;bottom:3px;color:#f1d35b;font-size:11px}.bank-placeholder{display:grid;place-items:center;width:34px;height:34px;margin-bottom:5px;border-radius:5px;background:#23362a;color:#74dda8;font-weight:900}
.bank-message{display:block;margin-top:10px;color:#9aafa0}
@media(max-width:620px){.bank-grid{grid-template-columns:repeat(4,1fr)}.bank-heading>img{width:58px;height:48px}.bank-section-title{display:block}.bank-section-title small{display:block;text-align:left;margin-top:4px}}

/* Three-character animated desk rotation */
.gamer{transition:transform .25s ease,opacity .25s ease;will-change:transform,opacity;transform-origin:55% 90%}
.gamer .cape,.gamer .wizard-hat,.gamer .hood,.gamer .face-shadow,.gamer .robe-panel{display:none;position:absolute}
.gamer .arm-right{left:188px;top:220px;transform:rotate(17deg);z-index:4;filter:brightness(.94)}
.gamer .arm-left{z-index:6}
.gamer.typing .arm-left{animation:typeLeft .34s steps(2,end) infinite}
.gamer.typing .arm-right{animation:typeRight .34s steps(2,end) infinite reverse}
.gamer.typing .head{animation:deskHead 3.4s ease-in-out infinite}
.gamer.typing .body,.gamer.typing .belly{animation:deskBreathe 2.3s ease-in-out infinite}
.keyboard{overflow:hidden}
.keyboard:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 8%,#ffffff24 9% 11%,transparent 12% 46%,#ffffff1d 47% 50%,transparent 51%);opacity:0}
.scene:has(.gamer.typing) .keyboard:after{animation:keyFlash .34s steps(2,end) infinite}
@keyframes typeLeft{0%{transform:rotate(7deg) translateY(0)}50%{transform:rotate(12deg) translateY(7px)}}
@keyframes typeRight{0%{transform:rotate(17deg) translateY(0)}50%{transform:rotate(12deg) translateY(7px)}}
@keyframes deskHead{0%,92%,100%{transform:translateY(0)}95%{transform:translateY(3px)}}
@keyframes deskBreathe{50%{margin-top:2px}}
@keyframes keyFlash{50%{opacity:1}}

/* Character 1: brown jumper and messy brown hair */
.gamer.character-one .body,.gamer.character-one .belly{background:#76502f}
.gamer.character-one .hairback,.gamer.character-one .curls i{background:#704c2d}
.gamer.character-one .curls i{box-shadow:inset -5px -5px #54351f}
.gamer.character-one .leg{background:#202226}

/* Character 2: pale skin, white outfit and green cape; weapons intentionally omitted */
.gamer.character-two .cape{display:block;left:58px;top:130px;width:210px;height:230px;background:linear-gradient(100deg,#558c39,#83b852 48%,#426f31);clip-path:polygon(16% 0,83% 5%,100% 92%,56% 76%,10% 100%,0 18%);z-index:1;filter:drop-shadow(0 7px 4px #0008)}
.gamer.character-two .hood{display:block;left:135px;top:20px;width:125px;height:136px;background:#e5e0cc;clip-path:polygon(22% 0,78% 0,100% 34%,82% 100%,18% 100%,0 34%);z-index:7;filter:drop-shadow(0 4px 2px #0008)}
.gamer.character-two .head{background:#ead8c8;left:160px;top:54px;width:82px;height:92px;border-radius:38%}
.gamer.character-two .head:after{content:"";position:absolute;left:8px;right:7px;top:37px;height:27px;background:#5b554f;clip-path:polygon(0 20%,100% 0,88% 82%,12% 100%)}
.gamer.character-two .hairback,.gamer.character-two .curls{display:none}
.gamer.character-two .body,.gamer.character-two .belly{background:linear-gradient(90deg,#f2f0e8 0 24%,#d9d7cf 25% 70%,#f2f0e8 71%);border:3px solid #b9b7af}
.gamer.character-two .arm{background:#f2f0e8}
.gamer.character-two .hand{background:#ead8c8}
.gamer.character-two .leg{background:#f2f0e8;border-bottom:13px solid #b9b7af}

/* Character 3: pale-skinned purple wizard with blue hat; staff omitted */
.gamer.character-three .wizard-hat{display:block;left:112px;top:-45px;width:178px;height:126px;background:#3769af;clip-path:polygon(53% 0,74% 50%,100% 73%,68% 77%,57% 100%,41% 78%,5% 85%,28% 55%);z-index:8;filter:drop-shadow(0 6px 2px #0008)}
.gamer.character-three .wizard-hat i{position:absolute;left:46px;bottom:4px;width:105px;height:20px;background:#2d5895;border-radius:50%}
.gamer.character-three .head,.gamer.character-three .ear,.gamer.character-three .nose,.gamer.character-three .neck,.gamer.character-three .hand{background:#ead8c8}.gamer.character-three .arm{background:#7c2797}
.gamer.character-three .hairback,.gamer.character-three .curls{display:none}
.gamer.character-three .body,.gamer.character-three .belly{background:#7c2797;border:10px solid #5e1b79}
.gamer.character-three .body .robe-panel{display:block;left:57px;top:10px;width:72px;height:142px;background:#a84cc0;clip-path:polygon(0 0,100% 0,78% 100%,21% 100%)}
.gamer.character-three .leg{background:#7c2797;border-bottom:14px solid #5e1b79}



/* Character props: each one has a distinct animated item while on desk duty */
.character-prop{display:none;position:absolute;z-index:12;pointer-events:none}
.gamer.character-one .joint-prop{display:block;left:254px;top:226px;width:78px;height:95px;transform:rotate(-9deg)}
.joint-stick{position:absolute;left:7px;top:54px;width:57px;height:9px;border-radius:5px;background:linear-gradient(90deg,#ddd2ad 0 72%,#865a32 73% 88%,#ff6a2a 89% 100%);box-shadow:0 1px 2px #000}
.joint-stick:after{content:"";position:absolute;right:-3px;top:1px;width:7px;height:7px;border-radius:50%;background:#ffb04d;box-shadow:0 0 9px #ff6a2a}
.smoke{position:absolute;left:61px;top:44px;width:14px;height:30px;border:3px solid #ddd;border-color:#ddd transparent transparent #ddd;border-radius:50%;opacity:0;filter:blur(.4px)}
.smoke-one{animation:jointSmoke 2.8s ease-out infinite}.smoke-two{animation:jointSmoke 2.8s .9s ease-out infinite}.smoke-three{animation:jointSmoke 2.8s 1.8s ease-out infinite}
.gamer.character-one.typing .joint-prop{animation:jointHand 4.8s ease-in-out infinite}
@keyframes jointSmoke{0%{opacity:0;transform:translate(0,8px) scale(.55)}20%{opacity:.75}100%{opacity:0;transform:translate(16px,-45px) scale(1.55) rotate(24deg)}}
@keyframes jointHand{0%,68%,100%{transform:rotate(-9deg) translate(0,0)}76%,88%{transform:rotate(-20deg) translate(-26px,-40px)}}

.gamer.character-two .pepper-prop{display:block;left:252px;top:219px;width:40px;height:72px;border-radius:6px 6px 9px 9px;background:linear-gradient(90deg,#7d0712,#d3182a 48%,#720710);border:2px solid #e6b4b7;box-shadow:0 4px 4px #0009;transform:rotate(-8deg);text-align:center}
.pepper-prop .can-top{position:absolute;left:-2px;top:-5px;width:40px;height:9px;border-radius:50%;background:#c9c9c9;border:2px solid #6e6e6e}
.pepper-prop b{position:absolute;left:1px;right:1px;top:19px;color:#fff;font:900 9px/10px Arial,sans-serif;text-shadow:1px 1px #460007;transform:rotate(-4deg)}
.gamer.character-two.typing .pepper-prop{animation:pepperSip 5.2s ease-in-out infinite}
@keyframes pepperSip{0%,62%,100%{transform:rotate(-8deg) translate(0,0)}72%,86%{transform:rotate(-30deg) translate(-34px,-50px)}}

.gamer.character-three .quiche-prop{display:block;left:238px;top:216px;width:86px;height:68px;transform:rotate(-7deg);filter:drop-shadow(0 4px 3px #0009)}
.quiche-crust{position:absolute;left:5px;top:16px;width:75px;height:42px;background:#c98b3b;clip-path:polygon(0 7%,100% 50%,4% 100%);border-radius:8px}
.quiche-filling{position:absolute;left:10px;top:19px;width:62px;height:31px;background:#f0d56b;clip-path:polygon(0 0,100% 50%,0 100%);overflow:hidden}
.quiche-filling i{position:absolute;width:8px;height:8px;border-radius:50%;background:#5c943d}.quiche-filling i:nth-child(1){left:15px;top:5px}.quiche-filling i:nth-child(2){left:31px;top:15px;background:#c96b52}.quiche-filling i:nth-child(3){left:8px;top:20px;background:#8b5b36}
.quiche-prop b{position:absolute;left:5px;top:54px;padding:2px 5px;background:#fff2b8;border:1px solid #7e5e24;color:#3d2a0b;font:900 9px/1 Arial,sans-serif;letter-spacing:.5px;transform:rotate(5deg)}
.gamer.character-three.typing .quiche-prop{animation:quicheBite 4.6s ease-in-out infinite}
@keyframes quicheBite{0%,58%,100%{transform:rotate(-7deg) translate(0,0)}68%,82%{transform:rotate(-18deg) translate(-34px,-47px)}}

/* Stand, walk out, swap, walk in, and sit */
.gamer.leaving{animation:characterLeave 2.3s ease-in forwards}
.gamer.entering{animation:characterEnter 2.3s ease-out both}
.gamer.leaving .leg.one,.gamer.entering .leg.one{animation:walkLegA .34s ease-in-out infinite alternate}
.gamer.leaving .leg.two,.gamer.entering .leg.two{animation:walkLegB .34s ease-in-out infinite alternate}
.gamer.leaving .arm,.gamer.entering .arm{animation:walkArm .34s ease-in-out infinite alternate}
@keyframes characterLeave{0%{transform:translate(0,0) rotate(0);opacity:1}18%{transform:translate(-15px,-62px) rotate(-2deg)}100%{transform:translate(-620px,-62px) rotate(-2deg);opacity:0}}
@keyframes characterEnter{0%{transform:translate(620px,-62px) rotate(2deg);opacity:0}82%{transform:translate(15px,-62px) rotate(2deg);opacity:1}100%{transform:translate(0,0) rotate(0);opacity:1}}
@keyframes walkLegA{to{transform:rotate(17deg) translateY(-8px)}}
@keyframes walkLegB{to{transform:rotate(-17deg) translateY(8px)}}
@keyframes walkArm{to{transform:rotate(-12deg) translateY(-5px)}}
@media(max-width:760px){@keyframes characterLeave{0%{transform:scale(.84) translate(0,0)}18%{transform:scale(.84) translate(-15px,-62px)}100%{transform:scale(.84) translate(-620px,-62px);opacity:0}}@keyframes characterEnter{0%{transform:scale(.84) translate(620px,-62px);opacity:0}82%{transform:scale(.84) translate(15px,-62px);opacity:1}100%{transform:scale(.84) translate(0,0);opacity:1}}}

/* 2026-07 prop/arm correction: props are mounted inside the right hand so they follow the full arm. */
.gamer .arm-right{transform-origin:8px 50%!important}
.gamer .arm-right .hand{overflow:visible}
.gamer .arm-right .character-prop{left:auto;top:auto}

/* Character 1 closer to the supplied reference: pale face, thick messy curls and brown jumper. */
.gamer.character-one .head,.gamer.character-one .ear,.gamer.character-one .nose,.gamer.character-one .neck,.gamer.character-one .hand{background:#d8ad8d}
.gamer.character-one .hairback{display:block;left:132px;top:25px;width:124px;height:102px;background:#6a472d;border-radius:50% 48% 40% 38%;z-index:3}
.gamer.character-one .curls{display:block;left:124px;top:13px;width:145px;height:86px;z-index:7}
.gamer.character-one .curls i{display:block;width:43px;height:43px;background:#795337;box-shadow:inset -6px -6px #59391f,0 2px 2px #0006}
.gamer.character-one .curls i:nth-child(1){left:0;top:27px}.gamer.character-one .curls i:nth-child(2){left:22px;top:4px}.gamer.character-one .curls i:nth-child(3){left:51px;top:0}.gamer.character-one .curls i:nth-child(4){left:82px;top:5px}.gamer.character-one .curls i:nth-child(5){left:105px;top:28px}.gamer.character-one .curls i:nth-child(6){left:48px;top:32px}
.gamer.character-one .body,.gamer.character-one .belly{background:#725033;border:0}
.gamer.character-one .arm{background:#725033}
.gamer.character-one .arm .hand{background:#d8ad8d}

/* Local prop positions inside the right hand. */
.gamer.character-one .joint-prop{left:25px;top:3px;width:82px;height:72px;transform:rotate(-12deg)}
.gamer.character-one .joint-stick{left:0;top:24px}
.gamer.character-one .smoke{left:56px;top:12px}
.gamer.character-two .pepper-prop{left:17px;top:-16px;width:40px;height:72px;transform:rotate(-10deg)}
.gamer.character-three .quiche-prop{left:17px;top:-12px;width:86px;height:68px;transform:rotate(-8deg)}

/* The whole right arm now lifts to the mouth; the hand and item travel with it. */
.gamer.character-one.typing .arm-right{animation:jointArmLift 4.8s ease-in-out infinite!important}
.gamer.character-two.typing .arm-right{animation:pepperArmLift 5.2s ease-in-out infinite!important}
.gamer.character-three.typing .arm-right{animation:quicheArmLift 4.6s ease-in-out infinite!important}
.gamer.character-one.typing .joint-prop,.gamer.character-two.typing .pepper-prop,.gamer.character-three.typing .quiche-prop{animation:none!important}

@keyframes jointArmLift{
  0%,64%,100%{transform:rotate(17deg) translate(0,0)}
  72%{transform:rotate(-34deg) translate(-42px,-45px)}
  78%,87%{transform:rotate(-52deg) translate(-62px,-75px)}
  94%{transform:rotate(-8deg) translate(-20px,-24px)}
}
@keyframes pepperArmLift{
  0%,58%,100%{transform:rotate(17deg) translate(0,0)}
  67%{transform:rotate(-28deg) translate(-38px,-45px)}
  74%,86%{transform:rotate(-58deg) translate(-69px,-86px)}
  93%{transform:rotate(-4deg) translate(-20px,-28px)}
}
@keyframes quicheArmLift{
  0%,54%,100%{transform:rotate(17deg) translate(0,0)}
  64%{transform:rotate(-26deg) translate(-40px,-45px)}
  72%,84%{transform:rotate(-55deg) translate(-72px,-82px)}
  92%{transform:rotate(-5deg) translate(-20px,-26px)}
}


/* 2026-07-29 final movement correction */
/* Scruffy medium-length brown hair rather than round curls. */
.gamer.character-one .curls{display:none!important}
.gamer.character-one .hairback{
  display:block;left:128px;top:18px;width:139px;height:112px;
  background:#704b2e;
  border-radius:42% 50% 38% 45%;
  clip-path:polygon(4% 39%,13% 19%,25% 24%,32% 5%,43% 17%,55% 0,62% 18%,76% 8%,79% 25%,96% 21%,88% 43%,100% 54%,84% 61%,89% 81%,69% 75%,61% 100%,48% 79%,32% 94%,27% 72%,9% 78%,16% 57%,0 52%);
  box-shadow:inset -10px -8px #51321f;
  z-index:7;
}
.gamer.character-one .hairback:before,.gamer.character-one .hairback:after{
  content:"";position:absolute;background:#704b2e;filter:brightness(.92)
}
.gamer.character-one .hairback:before{left:18px;top:57px;width:34px;height:58px;transform:rotate(13deg);border-radius:40% 30% 55% 45%}
.gamer.character-one .hairback:after{right:13px;top:52px;width:31px;height:61px;transform:rotate(-10deg);border-radius:35% 45% 45% 55%}

/* Let keyframe transforms control the limbs. */
.gamer .arm,.gamer .leg{will-change:transform,left,top,width,height}
.gamer.typing .arm-right{transform-origin:8px 50%!important}

/* Hold each object inside the palm instead of beyond the fingertips. */
.gamer.character-one .joint-prop{left:18px;top:0;width:70px;height:58px}
.gamer.character-one .joint-stick{left:3px;top:21px;width:52px}
.gamer.character-one .smoke{left:52px;top:8px}
.gamer.character-two .pepper-prop{left:3px;top:-24px}
.gamer.character-three .quiche-prop{left:0;top:-19px}

/* Full upper-arm lift. The prop follows because it lives inside .hand. */
.gamer.character-one.typing .arm-right{animation:jointArmLiftFixed 4.8s ease-in-out infinite!important}
.gamer.character-two.typing .arm-right{animation:pepperArmLiftFixed 5.2s ease-in-out infinite!important}
.gamer.character-three.typing .arm-right{animation:quicheArmLiftFixed 4.6s ease-in-out infinite!important}
@keyframes jointArmLiftFixed{
  0%,62%,100%{transform:rotate(17deg) translate(0,0)}
  70%{transform:rotate(-18deg) translate(-20px,-28px)}
  77%,88%{transform:rotate(-47deg) translate(-55px,-76px)}
  94%{transform:rotate(-6deg) translate(-12px,-17px)}
}
@keyframes pepperArmLiftFixed{
  0%,57%,100%{transform:rotate(17deg) translate(0,0)}
  66%{transform:rotate(-18deg) translate(-22px,-30px)}
  74%,87%{transform:rotate(-54deg) translate(-62px,-88px)}
  94%{transform:rotate(-5deg) translate(-13px,-20px)}
}
@keyframes quicheArmLiftFixed{
  0%,53%,100%{transform:rotate(17deg) translate(0,0)}
  63%{transform:rotate(-17deg) translate(-23px,-31px)}
  72%,85%{transform:rotate(-52deg) translate(-64px,-84px)}
  93%{transform:rotate(-5deg) translate(-14px,-20px)}
}

/* A visible stand-up phase followed by alternating steps. */
.gamer.leaving{animation:characterStandAndLeave 3.2s linear forwards!important}
.gamer.entering{animation:characterWalkInAndSit 3.2s linear both!important}
.gamer.leaving .character-prop,.gamer.entering .character-prop{opacity:0}
.gamer.leaving .body,.gamer.leaving .belly,.gamer.entering .body,.gamer.entering .belly{animation:none!important}
.gamer.leaving .leg,.gamer.entering .leg{
  width:72px;height:125px;top:264px;border-radius:31px 31px 15px 15px;transform-origin:50% 8px;
}
.gamer.leaving .leg.one,.gamer.entering .leg.one{left:137px;animation:properWalkLegA .42s ease-in-out infinite alternate!important}
.gamer.leaving .leg.two,.gamer.entering .leg.two{left:202px;animation:properWalkLegB .42s ease-in-out infinite alternate!important}
.gamer.leaving .arm-left,.gamer.entering .arm-left{animation:properWalkArmA .42s ease-in-out infinite alternate!important}
.gamer.leaving .arm-right,.gamer.entering .arm-right{animation:properWalkArmB .42s ease-in-out infinite alternate!important}
@keyframes properWalkLegA{from{transform:rotate(17deg) translateY(-4px)}to{transform:rotate(-20deg) translateY(5px)}}
@keyframes properWalkLegB{from{transform:rotate(-20deg) translateY(5px)}to{transform:rotate(17deg) translateY(-4px)}}
@keyframes properWalkArmA{from{transform:rotate(22deg)}to{transform:rotate(-18deg)}}
@keyframes properWalkArmB{from{transform:rotate(-18deg)}to{transform:rotate(22deg)}}
@keyframes characterStandAndLeave{
  0%{transform:translate(0,0);opacity:1}
  16%{transform:translate(0,-72px);opacity:1}
  24%{transform:translate(-25px,-72px);opacity:1}
  92%{transform:translate(-570px,-72px);opacity:1}
  100%{transform:translate(-650px,-72px);opacity:0}
}
@keyframes characterWalkInAndSit{
  0%{transform:translate(650px,-72px);opacity:0}
  8%{transform:translate(570px,-72px);opacity:1}
  76%{transform:translate(25px,-72px);opacity:1}
  84%{transform:translate(0,-72px);opacity:1}
  100%{transform:translate(0,0);opacity:1}
}
@media(max-width:760px){
  @keyframes characterStandAndLeave{
    0%{transform:scale(.84) translate(0,0);opacity:1}
    16%{transform:scale(.84) translate(0,-72px);opacity:1}
    24%{transform:scale(.84) translate(-25px,-72px);opacity:1}
    92%{transform:scale(.84) translate(-570px,-72px);opacity:1}
    100%{transform:scale(.84) translate(-650px,-72px);opacity:0}
  }
  @keyframes characterWalkInAndSit{
    0%{transform:scale(.84) translate(650px,-72px);opacity:0}
    8%{transform:scale(.84) translate(570px,-72px);opacity:1}
    76%{transform:scale(.84) translate(25px,-72px);opacity:1}
    84%{transform:scale(.84) translate(0,-72px);opacity:1}
    100%{transform:scale(.84) translate(0,0);opacity:1}
  }
}

/* 2026-07-29: keep the spare keyboard arm still and stop the Dr Pepper can clipping through character 2's head. */
.gamer.typing .arm-left{
  animation:none!important;
  transform:rotate(10deg) scaleX(calc(1 + var(--fat)*.14))!important;
}

/* Keep the can seated in the palm with its rim facing the mouth. */
.gamer.character-two .pepper-prop{
  left:8px!important;
  top:-20px!important;
  transform:rotate(5deg)!important;
  transform-origin:50% 80%;
}

/* Raise the whole prop arm to the lips, but keep it in front of the face rather than passing through the head. */
.gamer.character-two.typing .arm-right{
  animation:pepperArmLiftNoClip 5.2s ease-in-out infinite!important;
}
@keyframes pepperArmLiftNoClip{
  0%,57%,100%{transform:rotate(17deg) translate(0,0)}
  66%{transform:rotate(-10deg) translate(-14px,-25px)}
  74%,87%{transform:rotate(-34deg) translate(-36px,-62px)}
  94%{transform:rotate(-2deg) translate(-9px,-16px)}
}

/* Character-specific games on the office monitor */
.game-screen{background:#111!important;color:#fff;font-family:Arial,sans-serif}
.monitor-game{position:absolute;inset:0;display:none;overflow:hidden}
.game-screen.monitor-toa .monitor-game-toa,.game-screen.monitor-stellaris .monitor-game-stellaris,.game-screen.monitor-isaac .monitor-game-isaac{display:block}

/* Character 1 — Old School RuneScape: Tombs of Amascut */
.monitor-game-toa{background:linear-gradient(#2a1913 0 13%,#81653f 13% 77%,#3d291d 77%);image-rendering:pixelated}
.game-title{height:25px;padding:5px 7px;background:#17110d;color:#f1cb6f;font:900 11px/15px monospace;letter-spacing:1px;border-bottom:2px solid #a77c39}
.toa-room{position:absolute;left:8px;right:72px;top:31px;bottom:30px;background:repeating-linear-gradient(45deg,#765d3c 0 12px,#6b5336 12px 24px);border:4px solid #b08a4b;box-shadow:inset 0 0 24px #180b08}
.toa-room:before{content:"";position:absolute;inset:17% 24%;border:5px solid #d5ad5a;transform:rotate(45deg);background:#5b3d2a}
.toa-pillar{position:absolute;width:18px;height:42px;background:linear-gradient(90deg,#4e3424,#c69b54,#503624);border:2px solid #2b1811}
.toa-pillar.p-a{left:12px;top:14px}.toa-pillar.p-b{right:12px;bottom:12px}
.toa-boss{position:absolute;left:54%;top:34%;width:38px;height:44px;background:#6b205f;clip-path:polygon(50% 0,70% 20%,100% 38%,80% 100%,20% 100%,0 38%,30% 20%);box-shadow:0 0 12px #d44aca}
.toa-player{position:absolute;left:31%;top:60%;width:12px;height:21px;background:#d9d9d9;box-shadow:0 -8px #4e9d69,0 0 0 2px #292020}
.toa-hit{position:absolute;left:57%;top:24%;font:900 12px monospace;color:#ff3a34;text-shadow:1px 1px #000;animation:toaHit 1.7s ease-out infinite}
.toa-inventory{position:absolute;right:5px;top:32px;width:61px;bottom:30px;background:#514332;border:3px solid #1d1813;display:grid;grid-template-columns:repeat(2,1fr);gap:3px;padding:4px}
.toa-inventory i{background:radial-gradient(circle,#e75761 0 35%,#8c1721 38% 60%,#2c221b 63%);border:1px solid #82705d}
.toa-inventory i:nth-child(2n){background:radial-gradient(circle,#63b7e9 0 35%,#195c89 38% 60%,#2c221b 63%)}
.game-status{position:absolute;left:0;right:0;bottom:0;height:25px;padding:6px;background:#19120e;color:#f0d59d;font:900 9px monospace;letter-spacing:.5px}
@keyframes toaHit{0%{opacity:0;transform:translateY(8px)}25%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}

/* Character 2 — Stellaris */
.monitor-game-stellaris{background:radial-gradient(circle at 57% 52%,#253767 0,#111a3e 25%,#020713 65%);color:#9fe6ff}
.monitor-game-stellaris:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 0 1px,transparent 1.5px),radial-gradient(#72baff 0 1px,transparent 1.5px);background-size:27px 23px,41px 37px;background-position:2px 5px,18px 13px;opacity:.7}
.stellaris-top{position:absolute;z-index:3;left:0;right:0;top:0;height:27px;padding:5px 7px;background:#08101ddf;border-bottom:1px solid #2d6b85;font:9px monospace}.stellaris-top b{font-size:12px;color:#d6f5ff;letter-spacing:2px}.stellaris-top span{float:right;color:#f0d575}
.galaxy{position:absolute;left:4px;right:4px;top:28px;bottom:35px;overflow:hidden}
.orbit{position:absolute;border:1px solid #63a6d966;border-radius:50%;transform:rotate(-22deg)}.o1{width:170px;height:70px;left:28px;top:33px}.o2{width:120px;height:45px;left:54px;top:47px}.o3{width:210px;height:95px;left:7px;top:20px}
.star{position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 13px 4px #78b9ff}.s1{left:48%;top:48%;width:8px;height:8px}.s2{left:20%;top:28%;width:4px;height:4px}.s3{right:16%;bottom:20%;width:5px;height:5px;background:#ffb95e;box-shadow:0 0 10px 3px #ff7836}
.fleet{position:absolute;color:#6affdc;font-style:normal;font:900 12px monospace;text-shadow:0 0 7px #21ffd3;animation:fleetMove 4s linear infinite}.f1{left:22px;top:55px}.f2{right:28px;top:89px;animation-delay:-2s}
.stellaris-panel{position:absolute;z-index:3;left:0;right:0;bottom:0;height:36px;padding:5px 8px;background:#08101dee;border-top:1px solid #387b9a;color:#b8e7f7;font:900 9px monospace}.stellaris-panel span{font-weight:400;color:#75b7cc}
@keyframes fleetMove{50%{transform:translate(28px,-10px) rotate(-8deg)}}

/* Character 3 — The Binding of Isaac */
.monitor-game-isaac{background:#241c1a;color:#dac5b3}
.isaac-title{height:25px;background:#17110f;padding:5px 7px;color:#d6b79f;font:900 10px/15px Georgia,serif;letter-spacing:1px;border-bottom:2px solid #594039}
.isaac-room{position:absolute;left:8px;right:8px;top:33px;bottom:29px;background:radial-gradient(ellipse at center,#71594c 0,#4d3a32 67%,#251a17 68%);border:5px solid #2b1d19;box-shadow:inset 0 0 24px #120b09}
.isaac-room:before,.isaac-room:after{content:"";position:absolute;background:#241815}.isaac-room:before{left:42%;top:-6px;width:16%;height:13px}.isaac-room:after{left:42%;bottom:-6px;width:16%;height:13px}
.isaac-heart{position:absolute;left:6px;top:5px;color:#e22d38;font:900 13px monospace;font-style:normal;text-shadow:1px 1px #000}
.isaac-boy{position:absolute;left:44%;top:48%;width:28px;height:31px;background:#e8c5ac;border-radius:48% 48% 42% 42%;box-shadow:0 10px 0 -5px #bd8c76}
.isaac-boy:before,.isaac-boy:after{content:"";position:absolute;top:10px;width:5px;height:8px;background:#15100f;border-radius:50%;box-shadow:0 7px 0 -1px #78c9ec}.isaac-boy:before{left:6px}.isaac-boy:after{right:6px}.isaac-boy b{position:absolute;left:10px;bottom:4px;width:8px;height:4px;border-bottom:2px solid #6f423b;border-radius:50%}
.isaac-tear{position:absolute;width:7px;height:7px;border-radius:50% 50% 55% 55%;background:#7fcdf2;box-shadow:0 0 4px #bdeaff;animation:tearFly 1.2s linear infinite}.t1{left:53%;top:53%}.t2{left:38%;top:55%;animation-delay:-.6s;transform:rotate(180deg)}
.isaac-enemy{position:absolute;width:22px;height:20px;background:#8f4540;border-radius:45%;box-shadow:inset 0 -5px #5f2523}.isaac-enemy:before,.isaac-enemy:after{content:"";position:absolute;top:6px;width:4px;height:4px;background:#111;border-radius:50%}.isaac-enemy:before{left:5px}.isaac-enemy:after{right:5px}.e1{left:17%;top:27%}.e2{right:16%;bottom:21%;transform:scale(.8)}
.isaac-floor{position:absolute;left:0;right:0;bottom:0;height:24px;padding:6px 8px;background:#17110f;color:#c6a98f;font:900 9px monospace}
@keyframes tearFly{to{transform:translateX(75px);opacity:.1}}

.combat-difficulty-choice.insane-choice{border-color:#9f2f45;background:#2a1118}.combat-difficulty-choice.insane-choice.selected{border-color:#ff496a;background:#46131f;box-shadow:0 0 18px rgba(255,73,106,.28)}
@media(max-width:850px){.combat-difficulty-grid{grid-template-columns:repeat(2,1fr)}}

/* Gnome Ball agility game */
.agility-game-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.agility-game-choice{margin:0!important;padding:12px!important;text-align:left;background:#11150f!important;border:1px solid #49533a!important;color:#b8c1ad!important}.agility-game-choice strong,.agility-game-choice small{display:block}.agility-game-choice small{margin-top:4px;color:#7f8c76;font-size:11px}.agility-game-choice.selected{border-color:#d1ae58!important;background:#201b0e!important;color:#f0d68d!important;box-shadow:inset 0 0 0 1px #6e5623}.agility-game-panel.hidden{display:none!important}.gnomeball-stats{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:12px 0;color:#aaa;font-size:13px}.gnomeball-stats b{color:#e5cf92}.gnomeball-wrap{position:relative;border:2px solid #654f29;background:#07130a;overflow:hidden}.gnomeball-wrap canvas{display:block;width:100%;height:auto;touch-action:none;cursor:grab}.gnomeball-wrap canvas.aiming{cursor:grabbing}.gnomeball-wrap #gnomeBallStart{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:auto;margin:0;padding:15px 24px;background:#1b160d;border-color:#9c783e;color:#f0d99b;z-index:3}.gnomeball-wrap #gnomeBallStart.hidden{display:none}.gnomeball-stats #gnomeBallLives{letter-spacing:3px;color:#e0a64d}@media(max-width:600px){.agility-game-picker{grid-template-columns:1fr}.gnomeball-stats{font-size:12px}}


/* Grand Exchange shop */
.ge-open-button{min-width:132px;padding:8px 11px!important;gap:7px!important}.ge-button-icon{display:grid;place-items:center;width:30px;height:30px;border:2px solid #b9974d;background:linear-gradient(#61502d,#211a0d);color:#f4d980;font-size:11px;font-weight:1000;border-radius:50%;flex:0 0 30px}.ge-open-button>span:last-child{font-weight:900;line-height:1.05}.ge-dialog{width:min(780px,calc(100% - 22px));background:linear-gradient(145deg,#29251b,#0d0c08)!important;border-color:#98783a!important}.ge-heading{display:flex;align-items:center;gap:14px;border-bottom:1px solid #725d31;padding:0 42px 13px 0}.ge-heading h3{margin:0;color:#e5c66f}.ge-heading p{margin:4px 0 0;color:#c8bea4}.ge-logo{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;border:4px double #c6a151;background:radial-gradient(circle,#705d32,#21190b 72%);color:#ffe49a;font-weight:1000;font-size:20px;flex:0 0 62px}.ge-wallet{display:flex;align-items:center;gap:9px;margin:13px 0;padding:9px 12px;background:#11150e;border:1px solid #6e603b}.ge-wallet img{width:38px;height:31px;object-fit:contain}.ge-wallet span{font-size:11px;letter-spacing:1px;color:#b9ad8e}.ge-wallet strong{margin-left:auto;color:#f3d36f;font-size:19px}.ge-search-label{display:block;color:#d9c27b;font-weight:900;font-size:11px;letter-spacing:1px;margin-bottom:5px}.ge-search-row{display:grid;grid-template-columns:1fr auto;gap:7px;margin-bottom:12px}.ge-search-row input{min-width:0;background:#090b08;border:1px solid #786538;color:#eee;padding:11px}.ge-search-row button{min-width:105px}.ge-market-frame{border:2px solid #7f6938;background:#080a07;padding:7px}.ge-column-head{display:grid;grid-template-columns:1fr 100px 74px;gap:8px;padding:6px 8px 8px 66px;color:#a99d7f;font-size:10px;letter-spacing:1px;border-bottom:1px solid #4c4228}.ge-results{min-height:230px;max-height:390px;overflow:auto}.ge-item-row{display:grid;grid-template-columns:50px minmax(0,1fr) 100px 74px;gap:8px;align-items:center;padding:9px 7px;border-bottom:1px solid #302b1e;background:linear-gradient(90deg,#14160f,#0c0d09)}.ge-item-row:hover{background:#191b12}.ge-item-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid #62532f;background:#080907;color:#cbb36f;font-weight:900}.ge-item-icon img{max-width:40px;max-height:40px;object-fit:contain}.ge-item-info{min-width:0}.ge-item-info b,.ge-item-info small{display:block}.ge-item-info b{color:#eee}.ge-item-info small{color:#9e9a8b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.ge-price{display:flex;align-items:center;justify-content:flex-end;gap:4px;color:#efd36f}.ge-price img{width:23px;height:19px;object-fit:contain}.ge-buy{padding:8px 7px!important;min-width:0!important}.ge-buy:disabled{opacity:.42}.ge-empty{min-height:225px;display:grid;place-content:center;text-align:center;gap:8px;color:#a9a28e;padding:22px}.ge-empty b{color:#d8c27f}.ge-message{display:block;color:#d8c27f;text-align:center;margin-top:9px}@media(max-width:640px){.ge-item-row{grid-template-columns:42px minmax(0,1fr) 70px}.ge-item-row .ge-buy{grid-column:2/4}.ge-column-head{display:none}.ge-heading p{display:none}.ge-open-button{min-width:105px}.ge-open-button>span:last-child{font-size:10px}}


/* Grand Exchange pets and public roaming followers */
.bank-pet-panel{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;border:1px solid #2c6249;background:#07140e;padding:10px 12px;margin:10px 0}.bank-pet-panel small{display:block;color:#91a99d;margin-top:3px}.bank-pet-panel strong{display:flex;align-items:center;gap:7px;color:#76e4ac}.bank-pet-panel strong img{width:38px;height:38px;object-fit:contain;image-rendering:pixelated}.bank-pet-panel button{padding:8px 10px}.pet-bank-slot{min-height:155px!important;position:relative}.pet-bank-slot>img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated}.pet-bank-slot small{font-size:10px;color:#8fa99c;line-height:1.2}.pet-bank-slot button{font-size:10px;padding:5px 7px;margin-top:5px}.pet-bank-slot.active-pet{border-color:#70e2aa!important;box-shadow:inset 0 0 0 1px #70e2aa}.roaming-pets{position:fixed;inset:0;z-index:999;pointer-events:none;overflow:hidden}.roaming-pet{position:absolute;left:0;top:0;width:72px;height:86px;transition-property:transform;transition-timing-function:linear;will-change:transform}.roaming-pet img{width:64px;height:64px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 3px rgba(0,0,0,.65));animation:petBob .72s ease-in-out infinite alternate}.roaming-pet span{display:block;white-space:nowrap;width:max-content;max-width:150px;overflow:hidden;text-overflow:ellipsis;background:rgba(2,12,8,.82);border:1px solid #286348;color:#dff9eb;font:700 9px/1.2 Arial,sans-serif;padding:3px 5px;transform:translateX(-25%)}@keyframes petBob{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}
@media(max-width:650px){.bank-pet-panel{grid-template-columns:1fr}.roaming-pet{transform:scale(.8)}}


/* Pet naming and free starter cat */
.pet-name-row{display:grid;grid-template-columns:1fr auto;gap:4px;width:100%;margin-top:5px}.pet-name-input{min-width:0;width:100%;padding:5px 6px!important;font-size:10px!important;border:1px solid #315f49!important;background:#07110d!important;color:#e7fff2!important}.pet-name-save{padding:5px 7px!important;margin:0!important;font-size:9px!important}.roaming-pet{height:100px}.roaming-pet .pet-label{display:flex;flex-direction:column;align-items:center;width:max-content;max-width:160px;background:rgba(2,12,8,.88);border:1px solid #286348;padding:3px 6px;transform:translateX(-28%);margin-bottom:2px;color:#dff9eb;font-family:Arial,sans-serif;text-align:center}.roaming-pet .pet-label b{font-size:11px;line-height:1.1;color:#fff6a8}.roaming-pet .pet-label small{font-size:8px;line-height:1.1;color:#91cdae}.roaming-pet>span{display:none}


/* 2026-07-29 roaming pet movement fix */
/* The parent only translates. Labels never inherit the sprite's facing flip. */
.roaming-pet{
  width:78px;
  height:104px;
  transition-property:transform;
  transition-timing-function:linear;
  transform-origin:center bottom;
}
.roaming-pet .pet-label{
  position:relative;
  z-index:2;
  transform:translateX(-24%)!important;
  direction:ltr;
  unicode-bidi:plaintext;
}
.roaming-pet .pet-label b,
.roaming-pet .pet-label small{
  transform:none!important;
  direction:ltr;
  unicode-bidi:plaintext;
}
.roaming-pet .pet-sprite{
  --pet-facing:1;
  width:68px;
  height:68px;
  display:grid;
  place-items:end center;
  transform:scaleX(var(--pet-facing));
  transform-origin:center bottom;
  will-change:transform;
}
.roaming-pet .pet-sprite img{
  width:64px;
  height:64px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 4px 3px rgba(0,0,0,.65));
  animation:none!important;
  transform-origin:center bottom;
}
.roaming-pet.pet-is-walking .pet-sprite img{
  animation:petNaturalSteps .34s steps(2,end) infinite!important;
}
@keyframes petNaturalSteps{
  0%{transform:translateY(0) scaleY(1) scaleX(1)}
  50%{transform:translateY(-3px) scaleY(.96) scaleX(1.025)}
  100%{transform:translateY(0) scaleY(1) scaleX(1)}
}
/* Small ground shadow makes the pet look planted rather than hovering. */
.roaming-pet .pet-sprite:after{
  content:"";
  grid-area:1/1;
  align-self:end;
  width:42px;
  height:8px;
  border-radius:50%;
  background:rgba(0,0,0,.28);
  filter:blur(1px);
  transform:translateY(3px);
  z-index:-1;
}
@media(max-width:650px){
  .roaming-pet{width:66px;height:90px}
  .roaming-pet .pet-sprite{width:58px;height:58px}
  .roaming-pet .pet-sprite img{width:54px;height:54px}
}
\n\n/* PET WARS */\n.pet-wars-open-button{border-color:#76592f!important}.pet-wars-open-button>span:first-child{font-size:22px}.pet-wars-dialog{width:min(900px,94vw);border-color:#8b6a36;background:#120e08}.pet-wars-heading{display:flex;gap:14px;align-items:center;border-bottom:1px solid #73572d;padding-bottom:12px;margin-bottom:14px}.pet-wars-heading h3{margin:0;color:#f3ca75}.pet-wars-heading p{margin:4px 0 0;color:#c7b48c}.pet-wars-logo{width:58px;height:58px;display:grid;place-items:center;border:3px double #c69b4c;background:#2b1c0d;color:#f1c96f;font-weight:900;font-size:22px}.pet-wars-wallet{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px 14px;align-items:center;padding:10px 12px;background:#21170d;border:1px solid #71532d;margin-bottom:12px}.pet-wars-wallet span{color:#bda678;font-size:11px}.pet-wars-wallet strong{color:#f0ce83}.pet-wars-lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pet-wars-lobby-card{border:1px solid #604823;background:#191108;padding:14px}.pet-wars-lobby-card h4{margin:0 0 10px;color:#e7ba61}.pet-wars-lobby-card label{display:block;margin:8px 0 4px;color:#c5b28d;font-size:12px}.pet-wars-lobby-card input,.pet-wars-lobby-card select{width:100%;box-sizing:border-box;background:#0c0906;color:#eee0bd;border:1px solid #74582f;padding:9px}.pet-wars-lobby-card button{width:100%;margin-top:12px}.pet-wars-message{display:block;color:#e8c66e;text-align:center;margin-top:10px}.pet-wars-hud,.pet-wars-bets{display:flex;justify-content:space-between;gap:10px;border:1px solid #6f532a;padding:8px 12px;background:#1d140b;color:#d7c49a}.pet-wars-arena{height:430px;position:relative;overflow:hidden;border:3px ridge #8d6c38;margin-top:10px;background:#4b5e34}.pet-wars-arena:before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 66%,rgba(31,20,10,.55) 67%),repeating-linear-gradient(90deg,transparent 0 74px,rgba(255,255,255,.035) 75px 76px);pointer-events:none}.pet-wars-arena.location-misthalin{background:linear-gradient(#729a67 0 54%,#8d7447 55%)}.pet-wars-arena.location-asgarnia{background:linear-gradient(#a2b2b4 0 51%,#8a8e75 52%)}.pet-wars-arena.location-kandarin{background:linear-gradient(#7da45b 0 48%,#a4854b 49%)}.pet-wars-arena.location-morytania{background:linear-gradient(#4b5360 0 53%,#433744 54%)}.pet-wars-crowd{position:absolute;top:12px;left:50%;transform:translateX(-50%);color:#f0d390;background:#291b0d;border:2px solid #9a753c;padding:6px 13px;font-weight:900;letter-spacing:1px}.pet-wars-ring{position:absolute;left:12%;right:12%;bottom:54px;height:220px;background:rgba(174,139,84,.75);border:8px solid #6e4121;box-shadow:inset 0 0 0 5px #dbc18a}.pet-wars-ring i{position:absolute;width:11px;height:250px;background:#523016;bottom:-10px}.pet-wars-ring i:nth-child(1){left:-11px}.pet-wars-ring i:nth-child(2){right:-11px}.pet-wars-ring i:nth-child(3){left:33%;width:2px;background:#ddd0a7}.pet-wars-ring i:nth-child(4){right:33%;width:2px;background:#ddd0a7}.pet-war-fighter{position:absolute;bottom:92px;width:170px;text-align:center;z-index:3;transition:filter .3s}.fighter-left{left:19%}.fighter-right{right:19%}.pet-war-fighter img{width:88px;height:88px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 7px 3px rgba(0,0,0,.45))}.pet-war-name{color:#fff0b7;font-weight:900;text-shadow:1px 2px #201308;white-space:nowrap}.pet-war-owner{font-size:11px;color:#d7c697}.pet-wars-arena.fighting .fighter-left{animation:petWarLeft .78s ease-in-out infinite alternate}.pet-wars-arena.fighting .fighter-right{animation:petWarRight .73s ease-in-out infinite alternate}.pet-wars-arena.finished .pet-war-fighter.winner{animation:petWarVictory .45s ease-in-out 5 alternate;filter:drop-shadow(0 0 10px #ffda58)}.pet-wars-arena.finished .pet-war-fighter.loser{transform:rotate(78deg) translateY(28px);filter:grayscale(.7)}@keyframes petWarLeft{0%{transform:translate(0,0) rotate(-4deg)}55%{transform:translate(52px,-18px) rotate(12deg)}100%{transform:translate(15px,-4px) rotate(-8deg)}}@keyframes petWarRight{0%{transform:translate(0,0) rotate(4deg)}55%{transform:translate(-52px,-15px) rotate(-13deg)}100%{transform:translate(-12px,-2px) rotate(8deg)}}@keyframes petWarVictory{to{transform:translateY(-25px) rotate(10deg)}}.pet-wars-commentary{position:absolute;bottom:12px;left:10%;right:10%;padding:8px;background:rgba(20,12,6,.88);border:1px solid #b38a48;color:#ffe49e;text-align:center;font-weight:800;z-index:5}.pet-wars-controls{display:flex;justify-content:center;gap:10px;margin-top:10px}.pet-wars-controls button{min-width:180px}@media(max-width:680px){.pet-wars-lobby-grid{grid-template-columns:1fr}.pet-wars-wallet{grid-template-columns:auto 1fr}.pet-war-fighter{width:120px}.fighter-left{left:8%}.fighter-right{right:8%}.pet-war-fighter img{width:68px;height:68px}}\n
/* 2026-07-29 navigation sizing and enabled-state fix */
.game-strip{
  width:min(1510px,calc(100% - 24px));
  max-width:none;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(190px,1.55fr) repeat(5,minmax(112px,1fr));
  align-items:stretch;
  gap:9px;
  padding:12px;
}
.game-strip>div{
  min-width:0;
  margin:0;
  justify-content:center;
  padding:0 8px;
}
.game-strip>div span{
  line-height:1.25;
  overflow-wrap:anywhere;
}
.game-strip button{
  width:100%;
  min-width:0!important;
  min-height:58px;
  padding:8px 9px!important;
  box-sizing:border-box;
  white-space:normal;
  overflow:hidden;
  text-align:center;
  font-size:13px;
}
.game-strip button img,
.game-strip button>span:first-child{
  flex:0 0 auto;
}
.game-strip .ge-open-button,
.game-strip .pet-wars-open-button{
  opacity:1!important;
  filter:none!important;
  color:#eee!important;
  background:#111!important;
  border-color:#376b51!important;
  cursor:pointer!important;
}
.game-strip .ge-open-button>span:last-child,
.game-strip .pet-wars-open-button>span:last-child{
  color:#eee!important;
  font-size:13px!important;
}
.game-strip .ge-open-button:hover,
.game-strip .pet-wars-open-button:hover{
  background:#14221a!important;
  border-color:#63d39a!important;
}
@media(max-width:1250px){
  .game-strip{grid-template-columns:minmax(190px,1.4fr) repeat(4,minmax(110px,1fr))}
}
@media(max-width:980px){
  .game-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .game-strip>div{grid-column:1/-1;padding:3px 4px 7px}
}
@media(max-width:620px){
  .game-strip{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto 14px}
  .game-strip button{font-size:12px;min-height:54px;padding:7px!important}
}
@media(max-width:390px){
  .game-strip{grid-template-columns:1fr}
}


/* =========================================================
   ADVENTURE MMORPG THEME — visual redesign only
   ========================================================= */
:root{
  --adv-ink:#2b1b0f;
  --adv-deep:#17100b;
  --adv-stone:#30271f;
  --adv-stone-2:#211a14;
  --adv-wood:#5a351d;
  --adv-wood-dark:#2d180d;
  --adv-gold:#d7ad55;
  --adv-gold-light:#f2d88a;
  --adv-parchment:#d8c7a0;
  --adv-parchment-light:#eee0ba;
  --adv-parchment-dark:#a98d5e;
  --adv-red:#8e3023;
  --adv-green:#526c3f;
  --adv-blue:#415d73;
}
*{box-sizing:border-box}
html{background:#16100b}
body{
  color:var(--adv-parchment-light)!important;
  background:
    radial-gradient(circle at 20% 0%,rgba(132,88,40,.18),transparent 38%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 1px,transparent 1px 48px),
    repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 2px,transparent 2px 34px),
    linear-gradient(#261c14,#15100c 55%,#21160f)!important;
  font-family:"Trebuchet MS",Georgia,serif!important;
  letter-spacing:.01em;
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.015) 0 2px,transparent 2px 8px);
  opacity:.35;
}
header{
  background:
    linear-gradient(rgba(30,14,6,.15),rgba(20,8,3,.5)),
    repeating-linear-gradient(90deg,#6a3f21 0 80px,#5b331b 80px 160px)!important;
  border-top:4px solid #9c6939!important;
  border-bottom:6px ridge #2b170c!important;
  box-shadow:0 7px 18px rgba(0,0,0,.55),inset 0 1px #c38b4c!important;
  padding:18px 26px!important;
}
.logo{
  color:#f4e4bd!important;
  font-family:Georgia,"Trebuchet MS",serif!important;
  font-weight:900!important;
  letter-spacing:3px!important;
  text-shadow:0 3px #291207,2px 0 #291207,-2px 0 #291207!important;
}
.logo span{color:var(--adv-gold-light)!important}
.tag{color:#dfc995!important;font-style:italic}
.character-button,.character-summary{
  border:3px ridge #c39a50!important;
  background:linear-gradient(#77502d,#422512)!important;
  color:#ffe9ad!important;
  box-shadow:inset 0 0 0 2px #2a160b,0 3px 0 #140a05!important;
}
main{gap:14px!important;max-width:1260px!important}
.card,.scene,footer,.game-strip{
  border:4px ridge #8e6b3c!important;
  box-shadow:inset 0 0 0 2px #2b1a0e,0 6px 15px rgba(0,0,0,.42)!important;
}
.card{
  color:var(--adv-ink)!important;
  background:
    linear-gradient(rgba(255,248,220,.11),rgba(93,59,26,.08)),
    repeating-linear-gradient(0deg,rgba(88,57,27,.035) 0 1px,transparent 1px 5px),
    var(--adv-parchment)!important;
}
.card h2{
  color:#6e2c1f!important;
  border-bottom:2px solid #a18455!important;
  text-shadow:0 1px #f7e7be!important;
}
.stats #count{color:#392518!important;text-shadow:1px 2px #f3dfad!important}
.stats p,.stats .row,.stats li,.actions small{color:#4a3422!important}
.stats .bar{background:#4a3425!important;border:2px inset #8b724c!important}
.stats .bar i{background:linear-gradient(90deg,#8c3d2d,#d39a3b,#6f873e)!important}
.stats ul li{border-color:#aa9165!important}
.scene{
  background:
    radial-gradient(circle at 72% 24%,rgba(235,194,99,.08),transparent 24%),
    linear-gradient(#26211b,#191713)!important;
  border-color:#72604b!important;
}
.poster{
  background:linear-gradient(#d8bd78,#9a7540)!important;
  color:#322011!important;
  border:3px ridge #6e4825!important;
  box-shadow:0 4px 0 #130c07!important;
  font-family:Georgia,serif!important;
}
.monitor{filter:sepia(.12) saturate(.9)}
.level{
  color:#f3d47e!important;
  background:rgba(38,23,12,.9)!important;
  border:2px ridge #a47a3d!important;
  padding:7px 13px!important;
  text-shadow:1px 2px #130b05!important;
}
.actions .xp-waste-button{
  background:
    radial-gradient(circle at 50% 30%,#caa75e,#6f4826 55%,#2a160b 78%)!important;
  border:5px ridge #d0ab59!important;
  box-shadow:inset 0 0 0 4px #392110,0 7px 0 #1a0c05!important;
}
.actions .xp-runes,.actions .xp-waste-button strong{color:#fff0b5!important;text-shadow:2px 3px #37180c!important}
button{
  font-family:"Trebuchet MS",Georgia,serif!important;
  font-weight:900!important;
  letter-spacing:.03em;
  color:#f7e5b1!important;
  background:linear-gradient(#74502e,#432612)!important;
  border:3px ridge #b58b48!important;
  box-shadow:inset 0 0 0 1px #2a170b,0 2px 0 #160b05!important;
  text-shadow:1px 2px #1c0d06!important;
}
button:hover:not(:disabled){
  background:linear-gradient(#956a39,#5b3418)!important;
  border-color:#e0bd6a!important;
  transform:translateY(-1px);
}
button:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 0 0 1px #2a170b!important}
button:disabled{opacity:.46!important;filter:grayscale(.45)!important;cursor:not-allowed!important}
button.danger,.danger{background:linear-gradient(#87372b,#4b1c16)!important;border-color:#b66a4e!important}

/* Compact menu: buttons only, no descriptive block. */
.game-strip{
  width:min(1510px,calc(100% - 26px))!important;
  max-width:none!important;
  display:grid!important;
  grid-template-columns:repeat(11,minmax(92px,1fr))!important;
  gap:7px!important;
  padding:10px!important;
  margin:14px auto!important;
  background:
    linear-gradient(rgba(255,255,255,.025),rgba(0,0,0,.18)),
    repeating-linear-gradient(90deg,#49301d 0 95px,#3e2818 95px 190px)!important;
  align-items:stretch!important;
}
.game-strip>div{display:none!important}
.game-strip button{
  width:100%!important;
  min-width:0!important;
  min-height:58px!important;
  padding:7px 6px!important;
  font-size:11px!important;
  line-height:1.05!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  overflow:hidden!important;
  white-space:normal!important;
  background:linear-gradient(#72502f,#3e2412)!important;
  border:3px ridge #b58b48!important;
}
.game-strip button img{width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important;object-fit:contain!important;flex:0 0 22px!important}
.game-strip button>span{min-width:0}
.game-strip .ge-open-button,.game-strip .pet-wars-open-button{
  opacity:1!important;filter:none!important;color:#f7e5b1!important;
  background:linear-gradient(#72502f,#3e2412)!important;border-color:#b58b48!important;
}
.ge-button-icon{border-color:#d7ad55!important;background:radial-gradient(circle,#866c35,#3b2412)!important;color:#ffe39a!important}

footer{
  width:min(1510px,calc(100% - 26px))!important;
  background:linear-gradient(#5b3a21,#34200f)!important;
  color:#ead6a2!important;
  padding:13px 20px!important;
}
footer b{color:#f1c86b!important}

/* Dialogs and secondary interfaces become carved stone + parchment windows. */
dialog,.game-dialog{
  color:#ead9ae!important;
  background:
    linear-gradient(rgba(255,255,255,.025),rgba(0,0,0,.18)),
    #2a2119!important;
  border:5px ridge #a37b41!important;
  box-shadow:inset 0 0 0 3px #120c08,0 18px 60px rgba(0,0,0,.75)!important;
}
dialog h3,.game-dialog h3,dialog h4,.game-dialog h4{color:#f1ce78!important;font-family:Georgia,serif!important;text-shadow:1px 2px #160b05!important}
dialog p,dialog small,dialog label,.game-dialog p,.game-dialog small,.game-dialog label{color:#d8c69d!important}
input,select,textarea{
  color:#2d1d10!important;
  background:#dfcfa8!important;
  border:3px inset #8b7047!important;
  font-family:"Trebuchet MS",Georgia,serif!important;
}
.auth-tabs button.active,.selected,.active{border-color:#ecd17e!important}
.bank-dialog,.ge-dialog,.pet-wars-dialog{background:#2a2119!important;border-color:#a37b41!important}
.bank-balance-panel,.bank-pet-panel,.ge-wallet,.ge-market-frame,.pet-wars-wallet,.pet-wars-lobby-card{
  background:#17110c!important;border-color:#836439!important;color:#ecdcae!important;
}
.bank-grid,.ge-results{background:#17110c!important}
.bank-slot,.ge-item-row{background:linear-gradient(#3a2d20,#241b13)!important;border-color:#705534!important;color:#ead8aa!important}
.toast{background:#4b2d17!important;border:3px ridge #cfaa5b!important;color:#fff0b7!important}

/* Adventure scrollbar */
*{scrollbar-color:#9e7740 #25170d;scrollbar-width:thin}

@media(max-width:1300px){
  .game-strip{grid-template-columns:repeat(6,minmax(100px,1fr))!important}
}
@media(max-width:900px){
  header{padding:14px!important;gap:10px!important}
  .game-strip{grid-template-columns:repeat(4,minmax(100px,1fr))!important}
  main{padding:0 12px!important}
}
@media(max-width:620px){
  .game-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:8px!important}
  .game-strip button{font-size:11px!important;min-height:55px!important}
  footer{display:block!important;text-align:center!important}
  footer span{display:block;margin-top:5px}
}

/* Cook's Assistant mini quest */
.game-strip{grid-template-columns:repeat(12,minmax(88px,1fr))!important}
.quests-dialog{width:min(1080px,95vw);max-height:92vh}
.quest-shell{display:grid;grid-template-columns:235px 1fr;gap:14px;min-height:600px}
.quest-list-panel{background:#16100b;border:3px ridge #806036;padding:12px}
.quest-list-panel>b{display:block;color:#f0ce79;font-family:Georgia,serif;margin-bottom:10px;letter-spacing:.08em}
.quest-list-item{width:100%;display:grid!important;grid-template-columns:36px 1fr 20px;align-items:center;text-align:left;padding:10px!important;gap:8px}
.quest-list-item img{width:34px;height:34px}.quest-list-item span{display:block}.quest-list-item small{display:block;font-size:10px;margin-top:3px}.quest-list-item i{font-style:normal;color:#d9bd70}.quest-list-item i.complete{color:#70bd55}.quest-list-item i.active{color:#e8c34c}
.quest-coming-soon{margin-top:13px;padding:10px;border-top:1px solid #60482d;color:#a8956e;font-size:12px}
.quest-detail-panel{background:linear-gradient(rgba(255,255,255,.04),rgba(0,0,0,.08)),#d5c39c;color:#392819;border:4px ridge #98794a;padding:16px;min-width:0}
.quest-detail-panel p{color:#4d3824!important}.quest-heading{display:flex;gap:13px;align-items:center;border-bottom:2px solid #92764b;padding-bottom:10px}.quest-heading img{width:56px;height:56px}.quest-heading h4{margin:0;color:#6d2d1d!important}.quest-heading span{font-size:12px;color:#705b3e}
.quest-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.quest-info-grid>div{background:#c5b187;border:2px inset #9b8258;padding:9px}.quest-info-grid b,.quest-info-grid span{display:block}.quest-info-grid b{font-size:10px;color:#6e2d20}.quest-info-grid span{margin-top:4px;font-size:13px}.quest-primary{min-width:190px}
.quest-status-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#382414;color:#f2d88f;border:3px ridge #9f7c43;padding:9px 12px;margin-bottom:10px}.quest-status-bar b,.quest-status-bar span{display:block}.quest-status-bar>div:first-child span{font-size:12px;color:#ead8ac}.quest-rewards-mini{display:flex!important;align-items:center;gap:4px;font-size:11px}.quest-rewards-mini img{width:24px;height:24px}
.quest-world{position:relative;height:345px;overflow:hidden;border:4px ridge #84663d;background:radial-gradient(circle at 67% 28%,#9bb66a 0 8%,transparent 9%),linear-gradient(140deg,#6c9a57 0 47%,#72a9b4 48% 54%,#769c50 55% 100%);box-shadow:inset 0 0 35px rgba(34,49,21,.55)}
.quest-world:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(25deg,transparent 0 30px,rgba(45,64,28,.12) 31px 33px)}
.quest-map-title{position:absolute;left:12px;top:10px;color:#f7dfa1;background:#3b2919;border:2px ridge #a18149;padding:5px 9px;font-family:Georgia,serif;font-size:11px;z-index:2}
.quest-location{position:absolute!important;width:135px!important;min-height:64px!important;padding:5px!important;display:grid!important;grid-template-columns:28px 1fr!important;grid-template-rows:auto auto!important;text-align:left!important;font-size:10px!important;z-index:2}.quest-location>span{grid-row:1/3;font-size:22px;align-self:center}.quest-location b{font-size:10px}.quest-location small{font-size:8px!important;color:#ead9ac!important}.quest-location.current{outline:3px solid #ffe477;filter:brightness(1.15)}
.quest-location.castle{left:8%;top:26%}.quest-location.cellar{left:9%;top:57%}.quest-location.store{left:35%;top:16%}.quest-location.chicken{right:8%;top:12%}.quest-location.cows{right:8%;top:41%}.quest-location.wheat{right:29%;bottom:7%}.quest-location.mill{left:35%;bottom:7%}
.quest-travel-overlay{position:absolute;inset:0;background:rgba(25,16,8,.82);z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f5dc96}.quest-travel-overlay strong{font-size:17px}.quest-travel-overlay i{width:62%;height:14px;background:#2b1a0e;border:2px inset #947343;margin-top:12px}.quest-travel-overlay i span{display:block;height:100%;width:0;background:linear-gradient(90deg,#8b4e27,#e5bd59)}
.quest-bottom-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin-top:10px}.quest-scene,.quest-inventory{background:#bda77d;border:3px ridge #8f734b;padding:10px}.quest-scene h5,.quest-inventory h5{margin:0 0 6px;color:#682b1e;font-family:Georgia,serif}.quest-scene p{margin:0 0 8px;font-size:12px!important}.quest-actions{display:flex;flex-wrap:wrap;gap:7px}.quest-actions button{font-size:11px!important;padding:7px 9px!important}.quest-item-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.quest-item{background:#6e5a3d;color:#d2c39e;border:2px inset #9b8258;padding:5px;text-align:center;opacity:.52}.quest-item.owned{background:#4d6333;color:#fff0bb;opacity:1}.quest-item span,.quest-item b,.quest-item small{display:block}.quest-item span{font-size:19px}.quest-item b{font-size:9px}.quest-item small{font-size:8px!important;color:inherit!important}
@media(max-width:1300px){.game-strip{grid-template-columns:repeat(6,minmax(100px,1fr))!important}}
@media(max-width:760px){.quest-shell{grid-template-columns:1fr}.quest-list-panel{min-height:0}.quest-world{height:540px}.quest-location{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:calc(50% - 10px)!important;display:inline-grid!important;margin:5px 3px!important}.quest-bottom-grid,.quest-info-grid{grid-template-columns:1fr}.quest-status-bar{display:block}.quest-rewards-mini{margin-top:7px}}

/* Playable WASD quest world */
.quest-play-wrap{border:4px ridge #9d7a43;background:#15120d;padding:8px}.quest-game-head{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#f1d38c;background:#2d2215;border:1px solid #80613a;padding:7px 10px;font-size:12px}.quest-game-head b{font-size:15px;letter-spacing:1px}.quest-game-head span{color:#d3c4a1}.quest-play-wrap canvas{display:block;width:100%;height:auto;max-height:58vh;background:#5e8c45;border:2px solid #382a18;image-rendering:pixelated}.quest-interact-prompt{min-height:31px;padding:7px 10px;background:#17130e;color:#ffe39a;border:1px solid #6b512d;text-align:center;font-weight:bold}.quests-dialog{max-width:1120px;width:min(96vw,1120px)}.quest-bottom-grid{grid-template-columns:minmax(270px,.75fr) minmax(360px,1.25fr)}.quest-item-grid{grid-template-columns:repeat(6,minmax(72px,1fr))}.quest-actions button{width:100%}@media(max-width:760px){.quest-bottom-grid{grid-template-columns:1fr}.quest-item-grid{grid-template-columns:repeat(3,1fr)}.quest-game-head{align-items:flex-start;flex-direction:column}}

.quest-reset{background:#5f2f24!important;border-color:#a86d4c!important;color:#ffe4bd!important}


/* Quest points, completion presentation and updated skill/navigation icons */
.quests-open-button img,#openPetWars img{width:26px;height:26px;object-fit:contain;image-rendering:auto}
.quest-points-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 10px;padding:7px 11px;border:2px solid #8a6731;background:#2b1a0d;color:#f1d58a;letter-spacing:1px}.quest-points-bar img{width:27px;height:27px}.quest-points-bar strong{font-size:20px;color:#fff0a8}
.quest-list-item.quest-crossed span{text-decoration:line-through;text-decoration-thickness:2px;opacity:.78}.quest-list-item.quest-crossed{background:rgba(70,95,43,.22)!important}.quest-list-item.quest-crossed small{text-decoration:none;display:block}
.quest-complete-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:rgba(13,7,2,.82);padding:20px}.quest-complete-card{width:min(570px,94%);text-align:center;border:5px ridge #d9b85f;background:linear-gradient(#ead9aa,#c7ad72);padding:24px;color:#3a220e;box-shadow:0 0 0 5px #4a2b12,0 12px 30px #000}.quest-complete-icon{width:86px;height:86px}.quest-complete-card h3{font-family:Georgia,serif;letter-spacing:2px;color:#7a2d16;font-size:28px;margin:8px 0}.quest-complete-card p{font-weight:bold}.quest-complete-rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.quest-complete-rewards div{border:2px solid #8d6a35;background:#f3e4b9;padding:12px 6px;display:grid;justify-items:center;gap:4px}.quest-complete-rewards img{width:42px;height:42px;object-fit:contain}.quest-complete-rewards strong{font-size:22px;color:#6a2f13}.quest-complete-rewards span{font-size:11px;font-weight:bold}.quest-complete-card button{padding:12px 20px;background:#62401d;color:#ffe9a5;border:3px outset #a87c3d;font-weight:bold}.quest-rewards-mini img{width:23px;height:23px;object-fit:contain;vertical-align:middle}
@media(max-width:600px){.quest-complete-rewards{grid-template-columns:1fr}.quest-complete-card{padding:14px}.quest-complete-card h3{font-size:21px}}


/* Quest dialogue must live inside the modal top-layer, never behind it. */
.quest-dialogue{position:absolute;left:50%;top:105px;z-index:80;transform:translateX(-50%);width:min(700px,calc(100% - 80px));display:grid;grid-template-columns:58px 1fr 34px;gap:12px;align-items:center;background:linear-gradient(#f1dfad,#ceb577);color:#35200d;border:5px ridge #a27a3b;padding:13px 15px;box-shadow:0 10px 28px #000a}
.quest-dialogue-face{width:52px;height:52px;display:grid;place-items:center;background:#6b4423;border:3px ridge #c29a56;font-size:30px}
.quest-dialogue b{font-family:Georgia,serif;color:#713315;letter-spacing:1px}.quest-dialogue p{margin:4px 0 0;color:#35200d;font-weight:bold}.quest-dialogue button{align-self:start;width:30px!important;height:30px;padding:0!important;margin:0!important;background:#69421f!important;color:#ffe5a1!important;border:2px outset #b58a4c!important}
@media(max-width:650px){.quest-dialogue{top:92px;width:calc(100% - 28px);grid-template-columns:42px 1fr 30px}.quest-dialogue-face{width:38px;height:38px;font-size:22px}}

.quest-dialogue{cursor:pointer;user-select:none}
.quest-dialogue-continue{display:block;margin-top:7px;color:#77501f;font-weight:bold;font-size:11px;letter-spacing:.3px}
.quest-dialogue:not(.hidden) .quest-dialogue-continue{animation:questContinuePulse 1.15s ease-in-out infinite}
@keyframes questContinuePulse{50%{opacity:.38}}

/* Shooting Star AFK Mining */
.mining-open-button img{image-rendering:pixelated;object-fit:contain}.mining-dialog{width:min(920px,95vw);background:#17110d;border-color:#bb7b2a}.mining-heading{display:flex;align-items:center;gap:14px;border-bottom:2px solid #7e4b20;padding:0 0 12px;margin-bottom:12px}.mining-heading img{width:42px;height:42px;image-rendering:pixelated}.mining-heading h3{margin:0;color:#f2c56f}.mining-heading p{margin:4px 0 0;color:#c6ad86}.mining-locked{text-align:center;padding:55px 20px;border:2px solid #6b4928;background:linear-gradient(#21170f,#120d09)}.mining-lock-icon{font-size:52px}.mining-locked h4{color:#e9be69;font-size:21px;margin:10px}.mining-locked button{max-width:260px}.mining-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.mining-hud span{background:#24170e;border:1px solid #825526;padding:9px;text-align:center;color:#b99a70}.mining-hud b{display:block;color:#f6d078;margin-top:3px}.star-arena{height:470px;position:relative;overflow:hidden;border:3px solid #70431f;background:linear-gradient(#242124 0 35%,#322d2a 36% 100%);isolation:isolate}.volcano-sky{position:absolute;inset:0;background:radial-gradient(circle at 80% 8%,#cf6040 0 2%,transparent 16%),linear-gradient(#302b31,#4a302b 45%,#211c1b 46%)}.volcano-sky i{position:absolute;width:5px;height:5px;border-radius:50%;background:#d9864e;box-shadow:0 0 8px #ff7438;animation:emberFloat 5s linear infinite}.volcano-sky i:nth-child(1){left:18%;top:54%;animation-delay:-1s}.volcano-sky i:nth-child(2){left:73%;top:45%;animation-delay:-3s}.volcano-sky i:nth-child(3){left:88%;top:70%;animation-delay:-2s}@keyframes emberFloat{to{transform:translateY(-220px);opacity:0}}.mountain{position:absolute;bottom:0;background:#1c191a;clip-path:polygon(0 100%,10% 42%,25% 56%,38% 8%,55% 49%,70% 20%,100% 100%)}.ridge-a{left:-5%;width:62%;height:270px}.ridge-b{right:-5%;width:55%;height:310px;background:#252022;transform:scaleX(-1)}.lava-pool{position:absolute;background:#ff9b19;border:5px solid #4e2414;box-shadow:0 0 18px #e34217 inset,0 0 16px #f35d1a;z-index:2;animation:lavaPulse 2.2s ease-in-out infinite}.lava-a{width:160px;height:38px;right:35px;bottom:42px;border-radius:50%}.lava-b{width:100px;height:26px;left:35px;bottom:90px;border-radius:50%;animation-delay:-1s}@keyframes lavaPulse{50%{filter:brightness(1.3)}}.shooting-star{position:absolute;z-index:5;left:50%;top:54%;width:260px;height:225px;transform:translate(-50%,-50%);filter:drop-shadow(0 18px 10px #090707)}.shooting-star>i,.star-core{position:absolute;background:linear-gradient(135deg,#3c6e67,#163f3d);border:3px solid #102b2a;clip-path:polygon(50% 0,62% 30%,100% 24%,74% 52%,96% 82%,60% 70%,46% 100%,36% 68%,0 78%,25% 50%,4% 20%,39% 31%)}.shooting-star>i:nth-child(1){inset:15px}.shooting-star>i:nth-child(2){width:130px;height:130px;left:5px;top:48px;transform:rotate(-25deg)}.shooting-star>i:nth-child(3){width:120px;height:145px;right:3px;top:35px;transform:rotate(33deg)}.shooting-star>i:nth-child(4){width:105px;height:110px;left:80px;top:0;transform:rotate(13deg)}.shooting-star>i:nth-child(5){width:110px;height:100px;left:70px;bottom:0;transform:rotate(-12deg)}.star-core{width:112px;height:112px;left:75px;top:56px;background:#285653}.shooting-star.struck{animation:starStrike .45s ease}@keyframes starStrike{20%{transform:translate(-50%,-50%) scale(.96) rotate(-2deg);filter:brightness(1.8)}60%{transform:translate(-50%,-50%) scale(1.03) rotate(2deg)}}.mining-pet{position:absolute;z-index:9;left:25%;bottom:70px;width:92px;height:110px;animation:petMinePosition 6s ease-in-out infinite}.mining-pet img{width:62px;height:62px;object-fit:contain;image-rendering:pixelated;position:absolute;bottom:0;left:10px;filter:drop-shadow(0 5px 2px #0008)}.mining-pet-label{position:absolute;top:0;left:50%;transform:translateX(-50%);white-space:nowrap;background:#152112;border:1px solid #d8c167;color:#f3dc76;padding:2px 5px;font-size:11px}.pet-pickaxe{position:absolute;font-size:40px;right:-2px;bottom:35px;transform-origin:10% 90%;animation:petPick 1.25s ease-in-out infinite}@keyframes petPick{0%,100%{transform:rotate(-45deg)}55%{transform:rotate(30deg)}}@keyframes petMinePosition{0%,100%{left:23%}50%{left:29%}}.fake-miner{position:absolute;z-index:7;width:65px;height:75px}.fake-miner img{width:45px;height:45px;object-fit:contain;image-rendering:pixelated;position:absolute;bottom:0}.fake-miner>span{position:absolute;right:0;bottom:23px;font-size:25px;animation:petPick 1.7s ease-in-out infinite}.fake-one{left:8%;bottom:40px}.fake-two{right:9%;bottom:85px}.fake-three{right:21%;bottom:28px}.fake-bubble{position:absolute;bottom:62px;left:50%;transform:translateX(-50%);width:180px;background:#eee2c1;color:#2b1b0d;border:2px solid #523919;border-radius:5px;padding:6px;font:12px Georgia,serif;text-align:center;opacity:0}.fake-bubble:after{content:"";position:absolute;left:45%;bottom:-9px;border:5px solid transparent;border-top-color:#eee2c1}.fake-bubble.pop{animation:bubbleTalk 8s ease both}@keyframes bubbleTalk{0%,100%{opacity:0;transform:translate(-50%,8px)}8%,80%{opacity:1;transform:translate(-50%,0)}}.mining-controls{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:10px}.mining-controls button{min-height:48px}.mining-game.is-active #mineStarButton:not(:disabled){animation:readyPulse 1.3s ease-in-out infinite}@keyframes readyPulse{50%{box-shadow:0 0 12px #e8b34c}}#miningMessage{text-align:center;color:#f1cf82;font-weight:bold}.mining-game>small{display:block;text-align:center;color:#a78d69}.star-dust i{position:absolute;z-index:6;width:7px;height:7px;background:#5f8f86;transform:rotate(45deg);animation:dustSpark 2s ease-out infinite}.star-dust i:nth-child(1){left:40%;top:50%}.star-dust i:nth-child(2){left:56%;top:44%;animation-delay:-.4s}.star-dust i:nth-child(3){left:49%;top:66%;animation-delay:-.8s}.star-dust i:nth-child(4){left:62%;top:58%;animation-delay:-1.2s}.star-dust i:nth-child(5){left:36%;top:61%;animation-delay:-1.6s}@keyframes dustSpark{to{transform:translate(25px,-35px) rotate(225deg);opacity:0}}
@media(max-width:650px){.mining-hud{grid-template-columns:1fr}.star-arena{height:390px}.shooting-star{transform:translate(-50%,-50%) scale(.75)}.fake-bubble{width:120px;font-size:10px}.mining-controls{grid-template-columns:1fr}}

/* Seven-minute Shooting Star cycle and live miners */
.mining-cycle-rewards{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;border:2px solid #7b4d24;background:#21160e;color:#e8c985;font-size:12px}.mining-cycle-track{height:13px;border:2px solid #4e3018;background:#080604;overflow:hidden}.mining-cycle-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8fd5ff,#d9f3ff);transition:width .5s linear}.shooting-star.degraded{filter:grayscale(.7) brightness(.58);transform:scale(.94)}.shooting-star.degraded:after{content:'DEGRADED';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);padding:5px 9px;border:2px solid #3e281a;background:#110c08;color:#b59872;font-weight:900;letter-spacing:1px}.live-star-miners{position:absolute;inset:0;pointer-events:none;z-index:7}.live-star-miner{position:absolute;width:68px;height:70px;animation:liveMinerBob .85s steps(2) infinite}.live-star-miner img{position:absolute;width:34px;height:34px;object-fit:contain;image-rendering:pixelated;left:17px;top:25px}.live-star-miner>b{position:absolute;left:40px;top:22px;font-size:22px;transform-origin:20% 80%;animation:livePickaxe .8s ease-in-out infinite}.live-star-miner>span{position:absolute;left:50%;bottom:47px;transform:translateX(-50%);white-space:nowrap;padding:2px 4px;border:1px solid #93713b;background:rgba(10,7,4,.9);color:#ffe27a;font-size:9px;text-align:center}.live-star-miner small{display:block;color:#ddd;font-size:8px}.live-star-miner.miner-0{left:9%;top:51%}.live-star-miner.miner-1{left:22%;top:65%}.live-star-miner.miner-2{right:11%;top:52%}.live-star-miner.miner-3{right:25%;top:67%}.live-star-miner.miner-4{left:37%;top:74%}.live-star-miner.miner-5{right:38%;top:73%}@keyframes liveMinerBob{from{transform:translateY(0)}to{transform:translateY(3px)}}@keyframes livePickaxe{0%,100%{transform:rotate(-35deg)}50%{transform:rotate(28deg)}}
@media(max-width:700px){.mining-cycle-rewards{grid-template-columns:1fr}.live-star-miner:nth-child(n+5){display:none}}


/* Mining/Quest navigation buttons are always available; unauthenticated clicks open login. */
#openMining,#openQuests{opacity:1!important;filter:none!important;cursor:pointer!important;pointer-events:auto!important}
#openMining:disabled,#openQuests:disabled{opacity:1!important;filter:none!important;cursor:pointer!important;pointer-events:auto!important}


/* OSRS skill cap and always-active Mining / Quests menu buttons */
#openMining,#openQuests,
#openMining:disabled,#openQuests:disabled{
  opacity:1!important;
  filter:none!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  color:#fff3c4!important;
  background:linear-gradient(#765025,#42260f)!important;
  border-color:#d5a64b!important;
  box-shadow:inset 0 0 0 2px #2a170b,0 2px 0 #1b0e07!important;
}
#openMining span,#openQuests span{color:#fff3c4!important}
#openMining:hover,#openQuests:hover{background:linear-gradient(#8a612c,#543116)!important;filter:brightness(1.08)!important}

/* Unified authentic pet presentation system */
.pet-visual{--pet-scale:1;--pet-facing:1;position:relative;display:inline-flex;align-items:flex-end;justify-content:center;width:100%;height:100%;transform:scaleX(var(--pet-facing));transform-origin:50% 85%;isolation:isolate}
.pet-visual img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;transform:scale(var(--pet-scale));transform-origin:50% 88%;filter:drop-shadow(0 2px 1px rgba(0,0,0,.5))}
.pet-ground-shadow{position:absolute;z-index:1;left:17%;right:17%;bottom:4%;height:14%;border-radius:50%;background:rgba(0,0,0,.34);filter:blur(2px);transform:scaleX(calc(1 / var(--pet-facing)))}
.pet-visual[data-pet-ground="hover"] .pet-ground-shadow{opacity:.45;bottom:-7%;transform:scaleX(calc(1 / var(--pet-facing))) scale(.75)}
.pet-visual[data-pet-ground="hover"] img{animation:petAuthenticHover 2.1s ease-in-out infinite}
.pet-visual[data-pet-personality="tail"] img{animation:petAuthenticBreathe 1.8s ease-in-out infinite}
.pet-visual[data-pet-personality="heavy"] img{animation:petAuthenticHeavyIdle 2.4s steps(2,end) infinite}
.pet-visual[data-pet-personality="float"] img{animation:petAuthenticFloat 2.5s ease-in-out infinite}
.pet-visual[data-pet-personality="pulse"] img{animation:petAuthenticPulse 1.55s ease-in-out infinite}
.pet-visual[data-pet-personality="skitter"] img{animation:petAuthenticSkitterIdle .7s steps(2,end) infinite}
@keyframes petAuthenticBreathe{50%{transform:scale(calc(var(--pet-scale)*1.018)) translateY(-1px)}}
@keyframes petAuthenticHeavyIdle{50%{transform:scale(var(--pet-scale)) translateY(1px)}}
@keyframes petAuthenticHover{50%{transform:scale(var(--pet-scale)) translateY(-6px)}}
@keyframes petAuthenticFloat{50%{transform:scale(var(--pet-scale)) translateY(-4px) rotate(1deg)}}
@keyframes petAuthenticPulse{50%{transform:scale(calc(var(--pet-scale)*1.04));filter:brightness(1.12)}}
@keyframes petAuthenticSkitterIdle{50%{transform:scale(var(--pet-scale)) translateX(1px)}}

/* Natural roaming: sprite faces direction, name remains readable, feet move instead of spinning. */
.roaming-pet{position:fixed;left:0;top:0;z-index:45;width:88px;height:96px;pointer-events:none;transition-property:transform;transition-timing-function:linear;will-change:transform}
.roaming-pet .pet-sprite{position:absolute;left:12px;right:12px;bottom:0;height:66px}
.roaming-pet .pet-label{z-index:4;position:absolute;left:50%;bottom:72px;transform:translateX(-50%);min-width:max-content;white-space:nowrap;text-align:center;padding:2px 5px;background:rgba(16,11,6,.92);border:1px solid #9f793f;color:#ffe58c;font-size:10px;line-height:1.05}
.roaming-pet .pet-label small{display:block;color:#ddd;font-size:8px}
.roaming-pet.pet-is-walking .pet-visual[data-pet-ground="walk"] img{animation:petAuthenticWalk .34s steps(2,end) infinite}
.roaming-pet.pet-is-walking .pet-visual[data-pet-personality="heavy"] img{animation:petAuthenticHeavyWalk .48s steps(2,end) infinite}
.roaming-pet.pet-is-walking .pet-visual[data-pet-personality="skitter"] img{animation:petAuthenticSkitterWalk .18s steps(2,end) infinite}
.roaming-pet.pet-is-walking .pet-visual[data-pet-ground="hover"] img{animation:petAuthenticHoverMove .8s ease-in-out infinite}
.roaming-pet.pet-is-idle .pet-visual{animation:petLookAround 3.2s ease-in-out 1}
@keyframes petAuthenticWalk{0%{transform:scale(var(--pet-scale)) translateY(0) rotate(-1deg)}50%{transform:scale(var(--pet-scale)) translateY(-4px) rotate(1deg)}}
@keyframes petAuthenticHeavyWalk{0%{transform:scale(var(--pet-scale)) translateY(0)}50%{transform:scale(var(--pet-scale)) translateY(-3px)}}
@keyframes petAuthenticSkitterWalk{0%{transform:scale(var(--pet-scale)) translate(0,0)}50%{transform:scale(var(--pet-scale)) translate(2px,-2px)}}
@keyframes petAuthenticHoverMove{50%{transform:scale(var(--pet-scale)) translateY(-7px) rotate(2deg)}}
@keyframes petLookAround{35%{transform:scaleX(var(--pet-facing)) rotate(-2deg)}70%{transform:scaleX(calc(var(--pet-facing)*-1)) rotate(2deg)}100%{transform:scaleX(var(--pet-facing))}}

/* Bank and market use the same pet registry and proportions. */
.pet-bank-art{width:82px;height:72px;margin:0 auto 4px}
.pet-bank-mini{width:36px;height:32px;vertical-align:middle;margin-right:5px}
.pet-bank-slot>img{display:none!important}
.pet-bank-slot .pet-ground-shadow{bottom:1%}
.ge-item-icon .pet-visual{width:48px;height:48px}

/* Pet Wars: grounded, readable and more expressive without distorting the original sprites. */
.pet-war-visual{height:92px;width:130px;margin:0 auto;position:relative}
.pet-war-art{width:100%;height:100%}
.pet-wars-arena.running .fighter-left .pet-war-art{animation:petWarAuthenticLeft 1.05s ease-in-out infinite}
.pet-wars-arena.running .fighter-right .pet-war-art{animation:petWarAuthenticRight 1.05s ease-in-out infinite}
.pet-wars-arena.finished .winner .pet-war-art{animation:petWarAuthenticVictory .5s ease-in-out infinite alternate}
.pet-wars-arena.finished .loser .pet-war-art{transform:rotate(76deg) translateY(22px)}
@keyframes petWarAuthenticLeft{0%,100%{transform:translateX(0)}50%{transform:translateX(30px) translateY(-5px)}}
@keyframes petWarAuthenticRight{0%,100%{transform:translateX(0)}50%{transform:translateX(-30px) translateY(-5px)}}
@keyframes petWarAuthenticVictory{to{transform:translateY(-10px) rotate(4deg)}}

/* Shooting Star pets share the same true-to-sprite scaling and have varied mining rhythm. */
.mining-pet-visual{position:absolute;bottom:0;left:8px;width:68px;height:66px}
.mining-pet .star-pet-art,.live-star-miner .star-pet-art{width:100%;height:100%}
.mining-pet .star-pet-art img{animation:petMiningBody 1.25s ease-in-out infinite}
.live-star-miner .pet-visual{position:absolute;left:12px;top:22px;width:42px;height:42px}
.live-star-miner:nth-child(2n) .pet-visual img{animation-delay:-.35s}
.live-star-miner:nth-child(3n) .pet-visual img{animation-delay:-.7s}
@keyframes petMiningBody{0%,100%{transform:scale(var(--pet-scale)) rotate(-1deg)}55%{transform:scale(var(--pet-scale)) translateY(2px) rotate(2deg)}}

@media(max-width:700px){.roaming-pet{width:72px;height:82px}.roaming-pet .pet-sprite{height:54px}.roaming-pet .pet-label{bottom:59px}.pet-war-visual{width:104px;height:74px}}

/* Remove accidental square panels around roaming pet sprites. */
.roaming-pet,
.roaming-pet .pet-sprite,
.roaming-pet .pet-visual,
.roaming-pet .pet-visual img{
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
.roaming-pet .pet-sprite{
  overflow:visible!important;
}
.roaming-pet .pet-visual{
  overflow:visible!important;
}
/* Keep only the intended soft floor shadow. */
.roaming-pet .pet-ground-shadow{
  display:block!important;
}

/* 2026-07-29: remove all pet shadows/dots; high-detail sprites already include their natural silhouette. */
.pet-ground-shadow,
.roaming-pet .pet-ground-shadow,
.pet-bank-slot .pet-ground-shadow,
.pet-war-art .pet-ground-shadow,
.star-pet-art .pet-ground-shadow,
.live-star-miner .pet-ground-shadow{
  display:none!important;
  opacity:0!important;
  background:none!important;
  box-shadow:none!important;
  filter:none!important;
}
.pet-visual img,
.roaming-pet .pet-visual img,
.pet-bank-art img,
.pet-bank-mini img,
.pet-war-art img,
.star-pet-art img{
  filter:none!important;
  box-shadow:none!important;
}


/* 2026-07-29 final visual polish: no pet shadows, stable XP targets, better mining grip, cozy tavern office. */
.pet-ground-shadow,
.roaming-pet .pet-sprite::after,
.roaming-pet .pet-sprite:after,
.pet-visual::before,.pet-visual::after,
.pet-sprite::before,.pet-sprite::after{
  display:none!important;content:none!important;opacity:0!important;background:none!important;
  box-shadow:none!important;filter:none!important;
}
.roaming-pet,.roaming-pet *{text-shadow:none}
.roaming-pet .pet-visual img,.pet-visual img{filter:none!important;box-shadow:none!important}

/* Repo XP Rush targets stay perfectly still under the pointer. */
.agility-target,
.agility-target:hover,
.agility-target:focus,
.agility-target:focus-visible{
  translate:none!important;
  transition:none!important;
  transform:translate(-50%,-50%)!important;
}
.agility-target{animation:xpDropGlowStable .48s ease-in-out infinite alternate!important}
@keyframes xpDropGlowStable{
  from{filter:brightness(1);box-shadow:0 0 0 6px #63d39a24,0 0 23px #63d39a}
  to{filter:brightness(1.32);box-shadow:0 0 0 10px #63d39a18,0 0 34px #63d39a}
}
.agility-target.hit{animation:xpDropCaught .2s forwards!important}

/* Pickaxes sit beside the pet like a held tool, with the handle crossing the front paw/body. */
.pet-pickaxe{right:5px!important;bottom:20px!important;width:48px;height:48px;font-size:0!important;transform-origin:22% 78%!important;z-index:5}
.pet-pickaxe img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;transform:rotate(-8deg)}
.mining-pet .pet-pickaxe{animation:heldPetPick 1.25s ease-in-out infinite!important}
.live-star-miner>b.live-pickaxe{position:absolute;left:34px!important;top:28px!important;width:29px;height:29px;font-size:0!important;transform-origin:22% 78%!important;z-index:6;animation:heldLivePick .82s ease-in-out infinite!important}
.live-star-miner>b.live-pickaxe img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
@keyframes heldPetPick{0%,100%{transform:rotate(-41deg) translate(-1px,0)}52%{transform:rotate(27deg) translate(3px,4px)}}
@keyframes heldLivePick{0%,100%{transform:rotate(-38deg) translate(0,0)}52%{transform:rotate(29deg) translate(2px,3px)}}
.mining-pet-visual{z-index:4}

/* Cozy pixel-adventure tavern behind the existing computer, chair and characters. */
.scene.tavern-scene{
  background:
    linear-gradient(to bottom,rgba(18,9,5,.12) 0 70%,rgba(25,12,6,.52) 70% 100%),
    repeating-linear-gradient(90deg,#4a2918 0 5px,#5a3520 5px 82px,#3a2115 82px 87px),
    #3d2418!important;
  border-color:#9a632f!important;
  box-shadow:inset 0 0 70px #160b06,0 20px 50px #0008!important;
}
.tavern-room{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.tavern-room:before{content:"";position:absolute;left:0;right:0;bottom:0;height:32%;background:repeating-linear-gradient(90deg,#2b180e 0 80px,#1b100a 80px 85px),linear-gradient(#3a2113,#25140c);border-top:8px solid #17100b;box-shadow:inset 0 15px 30px #0007}
.tavern-beam{position:absolute;background:linear-gradient(90deg,#21120b,#59331d,#21120b);box-shadow:0 4px 8px #0008}
.tavern-beam.beam-one{left:0;right:0;top:102px;height:20px}
.tavern-beam.beam-two{left:48%;top:0;bottom:0;width:18px}
.tavern-window{position:absolute;left:25px;top:148px;width:145px;height:145px;border:13px solid #2b170e;background:radial-gradient(circle at 55% 35%,#e7c77a,#6a7891 38%,#27374b 72%);box-shadow:inset 0 0 28px #14202e,0 8px 18px #0008;border-radius:5px}
.tavern-window:before,.tavern-window:after{content:"";position:absolute;background:#2a180f}
.tavern-window:before{left:50%;top:0;bottom:0;width:7px;transform:translateX(-50%)}
.tavern-window:after{left:0;right:0;top:50%;height:7px;transform:translateY(-50%)}
.tavern-window i{position:absolute;left:14px;right:14px;bottom:10px;height:25px;background:linear-gradient(135deg,#203321,#41602a);clip-path:polygon(0 100%,18% 32%,35% 70%,51% 10%,68% 67%,82% 36%,100% 100%)}
.tavern-fireplace{position:absolute;right:25px;bottom:33px;width:165px;height:205px;background:repeating-linear-gradient(0deg,#5c3c2b 0 19px,#3c281f 19px 23px);border:12px solid #26150e;box-shadow:0 0 22px #0009}
.tavern-fireplace:before{content:"";position:absolute;left:24px;right:24px;bottom:16px;height:94px;background:#100a08;border-radius:55px 55px 8px 8px;box-shadow:inset 0 0 15px #000}
.tavern-fireplace i{position:absolute;z-index:2;left:50%;bottom:25px;width:54px;height:75px;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 80%,#fff19d 0 12%,#ffae2b 13% 42%,#d44316 43% 68%,transparent 69%);clip-path:polygon(50% 0,69% 31%,87% 19%,79% 58%,100% 68%,65% 100%,28% 94%,0 64%,22% 46%,18% 19%,40% 34%);animation:tavernFlame .75s ease-in-out infinite alternate}
.tavern-fireplace b{position:absolute;left:-17px;right:-17px;top:-26px;height:30px;background:#6d4429;border:6px solid #2b170e}
@keyframes tavernFlame{to{transform:translateX(-50%) scale(.92,1.08);filter:brightness(1.18)}}
.tavern-shelf{position:absolute;right:205px;top:38px;width:198px;height:20px;background:#6b4126;border:5px solid #29170e;box-shadow:0 7px 11px #0007}
.tavern-shelf i{position:absolute;bottom:14px;width:28px;height:42px;background:linear-gradient(90deg,#584427,#b89451,#584427);border:3px solid #261a10;border-radius:8px 8px 4px 4px}
.tavern-shelf i:nth-child(1){left:18px}.tavern-shelf i:nth-child(2){left:76px;height:53px;background:linear-gradient(90deg,#3b4e31,#73945c,#3b4e31)}.tavern-shelf i:nth-child(3){right:17px;height:36px;background:linear-gradient(90deg,#63332c,#a8644f,#63332c)}
.tavern-rug{position:absolute;left:34%;right:18%;bottom:25px;height:92px;background:repeating-linear-gradient(90deg,#6c241c 0 24px,#bd8a36 24px 31px,#3f1d25 31px 58px);clip-path:polygon(4% 0,96% 0,100% 50%,96% 100%,4% 100%,0 50%);opacity:.86}
.scene.tavern-scene>.poster,.scene.tavern-scene>.monitor,.scene.tavern-scene>.desk,.scene.tavern-scene>.keyboard,.scene.tavern-scene>.chair,.scene.tavern-scene>.gamer,.scene.tavern-scene>.level,.scene.tavern-scene>.resource-layer{position:absolute}
@media(max-width:760px){.tavern-window{left:8px;top:135px;width:110px;height:110px}.tavern-fireplace{right:5px;width:125px;height:175px}.tavern-shelf{display:none}}

/* Shooting Star multiplayer pet cleanup: remove inherited pet-card squares entirely. */
.live-star-miners,
.live-star-miner,
.live-star-miner .pet-visual,
.live-star-miner .pet-sprite,
.live-star-miner .star-pet-art,
.live-star-miner .star-pet-art img,
.mining-pet,
.mining-pet .mining-pet-visual,
.mining-pet .pet-visual,
.mining-pet .pet-sprite,
.mining-pet .star-pet-art,
.mining-pet .star-pet-art img{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  filter:none!important;
}
.live-star-miner .pet-visual::before,
.live-star-miner .pet-visual::after,
.live-star-miner .pet-sprite::before,
.live-star-miner .pet-sprite::after,
.live-star-miner .star-pet-art::before,
.live-star-miner .star-pet-art::after,
.mining-pet .pet-visual::before,
.mining-pet .pet-visual::after,
.mining-pet .pet-sprite::before,
.mining-pet .pet-sprite::after{
  content:none!important;
  display:none!important;
}
.live-star-miner .star-pet-art,
.mining-pet .star-pet-art{overflow:visible!important}

/* Dedicated Lumbridge Pet Room — active pets stay inside this scene. */
.pet-room{max-width:1500px;margin:14px auto 28px;border:4px ridge #9b6a2d;background:#24150c;box-shadow:0 0 0 2px #2b190b,inset 0 0 0 1px #d8ad62;overflow:hidden}
.pet-room-heading{display:flex;align-items:center;gap:22px;padding:10px 16px;background:linear-gradient(#6b3f20,#3d2414);border-bottom:3px ridge #a87838;color:#f6d88b;font-family:Georgia,serif}
.pet-room-heading b{font-size:15px;letter-spacing:1px;white-space:nowrap}.pet-room-heading span{font-size:13px;color:#e7c998}
.pet-room-scene{position:relative;width:100%;aspect-ratio:2048/473;min-height:250px;max-height:420px;background-image:url('assets/pet-room.png');background-size:100% 100%;background-position:center;background-repeat:no-repeat;overflow:hidden;isolation:isolate}
.roaming-pets{position:absolute!important;inset:0!important;z-index:6!important;pointer-events:none;overflow:hidden!important}
.roaming-pet{position:absolute!important;left:0!important;top:0!important;z-index:7!important}
.roaming-pet .pet-label{background:rgba(30,18,8,.90)!important;border-color:#d0a34d!important;color:#fff0a6!important;box-shadow:none!important}
.roaming-pet .pet-label small{color:#efe0bf!important}
.roaming-pet .pet-sprite,.roaming-pet .pet-visual,.roaming-pet .pet-visual img{background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;filter:none!important}
@media(max-width:850px){.pet-room{margin:10px 6px 20px}.pet-room-heading{gap:8px;align-items:flex-start;flex-direction:column}.pet-room-scene{min-height:220px;background-size:cover;background-position:center}.roaming-pet{transform-origin:center bottom}}


/* Pet room interaction polish: image-only frame, no white edge, no idle spinning. */
.pet-room{
  max-width:1500px;
  margin:14px auto 28px;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden;
}
.pet-room-heading{display:none!important}
.pet-room-scene{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background-color:transparent!important;
  background-size:100% 100%!important;
}
.roaming-pet.pet-is-idle .pet-visual{animation:none!important}
@keyframes petLookAround{from{transform:none}to{transform:none}}
.roaming-pet .pet-visual{transition:transform .18s linear}

/* Contextual pet-room actions. */
.roaming-pet .pet-room-effect{
  position:absolute;left:50%;bottom:8px;transform:translateX(-50%);
  pointer-events:none;z-index:10;font-size:20px;line-height:1;
  animation:petRoomEffectPop 1.5s ease-out forwards;
}
@keyframes petRoomEffectPop{
  0%{opacity:0;transform:translate(-50%,5px) scale(.65)}
  18%{opacity:1;transform:translate(-50%,-2px) scale(1)}
  75%{opacity:1;transform:translate(-50%,-15px) scale(1)}
  100%{opacity:0;transform:translate(-50%,-24px) scale(.9)}
}
.roaming-pet.pet-room-splash .pet-sprite::before,
.roaming-pet.pet-room-splash .pet-sprite::after{
  content:""!important;display:block!important;position:absolute!important;
  left:50%;bottom:2px;width:42px;height:12px;border:3px solid rgba(155,224,255,.9)!important;
  border-radius:50%!important;background:transparent!important;box-shadow:none!important;
  transform:translateX(-50%) scale(.4);animation:petSplashRing 1.05s ease-out forwards;
}
.roaming-pet.pet-room-splash .pet-sprite::after{animation-delay:.18s}
@keyframes petSplashRing{0%{opacity:0;transform:translateX(-50%) scale(.35)}20%{opacity:1}100%{opacity:0;transform:translateX(-50%) scale(1.45)}}
.roaming-pet.pet-room-sitting .pet-sprite{transform:translateY(7px)!important}
.roaming-pet.pet-room-sitting .pet-visual img{animation:none!important;transform:scale(var(--pet-scale)) translateY(5px) scaleY(.9)!important}
.roaming-pet.pet-room-towel .pet-sprite::before{
  content:""!important;display:block!important;position:absolute!important;z-index:5;
  left:50%;bottom:5px;width:46px;height:15px;transform:translateX(-50%);
  background:repeating-linear-gradient(90deg,#e8f4ff 0 7px,#8fc8ef 7px 14px)!important;
  border:1px solid #d9f3ff!important;border-radius:3px!important;box-shadow:none!important;
}
.roaming-pet.pet-room-treat .pet-visual img{animation:petTreatBounce .38s ease-in-out 3!important}
@keyframes petTreatBounce{50%{transform:scale(var(--pet-scale)) translateY(-7px)}}
@media(max-width:850px){.pet-room{margin:10px 6px 20px}.pet-room-scene{min-height:220px}}

/* Two-room pet rotation and Squid Games obstacle animation. */
.pet-room-scene{background-image:none!important}
.pet-room-bg{position:absolute;inset:0;z-index:0;background-size:100% 100%;background-position:center;background-repeat:no-repeat;opacity:0;transform:scale(1.008);transition:opacity 1.45s ease,transform 1.45s ease;pointer-events:none}
.pet-room-bg.is-visible{opacity:1;transform:scale(1)}
.roaming-pets{z-index:6!important}
.roaming-pet{transition-property:transform,opacity!important;transition-timing-function:linear,ease!important;opacity:1;will-change:transform,opacity}
.roaming-pet.pet-room-running .pet-visual img{animation-duration:.28s!important}
.roaming-pet.pet-room-hopping .pet-sprite{animation:petObstacleHop .48s cubic-bezier(.25,.75,.35,1) infinite alternate!important}
@keyframes petObstacleHop{from{transform:translateY(0) scaleY(1)}to{transform:translateY(-18px) scaleY(.96)}}
.roaming-pet.pet-room-falling{z-index:2!important;transition:opacity .7s ease!important;animation:petCourseFall .78s cubic-bezier(.5,0,1,.5) forwards!important}
.roaming-pet.pet-room-falling .pet-label{opacity:0;transition:opacity .18s ease}
@keyframes petCourseFall{0%{filter:none;opacity:1}55%{filter:brightness(.7);opacity:.85}100%{filter:brightness(.2);opacity:0;transform:translate3d(var(--fall-x,0),70px,0) scale(.45)}}
.pet-room-scene[data-room="squid"] .roaming-pet .pet-label{background:rgba(13,31,31,.92)!important;border-color:#d45d88!important;color:#ffb4cc!important}
@media(max-width:850px){.pet-room-bg{background-size:cover}}


/* Mario Kart pet-room race — rune karts */
.pet-room-scene[data-room="mario"] .roaming-pet .pet-label{background:rgba(34,22,10,.94)!important;border-color:#e2b94f!important;color:#fff3a2!important}
.pet-kart{display:none;position:absolute;left:4px;bottom:-2px;width:80px;height:40px;z-index:1;transform-origin:center bottom;filter:drop-shadow(0 3px 1px rgba(0,0,0,.45))}
.pet-in-kart .pet-kart{display:block}
.pet-in-kart .pet-sprite{z-index:2;bottom:15px!important;transform:scale(.76);transform-origin:center bottom}
.pet-in-kart .pet-label{bottom:81px!important}
.pet-kart:before{content:"";position:absolute;left:7px;top:10px;width:66px;height:22px;border:3px solid #21170d;border-radius:45% 48% 34% 34%;background:var(--kart-body,#58758b);box-shadow:inset 0 -6px rgba(0,0,0,.22),inset 0 4px rgba(255,255,255,.18)}
.pet-kart:after{content:"";position:absolute;left:19px;top:3px;width:39px;height:18px;border:3px solid #21170d;border-bottom:0;border-radius:50% 50% 0 0;background:var(--kart-trim,#b9c9d3)}
.pet-kart i:before,.pet-kart i:after{content:"";position:absolute;top:26px;width:17px;height:15px;background:#241d18;border:3px solid #090806;border-radius:50%;box-sizing:border-box}
.pet-kart i:before{left:8px}.pet-kart i:after{right:8px}
.pet-kart b:before{content:"";position:absolute;z-index:3;left:31px;top:10px;width:19px;height:19px;border-radius:50%;background-image:var(--kart-rune);background-size:cover;background-position:center;filter:drop-shadow(0 1px 1px #21170d)}
.roaming-pet[data-kart-theme="air"]{--kart-body:#d7d7d7;--kart-trim:#f2f2f2;--kart-rune:url('assets/kart-runes/air.png')}
.roaming-pet[data-kart-theme="water"]{--kart-body:#2459c7;--kart-trim:#7da8ff;--kart-rune:url('assets/kart-runes/water.png')}
.roaming-pet[data-kart-theme="earth"]{--kart-body:#795019;--kart-trim:#c9984d;--kart-rune:url('assets/kart-runes/earth.png')}
.roaming-pet[data-kart-theme="fire"]{--kart-body:#b51f18;--kart-trim:#f07136;--kart-rune:url('assets/kart-runes/fire.png')}
.roaming-pet[data-kart-theme="mind"]{--kart-body:#c39318;--kart-trim:#f1d36e;--kart-rune:url('assets/kart-runes/mind.png')}
.roaming-pet[data-kart-theme="body"]{--kart-body:#273b86;--kart-trim:#84a0ff;--kart-rune:url('assets/kart-runes/body.png')}
.roaming-pet[data-kart-theme="cosmic"]{--kart-body:#d2a400;--kart-trim:#fff06a;--kart-rune:url('assets/kart-runes/cosmic.png')}
.roaming-pet[data-kart-theme="chaos"]{--kart-body:#e0ce00;--kart-trim:#fff56b;--kart-rune:url('assets/kart-runes/chaos.png')}
.roaming-pet[data-kart-theme="nature"]{--kart-body:#6b466d;--kart-trim:#bc8dbf;--kart-rune:url('assets/kart-runes/nature.png')}
.roaming-pet[data-kart-theme="law"]{--kart-body:#138b35;--kart-trim:#78d68a;--kart-rune:url('assets/kart-runes/law.png')}
.roaming-pet[data-kart-theme="death"]{--kart-body:#293e96;--kart-trim:#7899ff;--kart-rune:url('assets/kart-runes/death.png')}
.roaming-pet[data-kart-theme="astral"]{--kart-body:#dedede;--kart-trim:#ffffff;--kart-rune:url('assets/kart-runes/astral.png')}
.roaming-pet[data-kart-theme="blood"]{--kart-body:#435d9b;--kart-trim:#8ca4dd;--kart-rune:url('assets/kart-runes/blood.png')}
.roaming-pet[data-kart-theme="soul"]{--kart-body:#2a202d;--kart-trim:#a02c79;--kart-rune:url('assets/kart-runes/soul.png')}
.roaming-pet[data-kart-theme="wrath"]{--kart-body:#d5d5d5;--kart-trim:#f5f5f5;--kart-rune:url('assets/kart-runes/wrath.png')}
.roaming-pet[data-kart-theme="dust"]{--kart-body:#806229;--kart-trim:#c7a45c;--kart-rune:url('assets/kart-runes/dust.png')}
.roaming-pet[data-kart-theme="mud"]{--kart-body:#8c5612;--kart-trim:#d89a39;--kart-rune:url('assets/kart-runes/mud.png')}
.roaming-pet[data-kart-theme="smoke"]{--kart-body:#4f5054;--kart-trim:#8e9198;--kart-rune:url('assets/kart-runes/smoke.png')}
.roaming-pet[data-kart-theme="steam"]{--kart-body:#c6c6c6;--kart-trim:#f5f5f5;--kart-rune:url('assets/kart-runes/steam.png')}
.roaming-pet[data-kart-theme="lava"]{--kart-body:#b92d12;--kart-trim:#f07924;--kart-rune:url('assets/kart-runes/lava.png')}
.pet-in-kart.pet-room-running .pet-kart{animation:kartRumble .16s steps(2,end) infinite}
@keyframes kartRumble{0%{transform:translateY(0) rotate(-.5deg)}100%{transform:translateY(-1px) rotate(.5deg)}}
@media(max-width:850px){.pet-kart{transform:scale(.82);left:-3px}.pet-in-kart .pet-sprite{transform:scale(.68)}.pet-in-kart .pet-label{bottom:68px!important}}
.pet-in-kart .pet-sprite{transform:scale(.68)}.pet-in-kart .pet-label{bottom:68px!important}}

/* Hunger Games pet room */
.pet-room-scene[data-room="hunger"] .roaming-pet .pet-label{background:rgba(35,24,10,.94)!important;border-color:#b98b42!important;color:#ffe5a0!important}
.pet-weapon{display:none;position:absolute;left:42px;bottom:8px;width:34px;height:62px;z-index:5;background-image:var(--pet-weapon);background-size:contain;background-repeat:no-repeat;background-position:center bottom;transform-origin:50% 88%;filter:drop-shadow(1px 2px 1px rgba(0,0,0,.75));pointer-events:none}
.pet-armed .pet-weapon{display:block}
.pet-attacking .pet-weapon{animation:hungerWeaponSwing .5s cubic-bezier(.2,.8,.35,1)}
.pet-attacking .pet-sprite{animation:hungerPetLunge .5s ease-out}
@keyframes hungerWeaponSwing{0%{transform:rotate(-28deg) translateY(4px)}45%{transform:rotate(64deg) translate(5px,-5px)}100%{transform:rotate(-8deg)}}
@keyframes hungerPetLunge{0%,100%{transform:translateX(0)}45%{transform:translateX(7px) scale(1.04)}}
@media(max-width:850px){.pet-weapon{left:34px;bottom:5px;width:28px;height:50px}}

/* Hunger Games: supplied OSRS weapons and slapstick arena actions */
.pet-weapon{left:38px!important;bottom:0!important;width:44px!important;height:72px!important;background-position:center center!important;transform-origin:48% 84%!important}
.pet-armed .pet-weapon{display:block}
.flung-hunger-weapon{position:absolute;z-index:80;width:46px;height:76px;background-size:contain;background-repeat:no-repeat;background-position:center;pointer-events:none;filter:drop-shadow(2px 3px 1px rgba(0,0,0,.72));animation:hungerWeaponFling 1.2s cubic-bezier(.18,.7,.35,1) forwards}
@keyframes hungerWeaponFling{0%{opacity:1;transform:translate(0,0) rotate(0) scale(.9)}45%{opacity:1;transform:translate(calc(var(--fling-x)*.52),var(--fling-y)) rotate(calc(var(--fling-r)*.55)) scale(1.08)}100%{opacity:0;transform:translate(var(--fling-x),calc(var(--fling-y) + 190px)) rotate(var(--fling-r)) scale(.72)}}
.pet-platform-rise .pet-sprite{animation:hungerPlatformRise .88s cubic-bezier(.15,.78,.25,1) both!important}
.pet-platform-rise .pet-label{animation:hungerLabelRise .88s ease-out both}
@keyframes hungerPlatformRise{0%{opacity:0;transform:translateY(58px) scale(.55)}65%{opacity:1;transform:translateY(-7px) scale(1.04)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes hungerLabelRise{0%,28%{opacity:0;transform:translate(-50%,35px)}100%{opacity:1;transform:translate(-50%,0)}}
.pet-backflip .pet-sprite{animation:hungerBackflip .64s cubic-bezier(.3,.65,.25,1)!important}
.pet-kungfu-flip .pet-sprite{animation:hungerKungFuFlip .64s cubic-bezier(.3,.65,.25,1)!important}
@keyframes hungerBackflip{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-35px) rotate(-190deg) scale(1.08)}100%{transform:translateY(0) rotate(-360deg)}}
@keyframes hungerKungFuFlip{0%{transform:translate(0,0) rotate(0)}42%{transform:translate(18px,-28px) rotate(175deg) scaleX(.8)}100%{transform:translate(0,0) rotate(360deg)}}
.pet-arena-launched .pet-sprite{animation:hungerArenaLaunch .48s linear infinite!important}
.pet-arena-launched .pet-label{opacity:0}
@keyframes hungerArenaLaunch{to{transform:rotate(360deg) scale(.78)}}
@media(max-width:850px){.pet-weapon{left:31px!important;width:36px!important;height:58px!important}.flung-hunger-weapon{width:38px;height:62px}}

/* Hunger Games pet health and guaranteed healing */
.pet-healthbar{display:none;position:absolute;left:50%;top:-16px;transform:translateX(-50%);width:48px;height:7px;padding:1px;border:1px solid #17110a;border-radius:2px;background:#2a1713;z-index:15;box-shadow:0 1px 2px rgba(0,0,0,.8);pointer-events:none}
.pet-room-scene[data-room="hunger"] .roaming-pet .pet-healthbar{display:block}
.pet-healthbar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#42b94e,#9ee85c);transition:width .2s ease;border-radius:1px}
.pet-health-low .pet-healthbar{animation:hungerLowHpPulse .55s ease-in-out infinite alternate}
.pet-health-low .pet-healthbar i{background:linear-gradient(90deg,#b9202e,#f15a42)}
@keyframes hungerLowHpPulse{to{transform:translateX(-50%) scale(1.08);filter:brightness(1.35)}}
.pet-heal-item{display:none;position:absolute;left:36px;bottom:2px;width:42px;height:52px;z-index:8;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(2px 3px 1px rgba(0,0,0,.7));pointer-events:none}
.pet-heal-item.is-visible{display:block;animation:hungerHealItem .72s ease-out both}
@keyframes hungerHealItem{0%{opacity:0;transform:translateY(16px) rotate(-18deg) scale(.4)}45%{opacity:1;transform:translateY(-8px) rotate(8deg) scale(1.08)}100%{opacity:1;transform:translateY(0) rotate(0) scale(1)}}
@media(max-width:850px){.pet-healthbar{top:-13px;width:40px;height:6px}.pet-heal-item{left:29px;width:34px;height:43px}}

/* Runecrafting pool aiming and match result polish */
.rc-table-wrap{position:relative}.rc-result-screen{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:10px;background:rgba(3,8,6,.78);backdrop-filter:blur(2px);z-index:8;border-radius:8px;animation:rcResultIn .32s ease-out}.rc-result-screen.hidden{display:none}.rc-result-screen strong{font-size:clamp(38px,8vw,82px);letter-spacing:5px;text-shadow:0 4px 0 #000,0 0 22px currentColor}.rc-result-screen span{max-width:520px;padding:0 20px;font-size:16px;color:#f2f5ef}.rc-result-screen b{display:inline-block;justify-self:center;margin-top:6px;padding:9px 15px;border:1px solid currentColor;background:#09120d;font-size:17px;letter-spacing:1px}.rc-result-screen.victory{color:#74ee9f}.rc-result-screen.defeat{color:#ff6c62}@keyframes rcResultIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}

/* Insane Jad mode */
.slayer-difficulty-grid{grid-template-columns:repeat(4,1fr)}
.slayer-difficulty-choice.insane{border-color:#8f2525!important;background:#351313!important}
.jad-healer{position:absolute;width:46px;height:46px;transform:translate(-50%,-50%);z-index:9;border:2px solid #c9d9a0!important;border-radius:50%!important;background:#3f6332!important;color:#fff!important;padding:0!important;cursor:crosshair;box-shadow:0 0 12px #7fd45c;animation:jadHealerBob .55s ease-in-out infinite alternate}
.jad-healer i{display:block;width:20px;height:25px;margin:4px auto 0;background:#7cb95d;clip-path:polygon(50% 0,100% 30%,82% 100%,18% 100%,0 30%)}
.jad-healer b{position:absolute;left:50%;top:43px;transform:translateX(-50%);font-size:8px;color:#eaffcf;text-shadow:1px 1px #000;white-space:nowrap}
.jad-healer.killed{animation:none;transform:translate(-50%,-50%) rotate(110deg) scale(.2);opacity:0;transition:.18s}
@keyframes jadHealerBob{to{transform:translate(-50%,-57%) scale(1.08)}}
@media(max-width:650px){.slayer-difficulty-grid{grid-template-columns:repeat(2,1fr)}}

/* RuneScape cooking minigame */
.cooking-open-button{background:linear-gradient(#6e3d1e,#3d2112)!important;border-color:#d7a65b!important}.cooking-open-button img{object-fit:contain}.cooking-dialog{width:min(1040px,96vw);max-width:1040px;background:#17130d;border:3px solid #8c6a34;color:#f3dfad}.cooking-title{display:flex;gap:14px;align-items:center;border-bottom:2px solid #5e4828;padding-bottom:10px}.cooking-title img{width:46px;height:46px;object-fit:contain}.cooking-title h3{margin:0;color:#ffd36a}.cooking-title p{margin:4px 0 0;color:#c8b68b}.cooking-setup{display:grid;gap:18px;padding:24px}.cooking-mode-row{display:flex;gap:12px;justify-content:center}.cooking-mode-row button,.cooking-start,.cooking-result button{background:#3e2d19;color:#f8df9b;border:2px solid #a67836;padding:12px 18px;font-weight:800}.cooking-mode-row button.selected{background:#8b5a20;color:white;box-shadow:0 0 0 2px #e1b45d inset}.cooking-rules{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#241b10;border:1px solid #5f4828;padding:15px}.cooking-rules b{grid-column:1/-1;color:#ffd36a}.cooking-start{justify-self:center;font-size:18px}.cooking-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.cooking-hud>div{background:#261b0e;border:1px solid #72572e;padding:8px;text-align:center}.cooking-hud span{display:block;font-size:11px;color:#bfa875}.cooking-hud b{font-size:20px;color:#fff0b0}.cooking-orders-bar{display:flex;gap:8px;overflow-x:auto;padding:8px;background:#0d0b08;border:1px solid #5a4426}.cook-order{min-width:120px;background:#2d2112;border:2px solid #6d5128;padding:8px;text-align:center}.cook-order b{display:block;color:#ffd36a}.cook-order small{color:#ddd}.cook-order.urgent{animation:cookPulse .55s infinite alternate;border-color:#c33}.cooking-dialog canvas{width:100%;height:auto;background:#1d2915;border:3px solid #72572e;image-rendering:pixelated}.cooking-message{text-align:center;padding:10px;color:#e9d6a1;min-height:24px}.cooking-result{position:absolute;inset:90px 80px;display:grid;place-content:center;text-align:center;background:rgba(20,12,5,.96);border:4px solid #b48336;z-index:5}.cooking-result h3{font-size:42px;color:#ffd36a;margin:0}.cooking-result p{font-size:18px;max-width:560px}.cooking-result.hidden{display:none}.hidden{display:none!important}@keyframes cookPulse{to{transform:scale(1.03);background:#4a1818}}
.cooking-mode-row{flex-wrap:wrap}.cooking-join-panel{display:flex;justify-content:center;gap:10px}.cooking-join-panel input{width:190px;text-transform:uppercase;letter-spacing:5px;text-align:center;background:#0f0c08;color:#ffe39a;border:2px solid #9d7134;padding:12px;font:900 18px monospace}.cooking-join-panel button,.cooking-lobby button{background:#3e2d19;color:#f8df9b;border:2px solid #a67836;padding:12px 18px;font-weight:800}.cooking-lobby{text-align:center;padding:24px;background:radial-gradient(circle,#30200e,#140e08);border:2px solid #765326;margin:16px}.cooking-lobby h4{font-size:25px;color:#ffd36a;margin:0 0 8px}.cooking-lobby>strong{display:inline-block;font:900 38px monospace;letter-spacing:8px;color:#fff0a8;background:#100b06;border:3px solid #c28a35;padding:12px 20px;margin:8px}.cooking-lobby-team{display:flex;justify-content:center;align-items:center;gap:16px;margin:18px}.cooking-lobby-team span{min-width:210px;padding:12px;background:#24190d;border:1px solid #75552e;color:#f8dfa1}.cooking-hud{grid-template-columns:repeat(5,1fr)}.cook-order.golden{border-color:#ffd54a;box-shadow:0 0 12px #e7aa22;background:#4d3610}.cooking-start:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.cooking-lobby-team{flex-direction:column}.cooking-hud{grid-template-columns:repeat(3,1fr)}.cooking-rules{grid-template-columns:1fr}}
/* Cooking readability and kitchen immersion */
.cooking-orders-bar{padding:10px;gap:10px;background:linear-gradient(#21170d,#100c08);border:2px solid #8b6733;min-height:92px}
.cook-order{min-width:205px;padding:8px 10px;text-align:left;border-radius:3px;background:linear-gradient(#3c2b16,#271b0f);box-shadow:0 3px 7px #0008}
.cook-order header{display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid #72552b;padding-bottom:4px}.cook-order header b{font-size:13px}.cook-order header em{font-style:normal;font-weight:900;color:#fff0b0}
.cook-order-recipe{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 0}.cook-order-item{display:flex;flex-direction:column;align-items:center;min-width:58px}.cook-order-item img{width:32px;height:32px;object-fit:contain;image-rendering:auto}.cook-order-item i{font-size:9px;font-style:normal;color:#f5deb0;text-transform:uppercase}.cook-order-recipe strong{color:#ffd36a;font-size:18px}
.cook-order>small{display:block;text-align:center;color:#bfa875;font-size:9px}.cook-order-time{height:5px;background:#130c07;margin-top:6px;border:1px solid #6b4b26}.cook-order-time span{display:block;height:100%;background:#5bc66a;transition:width .2s}.cook-order.urgent .cook-order-time span{background:#e34d3f}
.cooking-message{background:#21170d;border:1px solid #72572e;margin-top:7px;font-weight:700}.cooking-dialog canvas{background:#34261b;box-shadow:inset 0 0 30px #0008}


/* Achievement log */
.achievements-open-button{opacity:1!important;filter:none!important;color:#eee!important;background:#111!important;border-color:#376b51!important;cursor:pointer!important;padding-left:6px!important;padding-right:6px!important}
.achievements-open-button>span{color:#eee!important;font-size:12px!important;line-height:1.05!important;letter-spacing:0!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}
.achievements-open-button:hover{background:#14221a!important;border-color:#63d39a!important}
.achievements-dialog{width:min(760px,94vw);background:#30251b;color:#f4dfad;border:4px ridge #bd8a45;padding:18px}
.achievement-heading{display:flex;align-items:center;gap:14px;border-bottom:2px solid #856136;padding:0 36px 12px 0;margin-bottom:14px}
.achievement-heading>img{width:70px;height:70px;object-fit:contain;background:#18120d;border:2px solid #b88849;padding:5px}
.achievement-heading h3{margin:0 0 4px;color:#f2cf7c;font-family:Georgia,serif}
.achievement-heading p{margin:0;color:#cdb98e;font-size:13px}
.achievement-login{padding:12px;border:2px solid #a76f31;background:#4c3420;margin-bottom:12px;text-align:center}
.achievement-groups{display:grid;gap:14px}
.achievement-group{border:3px ridge #8c673c;background:#493723;padding:12px}
.achievement-group h4{display:flex;align-items:center;gap:8px;margin:0 0 10px;color:#f2cf7c;font-family:Georgia,serif}
.achievement-group h4 img{width:28px;height:28px;object-fit:contain}
.achievement-entry{display:grid;grid-template-columns:40px 62px 1fr auto;align-items:center;gap:12px;background:#241b14;border:2px solid #755735;padding:10px;opacity:.78}
.achievement-entry.completed{border-color:#d4aa53;background:#364129;opacity:1}
.achievement-check{font-size:30px;text-align:center;color:#d3b77a}
.achievement-entry.completed .achievement-check{color:#b9e478}
.achievement-reward-img{width:58px;height:58px;object-fit:contain;background:#0d0b09;border:1px solid #8f7047}
.achievement-copy strong,.achievement-copy span,.achievement-copy small{display:block}
.achievement-copy strong{color:#fff0bb;margin-bottom:3px}
.achievement-copy span{font-size:13px}.achievement-copy small{color:#c5ad7b;margin-top:4px}
.achievement-status{font-size:10px;color:#d0b27b;border:1px solid #85663d;padding:6px;white-space:nowrap}
.achievement-entry.completed .achievement-status{color:#dff5b2;border-color:#91aa5a}
.achievement-coming{opacity:.65}.achievement-coming p{margin:0;color:#c5ad7b}
.achievement-message{margin:12px 0 0;text-align:center;color:#e6c982}
.bank-item-art{width:72px;height:72px;object-fit:contain;display:block;margin:0 auto 4px}.achievement-bank-slot{background:#4b3e28!important;border-color:#c79b4b!important}
@media(max-width:600px){.achievement-entry{grid-template-columns:34px 52px 1fr}.achievement-status{grid-column:2/4;justify-self:start}.achievement-reward-img{width:48px;height:48px}}

/* Equippable Chef's hat pet cosmetic */
.pet-visual{position:relative;display:inline-block}
.pet-visual>.pet-body{display:block;width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.pet-cosmetic{position:absolute;pointer-events:none;user-select:none;z-index:12;object-fit:contain}
.pet-chefs-hat{left:var(--hat-x,50%);top:var(--hat-y,6%);width:var(--hat-w,52%);height:auto;transform:translate(-50%,-60%) rotate(var(--hat-r,0deg));transform-origin:50% 85%;filter:drop-shadow(0 2px 1px rgba(0,0,0,.55))}
.achievement-bank-slot.equipped-cosmetic{outline:3px solid #d7b05a;box-shadow:inset 0 0 15px rgba(255,216,115,.2)}
.bank-cosmetic-toggle{display:block;width:100%;margin-top:7px;padding:7px 8px;border:2px solid #a97a35;background:#342414;color:#ffe6a5;font-weight:900;cursor:pointer}
.bank-cosmetic-toggle:hover{background:#5a3c1d}
.achievement-bank-slot.equipped-cosmetic .bank-cosmetic-toggle{background:#6b2c20;border-color:#d78d62}

/* Stable cosmetic layering and precise pet hat placement */
.pet-visual>.pet-chefs-hat{
  position:absolute!important;
  left:var(--hat-x,50%)!important;
  top:var(--hat-y,20%)!important;
  width:var(--hat-w,38%)!important;
  height:auto!important;
  z-index:5!important;
  pointer-events:none!important;
  animation:none!important;
  transform:translate(-50%,-82%) rotate(var(--hat-r,0deg))!important;
  transform-origin:50% 88%!important;
  object-fit:contain!important;
}

/* Insane Jad healers remain visually steady instead of vibrating */
.jad-healer{animation:none!important;will-change:auto;backface-visibility:hidden}
@keyframes jadHealerBob{from,to{transform:translate(-50%,-50%)}}

/* Keep Insane Jad healer hitboxes fixed under mouse and touch interaction. */
.jad-healer,
.jad-healer:hover:not(:disabled),
.jad-healer:focus-visible,
.jad-healer:active:not(:disabled){
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  outline-offset:2px;
  touch-action:manipulation;
}
.jad-healer:hover:not(:disabled){
  background:#4d773d!important;
  border-color:#efffcf!important;
  filter:brightness(1.08);
}
.jad-healer:active:not(:disabled){
  box-shadow:0 0 16px #a7f27f!important;
}
.jad-healer.killed,
.jad-healer.killed:hover,
.jad-healer.killed:active{
  transform:translate(-50%,-50%) rotate(110deg) scale(.2)!important;
}

/* Raids homepage button and coming-soon preview. */
.raids-open-button{display:inline-flex!important;align-items:center;justify-content:center;gap:9px}
.raids-open-button img{width:26px!important;height:26px!important;object-fit:contain;image-rendering:pixelated}
.raids-dialog{width:min(940px,calc(100% - 18px))!important;background:linear-gradient(145deg,#17120c,#090704)!important;border-color:#9f7137!important}
.raids-heading{display:flex;align-items:center;gap:14px;border-bottom:2px solid #5e4325;padding:0 42px 13px 0}
.raids-heading img{width:54px;height:54px;object-fit:contain;image-rendering:pixelated}
.raids-heading h3{margin:0;color:#f3d18a;font-size:25px;letter-spacing:2px}
.raids-heading p{margin:5px 0 0;color:#bda77c}
.raids-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.raid-preview-card{position:relative;min-height:270px;padding:22px 18px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border:2px solid #70502c;background:#17110b;box-shadow:inset 0 0 35px #000b,0 10px 22px #0007;cursor:not-allowed;isolation:isolate}
.raid-preview-card:before{content:"";position:absolute;inset:0;z-index:-2;opacity:.72}
.raid-preview-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent 5%,rgba(5,3,2,.35) 44%,#090604 79%)}
.raid-toa:before{background:radial-gradient(circle at 50% 22%,#d8b15b 0 4%,transparent 5%),linear-gradient(145deg,#7f5f2a,#2a1b0c 55%,#10100c)}
.raid-cox:before{background:radial-gradient(circle at 58% 23%,#86bfc4 0 4%,transparent 5%),linear-gradient(145deg,#354f42,#172920 55%,#090d0b)}
.raid-tob:before{background:radial-gradient(circle at 48% 20%,#d76565 0 4%,transparent 5%),linear-gradient(145deg,#65252d,#281016 58%,#0e0608)}
.raid-number{align-self:flex-start;margin-bottom:auto;padding:4px 7px;border:1px solid #b58b48;background:#090604c9;color:#e5ca8a;font-size:10px;letter-spacing:1px}
.raid-preview-card h4{margin:0 0 8px;color:#f4d89a;font-size:20px;line-height:1.05;text-shadow:2px 2px #000}
.raid-preview-card p{margin:0 0 15px;color:#d2c5a8;line-height:1.4}
.raid-preview-card b{align-self:flex-start;padding:7px 10px;border:1px solid #8f6d38;background:#130d07;color:#f1cb76;font-size:11px;letter-spacing:1.4px}
.raids-footnote{display:block;text-align:center;color:#927d5d;margin-top:15px}
@media(max-width:760px){.raids-preview{grid-template-columns:1fr}.raid-preview-card{min-height:190px}.raids-heading{align-items:flex-start}}

/* Magic and Ranged combat skill additions */
.combat-weapon-choice strong img{width:30px;height:30px;object-fit:contain;image-rendering:pixelated;vertical-align:middle;margin-right:5px}


/* Raids is a live preview button, not a disabled placeholder. */
#openRaids.raids-open-button{opacity:1!important;filter:none!important;cursor:pointer!important;pointer-events:auto!important;color:#f0dfbd!important;background:linear-gradient(#36291d,#21170f)!important;border-color:#8b6337!important}
#openRaids.raids-open-button:hover{background:linear-gradient(#493723,#2b1e13)!important;border-color:#d1a35d!important}

/* Mining chatter is deliberately occasional and only one pet speaks at once. */
.fake-bubble.pop{animation:bubbleTalk 6s ease both}
@keyframes bubbleTalk{0%,100%{opacity:0;transform:translate(-50%,8px)}12%,72%{opacity:1;transform:translate(-50%,0)}}

/* Fire cape sits behind the pet body and scales with every pet presentation. */
.pet-visual .pet-fire-cape{position:absolute!important;z-index:0!important;left:50%!important;top:42%!important;width:64%!important;height:78%!important;transform:translate(-50%,-18%) rotate(0deg)!important;transform-origin:50% 8%!important;object-fit:fill!important;image-rendering:auto!important;pointer-events:none!important;filter:drop-shadow(0 3px 2px #0008)!important;animation:none!important}
.pet-visual .pet-body{position:relative;z-index:2}
.pet-visual[data-pet-ground="hover"] .pet-fire-cape{top:45%;width:58%;height:72%}
.pet-visual[data-pet-personality="heavy"] .pet-fire-cape{width:70%;height:82%;top:40%}
.pet-visual[data-pet-personality="skitter"] .pet-fire-cape{width:54%;height:62%;top:48%}
.fire-cape-bank-art{object-fit:contain!important;background:#080604;padding:3px}.fire-cape-achievement-art{object-fit:contain!important;background:#080604!important}

/* Final homepage menu colour correction: active carved-wood buttons with OSRS gold labels. */
#openRaids,
#openWiseTask,
#openGrandExchange,
#openPetWars,
#openAchievements {
  opacity:1!important;
  filter:none!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  color:#f7e5b1!important;
  background:linear-gradient(#72502f,#3e2412)!important;
  border:3px ridge #b58b48!important;
  box-shadow:inset 0 0 0 1px #2a180c!important;
}
#openRaids:hover,
#openWiseTask:hover,
#openGrandExchange:hover,
#openPetWars:hover,
#openAchievements:hover {
  color:#fff0bf!important;
  background:linear-gradient(#89623a,#4d2d16)!important;
  border-color:#d0a35b!important;
  filter:brightness(1.06)!important;
}
#openRaids > span,
#openWiseTask > span,
#openGrandExchange > span:last-child,
#openPetWars > span,
#openAchievements > span {
  color:#f7e5b1!important;
  text-shadow:1px 1px 0 #251409!important;
}
#openRaids:disabled,
#openRaids[aria-disabled="true"] {
  opacity:1!important;
  filter:none!important;
  cursor:pointer!important;
}


/* Raids must inherit the exact homepage button surface, with no special shade. */
.game-strip #openRaids.raids-open-button{
  opacity:1!important;filter:none!important;cursor:pointer!important;pointer-events:auto!important;
  color:#f7e5b1!important;background:linear-gradient(#72502f,#3e2412)!important;
  border:3px ridge #b58b48!important;box-shadow:inset 0 0 0 1px #2a170b,0 2px 0 #160b05!important;
}
.game-strip #openRaids.raids-open-button:hover{background:linear-gradient(#956a39,#5b3418)!important;border-color:#e0bd6a!important;filter:none!important}

.runedle-open-button .runedle-menu-icon{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:2px solid #d1a44d;border-radius:4px;background:#2f5f2a;color:#ffe69b;font:900 17px Georgia,serif;text-shadow:1px 1px #10230e}
.runedle-dialog{width:min(760px,calc(100% - 18px))!important;background:linear-gradient(145deg,#21180f,#0c0906)!important}
.runedle-heading{display:flex;align-items:center;gap:13px;border-bottom:2px solid #674821;padding:0 42px 12px 0}
.runedle-heading h3{margin:0;color:#f3d18a;letter-spacing:2px}.runedle-heading p{margin:4px 0 0;color:#bfa87c}
.runedle-logo{display:grid;place-items:center;width:54px;height:54px;border:4px ridge #c49a4d;background:linear-gradient(#497b39,#23491f);color:#ffe8a0;font:900 34px Georgia,serif;text-shadow:2px 2px #142b12}
.runedle-game{display:flex;flex-direction:column;align-items:center;padding:16px 0 9px}
.runedle-notice{padding:12px;margin:14px 0 0;border:2px solid #8b6635;background:#3a2718;color:#f2d28e;text-align:center}
.runedle-board{display:grid;grid-template-rows:repeat(5,56px);gap:6px}
.runedle-row{display:grid;grid-template-columns:repeat(5,56px);gap:6px}
.runedle-tile{display:grid;place-items:center;border:3px ridge #80623c;background:#1d1813;color:#f5e7c1;font:900 28px/1 Georgia,serif;text-transform:uppercase;transition:transform .22s ease,background .22s ease}
.runedle-tile.filled{border-color:#ad8951}.runedle-tile.correct{background:#3b6f36;border-color:#78a866}.runedle-tile.present{background:#a47a27;border-color:#d2ad50}.runedle-tile.absent{background:#47423b;border-color:#6c665d;color:#c9c2b5}.runedle-tile.reveal{animation:runedleFlip .42s ease both}
@keyframes runedleFlip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}
.runedle-entry{width:min(390px,100%);margin-top:13px}.runedle-entry label{display:block;color:#d8bd7a;font-size:11px;font-weight:900;margin-bottom:4px}.runedle-entry>div{display:grid;grid-template-columns:1fr 96px;gap:7px}.runedle-entry input{min-width:0;padding:10px;text-align:center;text-transform:uppercase;letter-spacing:8px;font:900 20px Georgia,serif;background:#110e0a;color:#fff0be;border:3px ridge #9d7944}.runedle-entry small{display:block;min-height:17px;text-align:center;margin-top:6px;color:#bba77f}.runedle-entry small.error{color:#f08e72}.runedle-keyboard{display:flex;flex-direction:column;gap:5px;align-items:center;margin-top:10px;width:100%}.runedle-key-row{display:flex;gap:4px;justify-content:center}.runedle-keyboard button{width:32px;min-height:38px!important;padding:3px!important;font-size:12px!important}.runedle-keyboard button.correct{background:#3b6f36!important}.runedle-keyboard button.present{background:#a47a27!important}.runedle-keyboard button.absent{background:#47423b!important;color:#aaa!important}.runedle-finish{margin-top:12px;padding:10px 14px;border:2px solid #9f793f;background:#2c2014;text-align:center}.runedle-finish strong,.runedle-finish span{display:block}.runedle-finish strong{color:#f4d27f;font-size:18px}.runedle-finish span{color:#d4c39d;margin-top:4px}.runedle-results{border-top:2px solid #5c4223;margin-top:10px;padding-top:13px}.runedle-results-head{display:flex;justify-content:space-between;align-items:center}.runedle-results h4{margin:0;color:#e6c475}.runedle-results-head button{min-height:34px!important;padding:5px 9px!important}.runedle-leaderboard{display:grid;gap:5px;margin-top:9px;max-height:235px;overflow:auto}.runedle-result-row{display:grid;grid-template-columns:minmax(100px,1fr) 100px 85px;gap:8px;align-items:center;padding:8px 9px;background:#211a13;border:1px solid #594322}.runedle-result-row b{color:#f1ddb0}.runedle-result-row span{text-align:center;color:#c9b78f}.runedle-result-row strong{text-align:right}.runedle-result-row.solved strong{color:#8fc67e}.runedle-result-row.failed strong{color:#e1846f}.runedle-result-row.playing strong{color:#daba69}.runedle-legend{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:12px;color:#bca77e;font-size:11px}.runedle-legend span{display:flex;align-items:center;gap:5px}.runedle-legend i{width:14px;height:14px;border:1px solid #8c744d}.runedle-legend i.correct{background:#3b6f36}.runedle-legend i.present{background:#a47a27}.runedle-legend i.absent{background:#47423b}
@media(max-width:600px){.runedle-board{grid-template-rows:repeat(5,48px)}.runedle-row{grid-template-columns:repeat(5,48px)}.runedle-tile{font-size:24px}.runedle-result-row{grid-template-columns:minmax(90px,1fr) 80px 70px}.runedle-keyboard button{width:27px!important;font-size:10px!important}}

/* Daily Farm Run visual rework */
.farm-run-open-button{background:linear-gradient(#66451f,#3c260f)!important}
.farm-run-open-button .runedle-menu-icon{border:0;background:transparent!important;font-size:22px;text-shadow:none}
.farm-run-dialog{width:min(1180px,calc(100% - 18px))!important;max-height:94vh;background:radial-gradient(circle at 50% 25%,#1d2415 0,#10140d 42%,#090b08 100%)!important;border:8px ridge #4c4b38!important;color:#e6dfc8;overflow:auto}
.farm-run-header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:12px;border-bottom:5px solid #44361e;padding:8px 42px 15px 18px;background:linear-gradient(#11160f,#0b0e0a)}
.farm-run-title{text-align:center}.farm-run-title h3{margin:0;color:#70b63d;font:900 clamp(36px,6vw,68px)/.9 Georgia,serif;letter-spacing:8px;text-shadow:0 3px #17320c,3px 0 #17320c}.farm-run-title b{display:inline-block;margin-top:12px;padding:7px 45px;background:#634618;border:4px ridge #8d6a2e;color:#ffd86a;letter-spacing:5px;font-size:17px}.farm-title-sprout{position:absolute;transform:translate(-40px,5px);font-size:28px}
.farm-side-copy{display:flex;align-items:center;gap:10px;color:#82c54a;font-size:16px;line-height:1.45}.farm-side-copy.right{justify-content:flex-end}
.farm-run-layout{display:grid;grid-template-columns:220px minmax(330px,1fr) 250px;gap:22px;padding:20px}
.farm-run-sidebar{display:grid;align-content:start;gap:15px}.farm-run-sidebar section{padding:14px;border:5px ridge #4a4b3c;background:linear-gradient(145deg,rgba(20,25,17,.96),rgba(8,11,7,.96));box-shadow:inset 0 0 18px #000}.farm-run-sidebar h4{margin:0 0 10px;color:#ffd65d;letter-spacing:1px}.farm-run-sidebar p{color:#d9d3bf;line-height:1.5}.farm-run-sidebar p strong,.farm-run-sidebar section>span{display:block;color:#7bc34a;text-align:center}.farm-stat{display:block;text-align:center;font-size:42px;color:#f1ead8}.farm-how .runedle-legend{display:grid;justify-content:start;margin-top:14px}.farm-rewards>div{display:flex;align-items:center;justify-content:space-around;text-align:center;gap:7px}.farm-rewards>div span{display:grid;justify-items:center;color:#82c84e}.farm-rewards img{width:48px;height:48px;object-fit:contain}.farm-rewards b{font-size:24px}.farm-rewards small{display:block;margin-top:12px;color:#d3b65e;text-align:center;line-height:1.4}.farm-xp-icon{font-size:38px}.farm-run-dialog .runedle-game{padding:0}.farm-run-dialog .runedle-board{grid-template-rows:repeat(5,64px);gap:7px}.farm-run-dialog .runedle-row{grid-template-columns:repeat(5,64px);gap:7px}.farm-run-dialog .runedle-tile{background:linear-gradient(145deg,#171a14,#080a07);border:4px ridge #4d5043}.farm-run-dialog .runedle-entry{width:min(420px,100%)}.farm-run-dialog .runedle-keyboard button{background:linear-gradient(#45453c,#27271f)!important;border-color:#676759!important}.farm-run-dialog .runedle-results{margin:0 20px;padding:15px 0 5px}.farm-run-footer{text-align:center;color:#dfbd4e;padding:9px;letter-spacing:1px}.farm-skill-glyph{display:grid;place-items:center;width:46px;font-size:30px}
@media(max-width:900px){.farm-run-header{grid-template-columns:1fr}.farm-side-copy{display:none}.farm-run-layout{grid-template-columns:1fr}.farm-run-sidebar.left,.farm-run-sidebar.right{grid-template-columns:repeat(2,1fr)}.farm-run-sidebar.left section:first-child,.farm-how{grid-column:1/-1}}
@media(max-width:520px){.farm-run-sidebar.left,.farm-run-sidebar.right{grid-template-columns:1fr}.farm-run-dialog .runedle-board{grid-template-rows:repeat(5,48px)}.farm-run-dialog .runedle-row{grid-template-columns:repeat(5,48px)}.farm-run-title b{padding:7px 12px}.farm-run-title h3{letter-spacing:3px}}


/* Farm Run/menu and skill icon corrections */
.game-strip #openRuneDle.farm-run-open-button {
  color:#f7e5b1!important;
  background:linear-gradient(#72502f,#3e2412)!important;
  border:3px ridge #b58b48!important;
  box-shadow:inset 0 0 0 1px #2a170b,0 2px 0 #160b05!important;
  filter:none!important;
  opacity:1!important;
}
.game-strip #openRuneDle.farm-run-open-button > span {
  color:#f7e5b1!important;
  text-shadow:1px 1px 0 #251409!important;
}
.game-strip #openRuneDle.farm-run-open-button:hover {
  background:linear-gradient(#956a39,#5b3418)!important;
  border-color:#e0bd6a!important;
}
.farm-run-open-button .runedle-menu-icon {
  width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;
  object-fit:contain!important;display:block!important;flex:0 0 24px!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
}
.farm-xp-icon {width:48px!important;height:48px!important;object-fit:contain!important;display:block!important;}


/* Daily Farm Run guess feedback — keep state colours above the themed base rules */
.farm-run-dialog .runedle-tile.correct {
  background:linear-gradient(145deg,#5fae43,#2f7028)!important;
  border-color:#9fe27e!important;
  color:#fff8d9!important;
  box-shadow:inset 0 0 0 2px #285b22,0 0 12px rgba(112,210,75,.55)!important;
}
.farm-run-dialog .runedle-tile.present {
  background:linear-gradient(145deg,#d8a51e,#8c650d)!important;
  border-color:#ffe06a!important;
  color:#fff8d9!important;
  box-shadow:inset 0 0 0 2px #705007,0 0 12px rgba(237,188,42,.5)!important;
}
.farm-run-dialog .runedle-tile.absent {
  background:linear-gradient(145deg,#55554f,#292a27)!important;
  border-color:#7f8179!important;
  color:#b9b9b0!important;
  opacity:.68;
}
.farm-run-dialog .runedle-keyboard button.correct {
  background:linear-gradient(#62ad45,#326f2a)!important;
  border-color:#9fe27e!important;
  color:#fff8d9!important;
  box-shadow:0 0 8px rgba(112,210,75,.45)!important;
}
.farm-run-dialog .runedle-keyboard button.present {
  background:linear-gradient(#d3a122,#8c650d)!important;
  border-color:#ffe06a!important;
  color:#fff8d9!important;
  box-shadow:0 0 8px rgba(237,188,42,.4)!important;
}
.farm-run-dialog .runedle-keyboard button.absent,
.farm-run-dialog .runedle-keyboard button.absent:disabled {
  background:#151714!important;
  border-color:#30332d!important;
  color:#555950!important;
  opacity:.28!important;
  filter:grayscale(1)!important;
  pointer-events:none!important;
  box-shadow:none!important;
  text-decoration:line-through;
}
.farm-run-dialog .runedle-legend i.correct{background:#4d9c38!important;border-color:#9fe27e!important}
.farm-run-dialog .runedle-legend i.present{background:#c79518!important;border-color:#ffe06a!important}
.farm-run-dialog .runedle-legend i.absent{background:#3b3c38!important;border-color:#777a72!important}

/* Daily Farm Run keyboard certainty states */
.farm-run-dialog .runedle-keyboard button.absent,
.farm-run-dialog .runedle-keyboard button.absent:disabled {
  position:relative!important;
  opacity:.22!important;
  text-decoration:line-through!important;
  cursor:not-allowed!important;
}
.farm-run-dialog .runedle-keyboard button.absent::after {
  content:'×';
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:27px;
  line-height:1;
  color:#8d9187;
  opacity:.8;
  pointer-events:none;
}

/* Odd Spectacles pet reward */
.pet-visual .pet-odd-spectacles{position:absolute!important;z-index:20!important;left:50%!important;top:32%!important;width:72%!important;height:42%!important;transform:translate(-50%,-50%)!important;object-fit:contain!important;pointer-events:none!important;filter:drop-shadow(0 2px 1px #000a)!important;animation:none!important}
.pet-visual[data-pet-ground="hover"] .pet-odd-spectacles{top:36%!important;width:64%!important}
.pet-visual[data-pet-personality="heavy"] .pet-odd-spectacles{top:30%!important;width:66%!important}
.pet-visual[data-pet-personality="skitter"] .pet-odd-spectacles{top:38%!important;width:58%!important}
.odd-spectacles-bank-art,.odd-spectacles-achievement-art{object-fit:contain;background:transparent}

/* Pet facing direction and starter-cat cosmetic alignment */
/* OSRS pet artwork is supplied facing left. Mirror the complete pet/cosmetic
   stack by default so static pets face right and moving pets face forwards. */
.pet-visual{--pet-facing:-1}
.pet-visual[data-pet-id="pet_free_cat"] .pet-odd-spectacles{
  left:50%!important;
  top:45%!important;
  width:48%!important;
  height:31%!important;
  transform:translate(-50%,-50%)!important;
}


/* 2026-07-30 definitive pet-facing and cosmetic isolation fix.
   Only the pet artwork is mirrored. Cosmetics keep their original artwork
   orientation, labels remain readable, and every context uses the same markup. */
.pet-visual{
  --pet-facing:1!important;
  transform:none!important;
}
.pet-body-facing{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:100%;
  transform:scaleX(-1)!important;
  transform-origin:50% 85%;
}
.pet-body-facing>.pet-body{
  display:block;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  position:relative!important;
  z-index:2!important;
}
/* Never let idle or movement logic flip the complete pet/cosmetic stack. */
.roaming-pet.pet-is-idle .pet-visual{animation:none!important}
.roaming-pet .pet-visual{transform:none!important}
.roaming-pet .pet-body-facing{transform:scaleX(-1)!important}
/* Cosmetics are independent of the mirrored body. */
.pet-visual>.pet-cosmetic{transform-origin:50% 50%!important}
.pet-visual>.pet-odd-spectacles{
  left:var(--spec-x,50%)!important;
  top:var(--spec-y,36%)!important;
  width:var(--spec-w,52%)!important;
  height:auto!important;
  transform:translate(-50%,-50%) rotate(var(--spec-r,0deg))!important;
}
.pet-visual[data-pet-id="pet_free_cat"]>.pet-odd-spectacles{
  left:var(--spec-x,50%)!important;
  top:var(--spec-y,43%)!important;
  width:var(--spec-w,45%)!important;
}
/* Old direct-child rules expected the body image without its facing wrapper. */
.pet-visual>.pet-body{display:none!important}
.pet-ground-shadow{transform:none!important}
.pet-visual[data-pet-ground="hover"] .pet-ground-shadow{transform:scale(.75)!important}

/* 2026-07-30 pet wrapper reset.
   The legacy `.roaming-pet span` label rule was also styling the newer
   pet-sprite/body wrapper spans, creating green square panels and changing
   their intrinsic size. Restrict label chrome to .pet-label and fully reset
   every visual wrapper. */
.roaming-pet .pet-sprite,
.roaming-pet .pet-visual,
.roaming-pet .pet-body-facing {
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  color:inherit!important;
  font:inherit!important;
  padding:0!important;
  margin:0!important;
  white-space:normal!important;
  width:100%!important;
  max-width:none!important;
  text-overflow:clip!important;
  overflow:visible!important;
}
.roaming-pet .pet-sprite {
  display:block!important;
  position:absolute!important;
  left:12px!important;
  right:12px!important;
  bottom:0!important;
  width:auto!important;
  height:66px!important;
  transform:none!important;
}
.roaming-pet .pet-visual {
  display:inline-flex!important;
  position:relative!important;
  align-items:flex-end!important;
  justify-content:center!important;
  height:100%!important;
  transform:none!important;
}
.roaming-pet .pet-body-facing {
  display:block!important;
  position:relative!important;
  height:100%!important;
  transform:scaleX(-1)!important;
  transform-origin:50% 85%!important;
}
.roaming-pet .pet-body-facing>.pet-body {
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
/* Keep the original balanced room footprint on narrow layouts too. */
@media(max-width:700px){
  .roaming-pet .pet-sprite{left:9px!important;right:9px!important;height:54px!important}
}

/* 2026-07-30 cosmetic sizing and Shooting Star alignment correction. */
/* Fire cape: retain the current fit, but make it a tiny bit less dominant. */
.pet-visual>.pet-fire-cape{
  width:60%!important;
  height:74%!important;
  top:42%!important;
}
.pet-visual[data-pet-ground="hover"]>.pet-fire-cape{width:55%!important;height:68%!important;top:45%!important}
.pet-visual[data-pet-personality="heavy"]>.pet-fire-cape{width:66%!important;height:78%!important;top:41%!important}
.pet-visual[data-pet-personality="skitter"]>.pet-fire-cape{width:51%!important;height:59%!important;top:48%!important}

/* Spectacles are driven by per-pet CSS variables from petMarkup. */
.pet-visual>.pet-odd-spectacles{
  left:var(--spec-x,50%)!important;
  top:var(--spec-y,36%)!important;
  width:var(--spec-w,56%)!important;
  height:auto!important;
}

/* The old Shooting Star rule targeted every image, including cosmetics.
   Keep movement on the pet body only and preserve cosmetic anchor transforms. */
.mining-pet .star-pet-art img.pet-cosmetic,
.live-star-miner .star-pet-art img.pet-cosmetic{
  animation:none!important;
  animation-delay:0s!important;
}
.mining-pet .star-pet-art .pet-body,
.live-star-miner .star-pet-art .pet-body{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.live-star-miner .star-pet-art>.pet-fire-cape,
.mining-pet .star-pet-art>.pet-fire-cape{
  left:50%!important;
  top:42%!important;
}
.live-star-miner .star-pet-art>.pet-odd-spectacles,
.mining-pet .star-pet-art>.pet-odd-spectacles{
  left:var(--spec-x,50%)!important;
  top:var(--spec-y,36%)!important;
  width:var(--spec-w,56%)!important;
  height:auto!important;
  transform:translate(-50%,-50%) rotate(var(--spec-r,0deg))!important;
}
.live-star-miner .star-pet-art>.pet-chefs-hat,
.mining-pet .star-pet-art>.pet-chefs-hat{
  left:var(--hat-x,50%)!important;
  top:var(--hat-y,20%)!important;
  width:var(--hat-w,38%)!important;
  height:auto!important;
  transform:translate(-50%,-50%) rotate(var(--hat-r,0deg))!important;
}

/* 2026-07-30 Mario kart seating/layering correction.
   The roaming-pet wrapper reset must not cancel the kart-specific scale.
   Keep the driver low and behind the kart body so pets and cosmetics sit
   inside the cockpit rather than being drawn on top of the vehicle. */
.pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-kart{
  z-index:3!important;
}
.pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-sprite{
  z-index:2!important;
  bottom:-5px!important;
  transform:scale(.62)!important;
  transform-origin:center bottom!important;
}
.pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-label{
  z-index:5!important;
  bottom:68px!important;
}
@media(max-width:850px){
  .pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-sprite{
    bottom:-4px!important;
    transform:scale(.58)!important;
  }
  .pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-label{
    bottom:61px!important;
  }
}

/* 2026-07-30 kart driver visibility correction.
   Keep the kart behind the pet artwork; lowering/scaling the driver creates
   the seated look without the opaque kart body hiding the entire pet. */
.pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-kart{
  z-index:1!important;
}
.pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-sprite{
  z-index:2!important;
  bottom:3px!important;
  transform:scale(.60)!important;
  transform-origin:center bottom!important;
}
.pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-label{
  z-index:5!important;
  bottom:66px!important;
}
@media(max-width:850px){
  .pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-sprite{
    bottom:2px!important;
    transform:scale(.56)!important;
  }
  .pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-label{
    bottom:59px!important;
  }
}

/* 2026-07-30 Shooting Star cosmetic fix.
   Mining movement must animate the pet body only. The old broad `img` rules
   also animated equipped hats, capes and spectacles, replacing their anchor
   transforms and throwing them away from the pet. */
.mining-pet .star-pet-art img,
.live-star-miner .star-pet-art img{
  animation:none!important;
}
.mining-pet .star-pet-art .pet-body-facing{
  animation:petMiningBodyFacing 1.25s ease-in-out infinite!important;
}
.live-star-miner .star-pet-art .pet-body-facing{
  animation:petMiningBodyFacing .92s ease-in-out infinite!important;
}
.live-star-miner:nth-child(2n) .star-pet-art .pet-body-facing{animation-delay:-.35s!important}
.live-star-miner:nth-child(3n) .star-pet-art .pet-body-facing{animation-delay:-.7s!important}
@keyframes petMiningBodyFacing{
  0%,100%{transform:scaleX(-1) scale(var(--pet-scale)) rotate(-1deg)}
  55%{transform:scaleX(-1) scale(var(--pet-scale)) translateY(2px) rotate(2deg)}
}
/* Keep every equipped cosmetic visible and anchored above the animated body. */
.mining-pet .star-pet-art>.pet-cosmetic,
.live-star-miner .star-pet-art>.pet-cosmetic{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  z-index:20!important;
  animation:none!important;
}
.mining-pet .star-pet-art>.pet-fire-cape,
.live-star-miner .star-pet-art>.pet-fire-cape{
  z-index:1!important;
}
.mining-pet .star-pet-art>.pet-chefs-hat,
.mining-pet .star-pet-art>.pet-odd-spectacles,
.live-star-miner .star-pet-art>.pet-chefs-hat,
.live-star-miner .star-pet-art>.pet-odd-spectacles{
  z-index:21!important;
}

/* 2026-07-30 final Shooting Star cosmetic visibility safeguard. */
.mining-pet-visual .star-pet-art,
.live-star-miner .star-pet-art{position:relative!important;display:block!important;overflow:visible!important}
.mining-pet-visual .star-pet-art>.pet-cosmetic,
.live-star-miner .star-pet-art>.pet-cosmetic{display:block!important;visibility:visible!important;opacity:1!important}


/* Tombs of Amascut — Room 1 lobby */
.raid-preview-card.raid-live{font:inherit;text-align:left;color:inherit;cursor:pointer!important}
.raid-preview-card.raid-live:hover{transform:translateY(-2px);border-color:#d8ae5b;filter:brightness(1.12)}
.toa-dialog{width:min(1320px,calc(100% - 16px))!important;max-height:96vh;padding:12px!important;background:#090b10!important;border:3px solid #72552e!important;box-shadow:0 0 0 3px #1a1208,0 20px 70px #000!important;overflow:auto}
.toa-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 44px 12px 12px;border-bottom:2px solid #75522a;background:linear-gradient(90deg,#171a22,#0b0d12)}
.toa-header span{color:#c4a264;font-size:11px;letter-spacing:2px}.toa-header h3{margin:2px 0;color:#ead6a1;font-size:25px;letter-spacing:2px}.toa-header p{margin:0;color:#8e9aae;font-size:11px;letter-spacing:1.5px}
.toa-party-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.toa-party-bar button{padding:9px 12px;border:1px solid #97713c;background:linear-gradient(#4b3821,#24190e);color:#f0d79a;font-weight:800;cursor:pointer}.toa-party-bar button:hover{filter:brightness(1.2)}.toa-party-bar label{display:flex}.toa-party-bar input{width:82px;padding:8px;background:#07090d;border:1px solid #665237;color:#fff;text-transform:uppercase;letter-spacing:2px;text-align:center}
.toa-game-shell{padding:10px;background:#05070b}.toa-lobby{position:relative;width:100%;aspect-ratio:1.5/1;max-height:76vh;overflow:hidden;outline:none;background:#111 url('assets/toa-lobby-room.png') center/100% 100% no-repeat;image-rendering:auto;box-shadow:inset 0 0 45px #000}
.toa-shade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 30%,rgba(0,0,0,.22) 76%,rgba(0,0,0,.5));z-index:1}
.toa-player-sprite{position:absolute;left:50%;top:79%;width:34px;height:49px;z-index:8;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 2px #000b);transition:filter .15s}.toa-player-sprite.walking{animation:toaBob .22s steps(2) infinite}.toa-player-sprite.facing-left{transform:translate(-50%,-50%) scaleX(-1)}
.toa-shadow{position:absolute;left:3px;bottom:0;width:29px;height:8px;border-radius:50%;background:#0008}.toa-body{position:absolute;left:8px;top:19px;width:20px;height:25px;border-radius:4px 4px 7px 7px;background:linear-gradient(90deg,#57361f 0 25%,#8e6236 26% 72%,#4b2d1a 73%);border:2px solid #17100b}.toa-head{position:absolute;left:10px;top:4px;width:17px;height:17px;border-radius:46%;background:#c88d5d;border:2px solid #24140c;box-shadow:inset 0 5px #3d2418}.toa-cape{position:absolute;left:5px;top:20px;width:9px;height:25px;background:#6d321e;border:2px solid #20110d;transform:skewY(8deg)}
@keyframes toaBob{50%{margin-top:-2px}}
.toa-path-label{position:absolute;z-index:6;padding:5px 8px;background:#08090dd9;border:1px solid #b7904b;color:#f0d997;font-size:11px;font-weight:900;letter-spacing:.7px;text-align:center;pointer-events:none;text-shadow:1px 1px #000}.toa-path-label span{display:block;margin-top:2px;color:#b67e65;font-size:8px}.toa-het{left:4%;top:52%}.toa-crondis{left:18%;top:8%}.toa-scarabas{right:18%;top:8%}.toa-wardens{left:50%;top:2.5%;transform:translateX(-50%);white-space:nowrap;border-color:#d7bc72;color:#fff0b5}.toa-apmeken{right:4%;top:52%}
.toa-notice{position:absolute;left:50%;bottom:3%;z-index:12;transform:translateX(-50%);max-width:78%;padding:8px 14px;border:1px solid #a98445;background:#08090de8;color:#ead9ae;font-weight:700;text-align:center;opacity:1;transition:opacity .35s}.toa-notice.hidden{opacity:0;pointer-events:none}
.toa-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 11px;background:#11141b;border-top:1px solid #634a2a;color:#9da8b9;font-size:10px;letter-spacing:.5px}.toa-footer b{color:#d5b774;margin-right:5px}
@media(max-width:800px){.toa-header{align-items:flex-start;flex-direction:column}.toa-party-bar{justify-content:flex-start}.toa-path-label{font-size:8px}.toa-path-label span{display:none}.toa-player-sprite{transform:translate(-50%,-50%) scale(.75)}.toa-player-sprite.facing-left{transform:translate(-50%,-50%) scaleX(-1) scale(.75)}}

/* Tombs of Amascut — Path of Crondis staging room */
.toa-context-action{position:absolute;left:50%;bottom:4.5%;z-index:20;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:7px 12px;border:1px solid #b78b46;background:linear-gradient(180deg,rgba(37,27,17,.96),rgba(12,10,8,.96));color:#ead6a1;font-size:11px;font-weight:900;letter-spacing:.7px;box-shadow:0 3px 12px #000,inset 0 0 0 1px #2d2115;pointer-events:none;white-space:nowrap}.toa-context-action kbd{display:inline-grid;place-items:center;min-width:25px;height:23px;padding:0 4px;border:1px solid #d1ad63;border-bottom-width:3px;border-radius:3px;background:#4c351d;color:#fff0bd;font:900 12px Georgia,serif;text-shadow:1px 1px #000}.toa-context-action span{padding-top:1px}.toa-context-action.hidden{display:none}.toa-path-label.unlocked{border-color:#70c979;color:#d9ffd8;box-shadow:0 0 12px #55b35c88}.toa-path-label.unlocked span{color:#83dc87}
.toa-crondis-room{position:absolute;inset:0;z-index:30;background:#111 url('assets/toa-crondis-room.png') center/100% 100% no-repeat;overflow:hidden}.toa-crondis-room.hidden{display:none}.toa-crondis-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 42%,rgba(0,0,0,.32));z-index:1}.toa-crondis-player{left:47%;top:91%;z-index:8}.toa-crondis-teammate{left:53%;top:91%;z-index:8;filter:hue-rotate(90deg) drop-shadow(0 3px 2px #000b)}
.toa-ready-panel{position:absolute;left:50%;bottom:2.5%;z-index:14;transform:translateX(-50%);width:min(580px,88%);padding:10px 14px;background:#080a0ee8;border:2px solid #a17d3f;box-shadow:0 5px 25px #000;color:#d6c596;text-align:center}.toa-ready-panel span{font-size:9px;letter-spacing:2px;color:#a98c58}.toa-ready-panel h4{margin:2px 0 4px;color:#f5dfaa;font-size:18px;letter-spacing:2px}.toa-ready-panel p{margin:0 0 8px;font-size:10px;color:#abb5b4}.toa-ready-members{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:6px}.toa-ready-members b{padding:5px 8px;border:1px solid #6f5730;background:#21170d;color:#d6b77a;font-size:9px}.toa-ready-members b.ready{border-color:#4d9a55;color:#c8ffc9;background:#102414}.toa-ready-panel button{margin:4px;padding:8px 13px;border:1px solid #b28b48;background:linear-gradient(#52391e,#21140b);color:#f4d79b;font-weight:900;cursor:pointer}.toa-ready-panel button:hover{filter:brightness(1.18)}
.toa-arena-banner{position:absolute;left:50%;top:8%;z-index:15;transform:translateX(-50%);padding:9px 18px;background:#08090ddb;border:1px solid #d5ad5d;color:#f4dca3;text-align:center;animation:toaArenaIn .5s ease}.toa-arena-banner.hidden{display:none}.toa-arena-banner b,.toa-arena-banner span{display:block}.toa-arena-banner b{font-size:15px;letter-spacing:2px}.toa-arena-banner span{font-size:8px;color:#c4a875;letter-spacing:1.5px}@keyframes toaArenaIn{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}

/* TOA prayer book */
.toa-prayer-book{position:absolute;right:1.5%;bottom:8%;z-index:18;display:flex;gap:7px;padding:8px 7px;background:linear-gradient(180deg,#504738f2,#28241cf2);border:2px solid #716652;box-shadow:0 0 0 2px #1a1712,0 5px 18px #0009;image-rendering:pixelated}
.toa-prayer-book button{width:55px;height:55px;padding:0;border:0;background:transparent;cursor:pointer;filter:grayscale(.25) brightness(.82);transition:filter .12s,transform .12s}
.toa-prayer-book button:hover{filter:brightness(1.08);transform:translateY(-1px)}
.toa-prayer-book button.active{filter:brightness(1.3) drop-shadow(0 0 7px #fff48a);transform:translateY(-2px)}
.toa-prayer-book img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.toa-prayer-overhead{position:absolute;left:50%;top:-31px;width:29px;height:29px;transform:translateX(-50%);z-index:20;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 2px #000)}
.toa-prayer-overhead.hidden{display:none}
@media(max-width:800px){.toa-prayer-book{right:1%;bottom:6%;padding:5px;gap:4px}.toa-prayer-book button{width:42px;height:42px}.toa-prayer-overhead{top:-25px;width:23px;height:23px}}

/* TOA Crondis weapon — fitted to the character's hands after readying */
.toa-weapon-bow{display:none;position:absolute;left:9px;top:7px;width:43px;height:49px;object-fit:contain;transform:rotate(12deg) scaleX(-1);transform-origin:44% 55%;z-index:13;pointer-events:none;filter:drop-shadow(0 2px 1px #000c)}
.toa-player-sprite.toa-armed .toa-weapon-bow{display:block}
.toa-player-sprite.facing-left .toa-weapon-bow{transform:rotate(12deg) scaleX(-1)}
.toa-player-sprite.toa-armed .toa-body,.toa-player-sprite.toa-armed .toa-head{z-index:11}
.toa-player-sprite.toa-armed .toa-cape{z-index:9}
.toa-player-sprite.toa-armed .toa-shadow{z-index:1}
@media(max-width:800px){.toa-weapon-bow{left:8px;top:8px;width:40px;height:45px}}


/* TOA food inventory */
.toa-food-inventory{position:absolute;right:1.5%;bottom:21%;z-index:18;width:193px;padding:7px;background:linear-gradient(180deg,#504738f2,#28241cf2);border:2px solid #716652;box-shadow:0 0 0 2px #1a1712,0 5px 18px #0009;image-rendering:pixelated}
.toa-inventory-title{display:block;margin:0 0 5px;color:#d8c38d;font-size:8px;font-weight:900;letter-spacing:1.5px;text-align:center;text-shadow:1px 1px #000}
.toa-shark-slots{display:grid;grid-template-columns:repeat(3,55px);gap:7px}
.toa-food-slot{position:relative;width:55px;height:55px;padding:0;border:1px solid #6d624f;background:radial-gradient(circle,#6b604d 0 56%,#3d372b 57%);cursor:pointer;box-shadow:inset 0 0 8px #0008;overflow:hidden}
.toa-food-slot:hover{filter:brightness(1.15);transform:translateY(-1px)}
.toa-food-slot img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 1px #000b)}
.toa-food-slot.eaten{pointer-events:none;animation:toaFoodVanish .24s ease forwards}
@keyframes toaFoodVanish{to{opacity:0;transform:scale(.45)}}
.toa-player-sprite.toa-eating .toa-head{animation:toaEatHead .36s steps(2)}
.toa-player-sprite.toa-eating .toa-body{animation:toaEatBody .36s steps(2)}
@keyframes toaEatHead{50%{transform:translateY(3px) rotate(-8deg)}}
@keyframes toaEatBody{50%{transform:scaleY(.94)}}
@media(max-width:800px){.toa-food-inventory{right:1%;bottom:19%;width:145px;padding:5px}.toa-shark-slots{grid-template-columns:repeat(3,42px);gap:4px}.toa-food-slot{width:42px;height:42px}.toa-inventory-title{font-size:7px}}

/* Zebak encounter — automatic ranged combat and prayer-reactive normal attacks */
.toa-zebak-hud{position:absolute;left:50%;top:2.2%;z-index:22;transform:translateX(-50%);width:min(520px,64%);padding:7px 10px;background:#090b0ee8;border:2px solid #8c6635;box-shadow:0 4px 18px #000b;text-align:center}.toa-zebak-hud.hidden,.toa-player-hud.hidden,.toa-attack-warning.hidden{display:none}.toa-zebak-name{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;color:#e9ce8c;letter-spacing:1.5px;font-size:10px}.toa-zebak-name b{font-size:15px;color:#f1dda6}.toa-zebak-name span{color:#c8a365;font-size:8px}.toa-zebak-hp-track,.toa-player-hud div{position:relative;height:17px;background:#260c0c;border:1px solid #cfb071;box-shadow:inset 0 0 6px #000}.toa-zebak-hp-track i,.toa-player-hud i{position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(#58bc4c,#256c27);transition:width .24s}.toa-zebak-hp-track strong,.toa-player-hud strong{position:relative;z-index:2;color:#fff;font-size:10px;line-height:17px;text-shadow:1px 1px 2px #000}
.toa-player-hud{position:absolute;left:1.5%;bottom:8%;z-index:21;width:150px;padding:7px;background:#15120ee8;border:2px solid #776044;box-shadow:0 4px 14px #000b}.toa-player-hud>span{display:block;margin-bottom:4px;color:#d9c395;font-size:8px;font-weight:900;letter-spacing:1.5px}.toa-player-hud div{height:15px}.toa-player-hud strong{display:block;text-align:center;line-height:15px}.toa-player-hud i{background:linear-gradient(#d84a3e,#8c1717)}
.toa-attack-warning{position:absolute;left:50%;top:15%;z-index:25;transform:translateX(-50%);min-width:250px;padding:10px 20px;background:#08090df2;border:3px solid #fff;text-align:center;box-shadow:0 0 24px currentColor,0 5px 20px #000}.toa-attack-warning b,.toa-attack-warning span{display:block}.toa-attack-warning b{font-size:23px;letter-spacing:4px}.toa-attack-warning span{margin:2px 0 7px;font-size:10px;font-weight:900;letter-spacing:1.5px}.toa-attack-warning i{display:block;height:5px;background:currentColor;transform-origin:left;animation:toaTelegraphDrain 1.65s linear forwards}.toa-attack-warning.magic{color:#72d6ff;border-color:#45aadd}.toa-attack-warning.ranged{color:#b8ef62;border-color:#75ad2e}.toa-attack-warning.melee{color:#ff7c66;border-color:#d23c2b}@keyframes toaTelegraphDrain{to{transform:scaleX(0)}}
.toa-combat-effects{position:absolute;inset:0;z-index:17;pointer-events:none;overflow:hidden}.toa-projectile{position:absolute;left:0;top:0;width:18px;height:18px;transform:translate(-50%,-50%);will-change:transform,left,top}.toa-projectile.magic{border-radius:50%;background:radial-gradient(circle,#fff 0 16%,#65d6ff 30%,#275ccb 58%,transparent 70%);box-shadow:0 0 12px #52caff}.toa-projectile.ranged{width:31px;height:7px;background:linear-gradient(90deg,#7c5529 0 72%,#d7d1bd 73%);clip-path:polygon(0 35%,75% 35%,75% 0,100% 50%,75% 100%,75% 65%,0 65%);filter:drop-shadow(0 0 3px #c4ec65)}.toa-projectile.player-arrow{width:30px;height:6px;background:linear-gradient(90deg,#755027 0 72%,#e6d894 73%);clip-path:polygon(0 35%,75% 35%,75% 0,100% 50%,75% 100%,75% 65%,0 65%);filter:drop-shadow(0 0 3px #fff1a1)}.toa-melee-swipe{position:absolute;width:78px;height:78px;border:9px solid transparent;border-top-color:#ff6350;border-right-color:#ff6350;border-radius:50%;transform:translate(-50%,-50%) rotate(-35deg);animation:toaSwipe .42s ease-out forwards;filter:drop-shadow(0 0 7px #ff4d38)}@keyframes toaSwipe{from{opacity:1;transform:translate(-50%,-50%) rotate(-70deg) scale(.45)}to{opacity:0;transform:translate(-50%,-50%) rotate(25deg) scale(1.25)}}
.toa-damage-splat{position:absolute;z-index:30;transform:translate(-50%,-50%);min-width:27px;height:27px;padding:0 4px;border-radius:50%;display:grid;place-items:center;background:#791616;border:2px solid #f1b0a5;color:#fff;font:900 12px Georgia,serif;text-shadow:1px 1px #000;animation:toaSplat .75s ease-out forwards}.toa-damage-splat.blocked{background:#1b1d22;border-color:#b5bec9;color:#e9eef5}.toa-damage-splat.heal{background:#185f24;border-color:#8be29b}@keyframes toaSplat{to{opacity:0;transform:translate(-50%,-95%) scale(.85)}}.toa-player-sprite.toa-firing .toa-weapon-bow{animation:toaBowFire .28s ease}@keyframes toaBowFire{50%{transform:rotate(-2deg) scaleX(-1) scale(.9)}}.toa-player-sprite.toa-hit{animation:toaHitShake .25s linear}@keyframes toaHitShake{25%{margin-left:-5px}75%{margin-left:5px}}.toa-crondis-room.toa-magic-cue{box-shadow:inset 0 0 70px #2874d477}.toa-crondis-room.toa-ranged-cue{box-shadow:inset 0 0 70px #82b72e66}.toa-crondis-room.toa-melee-cue{box-shadow:inset 0 0 70px #d6423266}
@media(max-width:800px){.toa-zebak-hud{width:58%;top:1%;padding:5px}.toa-attack-warning{top:12%;min-width:190px;padding:7px 11px}.toa-attack-warning b{font-size:17px}.toa-player-hud{width:115px;bottom:5%}}

/* Zebak attack tells: physical projectiles instead of instruction text */
.toa-attack-warning{display:none!important}
.toa-zebak-visual{position:absolute;left:50%;top:15.5%;z-index:16;width:25%;height:19%;transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;opacity:0;mix-blend-mode:screen}
.toa-zebak-visual.melee-charge{opacity:1;background:radial-gradient(ellipse,#ff3a2c88 0 35%,#d10b0080 48%,transparent 72%);filter:drop-shadow(0 0 22px #ff2718);animation:toaMeleeCharge .24s steps(2) infinite}
.toa-zebak-visual.stomping{opacity:1;background:radial-gradient(ellipse,#ff1d0dcc 0 38%,#a9000090 52%,transparent 72%);animation:toaZebakStomp .52s ease-out}
.toa-boss-charge{position:absolute;z-index:28;transform:translate(-50%,-50%);will-change:transform,filter;animation:toaBossCharge 1.8s ease-in forwards}
.toa-boss-charge.magic{width:64px;height:64px;border-radius:50%;background:radial-gradient(circle,#fff 0 10%,#8cecff 22%,#2387ed 48%,#092c8e 65%,transparent 72%);box-shadow:0 0 18px #66dcff,0 0 38px #1977ff}
.toa-boss-charge.ranged{width:92px;height:24px;background:linear-gradient(90deg,#63ff64 0 12%,#196d24 13% 69%,#caff78 70%);clip-path:polygon(0 35%,72% 35%,72% 0,100% 50%,72% 100%,72% 65%,0 65%);filter:drop-shadow(0 0 9px #70ff55) drop-shadow(0 0 18px #37c947)}
.toa-projectile.magic{width:46px;height:46px;box-shadow:0 0 18px #52caff,0 0 34px #2275ff}
.toa-projectile.ranged{width:72px;height:18px;background:linear-gradient(90deg,#46d94e 0 70%,#d4ff8c 71%);filter:drop-shadow(0 0 8px #5dff55)}
.toa-stomp-impact{position:absolute;z-index:27;width:34px;height:18px;border:6px solid #ff4c39;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #ff2817;animation:toaStompImpact .6s ease-out forwards}
@keyframes toaBossCharge{0%{transform:translate(-50%,-50%) scale(.28);opacity:.35}65%{transform:translate(-50%,-50%) scale(.85);opacity:1}100%{transform:translate(-50%,-50%) scale(1.22);opacity:1}}
@keyframes toaMeleeCharge{50%{filter:drop-shadow(0 0 35px #ff1a0a);transform:translate(-50%,-50%) scale(1.05)}}
@keyframes toaZebakStomp{0%{transform:translate(-50%,-50%) scale(1)}35%{transform:translate(-50%,-43%) scale(1.12)}55%{transform:translate(-50%,-50%) scale(1.18)}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes toaStompImpact{from{opacity:1;transform:translate(-50%,-50%) scale(.35)}to{opacity:0;transform:translate(-50%,-50%) scale(3.4)}}

/* Nexus overhead chat */
.toa-chat-prompt{position:absolute;left:50%;bottom:2.4%;z-index:24;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:5px 9px;background:#100d08d9;border:1px solid #8d744b;color:#e7d19b;font:700 9px Arial,sans-serif;letter-spacing:.4px;box-shadow:0 3px 10px #0009}.toa-chat-prompt.hidden{display:none}.toa-chat-prompt kbd{min-width:19px;padding:2px 5px;border:1px solid #c9aa6b;background:#2b2418;color:#fff;text-align:center;font:900 10px Arial,sans-serif}
.toa-chat-form{position:absolute;left:50%;bottom:2.1%;z-index:40;transform:translateX(-50%);display:flex;width:min(420px,76%);padding:5px;background:#17130de8;border:2px solid #9b7e4c;box-shadow:0 5px 18px #000c}.toa-chat-form.hidden{display:none}.toa-chat-form input{flex:1;min-width:0;padding:8px 10px;background:#080704;border:1px solid #5d4e34;color:#fff6d4;font:700 12px Arial,sans-serif;outline:none}.toa-chat-form input:focus{border-color:#d4b66e}.toa-chat-form button{width:auto!important;margin:0 0 0 5px!important;padding:7px 12px!important;background:#4b3c22!important;border:1px solid #bc9854!important;color:#fff0bf!important;font-size:9px!important}
.toa-chat-bubble{position:absolute;left:50%;bottom:82%;z-index:35;transform:translateX(-50%);max-width:190px;padding:2px 4px;color:#fff100;text-align:center;white-space:normal;font:700 11px Arial,sans-serif;line-height:1.15;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000;pointer-events:none}.toa-chat-bubble.hidden{display:none}.toa-remote-chat{left:58%;top:57%;bottom:auto;position:absolute}

/* Zebak 70% acid and 60%-40% tidal-wave mechanics */
.toa-crondis-room.toa-scream-cue{animation:toaArenaRumble .12s linear 10;box-shadow:inset 0 0 80px #d8f1ff66}
.toa-zebak-visual.screaming{opacity:1;background:radial-gradient(ellipse,#dff8ffbb 0 22%,#4aa0c777 42%,transparent 72%);animation:toaZebakScream 1.5s ease}
.toa-acid-shot{position:absolute;z-index:25;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle,#eaff75 0 18%,#75c91d 43%,#253f08 70%);box-shadow:0 0 12px #9dff30;transform:translate(-50%,-50%);animation:toaAcidSpit .85s ease-in forwards}
.toa-acid-pool{position:absolute;z-index:11;border-radius:46% 54% 42% 58%/58% 38% 62% 42%;background:radial-gradient(ellipse,#b9f248cc 0 16%,#5d9a20dd 45%,#243b10e8 76%);border:2px solid #a7dd43;box-shadow:inset 0 0 14px #dfff6d99,0 0 10px #75b82d99;transform:scale(0);animation:toaAcidLand .55s var(--acid-delay) ease-out forwards,toaAcidBubble 1.1s calc(var(--acid-delay) + .55s) ease-in-out infinite alternate}
.toa-tidal-wave{position:absolute;top:0;left:-10%;z-index:24;width:16%;height:100%;pointer-events:none;filter:drop-shadow(5px 0 8px #052f4dcc) drop-shadow(0 0 9px #68cbe1aa)}
.toa-tidal-wave::before{content:"";position:absolute;z-index:4;top:0;right:-18%;width:42%;height:100%;background:linear-gradient(90deg,#d8fbffb8,transparent);filter:blur(5px);opacity:.72;animation:toaWaveMist .28s ease-in-out infinite alternate}
.toa-wave-water{position:absolute;left:0;width:100%;display:block;overflow:hidden;background:linear-gradient(90deg,#082d47f2 0%,#0c5078f2 28%,#168bb1ec 61%,#70d4e4dc 86%,#d9fbfff2 100%);border-right:3px solid #ecffff;box-shadow:inset -13px 0 12px #9feef188,inset 6px 0 10px #041c2eaa;clip-path:polygon(0 0,82% 0,100% 3%,86% 7%,100% 11%,84% 16%,100% 21%,87% 27%,100% 32%,85% 38%,100% 44%,86% 50%,100% 56%,84% 62%,100% 68%,86% 74%,100% 80%,84% 86%,100% 92%,86% 96%,100% 100%,0 100%)}
.toa-wave-water::before{content:"";position:absolute;z-index:2;top:0;right:0;width:34%;height:100%;background:radial-gradient(ellipse at right,#fff 0 8%,#c8f8ffcc 10% 22%,transparent 25%) 0 0/100% 29px repeat-y;animation:toaWaveFoam .22s linear infinite}
.toa-wave-water::after{content:"";position:absolute;inset:-18px -10px;background:repeating-linear-gradient(165deg,transparent 0 11px,#b9f5ff25 12px 15px,transparent 16px 25px),radial-gradient(ellipse at 65% 50%,#d5fbff42 0 8%,transparent 10%);background-size:auto,80px 42px;animation:toaWaterFlow .3s linear infinite}
.toa-wave-water.top{top:0;border-bottom:2px solid #8dd7df}.toa-wave-water.bottom{bottom:0;border-top:2px solid #8dd7df}
@keyframes toaZebakScream{0%{transform:translate(-50%,-50%) scale(1)}20%{transform:translate(-50%,-54%) scale(1.18)}35%,55%,75%{filter:drop-shadow(0 0 32px #bff3ff);transform:translate(-52%,-54%) scale(1.22)}45%,65%,85%{transform:translate(-48%,-54%) scale(1.22)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@keyframes toaArenaRumble{25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}
@keyframes toaAcidSpit{0%{left:50%;top:17%;transform:translate(-50%,-50%) scale(.4)}100%{left:50%;top:62%;transform:translate(-50%,-50%) scale(1.45);opacity:0}}
@keyframes toaAcidLand{to{transform:scale(1)}}
@keyframes toaAcidBubble{to{filter:brightness(1.22);transform:scale(1.025)}}
@keyframes toaWaterFlow{to{transform:translate(13px,17px)}}
@keyframes toaWaveFoam{to{background-position:0 29px}}
@keyframes toaWaveMist{to{opacity:.42;transform:scaleX(1.18)}}

/* Zebak 40%-0% blood-orb enrage and completion spirit */
.toa-blood-orb{position:absolute;z-index:23;width:30px;height:30px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 36% 32%,#fff 0 5%,#ff9aa5 8%,#d1192f 34%,#650413 68%,#210006 100%);border:2px solid #ff6475;box-shadow:0 0 10px #ff3048,0 0 22px #a5001c,inset 0 0 8px #ffb2bb;animation:toaBloodPulse .68s ease-in-out infinite alternate;pointer-events:none}
.toa-blood-orb::after{content:"";position:absolute;inset:-7px;border:2px solid #ff3b5088;border-radius:50%;animation:toaBloodRing 1s ease-out infinite}
@keyframes toaBloodPulse{to{transform:translate(-50%,-50%) scale(1.14);filter:brightness(1.22)}}
@keyframes toaBloodRing{to{transform:scale(1.35);opacity:0}}
.toa-helpful-spirit{position:absolute;z-index:32;width:78px;height:88px;transform:translate(-50%,-50%);border:0!important;background:transparent!important;padding:0!important;margin:0!important;cursor:pointer;filter:drop-shadow(0 0 10px #bff6ff)}
.toa-helpful-spirit i{position:absolute;left:50%;top:38%;width:34px;height:48px;transform:translate(-50%,-50%);border-radius:48% 48% 42% 42%;background:radial-gradient(circle at 50% 25%,#fff 0 12%,#b7f4ff 17% 34%,#65c9dfaa 53%,transparent 72%);box-shadow:0 0 18px #b8f7ff;animation:toaSpiritFloat 1.3s ease-in-out infinite alternate}
.toa-helpful-spirit i::after{content:"";position:absolute;left:50%;bottom:-14px;width:42px;height:24px;transform:translateX(-50%);background:linear-gradient(135deg,transparent 20%,#7fd7e6aa 22% 45%,transparent 47%),linear-gradient(45deg,transparent 20%,#7fd7e6aa 22% 45%,transparent 47%);filter:blur(1px)}
.toa-helpful-spirit b{position:absolute;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;color:#fff38a;font:800 10px Arial,sans-serif;text-shadow:1px 1px #000,-1px -1px #000,0 0 5px #000}
@keyframes toaSpiritFloat{to{transform:translate(-50%,-58%);filter:brightness(1.18)}}
.toa-zebak-hud.toa-defeated .toa-zebak-hp-track{filter:grayscale(1);opacity:.72}

/* Zebak final 10% rage */
.toa-helpful-spirit{-webkit-appearance:none;appearance:none;outline:none!important;box-shadow:none!important;overflow:visible;border-radius:0!important}
.toa-helpful-spirit:focus,.toa-helpful-spirit:focus-visible,.toa-helpful-spirit:hover{outline:none!important;box-shadow:none!important;background:transparent!important}
.toa-final-shake{animation:toaFinalArenaShake .18s linear infinite}
@keyframes toaFinalArenaShake{0%,100%{transform:translate(0,0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,0)}75%{transform:translate(0,-1px)}}
.toa-boulder-warning{position:absolute;z-index:27;width:58px;height:30px;transform:translate(-50%,-50%);border-radius:50%;border:3px solid #ff5a35;background:radial-gradient(ellipse,#ffb13b55 0 38%,#e42d1966 42% 56%,transparent 61%);box-shadow:0 0 12px #ff3b22,inset 0 0 9px #ffb33b;animation:toaBoulderWarn .38s ease-in-out infinite alternate;pointer-events:none}
@keyframes toaBoulderWarn{from{scale:.88;opacity:.68}to{scale:1.08;opacity:1}}
.toa-falling-boulder{position:absolute;z-index:29;width:48px;height:48px;transform:translate(-50%,-170%) scale(1.25) rotate(-20deg);border-radius:46% 54% 43% 57%;background:radial-gradient(circle at 32% 27%,#9b8d75 0 10%,#675b49 28%,#332b22 67%,#17120e 100%);box-shadow:inset -5px -7px 7px #120d09,0 16px 8px #0008;animation:toaBoulderFall .52s cubic-bezier(.45,.02,.8,.48) forwards;pointer-events:none}
.toa-falling-boulder::before,.toa-falling-boulder::after{content:"";position:absolute;background:#211a14;border-radius:50%;opacity:.7}.toa-falling-boulder::before{width:13px;height:8px;left:8px;top:13px;rotate:-25deg}.toa-falling-boulder::after{width:10px;height:13px;right:8px;bottom:9px;rotate:35deg}
@keyframes toaBoulderFall{to{transform:translate(-50%,-50%) scale(1) rotate(16deg)}}
.toa-falling-boulder.landed{animation:toaBoulderLand .5s ease-out forwards}
@keyframes toaBoulderLand{0%{filter:brightness(1.7);scale:1.12}100%{filter:brightness(.7);scale:.82;opacity:0}}

/* ToA defeat / co-op spectator panel */
.toa-defeated-panel{position:absolute;left:50%;top:52%;z-index:80;width:min(440px,86%);transform:translate(-50%,-50%);padding:22px 20px;text-align:center;background:linear-gradient(#17130feF,#090806f5);border:3px solid #8d6a39;box-shadow:0 0 0 3px #241507,0 18px 60px #000;color:#ead9ad}
.toa-defeated-panel.hidden{display:none}.toa-defeated-panel>span{font:900 10px Arial,sans-serif;letter-spacing:2px;color:#bd9759}.toa-defeated-panel h4{margin:8px 0;color:#d64c3d;font:900 24px Georgia,serif;text-shadow:2px 2px #000}.toa-defeated-panel p{margin:0 0 16px;color:#ddd0ad;font:700 12px Arial,sans-serif}.toa-defeated-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.toa-defeated-actions button{width:auto!important;margin:0!important;padding:9px 13px!important}.toa-defeated-actions button:last-child{background:#5b201c!important;border-color:#bb5a4b!important}.toa-player-sprite.toa-dead{display:none!important}

.toa-party-bar.raid-started{display:none!important}
.toa-path-label.complete{border-color:#4fdb62;color:#dfffe3;background:#07150bdc;box-shadow:0 0 16px #35cf5577,inset 0 0 10px #1d7d3344}
.toa-path-label.complete span{color:#68ed78}
/* Keep overhead chat readable when the character sprite faces left. */
.toa-player-sprite.facing-left > .toa-chat-bubble{transform:translateX(-50%) scaleX(-1)}
/* Network teammate positions are interpolated in JS; avoid visual snapping. */
.toa-crondis-teammate{will-change:left,top;transition:left .06s linear,top .06s linear,filter .15s}

/* Path of Scarabas */
.toa-context-scarabas{left:auto;right:18%;}
.toa-scarabas-room{position:absolute;inset:0;z-index:31;background:#17120c url('assets/toa-scarabas-room.png') center/100% 100% no-repeat;overflow:hidden}
.toa-scarabas-room.hidden{display:none}
.toa-scarabas-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,transparent 40%,rgba(0,0,0,.42));z-index:1}
.toa-scarabas-player{left:47%;top:88%;z-index:8}
.toa-scarabas-teammate{left:53%;top:88%;z-index:8;filter:hue-rotate(90deg) drop-shadow(0 3px 2px #000b)}
.toa-arena-banner{position:absolute;z-index:20;left:50%;top:8%;transform:translateX(-50%);padding:9px 18px;background:#090807df;border:2px solid #c8a65f;box-shadow:0 0 18px #000;color:#ead59a;text-align:center;letter-spacing:1px;pointer-events:none}
.toa-arena-banner span{display:block;font-size:9px}.toa-arena-banner b{font-size:17px;color:#fff1bd}
.toa-path-label.toa-scarabas.unlocked{border-color:#8ec66f;color:#d9ffc5;box-shadow:0 0 13px #69a34d99}.toa-path-label.toa-scarabas.unlocked span{color:#9ee684}

/* CatAsthma TOA testing controls */
.signed-in-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.admin-button{align-self:stretch;padding:9px 12px;border:1px solid #c89432;background:linear-gradient(#3a2a0d,#171006);color:#ffd66c;font-weight:900;letter-spacing:1px;cursor:pointer;box-shadow:inset 0 0 0 1px #6f501b}
.admin-button:hover{filter:brightness(1.18)}
.admin-button.active{border-color:#ff6868;background:linear-gradient(#681414,#240606);color:#fff0f0;box-shadow:0 0 7px #ff2222,0 0 18px #ff1717cc,0 0 32px #ff000066,inset 0 0 0 1px #a83838;animation:adminRedPulse 1.15s ease-in-out infinite}
@keyframes adminRedPulse{0%,100%{filter:brightness(1);box-shadow:0 0 7px #ff2222,0 0 18px #ff1717cc,0 0 32px #ff000066,inset 0 0 0 1px #a83838}50%{filter:brightness(1.24);box-shadow:0 0 10px #ff5555,0 0 25px #ff2020,0 0 42px #ff000099,inset 0 0 0 1px #e45d5d}}
@media(max-width:760px){.signed-in-controls{align-items:stretch}.admin-button{padding:8px}}

/* Kephri phase 1 */
.toa-kephri-hud{position:absolute;z-index:18;left:50%;top:2.2%;transform:translateX(-50%);width:min(430px,52%);pointer-events:none;text-align:center;font-family:Georgia,serif;text-shadow:2px 2px #000}
.toa-kephri-hud.hidden{display:none}.toa-kephri-name{display:flex;justify-content:space-between;color:#f4d888;font-size:13px;font-weight:900;letter-spacing:1.5px}.toa-kephri-name b{color:#fff3c4}.toa-kephri-hp{height:12px;margin-top:4px;background:#160b08;border:2px solid #bc8a34;box-shadow:0 0 0 2px #000,0 0 12px #d36b1b88;overflow:hidden}.toa-kephri-hp i{display:block;width:100%;height:100%;background:linear-gradient(#e7432f,#971913);transition:width .15s linear}.toa-kephri-phase{margin-top:5px;color:#e8c995;font-size:9px;letter-spacing:1px}
.toa-scarabas-effects{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
.toa-scarabas-player.toa-keris-armed::after,.toa-scarabas-teammate.toa-keris-armed::after{content:"";position:absolute;width:34px;height:34px;left:5px;top:-16px;background:url('assets/keris-partisan.png') center/contain no-repeat;transform:scaleX(-1) rotate(40deg);transform-origin:20% 80%;filter:drop-shadow(1px 2px 1px #000);z-index:-1}
.toa-player-sprite.facing-left.toa-keris-armed::after{transform:rotate(40deg)}
.toa-scarabas-player.toa-keris-strike::after,.toa-scarabas-teammate.toa-keris-strike::after{animation:toaKerisStrike .32s ease-out}@keyframes toaKerisStrike{0%{rotate:0deg}45%{rotate:-55deg}100%{rotate:0deg}}
.toa-kephri-hit{position:absolute;width:7px;height:7px;border-radius:50%;background:#ffe275;box-shadow:0 0 7px 3px #ff6d00;transform:translate(-50%,-50%);animation:toaKephriHit .45s ease-out forwards}@keyframes toaKephriHit{to{transform:translate(-50%,-50%) scale(3);opacity:0}}
.toa-fireball-shadow{position:absolute;width:7.5%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#160000aa 0 38%,#5b130bbb 43%,#ff5a2233 62%,transparent 70%);box-shadow:0 0 14px #e43b1d88;animation:toaShadowPulse .45s infinite alternate;z-index:2}@keyframes toaShadowPulse{to{scale:1.18;filter:brightness(1.35)}}
.toa-kephri-fireball{position:absolute;width:5.4%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#fff7b3 0 12%,#ff9b26 28%,#da2e13 58%,#530900 75%,transparent 77%);box-shadow:0 0 16px 6px #ff4d16;z-index:4}
.toa-fireball-impact{position:absolute;width:11%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff3a8,#ff781f 28%,#c91f0e 49%,transparent 70%);animation:toaFireImpact .55s ease-out forwards;z-index:5}@keyframes toaFireImpact{to{scale:2.1;opacity:0}}
.toa-kephri-damage{position:absolute;transform:translate(-50%,-50%);color:white;background:#b0201b;border:2px solid #fff;border-radius:50%;min-width:22px;height:22px;display:grid;place-items:center;font:900 12px Arial;box-shadow:0 2px 3px #000;animation:toaKDamage .9s ease-out forwards;z-index:9}@keyframes toaKDamage{to{translate:0 -28px;opacity:0}}
.toa-scarabas-room.kephri-active .toa-scarabas-vignette{background:radial-gradient(ellipse at 50% 55%,transparent 52%,rgba(0,0,0,.34))}

.toa-scarabas-room .toa-player-hud{left:1.5%;top:9%;bottom:auto;}
.toa-scarabas-room.kephri-shake{animation:toaKephriShake .09s linear 10}@keyframes toaKephriShake{25%{translate:-5px 2px}50%{translate:4px -3px}75%{translate:-2px -2px}}
.toa-dung-ball{position:absolute;width:4.3%;aspect-ratio:1;border-radius:48% 52% 45% 55%;transform:translate(-50%,-50%);z-index:5;background:radial-gradient(circle at 34% 28%,#a8783e 0 12%,#68431f 38%,#35200f 72%);box-shadow:0 3px 4px #000b,0 0 0 2px #211307}.toa-dung-ball:not(.flying){animation:toaDungPulse .75s infinite alternate}@keyframes toaDungPulse{to{filter:brightness(1.25);scale:1.06}}
.toa-dung-explosion{position:absolute;width:11%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);z-index:7;background:radial-gradient(circle,#d7b35b 0 8%,#75441e 28%,#3b2613 50%,transparent 71%);animation:toaDungBurst .65s ease-out forwards}@keyframes toaDungBurst{to{scale:2.2;opacity:0}}
.toa-kephri-flea{position:absolute;width:.9%;aspect-ratio:1;border-radius:55% 45% 55% 45%;transform:translate(-50%,-50%) rotate(35deg);z-index:5;background:#5a2417;box-shadow:-3px 0 0 -1px #26100b,3px 0 0 -1px #26100b,0 0 4px #ff8b3c;animation:toaFleaScuttle .18s steps(2) infinite}@keyframes toaFleaScuttle{to{rotate:55deg;scale:1.12}}
.toa-flea-shot{position:absolute;width:1.1%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);z-index:8;background:#87d13e;box-shadow:0 0 5px 2px #b8ff61}
.toa-kephri-damage.blocked{background:#294b22;color:#fff}

/* Kephri flea refinement: tiny airborne swarm with subtle fluttering. */
.toa-kephri-flea{min-width:5px;max-width:9px;filter:drop-shadow(0 1px 1px #000);animation:toaFleaScuttle .14s steps(2) infinite,toaFleaHover .7s ease-in-out infinite alternate}
@keyframes toaFleaHover{to{margin-top:-3px;filter:brightness(1.18) drop-shadow(0 3px 2px #0008)}}

/* Kephri Dung Strike */
.toa-dung-strike-flies{position:absolute;width:7%;aspect-ratio:1;transform:translate(-50%,-55%);z-index:12;pointer-events:none;animation:toaDungSwarmPulse .35s ease-in-out infinite alternate}
.toa-dung-strike-flies b{position:absolute;left:50%;top:50%;width:4px;height:3px;border-radius:50%;background:#25140b;box-shadow:0 0 3px #d19a45;animation:toaDungFly 1s linear infinite;animation-delay:calc(var(--fly-i)*-.11s)}
@keyframes toaDungFly{0%{transform:rotate(calc(var(--fly-i)*40deg)) translateX(8px) rotate(0)}50%{transform:rotate(calc(var(--fly-i)*40deg + 150deg)) translateX(18px) rotate(-150deg)}100%{transform:rotate(calc(var(--fly-i)*40deg + 360deg)) translateX(8px) rotate(-360deg)}}
@keyframes toaDungSwarmPulse{to{scale:1.15;filter:brightness(1.3)}}
.toa-dung-wall-ball{position:absolute;width:4.2%;aspect-ratio:1;border-radius:48% 52% 45% 55%;transform:translate(-50%,-50%) scale(0);z-index:7;background:radial-gradient(circle at 32% 25%,#b17a38 0 10%,#70451f 35%,#38200e 72%);box-shadow:0 3px 5px #000c,0 0 0 2px #241408;animation:toaDungWallLand .32s cubic-bezier(.2,1.5,.5,1) forwards,toaDungWallBuzz 1.2s .35s infinite alternate;animation-delay:calc(var(--dung-i)*.045s)}
@keyframes toaDungWallLand{to{transform:translate(-50%,-50%) scale(1)}}
@keyframes toaDungWallBuzz{to{filter:brightness(1.16);rotate:5deg}}
.toa-dung-knock{transition:left .38s cubic-bezier(.15,.75,.25,1),top .38s cubic-bezier(.15,.75,.25,1)!important;filter:drop-shadow(0 0 5px #8d5b26)}

/* Kephri 50% scarab reinforcement phase */
.toa-kephri-add{position:absolute;width:8.5%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:8;background:url('assets/kephri-scarab.png') center/contain no-repeat;filter:drop-shadow(0 4px 3px #000b);transition:left .08s linear,top .08s linear;pointer-events:none}
.toa-kephri-add.blue{filter:hue-rotate(155deg) saturate(1.6) brightness(1.15) drop-shadow(0 0 8px #42cfff)}
.toa-kephri-add.hit{animation:toaAddHit .18s linear}.toa-kephri-add.attack{animation:toaAddAttack .32s ease-out}.toa-kephri-add.burst{animation:toaAddBurst .4s ease-out forwards}
@keyframes toaAddHit{50%{filter:brightness(2) drop-shadow(0 0 9px #fff)}}
@keyframes toaAddAttack{50%{scale:1.18;rotate:-8deg}}
@keyframes toaAddBurst{to{scale:1.8;opacity:0;filter:brightness(2)}}
.toa-kephri-add-hp{position:absolute;left:12%;right:12%;top:-9px;height:5px;border:1px solid #f2d087;background:#160b08;box-shadow:0 0 0 1px #000}.toa-kephri-add-hp span{display:block;width:100%;height:100%;background:#c83225;transition:width .12s linear}
.toa-blue-charge{position:absolute;left:-4%;right:-4%;bottom:-10px;height:6px;border:1px solid #8de8ff;background:#061824;box-shadow:0 0 7px #2fcfff}.toa-blue-charge span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#164a7c,#71e8ff);transition:width .08s linear}
.toa-kephri-add.blue::after{content:"";position:absolute;inset:-18%;border-radius:50%;border:2px solid #5be4ff;box-shadow:0 0 18px #25cfff,inset 0 0 12px #25cfff;animation:toaBluePulse .7s infinite alternate}@keyframes toaBluePulse{to{scale:1.18;opacity:.45}}
.toa-blue-scarab-blast{position:absolute;width:10%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);z-index:14;background:radial-gradient(circle,#fff 0 8%,#75eaff 25%,#1877d4 48%,transparent 70%);box-shadow:0 0 30px 14px #2acfff;animation:toaBlueBlast .85s ease-out forwards}@keyframes toaBlueBlast{to{scale:8;opacity:0}}
/* Kephri 30% diving scarabs and victory */
.toa-dive-scarab-mark{position:absolute;width:7%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;z-index:5;background:radial-gradient(circle,rgba(75,20,8,.7) 0 28%,rgba(20,5,2,.78) 31% 49%,transparent 53%);box-shadow:0 0 0 2px #8b2c17aa;animation:toaDiveMark .35s infinite alternate}@keyframes toaDiveMark{to{scale:1.16;opacity:.62}}
.toa-dive-scarab{position:absolute;width:4.5%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:10;background:url('assets/kephri-scarab.png') center/contain no-repeat;filter:drop-shadow(0 3px 2px #000);rotate:155deg}
.toa-dive-scarab-explosion{position:absolute;width:8%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);z-index:12;background:radial-gradient(circle,#fff3a4 0 8%,#e16922 20%,#8e2616 44%,transparent 68%);box-shadow:0 0 20px 8px #c6411e;animation:toaDiveBoom .62s ease-out forwards}@keyframes toaDiveBoom{to{scale:2.4;opacity:0}}
.toa-scarabas-room.kephri-final-rush{animation:toaKephriFinalPulse .45s infinite alternate}@keyframes toaKephriFinalPulse{to{filter:brightness(1.06) saturate(1.08)}}
.toa-kephri-helper{z-index:30}
.toa-kephri-hud.toa-defeated .toa-kephri-hp i{width:0!important}


/* 2026-07-31: counter width, fourth adventurer, Budweiser and RDR2 monitor */
.stats{min-width:0;overflow:hidden}
.stats #count{
  width:100%;min-width:0;max-width:100%;
  font-size:clamp(44px,6.2vw,96px)!important;
  line-height:1.02;
  letter-spacing:-.055em;
  white-space:nowrap;
  overflow:visible;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
@media(min-width:1250px){.stats #count{font-size:clamp(52px,5.7vw,90px)!important}}
@media(max-width:1050px){.stats #count{font-size:clamp(42px,10vw,76px)!important;letter-spacing:-.065em}}

.game-screen.monitor-rdr2 .monitor-game-rdr2{display:block}
.monitor-game-rdr2{background:linear-gradient(#d96836 0 45%,#9f2f20 46% 61%,#261512 62%);color:#f7ddad}
.rdr2-title{position:absolute;z-index:5;left:0;right:0;top:0;height:29px;padding:5px 8px;background:#160d0bdc;border-bottom:2px solid #a63a25;color:#f2d3a0;font:900 11px/17px Georgia,serif;letter-spacing:1.5px;text-shadow:2px 2px #4a120d}
.rdr2-landscape{position:absolute;inset:29px 0 25px;overflow:hidden;background:linear-gradient(#df7d47 0 48%,#9d4a2f 49% 65%,#38201a 66%)}
.rdr2-landscape:after{content:"";position:absolute;left:-5%;right:-5%;bottom:-12px;height:55px;background:#17100e;clip-path:polygon(0 62%,12% 44%,21% 59%,32% 31%,42% 57%,53% 38%,65% 56%,76% 28%,88% 50%,100% 37%,100% 100%,0 100%)}
.rdr2-sun{position:absolute;right:18%;top:16%;width:48px;height:48px;border-radius:50%;background:#ffd28a;box-shadow:0 0 22px #ffb36e}
.rdr2-mountain{position:absolute;bottom:35px;background:#633126;clip-path:polygon(50% 0,100% 100%,0 100%)}.rdr2-mountain.m1{left:-8px;width:150px;height:82px}.rdr2-mountain.m2{right:-18px;width:180px;height:105px;background:#4a2721}
.rdr2-rider{position:absolute;left:46%;bottom:31px;width:34px;height:24px;background:#15100f;border-radius:48% 50% 40% 42%;z-index:4}.rdr2-rider:before{content:"";position:absolute;left:10px;top:-25px;width:11px;height:28px;background:#17110f;border-radius:45%}.rdr2-rider:after{content:"";position:absolute;left:-7px;top:15px;width:50px;height:5px;background:#17110f;transform:rotate(-4deg);box-shadow:3px 12px 0 -1px #17110f}.rdr2-rider b{position:absolute;left:7px;top:-30px;width:18px;height:5px;background:#17110f;border-radius:50%}
.rdr2-cactus{position:absolute;bottom:28px;width:7px;height:34px;background:#261713;z-index:3}.rdr2-cactus:before,.rdr2-cactus:after{content:"";position:absolute;width:10px;height:5px;background:#261713;top:13px}.rdr2-cactus:before{left:-8px;transform:rotate(35deg)}.rdr2-cactus:after{right:-8px;transform:rotate(-35deg)}.rdr2-cactus.c1{left:16%}.rdr2-cactus.c2{right:11%;transform:scale(.7)}
.rdr2-status{position:absolute;left:0;right:0;bottom:0;height:25px;padding:6px 8px;background:#170e0c;color:#e8c08d;font:900 9px monospace;letter-spacing:.4px}

/* Female adventurer inspired by the supplied OSRS reference. */
.gamer.character-four .curls{display:none!important}
.gamer.character-four .hairback{display:block;left:139px;top:42px;width:108px;height:105px;background:#d8c4a9;border-radius:46% 46% 35% 35%;z-index:3;clip-path:polygon(13% 12%,87% 12%,100% 52%,82% 100%,64% 69%,50% 100%,34% 70%,17% 100%,0 52%)}
.gamer.character-four .hood{display:block;left:130px;top:4px;width:137px;height:104px;background:linear-gradient(90deg,#b9b9b4,#ece9dd 50%,#9d9d99);clip-path:polygon(18% 8%,82% 8%,94% 32%,88% 77%,67% 65%,58% 100%,48% 68%,28% 66%,8% 79%,3% 31%);z-index:8;filter:drop-shadow(0 4px 2px #0008)}
.gamer.character-four .hood:before,.gamer.character-four .hood:after{content:"";position:absolute;top:3px;width:4px;height:73px;background:#d2af45;box-shadow:0 0 0 1px #6f5720}.gamer.character-four .hood:before{left:18px;transform:rotate(-4deg)}.gamer.character-four .hood:after{right:18px;transform:rotate(4deg)}
.gamer.character-four .head{left:158px;top:57px;width:84px;height:91px;background:#e2b28e;border-radius:40% 40% 46% 46%}
.gamer.character-four .head:before{content:"";position:absolute;left:15px;right:15px;top:39px;height:8px;background:linear-gradient(90deg,#181411 0 21%,transparent 22% 65%,#181411 66%);clip-path:polygon(0 0,100% 0,88% 100%,10% 100%)}
.gamer.character-four .head:after{content:"";position:absolute;left:36px;top:54px;width:13px;height:4px;border-bottom:2px solid #865641;border-radius:50%}
.gamer.character-four .ear,.gamer.character-four .nose,.gamer.character-four .neck,.gamer.character-four .hand{background:#e2b28e}
.gamer.character-four .cape{display:block;left:62px;top:137px;width:218px;height:225px;background:linear-gradient(90deg,#8b0e10,#cf2023 48%,#73080a);clip-path:polygon(15% 0,83% 4%,100% 94%,59% 78%,10% 100%,0 18%);z-index:1;filter:drop-shadow(0 7px 4px #0008)}
.gamer.character-four .body,.gamer.character-four .belly{background:linear-gradient(90deg,#777d78,#b9bdb8 48%,#656b67);border:4px solid #565b58}
.gamer.character-four .body:after{content:"";position:absolute;left:69px;top:17px;width:66px;height:67px;background:linear-gradient(135deg,#f0f0ea,#969b97);clip-path:polygon(50% 0,100% 35%,82% 100%,18% 100%,0 35%);opacity:.8}
.gamer.character-four .body .robe-panel{display:block;left:78px;top:-2px;width:48px;height:54px;border:8px solid #f2eee2;border-top:0;transform:rotate(0);z-index:5}
.gamer.character-four .body .robe-panel:after{content:"";position:absolute;left:9px;top:27px;width:22px;height:22px;border-radius:50%;background:#5d0ac5;border:7px solid #d6bb13;box-shadow:0 2px 2px #0007}
.gamer.character-four .arm{background:linear-gradient(#8d918c,#666b67)}
.gamer.character-four .leg{background:#a41012;border-bottom:14px solid #7c0809}
.gamer.character-four .leg:after{content:"";position:absolute;left:23px;bottom:-13px;width:20px;height:12px;background:#fff;clip-path:polygon(50% 0,100% 100%,0 100%)}

.gamer.character-four .budweiser-prop{display:block;left:5px;top:-26px;width:30px;height:76px;transform:rotate(-8deg);filter:drop-shadow(0 4px 3px #0009)}
.budweiser-prop{background:linear-gradient(90deg,#5c250d,#b55d20 42%,#6f2c0d);border:2px solid #3e1908;border-radius:5px 5px 8px 8px}
.budweiser-prop .beer-neck{position:absolute;left:7px;top:-20px;width:13px;height:24px;background:linear-gradient(90deg,#5b240c,#ad571e,#59220b);border:2px solid #3e1908;border-bottom:0;border-radius:4px 4px 0 0}
.budweiser-prop .beer-cap{position:absolute;left:5px;top:-24px;width:17px;height:6px;background:#d6c9a3;border:1px solid #5f5034;border-radius:50%}
.budweiser-prop .beer-label{position:absolute;left:2px;right:2px;top:20px;height:29px;background:#f4eee1;border:1px solid #b4976d;color:#a31016;text-align:center;transform:rotate(-3deg);padding-top:3px}
.budweiser-prop .beer-label b{display:block;font:900 9px/9px Georgia,serif}.budweiser-prop .beer-label small{display:block;font:900 6px/7px Arial,sans-serif;letter-spacing:.5px}
.gamer.character-four.typing .arm-right{animation:budweiserArmLift 5.4s ease-in-out infinite!important}
.gamer.character-four.typing .budweiser-prop{animation:none!important}
@keyframes budweiserArmLift{0%,59%,100%{transform:rotate(17deg) translate(0,0)}68%{transform:rotate(-18deg) translate(-21px,-29px)}76%,88%{transform:rotate(-49deg) translate(-57px,-78px)}95%{transform:rotate(-5deg) translate(-12px,-18px)}}


/* 2026-07-31: refined fourth adventurer, accurate bottle sip and tavern skip control */
.gamer.character-four .hairback{
  left:145px;top:40px;width:94px;height:145px;
  background:linear-gradient(90deg,#c7ad8e,#ead8ba 48%,#aa8e71);
  clip-path:polygon(18% 4%,82% 4%,96% 33%,84% 67%,72% 100%,55% 78%,44% 100%,27% 79%,12% 100%,2% 35%);
}
.gamer.character-four .head{left:163px;top:58px;width:75px;height:88px;border-radius:44% 44% 49% 49%}
.gamer.character-four .head:before{left:14px;right:14px;top:38px;height:7px}
.gamer.character-four .head:after{left:31px;top:54px;width:13px;height:5px;border-bottom:2px solid #85513f}
.gamer.character-four .body{
  left:91px;top:158px;width:178px;height:160px;
  border-radius:45% 45% 31% 31%;
  clip-path:polygon(8% 0,92% 0,84% 45%,72% 100%,28% 100%,16% 45%);
}
.gamer.character-four .belly{
  left:127px;top:224px;width:145px;height:113px;
  border-radius:38% 44% 52% 48%;
  clip-path:polygon(17% 0,83% 0,100% 100%,0 100%);
}
.gamer.character-four .cape{left:68px;width:205px}
.gamer.character-four .arm{width:130px;height:40px;border-radius:22px}
.gamer.character-four .arm-left{left:205px;top:207px}
.gamer.character-four .arm-right{left:188px;top:220px}
.gamer.character-four .leg.one{left:119px;width:132px;transform:rotate(4deg)}
.gamer.character-four .leg.two{left:194px;width:132px;transform:rotate(-4deg)}
.gamer.character-four .hood{left:137px;width:126px}

/* The bottle is anchored inside the hand. Its cap now stops at the mouth instead of crossing the face. */
.gamer.character-four .budweiser-prop{
  left:10px;top:-13px;width:27px;height:68px;
  transform:rotate(-5deg);
  transform-origin:50% 92%;
}
.gamer.character-four .budweiser-prop .beer-neck{left:6px;top:-18px;width:12px;height:21px}
.gamer.character-four .budweiser-prop .beer-cap{left:4px;top:-22px;width:16px;height:6px}
.gamer.character-four .budweiser-prop .beer-label{top:18px;height:27px}
.gamer.character-four.typing .arm-right{animation:budweiserArmLiftFixed 5.6s ease-in-out infinite!important;transform-origin:8px 50%}
.gamer.character-four.typing .budweiser-prop{animation:budweiserBottleTip 5.6s ease-in-out infinite!important}
@keyframes budweiserArmLiftFixed{
  0%,58%,100%{transform:rotate(17deg) translate(0,0)}
  66%{transform:rotate(-7deg) translate(-13px,-18px)}
  74%{transform:rotate(-29deg) translate(-29px,-42px)}
  79%,88%{transform:rotate(-36deg) translate(-37px,-51px)}
  94%{transform:rotate(-4deg) translate(-12px,-17px)}
}
@keyframes budweiserBottleTip{
  0%,70%,96%,100%{transform:rotate(-5deg)}
  78%,88%{transform:rotate(18deg)}
}

.next-desk-character{
  position:absolute;right:18px;bottom:15px;z-index:15;
  display:flex;align-items:center;gap:7px;
  min-width:0;padding:6px 10px 6px 8px;
  color:#d8bc7b;background:linear-gradient(#4e2d16,#2d180c);
  border:2px ridge #9b6b33;border-radius:3px;
  box-shadow:0 3px 8px #0009,inset 0 0 0 1px #1b0d06;
  font:900 9px/1 Arial,sans-serif;letter-spacing:.8px;
  opacity:.72;cursor:pointer;transition:opacity .18s,transform .18s,filter .18s;
}
.next-desk-character span{font:900 24px/.65 Georgia,serif;color:#f1d28a;text-shadow:1px 1px #341708}
.next-desk-character small{font:900 8px/1 Arial,sans-serif;letter-spacing:.7px;white-space:nowrap}
.next-desk-character:hover,.next-desk-character:focus-visible{opacity:1;filter:brightness(1.12);transform:translateY(-1px);outline:none}
.next-desk-character:active{transform:translateY(1px)}
.next-desk-character[disabled]{opacity:.32;cursor:wait;transform:none}
@media(max-width:760px){.next-desk-character{right:10px;bottom:12px}.next-desk-character small{display:none}}

/* 2026-07-31: Character four leg and boot proportion correction.
   Keep her finished upper-body design, while matching the seated proportions
   used by the other desk adventurers. */
.gamer.character-four .leg{
  width:104px;
  height:60px;
  border-radius:30px;
  border-bottom-width:11px;
}
.gamer.character-four .leg.one{
  left:132px;
  top:309px;
  width:104px;
  transform:rotate(4deg);
}
.gamer.character-four .leg.two{
  left:202px;
  top:324px;
  width:104px;
  transform:rotate(-4deg);
}
.gamer.character-four .leg:after{
  left:17px;
  bottom:-10px;
  width:15px;
  height:9px;
}


/* 2026-07-31: Fifth female adventurer, The Last of Us monitor and vape prop. */
.game-screen.monitor-tlou .monitor-game-tlou{display:block}
.monitor-game-tlou{background:#17211c;color:#d7d2bd;overflow:hidden}
.tlou-title{position:absolute;z-index:6;left:0;right:0;top:0;height:29px;padding:5px 8px;background:#0b0d0cde;border-bottom:2px solid #696451;color:#e8e1c8;font:900 12px/17px Georgia,serif;letter-spacing:2px;text-shadow:2px 2px #000}
.tlou-world{position:absolute;inset:29px 0 25px;overflow:hidden;background:linear-gradient(#7a897d 0 42%,#3d4d43 43% 64%,#1d2822 65%)}
.tlou-world:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 35%,#d6c69238 36% 42%,transparent 43%),radial-gradient(circle at 68% 20%,#e4dba477,transparent 35%);opacity:.8}
.tlou-world:after{content:"";position:absolute;left:-10px;right:-10px;bottom:-8px;height:43px;background:#101713;clip-path:polygon(0 62%,10% 48%,22% 64%,34% 35%,48% 59%,61% 40%,76% 66%,88% 38%,100% 55%,100% 100%,0 100%)}
.tlou-building{position:absolute;bottom:28px;background:#303a35;border-top:5px solid #232b27;box-shadow:inset 0 0 0 2px #202722;clip-path:polygon(4% 7%,100% 0,94% 100%,0 100%)}
.tlou-building:after{content:"";position:absolute;inset:16px 9px;background:repeating-linear-gradient(90deg,#111814 0 8px,transparent 8px 18px),repeating-linear-gradient(#111814 0 7px,transparent 7px 17px);opacity:.8}
.tlou-building.b1{left:-10px;width:105px;height:108px}.tlou-building.b2{right:-13px;width:118px;height:88px;transform:scaleX(-1)}
.tlou-vine{position:absolute;z-index:3;width:8px;background:#526b42;border-radius:50%;box-shadow:8px 5px 0 -2px #678451,-7px 14px 0 -2px #5d774a}.tlou-vine.v1{left:22%;top:17px;height:95px;transform:rotate(15deg)}.tlou-vine.v2{right:18%;top:9px;height:83px;transform:rotate(-19deg)}
.tlou-joel,.tlou-ellie{position:absolute;z-index:5;bottom:24px;background:#111613;border-radius:45% 45% 25% 25%}.tlou-joel{left:47%;width:22px;height:62px}.tlou-ellie{left:58%;width:17px;height:48px}
.tlou-joel:before,.tlou-ellie:before{content:"";position:absolute;left:20%;top:-14px;width:60%;height:17px;border-radius:50%;background:#171b18}.tlou-joel:after{content:"";position:absolute;right:-21px;top:22px;width:34px;height:4px;background:#111613;transform:rotate(-26deg);transform-origin:left}
.tlou-spore{position:absolute;width:3px;height:3px;border-radius:50%;background:#d9c88c;box-shadow:12px 9px #d9c88c99,-8px 18px #d9c88c88,20px 30px #d9c88c77}.tlou-spore.s1{left:37%;top:35%}.tlou-spore.s2{right:22%;top:22%;transform:scale(.7)}
.tlou-status{position:absolute;left:0;right:0;bottom:0;height:25px;padding:6px 8px;background:#0b0e0c;color:#c6bea4;font:900 9px monospace;letter-spacing:.4px}

/* Hooded female outfit based on the supplied RuneScape reference. */
.gamer.character-five .curls,.gamer.character-five .wizard-hat{display:none!important}
.gamer.character-five .hairback{display:block;left:146px;top:37px;width:98px;height:139px;background:linear-gradient(90deg,#b4a77a,#d9cb95 48%,#91875f);clip-path:polygon(15% 5%,85% 5%,98% 29%,88% 70%,75% 100%,59% 79%,46% 100%,29% 81%,12% 100%,2% 31%);z-index:3}
.gamer.character-five .hood{display:block;left:138px;top:8px;width:118px;height:126px;background:linear-gradient(90deg,#a89e74,#e1d59e 48%,#968b65);clip-path:polygon(50% 0,84% 10%,100% 38%,88% 78%,69% 67%,60% 100%,47% 75%,31% 69%,9% 82%,0 37%,19% 9%);z-index:8;filter:drop-shadow(0 5px 3px #0009)}
.gamer.character-five .hood:after{content:"";position:absolute;left:37px;top:26px;width:44px;height:22px;background:#bfa98f;opacity:.25;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}
.gamer.character-five .head{left:162px;top:60px;width:74px;height:88px;background:#d6a27e;border-radius:43% 43% 49% 49%}
.gamer.character-five .head:before{content:"";position:absolute;left:14px;right:14px;top:38px;height:7px;background:linear-gradient(90deg,#171311 0 22%,transparent 23% 65%,#171311 66%);clip-path:polygon(0 0,100% 0,87% 100%,10% 100%)}
.gamer.character-five .head:after{content:"";position:absolute;left:31px;top:54px;width:12px;height:5px;border-bottom:2px solid #7f4d3b;border-radius:50%}
.gamer.character-five .ear,.gamer.character-five .nose,.gamer.character-five .neck,.gamer.character-five .hand{background:#d6a27e}
.gamer.character-five .cape{display:block;left:69px;top:134px;width:204px;height:231px;background:linear-gradient(90deg,#262522,#3c3a33 48%,#191917);clip-path:polygon(16% 0,84% 5%,100% 93%,61% 79%,11% 100%,0 18%);z-index:1;filter:drop-shadow(0 7px 4px #0008)}
.gamer.character-five .body{left:87px;top:153px;width:184px;height:167px;background:linear-gradient(90deg,#c5bd8e,#ebe0ab 46%,#aaa273);border:4px solid #81795a;border-radius:43% 43% 29% 29%;clip-path:polygon(7% 0,93% 0,87% 42%,75% 100%,25% 100%,13% 42%)}
.gamer.character-five .body:before{content:"";position:absolute;left:42px;right:42px;top:25px;height:90px;background:linear-gradient(#33352f,#d4c995 45%,#213b35 46% 69%,#171b18 70%);clip-path:polygon(50% 0,100% 28%,82% 63%,100% 100%,0 100%,18% 63%,0 28%);z-index:2}
.gamer.character-five .body:after{content:"";position:absolute;left:73px;top:17px;width:38px;height:72px;background:linear-gradient(#e54531 0 40%,#087b73 41% 100%);clip-path:polygon(50% 0,100% 53%,72% 100%,28% 100%,0 53%);z-index:3;filter:drop-shadow(0 2px 1px #0008)}
.gamer.character-five .body .robe-panel{display:block;left:58px;top:35px;width:68px;height:53px;border:8px solid #171918;border-radius:50%;z-index:4;clip-path:polygon(0 0,100% 0,92% 100%,8% 100%)}
.gamer.character-five .belly{left:126px;top:225px;width:145px;height:112px;background:linear-gradient(90deg,#c1b889,#e4d9a2 48%,#a69e70);border:4px solid #81795a;border-radius:39% 43% 51% 47%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%)}
.gamer.character-five .arm{width:126px;height:38px;background:linear-gradient(#c9c092,#a79f76);border-radius:21px;border-bottom:9px solid #22201d}
.gamer.character-five .arm-left{left:205px;top:207px}.gamer.character-five .arm-right{left:188px;top:220px}
.gamer.character-five .leg{width:103px;height:61px;background:#1c1d1d;border-bottom:11px solid #9e956e;border-radius:29px}
.gamer.character-five .leg.one{left:131px;top:309px;transform:rotate(4deg)}.gamer.character-five .leg.two{left:201px;top:324px;transform:rotate(-4deg)}
.gamer.character-five .leg:after{content:"";position:absolute;left:17px;bottom:-10px;width:27px;height:11px;background:#d8ce98;clip-path:polygon(0 0,100% 32%,83% 100%,14% 100%)}

/* Vape is anchored to the right hand and lifts to the mouth without crossing the face. */
.vape-prop{width:27px;height:70px;background:linear-gradient(90deg,#17191b,#42464a 45%,#0b0c0e);border:2px solid #08090a;border-radius:3px;box-shadow:inset 0 0 0 2px #292d31,0 4px 4px #0009;transform-origin:50% 91%}
.gamer.character-five .vape-prop{display:block;left:10px;top:-13px;transform:rotate(-4deg)}
.vape-tank{position:absolute;left:3px;top:-39px;width:21px;height:42px;background:linear-gradient(90deg,#111,#45484b 45%,#0b0c0d);border:2px solid #090a0b;border-radius:4px 4px 8px 8px;box-shadow:inset 0 9px 0 #17191b,inset 0 -8px 0 #151719}
.vape-tank:before,.vape-tank:after{content:"";position:absolute;left:-3px;right:-3px;height:4px;background:#0d0e0f;border-radius:2px;box-shadow:0 1px #555}.vape-tank:before{top:8px}.vape-tank:after{bottom:7px}
.vape-tank i{position:absolute;left:5px;right:5px;top:16px;height:12px;background:#777c7f66;border:1px solid #9da1a366}
.vape-mouthpiece{position:absolute;left:8px;top:-55px;width:11px;height:18px;background:#0b0c0d;border:2px solid #050506;border-radius:2px 2px 0 0}
.vape-button{position:absolute;right:-2px;top:23px;width:5px;height:11px;background:#a9322a;border:1px solid #44100d;border-radius:2px}
.vape-glow{position:absolute;right:2px;bottom:9px;width:4px;height:4px;border-radius:50%;background:#d52820;box-shadow:0 0 5px #ff4a40}
.vape-smoke{position:absolute;display:block;opacity:0;border:3px solid #d9e1df;border-bottom:0;border-left-color:transparent;border-radius:50%;filter:blur(.3px)}
.vape-smoke.smoke-a{left:8px;top:-73px;width:20px;height:25px}.vape-smoke.smoke-b{left:21px;top:-88px;width:28px;height:34px}
.gamer.character-five.typing .arm-right{animation:vapeArmLift 5.8s ease-in-out infinite!important;transform-origin:8px 50%}
.gamer.character-five.typing .vape-prop{animation:vapeTip 5.8s ease-in-out infinite!important}
.gamer.character-five.typing .vape-smoke.smoke-a{animation:vapeSmokeA 5.8s ease-out infinite}.gamer.character-five.typing .vape-smoke.smoke-b{animation:vapeSmokeB 5.8s ease-out infinite}
@keyframes vapeArmLift{0%,56%,100%{transform:rotate(17deg) translate(0,0)}65%{transform:rotate(-5deg) translate(-13px,-20px)}73%,84%{transform:rotate(-31deg) translate(-32px,-46px)}91%{transform:rotate(-3deg) translate(-10px,-15px)}}
@keyframes vapeTip{0%,67%,91%,100%{transform:rotate(-4deg)}74%,84%{transform:rotate(10deg)}}
@keyframes vapeSmokeA{0%,81%{opacity:0;transform:translate(0,0) scale(.6)}84%{opacity:.55}94%{opacity:0;transform:translate(8px,-23px) scale(1.25)}100%{opacity:0}}
@keyframes vapeSmokeB{0%,84%{opacity:0;transform:translate(0,0) scale(.5)}88%{opacity:.38}98%{opacity:0;transform:translate(13px,-26px) scale(1.3)}100%{opacity:0}}
.sailing-course-picker{display:grid;grid-template-columns:auto minmax(180px,260px) 1fr;gap:8px;align-items:center;background:#071015;border:1px solid #31586b;padding:9px 11px;margin:9px 0;color:#bfe9fb}.sailing-course-picker label{font-weight:800;letter-spacing:.7px;color:#d4f1ff}.sailing-course-picker select{background:#102936;color:#d7f4ff;border:1px solid #56839a;padding:7px 9px;font:inherit}.sailing-course-picker small{color:#9fb5bf}.sailing-overlay.hidden{display:none!important}@media(max-width:700px){.sailing-course-picker{grid-template-columns:1fr}.sailing-course-picker select{width:100%}}

/* Path of Het */
.toa-context-het{left:4%;top:52%}
.toa-het-room{position:absolute;inset:0;overflow:hidden;background:#111 url("assets/toa-het-room.png") center/cover no-repeat;z-index:18}
.toa-het-room.hidden{display:none}
.toa-het-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 48%,rgba(0,0,0,.28) 100%)}
.toa-het-player,.toa-het-teammate{position:absolute;z-index:8;left:50%;top:76%}
.toa-het-teammate{left:53%}
.toa-het-room .toa-ready-panel{z-index:30}
.toa-het-room .toa-arena-banner{z-index:28}


/* TOA mode gate and Path of Het entry fixes */
.toa-game-shell{position:relative}
.toa-game-shell.mode-pending .toa-lobby{visibility:hidden;pointer-events:none}
.toa-mode-gate{position:absolute;inset:10px;z-index:80;display:grid;place-items:center;min-height:420px;background:radial-gradient(circle at 50% 42%,#252018 0,#111015 46%,#05070b 100%);border:1px solid #795b30;box-shadow:inset 0 0 80px #000;color:#d9c18c;text-align:center}
.toa-mode-gate>div{width:min(560px,82%);padding:28px 24px;border:2px solid #9a7138;background:linear-gradient(180deg,rgba(45,31,17,.96),rgba(12,10,9,.97));box-shadow:0 12px 45px #000}
.toa-mode-gate span{font-size:10px;letter-spacing:3px;color:#b79050}.toa-mode-gate h4{margin:7px 0 10px;font-size:25px;letter-spacing:2px;color:#f1d797}.toa-mode-gate p{margin:0;line-height:1.6;color:#c2b391}.toa-mode-gate.hidden{display:none}
.toa-context-action.toa-context-het{left:3.5%;top:58%;bottom:auto;transform:none;width:auto;height:auto;max-width:190px;padding:6px 9px;font-size:10px;gap:6px}
.toa-context-action.toa-context-het kbd{min-width:21px;height:20px;font-size:10px}
@media(max-width:800px){.toa-mode-gate{min-height:300px}.toa-mode-gate h4{font-size:19px}.toa-context-action.toa-context-het{left:2%;top:57%;max-width:150px;font-size:8px}}

/* Path of Het combat inventories and weapon switching */
.toa-weapon-inventory{position:absolute;z-index:35;right:18px;bottom:190px;width:178px;padding:8px;background:linear-gradient(#332414ee,#17100bee);border:2px solid #9b7138;box-shadow:0 0 0 2px #1b1008,0 6px 18px #000b;color:#f4d98d;text-align:center}
.toa-weapon-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:5px}.toa-weapon-slots button{position:relative;height:62px;padding:3px;background:#24180f;border:1px solid #6f532d;cursor:pointer}.toa-weapon-slots button:hover,.toa-weapon-slots button.active{background:#4b3318;border-color:#f0c85d;box-shadow:inset 0 0 9px #e6ab304d}.toa-weapon-slots img{width:100%;height:42px;object-fit:contain}.toa-weapon-slots small{position:absolute;left:1px;right:1px;bottom:1px;color:#d9c18b;font-size:7px;font-weight:900;text-shadow:1px 1px #000}.toa-weapon-inventory>b{display:block;margin-top:6px;color:#8cff9a;font-size:9px;letter-spacing:.8px}
.toa-het-food{right:18px;bottom:91px}.toa-het-prayers{right:18px;bottom:18px}.toa-het-held-weapon{position:absolute;z-index:7;width:42px;height:54px;object-fit:contain;left:20px;top:23px;transform:rotate(-23deg);transform-origin:50% 80%;filter:drop-shadow(1px 2px 1px #000b);pointer-events:none}.toa-het-player.facing-left .toa-het-held-weapon,.toa-het-teammate.facing-left .toa-het-held-weapon{left:-29px;transform:scaleX(-1) rotate(-23deg)}
.toa-het-player[data-weapon="ranged"] .toa-het-held-weapon,.toa-het-teammate[data-weapon="ranged"] .toa-het-held-weapon{width:52px;height:56px}.toa-het-player[data-weapon="magic"] .toa-het-held-weapon,.toa-het-teammate[data-weapon="magic"] .toa-het-held-weapon{width:49px;height:58px}
@media(max-width:800px){.toa-weapon-inventory{right:8px;bottom:154px;width:145px}.toa-weapon-slots button{height:50px}.toa-weapon-slots img{height:33px}.toa-het-food{right:8px;bottom:78px}.toa-het-prayers{right:8px;bottom:12px}}

/* Path of Het held weapons: compact, hand-anchored OSRS proportions. */
.toa-het-held-weapon{
  z-index:12;
  width:27px;
  height:31px;
  left:21px;
  top:17px;
  object-fit:contain;
  transform:none;
  transform-origin:50% 55%;
}
/* The whole player sprite already mirrors when facing left, so do not flip the weapon twice. */
.toa-het-player.facing-left .toa-het-held-weapon,
.toa-het-teammate.facing-left .toa-het-held-weapon{
  left:21px;
  transform:none;
}
.toa-het-player[data-weapon="melee"] .toa-het-held-weapon,
.toa-het-teammate[data-weapon="melee"] .toa-het-held-weapon{
  width:25px;
  height:30px;
  left:21px;
  top:17px;
  transform:rotate(-4deg);
}
.toa-het-player[data-weapon="ranged"] .toa-het-held-weapon,
.toa-het-teammate[data-weapon="ranged"] .toa-het-held-weapon{
  width:29px;
  height:29px;
  left:20px;
  top:20px;
  transform:rotate(-8deg);
}
.toa-het-player[data-weapon="magic"] .toa-het-held-weapon,
.toa-het-teammate[data-weapon="magic"] .toa-het-held-weapon{
  width:28px;
  height:28px;
  left:20px;
  top:18px;
  transform:rotate(-9deg);
}
.toa-het-player.toa-weapon-swap .toa-het-held-weapon,
.toa-het-teammate.toa-weapon-swap .toa-het-held-weapon{
  animation:toaHetWeaponEquip .24s ease-out;
}
@keyframes toaHetWeaponEquip{
  0%{opacity:.15;scale:.65}
  70%{scale:1.12}
  100%{opacity:1;scale:1}
}


/* Path of Het guardian and health HUD */
.toa-het-boss{position:absolute;z-index:7;width:154px;height:188px;transform:translate(-50%,-78%);pointer-events:none;filter:drop-shadow(0 4px 3px #000b)}
.toa-het-boss img{width:100%;height:100%;object-fit:contain;image-rendering:auto;transform-origin:center bottom}
.toa-het-boss.facing-left img{transform:scaleX(-1)}
.toa-het-boss-hud{position:absolute;z-index:24;left:50%;top:15px;transform:translateX(-50%);width:min(420px,48%);padding:7px 10px;background:#120d08e8;border:2px solid #8f6631;box-shadow:0 0 0 2px #23170d,0 4px 12px #0009;color:#f4d78c}
.toa-het-boss-hud .toa-boss-name{display:flex;justify-content:space-between;font-size:12px;font-weight:900;letter-spacing:1px;margin-bottom:5px}
.toa-het-boss-hud .toa-boss-hp{height:13px;background:#2a120e;border:1px solid #0b0805;box-shadow:inset 0 0 0 1px #5b3721}
.toa-het-boss-hud .toa-boss-hp i{display:block;width:100%;height:100%;background:linear-gradient(#c74638,#851d1d);transition:width .2s}
.toa-het-player-hud{display:block;left:16px;top:16px;bottom:auto;z-index:24}
.toa-het-player-hud.hidden,.toa-het-boss-hud.hidden{display:none}
@media(max-width:800px){.toa-het-boss{width:112px;height:138px}.toa-het-boss-hud{width:46%;top:8px}.toa-het-player-hud{left:8px;top:8px}}


.toa-het-boss .toa-prayer-overhead{top:-18px;width:34px;height:34px;z-index:30}
.toa-het-boss[data-style=melee]{filter:drop-shadow(0 5px 4px #000b) drop-shadow(0 0 5px #d84b36aa)}
.toa-het-boss[data-style=ranged]{filter:drop-shadow(0 5px 4px #000b) drop-shadow(0 0 5px #4bbf63aa)}
.toa-het-boss[data-style=magic]{filter:drop-shadow(0 5px 4px #000b) drop-shadow(0 0 5px #5a79dbaa)}

/* Akkha attack projectiles */
.toa-akkha-projectile{position:absolute;z-index:35;left:0;top:0;pointer-events:none;display:block;will-change:transform,opacity;animation:toaAkkhaProjectileFlight .68s cubic-bezier(.18,.66,.24,1) forwards}
.toa-akkha-projectile.magic{width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fff 0 8%,#ffb1a8 12%,#f33 36%,#9c0712 67%,#350006 100%);box-shadow:0 0 7px 3px #ff3b35,0 0 18px 7px #c5001d99}
.toa-akkha-projectile.magic::before,.toa-akkha-projectile.magic::after{content:"";position:absolute;inset:4px -13px;border-radius:50%;border-top:2px solid #ffb0a8aa;transform:rotate(28deg)}
.toa-akkha-projectile.magic::after{transform:rotate(-28deg);border-color:#ff4b5daa}
.toa-akkha-projectile.ranged{width:32px;height:4px;margin:-2px 0 0 -5px;background:linear-gradient(90deg,#fff,#e9edf2 70%,#9ba4ad);border-radius:4px;box-shadow:0 0 4px #fff;transform-origin:5px 50%}
.toa-akkha-projectile.ranged::before{content:"";position:absolute;right:-7px;top:-4px;border-left:9px solid #f5f7fa;border-top:6px solid transparent;border-bottom:6px solid transparent}
.toa-akkha-projectile.ranged::after{content:"";position:absolute;left:-5px;top:-5px;width:9px;height:14px;background:linear-gradient(45deg,transparent 45%,#fff 46% 56%,transparent 57%),linear-gradient(-45deg,transparent 45%,#fff 46% 56%,transparent 57%)}
@keyframes toaAkkhaProjectileFlight{0%{transform:translate(0,0) rotate(var(--angle));opacity:0}8%{opacity:1}82%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--angle));opacity:0}}


/* Akkha combat-style switch warning */
.toa-het-boss.toa-style-switch{animation:toaAkkhaSpearStomp .85s cubic-bezier(.2,.8,.25,1);z-index:38}
.toa-het-boss.toa-style-switch img{animation:toaAkkhaStompSprite .85s ease-in-out}
@keyframes toaAkkhaSpearStomp{0%{transform:translate(-50%,-78%)}28%{transform:translate(-50%,-84%) scale(1.035)}48%{transform:translate(-50%,-72%) scale(.99)}62%{transform:translate(-50%,-78%)}100%{transform:translate(-50%,-78%)}}
@keyframes toaAkkhaStompSprite{0%,20%{filter:brightness(1)}42%{filter:brightness(1.45) saturate(1.25)}70%,100%{filter:brightness(1)}}
.toa-akkha-style-pulse{position:absolute;z-index:30;width:34px;height:18px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;pointer-events:none;box-shadow:0 0 12px currentColor,inset 0 0 9px currentColor;animation:toaAkkhaStylePulse .9s ease-out forwards}
.toa-akkha-style-pulse.melee{color:#ef5544;border-color:#ff978a}.toa-akkha-style-pulse.ranged{color:#60d779;border-color:#b0ffc0}.toa-akkha-style-pulse.magic{color:#7594ff;border-color:#c2ceff}
@keyframes toaAkkhaStylePulse{0%{width:30px;height:14px;opacity:.95}100%{width:190px;height:86px;opacity:0}}
.toa-akkha-style-label{position:absolute;z-index:40;transform:translate(-50%,-50%);padding:3px 8px;background:#110d09e8;border:1px solid currentColor;border-radius:3px;font-size:11px;letter-spacing:1.5px;text-shadow:0 2px 2px #000;pointer-events:none;animation:toaAkkhaStyleLabel 1s ease-out forwards}
.toa-akkha-style-label.melee{color:#ff8d7e}.toa-akkha-style-label.ranged{color:#8df0a1}.toa-akkha-style-label.magic{color:#9fb3ff}
@keyframes toaAkkhaStyleLabel{0%{opacity:0;transform:translate(-50%,-20%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-90%) scale(1)}}


/* Akkha room weapon orientation and player auto-attack feedback */
.toa-het-player[data-weapon="ranged"] .toa-het-held-weapon,
.toa-het-teammate[data-weapon="ranged"] .toa-het-held-weapon{
  transform:rotate(172deg);
}
.toa-het-player.toa-het-player-attacking .toa-het-held-weapon,
.toa-het-teammate.toa-het-player-attacking .toa-het-held-weapon{
  animation:toaHetWeaponStrike .5s cubic-bezier(.22,.75,.25,1);
}
.toa-het-player.toa-het-player-attacking,
.toa-het-teammate.toa-het-player-attacking{
  animation:toaHetPlayerLunge .5s ease-out;
}
@keyframes toaHetWeaponStrike{
  0%{filter:drop-shadow(1px 2px 1px #000b);}
  35%{transform:translate(7px,-5px) rotate(28deg);filter:drop-shadow(0 0 5px #fff8);}
  100%{filter:drop-shadow(1px 2px 1px #000b);}
}
@keyframes toaHetPlayerLunge{0%,100%{margin-top:0}45%{margin-top:-3px}}
/* Player-fired Akkha projectiles */
.toa-het-player-projectile{position:absolute;z-index:57;pointer-events:none;transform-origin:center;animation:toaHetPlayerShot .58s cubic-bezier(.2,.72,.25,1) forwards}
.toa-het-player-projectile.ranged{width:24px;height:4px;border-radius:4px;background:linear-gradient(90deg,#fff7c4,#f3d763 55%,#fff);box-shadow:0 0 5px #fff7b3,0 0 10px rgba(255,226,104,.7);transform:translate(-50%,-50%) rotate(var(--angle))}
.toa-het-player-projectile.ranged:after{content:"";position:absolute;right:-4px;top:-3px;border-left:7px solid #fff1a5;border-top:5px solid transparent;border-bottom:5px solid transparent}
.toa-het-player-projectile.magic{width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff7c5 0 15%,#ffb338 35%,#ef5b17 68%,transparent 72%);box-shadow:0 0 8px #ff9d22,0 0 17px rgba(255,89,16,.85)}
.toa-het-player-projectile.magic:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(255,177,57,.5);animation:toaMagicPulse .25s linear infinite}
@keyframes toaHetPlayerShot{0%{opacity:0;translate:0 0;scale:.65}12%{opacity:1}88%{opacity:1}100%{opacity:0;translate:var(--dx) var(--dy);scale:1}}
@keyframes toaMagicPulse{50%{transform:scale(1.35);opacity:.3}}

/* Akkha visibility reset and illustrated raid-mode gate */
.toa-het-room:not(.hidden) .toa-het-player:not(.toa-dead){display:block!important;visibility:visible!important;opacity:1!important}
.toa-mode-gate{
  inset:0;
  min-height:0;
  background:#120d07 url("assets/toa-raid-mode-mural.png") center/cover no-repeat;
  border:0;
  box-shadow:inset 0 0 70px rgba(0,0,0,.48);
}
.toa-mode-gate:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,3,1,.08),rgba(5,3,1,.16));pointer-events:none}
.toa-mode-gate>div{position:relative;z-index:1;width:min(560px,72%);padding:26px 30px;border:2px solid #a87b3d;background:rgba(23,14,8,.94);box-shadow:0 12px 40px #000, inset 0 0 0 2px rgba(246,204,111,.12)}
.toa-mode-gate span{color:#bd9658}.toa-mode-gate h4{color:#ffdc83;text-shadow:2px 2px #291608}.toa-mode-gate p{color:#f2d99c}
@media(max-width:800px){.toa-mode-gate{background-position:center}.toa-mode-gate>div{width:82%;padding:20px 16px}}


/* Akkha shadow / quadrant phases */
.toa-het-shadows{position:absolute;inset:0;z-index:9;pointer-events:none}
.toa-het-shadows.hidden{display:none}
.toa-akkha-shadow{position:absolute;width:104px;height:132px;transform:translate(-50%,-70%);pointer-events:auto;cursor:pointer;filter:grayscale(.15) brightness(.66) sepia(.25) hue-rotate(175deg) saturate(1.7) drop-shadow(0 0 8px #6b74ffcc);opacity:.88;transition:filter .16s,opacity .16s;outline:0!important;box-shadow:none!important;border:0!important;background:transparent!important}
.toa-akkha-shadow:hover,.toa-akkha-shadow.selected{filter:grayscale(.05) brightness(.9) sepia(.15) hue-rotate(175deg) saturate(2) drop-shadow(0 0 13px #aab2ff);transform:translate(-50%,-70%);outline:0!important;box-shadow:none!important}
.toa-akkha-shadow img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.toa-akkha-shadow.dead{display:none!important}
.toa-akkha-shadow .shadow-hp{position:absolute;left:10%;right:10%;bottom:0;height:7px;background:#260d12;border:1px solid #090608;box-shadow:0 0 0 1px #67474e}
.toa-akkha-shadow .shadow-hp i{display:block;height:100%;background:linear-gradient(#8b8fff,#4249ad);width:100%;transition:width .15s}
.toa-akkha-shadow .shadow-label{position:absolute;left:50%;top:-5px;transform:translate(-50%,-100%);white-space:nowrap;padding:2px 5px;background:#090712d9;border:1px solid #777ee0;color:#d9dcff;font-size:9px;letter-spacing:1px;text-shadow:0 1px 2px #000}
.toa-akkha-shadow-hit{animation:toaShadowHit .25s ease-out}
@keyframes toaShadowHit{0%{filter:brightness(2.4) drop-shadow(0 0 15px #fff)}100%{}}
.toa-het-quadrant-glow{position:absolute;z-index:3;pointer-events:none;border:0;overflow:hidden;opacity:.82;mix-blend-mode:screen;background:radial-gradient(ellipse at 54% 52%,rgba(255,225,139,.31) 0%,rgba(235,186,82,.20) 36%,rgba(197,132,38,.10) 59%,rgba(163,97,20,0) 79%);box-shadow:inset 0 0 28px rgba(255,225,145,.10),0 0 18px rgba(229,169,70,.10);filter:blur(.35px);animation:toaQuadrantPulse 2.2s ease-in-out infinite alternate,toaQuadrantArrive .38s ease-out both}
.toa-het-quadrant-glow:before{content:"";position:absolute;inset:8%;border-radius:inherit;background:radial-gradient(ellipse at center,rgba(255,238,183,.15),rgba(224,173,71,.05) 52%,transparent 76%);filter:blur(5px)}
.toa-het-quadrant-glow b{position:absolute;width:3px;height:3px;border-radius:50%;background:#ffe8a4;box-shadow:0 0 5px #e9b85b;opacity:0;animation:toaQuadrantDust 2.8s linear infinite}
.toa-het-quadrant-glow b:nth-child(1){left:18%;top:76%;animation-delay:-.2s}.toa-het-quadrant-glow b:nth-child(2){left:36%;top:64%;animation-delay:-1.1s}.toa-het-quadrant-glow b:nth-child(3){left:57%;top:82%;animation-delay:-1.8s}.toa-het-quadrant-glow b:nth-child(4){left:72%;top:60%;animation-delay:-.7s}.toa-het-quadrant-glow b:nth-child(5){left:45%;top:44%;animation-delay:-2.3s}.toa-het-quadrant-glow b:nth-child(6){left:80%;top:78%;animation-delay:-1.5s}
.toa-het-quadrant-glow.nw{left:20%;top:20%;width:29%;height:29%;border-radius:70% 18% 18% 18%}
.toa-het-quadrant-glow.ne{left:51%;top:20%;width:29%;height:29%;border-radius:18% 70% 18% 18%}
.toa-het-quadrant-glow.sw{left:20%;top:51%;width:29%;height:29%;border-radius:18% 18% 18% 70%}
.toa-het-quadrant-glow.se{left:51%;top:51%;width:29%;height:29%;border-radius:18% 18% 70% 18%}
@keyframes toaQuadrantPulse{from{opacity:.66;filter:brightness(.94) blur(.35px)}to{opacity:.92;filter:brightness(1.12) blur(.35px)}}
@keyframes toaQuadrantArrive{from{opacity:0;transform:scale(.94)}to{transform:scale(1)}}
@keyframes toaQuadrantDust{0%{opacity:0;transform:translateY(8px) scale(.7)}22%{opacity:.72}72%{opacity:.35}100%{opacity:0;transform:translateY(-24px) translateX(5px) scale(1.15)}}
.toa-shadow-phase-notice{position:absolute;z-index:45;left:50%;top:22%;transform:translate(-50%,-50%);padding:7px 13px;background:#100b18eb;border:2px solid #8d91ef;color:#ececff;font-weight:900;letter-spacing:1px;text-align:center;text-shadow:0 2px 2px #000;box-shadow:0 0 18px #676fff88;animation:toaShadowNotice 2.4s ease-out forwards;pointer-events:none}
@keyframes toaShadowNotice{0%{opacity:0;transform:translate(-50%,-60%) scale(.9)}15%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-40%) scale(1.02)}}
@media(max-width:800px){.toa-akkha-shadow{width:74px;height:94px}}
.toa-akkha-shadow{appearance:none;border:0;background:transparent;padding:0;font:inherit}

/* Akkha shadow interaction stability and charged quadrant attacks */
.toa-akkha-shadow,
.toa-akkha-shadow:hover,
.toa-akkha-shadow:focus,
.toa-akkha-shadow:focus-visible,
.toa-akkha-shadow:active,
.toa-akkha-shadow.selected,
.toa-akkha-shadow.charging{
  appearance:none!important;
  -webkit-appearance:none!important;
  transform:translate(-50%,-70%)!important;
  width:104px!important;height:132px!important;
  margin:0!important;padding:0!important;
  border:0!important;outline:0!important;outline-offset:0!important;
  border-radius:0!important;background:transparent!important;
  box-shadow:none!important;
  animation:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.toa-akkha-shadow:hover,.toa-akkha-shadow:focus,.toa-akkha-shadow:active{filter:grayscale(.15) brightness(.66) sepia(.25) hue-rotate(175deg) saturate(1.7) drop-shadow(0 0 8px #6b74ffcc)!important}
.toa-akkha-shadow.selected{filter:grayscale(.08) brightness(.78) sepia(.2) hue-rotate(175deg) saturate(1.85) drop-shadow(0 0 10px #8f98ffcc)!important}
.toa-akkha-shadow img{display:block!important;border:0!important;outline:0!important;transform:none!important;pointer-events:none!important;user-select:none!important;-webkit-user-drag:none!important}
.toa-akkha-shadow .shadow-charge{position:absolute;left:7%;right:7%;top:-17px;height:8px;background:#170b08;border:1px solid #d59d42;box-shadow:0 0 0 1px #241207,0 0 7px #e06f25aa;pointer-events:none;overflow:hidden}
.toa-akkha-shadow .shadow-charge i{display:block;height:100%;background:linear-gradient(90deg,#b52418,#ff8f24,#ffe470);transition:width .09s linear;box-shadow:0 0 7px #ff8d25}
.toa-akkha-shadow.slamming img{animation:toaShadowSpearSlam .62s cubic-bezier(.2,.8,.2,1)!important;transform-origin:50% 88%!important}
@keyframes toaShadowSpearSlam{0%,100%{transform:translateY(0)}38%{transform:translateY(-7px) rotate(-3deg)}58%{transform:translateY(7px) rotate(2deg)}75%{transform:translateY(0)}}
.toa-shadow-fire-wave{position:absolute;z-index:16;pointer-events:none;width:30%;height:30%;background:radial-gradient(ellipse at center,rgba(255,245,140,.9) 0 7%,rgba(255,136,28,.82) 18%,rgba(220,45,12,.58) 43%,rgba(120,15,5,.16) 66%,transparent 74%);filter:drop-shadow(0 0 12px #ff6a16);mix-blend-mode:screen;animation:toaShadowFireWave 1.02s ease-out both}
.toa-shadow-fire-wave.nw{left:20%;top:20%;border-radius:70% 8% 8% 8%;transform-origin:100% 100%}
.toa-shadow-fire-wave.ne{left:50%;top:20%;border-radius:8% 70% 8% 8%;transform-origin:0 100%}
.toa-shadow-fire-wave.sw{left:20%;top:50%;border-radius:8% 8% 8% 70%;transform-origin:100% 0}
.toa-shadow-fire-wave.se{left:50%;top:50%;border-radius:8% 8% 70% 8%;transform-origin:0 0}
@keyframes toaShadowFireWave{0%{opacity:0;transform:scale(.08)}18%{opacity:1}75%{opacity:.92;transform:scale(1.05)}100%{opacity:0;transform:scale(1.16)}}
@media(max-width:800px){.toa-akkha-shadow,.toa-akkha-shadow:hover,.toa-akkha-shadow:focus,.toa-akkha-shadow:active,.toa-akkha-shadow.selected{width:74px!important;height:94px!important}}

/* Definitive Akkha shadow target reset: non-native hit areas cannot acquire browser hover/focus frames. */
.toa-akkha-shadow, .toa-akkha-shadow *,
.toa-akkha-shadow:hover, .toa-akkha-shadow:active, .toa-akkha-shadow:focus, .toa-akkha-shadow:focus-visible {
  box-sizing:border-box!important; border:0!important; outline:0!important; box-shadow:none!important;
  background-color:transparent!important; border-radius:0!important; margin:0!important; padding:0!important;
  transform:translate(-50%,-70%)!important; -webkit-tap-highlight-color:transparent!important;
}
.toa-akkha-shadow{display:block!important;overflow:visible!important;user-select:none!important;-webkit-user-select:none!important}
.toa-akkha-shadow img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important}
.toa-akkha-shadow .shadow-label,.toa-akkha-shadow .shadow-charge,.toa-akkha-shadow .shadow-hp{background-color:initial!important}

/* Akkha memory special: floor-symbol cues and quadrant blasts */
.toa-akkha-symbol-cue{position:absolute;z-index:18;width:66px;height:66px;transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(255,244,174,.72) 0 13%,rgba(255,177,45,.42) 28%,rgba(245,104,18,.17) 51%,transparent 72%);box-shadow:0 0 12px rgba(255,218,102,.95),0 0 28px rgba(255,139,31,.65),inset 0 0 13px rgba(255,250,206,.85);animation:toaAkkhaSymbolCue .72s ease-in-out infinite alternate;mix-blend-mode:screen}
.toa-akkha-symbol-cue:before,.toa-akkha-symbol-cue:after{content:"";position:absolute;inset:10px;border:2px solid rgba(255,226,131,.8);border-radius:50%;animation:toaAkkhaSymbolRing 1.1s ease-out infinite}.toa-akkha-symbol-cue:after{animation-delay:.42s}
.toa-akkha-symbol-cue b{position:absolute;left:50%;top:-21px;transform:translateX(-50%);padding:3px 7px;background:rgba(24,13,5,.88);border:1px solid #b97823;color:#ffe5a1;font:800 9px Georgia,serif;letter-spacing:1px;white-space:nowrap;text-shadow:1px 1px #000}.toa-akkha-symbol-cue span{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);color:#fff0bd;font:800 9px Georgia,serif;text-shadow:1px 1px 2px #000;white-space:nowrap}
.toa-akkha-symbol-blast{position:absolute;z-index:15;pointer-events:none;width:30%;height:30%;background:radial-gradient(ellipse at center,rgba(255,250,206,.98) 0 6%,rgba(255,194,58,.9) 17%,rgba(255,86,28,.72) 39%,rgba(163,27,16,.34) 61%,transparent 76%);filter:drop-shadow(0 0 15px #ff9a2a);mix-blend-mode:screen;animation:toaAkkhaSymbolBlast .88s cubic-bezier(.12,.62,.24,1) both}
.toa-akkha-symbol-blast.nw{left:20%;top:20%;border-radius:72% 8% 8% 8%;transform-origin:100% 100%}.toa-akkha-symbol-blast.ne{left:50%;top:20%;border-radius:8% 72% 8% 8%;transform-origin:0 100%}.toa-akkha-symbol-blast.sw{left:20%;top:50%;border-radius:8% 8% 8% 72%;transform-origin:100% 0}.toa-akkha-symbol-blast.se{left:50%;top:50%;border-radius:8% 8% 72% 8%;transform-origin:0 0}
@keyframes toaAkkhaSymbolCue{from{opacity:.72;transform:translate(-50%,-50%) scale(.88)}to{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes toaAkkhaSymbolRing{0%{opacity:.9;transform:scale(.45)}100%{opacity:0;transform:scale(1.7)}}
@keyframes toaAkkhaSymbolBlast{0%{opacity:0;transform:scale(.18)}18%{opacity:1}62%{opacity:.95;transform:scale(1.12)}100%{opacity:0;transform:scale(1.35);filter:blur(3px) drop-shadow(0 0 22px #ff6322)}}

/* Akkha final stand */
#toaHetBoss.toa-final-stand{filter:drop-shadow(0 0 10px rgba(255,235,170,.8));}
#toaHetBoss.toa-final-stand #toaHetBossPrayer{filter:drop-shadow(0 0 5px #fff);}
#toaHetBoss.toa-final-stand::after{content:"";position:absolute;left:58%;top:-13%;width:26px;height:26px;background:url('assets/toa-pray-ranged.png') center/contain no-repeat;filter:drop-shadow(0 0 5px #fff);z-index:8;}
.toa-unstable-orb{position:absolute;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:16;background:radial-gradient(circle at 35% 30%,#fff 0 22%,#eaf6ff 23% 48%,#b7d6ec 49% 70%,rgba(160,205,235,.15) 71%);box-shadow:0 0 7px 3px rgba(235,250,255,.95),0 0 17px 7px rgba(135,205,255,.45);}
.toa-unstable-orb::after{content:"➤";position:absolute;left:50%;top:25px;transform:translateX(-50%) rotate(var(--orb-angle));font-size:14px;line-height:1;color:#f4fbff;text-shadow:0 1px 2px #102334,0 0 5px #fff;}
.toa-final-stand-flash{position:absolute;inset:0;pointer-events:none;z-index:13;background:radial-gradient(circle at var(--fx-x) var(--fx-y),rgba(255,248,210,.62),rgba(255,248,210,0) 13%);animation:toaFinalFlash .65s ease-out forwards;}
@keyframes toaFinalFlash{from{opacity:1;transform:scale(.65)}to{opacity:0;transform:scale(1.25)}}

/* Repo Combat Survival achievement rewards */
.combat-cape-achievement-art{padding:3px;object-fit:contain}.bucket-achievement-art{padding:2px;object-fit:contain}.bucket-bank-art{object-fit:contain!important;padding:2px}.pet-visual>.pet-bucket-helm{position:absolute!important;z-index:5!important;left:var(--hat-x,50%)!important;top:var(--hat-y,20%)!important;width:var(--hat-w,42%)!important;height:auto!important;transform:translate(-50%,-58%) rotate(var(--hat-r,0deg))!important;transform-origin:50% 80%!important;object-fit:contain!important;pointer-events:none!important;filter:drop-shadow(0 2px 2px #0009)!important}.pet-visual>.pet-infernal-cape{object-fit:contain!important}

/* Path of Apmeken room */
.toa-apmeken-room{position:absolute;inset:0;overflow:hidden;background:#111 url("assets/toa-apmeken-room.png") center/cover no-repeat;z-index:18}
.toa-apmeken-room.hidden{display:none}
.toa-apmeken-room .toa-ready-panel{z-index:30}
.toa-apmeken-room .toa-arena-banner{z-index:28}
.toa-apmeken-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 65px #000a;z-index:2}
.toa-apmeken-player,.toa-apmeken-teammate{position:absolute;left:48%;top:73%;z-index:16}
.toa-apmeken-teammate{left:52%}
.toa-apmeken-room:not(.hidden) .toa-apmeken-player{display:block!important;visibility:visible!important;opacity:1!important}
.toa-context-action.toa-context-apmeken{right:4%;left:auto;top:59%;bottom:auto;transform:none;width:auto;height:auto;max-width:210px;padding:6px 9px;font-size:10px;gap:6px}
.toa-context-action.toa-context-apmeken kbd{min-width:21px;height:20px;font-size:10px}
@media(max-width:800px){.toa-context-action.toa-context-apmeken{right:2%;top:58%;max-width:170px;font-size:8px;padding:5px 7px}}


/* Illustrated Repo Company header crest */
.repo-logo-wrap{display:flex;align-items:center;line-height:0;min-width:0}
.repo-header-logo{display:block;width:clamp(210px,23vw,330px);height:auto;max-height:142px;object-fit:contain;object-position:left center;filter:drop-shadow(0 5px 7px rgba(0,0,0,.72));image-rendering:auto}
header>div:first-child{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
header .tag{margin-top:2px;padding-left:8px;text-shadow:0 2px 2px rgba(0,0,0,.8)}
@media(max-width:760px){.repo-header-logo{width:clamp(170px,48vw,245px);max-height:110px}header .tag{font-size:11px;max-width:230px;padding-left:3px}.character-box{padding-top:8px}}
@media(max-width:500px){header{gap:8px!important;padding:12px!important}.repo-header-logo{width:160px}.character-button{padding:9px 8px!important;font-size:10px}.character-summary{min-width:125px!important;padding:8px!important}}


/* Centred illustrated Repo Company masthead and themed account controls */
.repo-main-header{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  width:100%;
  padding:12px 20px 18px!important;
  background:
    linear-gradient(rgba(8,10,9,.92),rgba(5,7,6,.96)),
    repeating-linear-gradient(90deg,transparent 0 78px,rgba(207,157,62,.04) 79px 80px)!important;
  border-bottom:4px ridge #6f562d!important;
  box-shadow:inset 0 -12px 28px rgba(0,0,0,.45),0 5px 16px rgba(0,0,0,.45);
}
.repo-header-centre{
  width:min(720px,100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  text-align:center;
}
.repo-main-header .repo-logo-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  line-height:0;
}
.repo-main-header .repo-header-logo{
  width:clamp(293px,36vw,488px)!important;
  max-width:96vw;
  max-height:none!important;
  height:auto;
  object-position:center!important;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.82));
}
.repo-main-header .tag{display:none!important}
.repo-main-header .character-box{
  min-width:0!important;
  width:auto;
  padding:0!important;
  margin-top:-5px;
  text-align:center!important;
  position:relative;
  z-index:2;
}
.repo-main-header .character-button{
  width:auto!important;
  min-width:275px;
  margin:0!important;
  padding:11px 30px!important;
  border:4px ridge #b58b3d!important;
  border-radius:3px!important;
  background:
    linear-gradient(180deg,#4b1820 0%,#2a0e13 48%,#16090b 100%)!important;
  color:#f4cf72!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:14px!important;
  font-weight:900!important;
  letter-spacing:1.3px!important;
  text-shadow:0 2px 0 #000,0 0 5px rgba(244,207,114,.25)!important;
  box-shadow:inset 0 0 0 2px #171717,0 5px 0 #080808,0 8px 14px rgba(0,0,0,.6)!important;
}
.repo-main-header .character-button:hover{
  transform:translateY(-1px);
  background:linear-gradient(180deg,#68242e 0%,#371219 48%,#1b0a0d 100%)!important;
  color:#ffe5a1!important;
  border-color:#d0a94f!important;
}
.repo-main-header .character-button:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px #171717,0 2px 0 #080808!important}
.repo-main-header .signed-in-controls{
  justify-content:center!important;
  align-items:center!important;
  gap:8px!important;
}
.repo-main-header .character-summary,.repo-main-header .admin-button{
  border:3px ridge #9e7937!important;
  background:linear-gradient(#302619,#15110c)!important;
  color:#eed48c!important;
  box-shadow:0 4px 0 #080706,0 6px 12px rgba(0,0,0,.45)!important;
}
@media(max-width:700px){
  .repo-main-header{padding:8px 8px 14px!important}
  .repo-main-header .repo-header-logo{width:clamp(300px,92vw,470px)!important}
  .repo-main-header .character-button{min-width:min(275px,88vw);padding:10px 16px!important;font-size:12px!important}
}

/* Header alignment refinement */
.repo-main-header .repo-header-logo{
  width:clamp(360px,44vw,590px)!important;
}
.repo-main-header .character-box{
  width:100%!important;
  display:flex;
  justify-content:center;
  align-items:center;
}
.repo-main-header .signed-in-controls{
  width:100%!important;
  margin-inline:auto!important;
  justify-content:center!important;
}
@media(max-width:700px){
  .repo-main-header .repo-header-logo{width:clamp(285px,86vw,430px)!important}
}

/* Animated landscape masthead backdrop */
.repo-main-header{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-image:
    linear-gradient(180deg,rgba(5,7,8,.16) 0%,rgba(5,7,8,.25) 48%,rgba(5,7,8,.54) 100%),
    url("assets/repo-header-landscape.gif")!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:center center,center 54%!important;
  background-size:cover,cover!important;
}
.repo-main-header::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  box-shadow:inset 0 0 42px rgba(0,0,0,.34),inset 0 -28px 42px rgba(0,0,0,.42);
}
.repo-main-header .repo-header-centre{
  position:relative;
  z-index:1;
}

/* Compact masthead: 20% smaller than the animated-header version */
.repo-main-header{
  padding:7px 16px 10px!important;
  border-bottom-width:3px!important;
}
.repo-main-header .repo-header-centre{
  width:min(620px,100%);
  gap:0;
}
.repo-main-header .repo-header-logo{
  width:clamp(288px,35.2vw,472px)!important;
}
.repo-main-header .character-box{
  margin-top:-11px;
  transform:scale(.92);
  transform-origin:top center;
  margin-bottom:-3px;
}
@media(max-width:700px){
  .repo-main-header{padding:6px 7px 9px!important}
  .repo-main-header .repo-header-logo{width:clamp(228px,69vw,344px)!important}
  .repo-main-header .character-box{margin-top:-8px;transform:scale(.9);margin-bottom:-4px}
}


/* Full-screen signed-out landing screen */
body.repo-logged-out{
  overflow:hidden!important;
  min-height:100dvh;
  background:#111!important;
}
body.repo-logged-out > :not(.repo-main-header):not(#characterDialog):not(#toast){
  display:none!important;
}
body.repo-logged-out .repo-main-header{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:100vh!important;
  padding:clamp(18px,4vh,50px) 20px!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background-image:
    linear-gradient(180deg,rgba(5,7,8,.08) 0%,rgba(5,7,8,.12) 48%,rgba(5,7,8,.32) 100%),
    url("assets/repo-header-landscape.gif")!important;
  background-position:center center,center center!important;
  background-repeat:no-repeat,no-repeat!important;
  background-size:cover,cover!important;
}
body.repo-logged-out .repo-main-header::before{
  box-shadow:inset 0 0 70px rgba(0,0,0,.2),inset 0 -45px 80px rgba(0,0,0,.26)!important;
}
body.repo-logged-out .repo-header-centre{
  width:min(900px,96vw)!important;
  min-height:0!important;
  gap:clamp(4px,1vh,12px)!important;
  justify-content:center!important;
  transform:translateY(-1vh);
}
body.repo-logged-out .repo-main-header .repo-header-logo{
  width:clamp(300px,45vw,570px)!important;
  max-width:92vw!important;
  max-height:54vh!important;
  object-fit:contain!important;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.78))!important;
}
body.repo-logged-out .repo-main-header .character-box{
  width:auto!important;
  margin:clamp(8px,1.5vh,18px) 0 0!important;
  padding:0!important;
  transform:none!important;
}
body.repo-logged-out .repo-main-header .character-button{
  min-width:min(330px,88vw)!important;
  padding:13px 30px!important;
  font-size:clamp(12px,1.15vw,16px)!important;
}
@media(max-width:700px){
  body.repo-logged-out .repo-main-header{padding:18px 10px!important}
  body.repo-logged-out .repo-main-header .repo-header-logo{width:clamp(250px,76vw,440px)!important;max-height:50vh!important}
  body.repo-logged-out .repo-main-header .character-box{margin-top:10px!important}
}

/* Signed-out landing: centred controls over the icy animated background */
body.repo-logged-out .repo-main-header{
  background-image:
    linear-gradient(180deg,rgba(5,7,8,.04) 0%,rgba(5,7,8,.08) 52%,rgba(5,7,8,.24) 100%),
    url("assets/repo-signed-out-background.gif")!important;
  background-position:center center,center center!important;
  background-size:cover,cover!important;
}
body.repo-logged-out .repo-header-centre{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  margin:0 auto!important;
}
body.repo-logged-out .repo-main-header .repo-logo-wrap{
  width:100%!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
}
body.repo-logged-out .repo-main-header .character-box{
  width:100%!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  margin:clamp(8px,1.5vh,18px) auto 0!important;
}
body.repo-logged-out .repo-main-header .character-button{
  display:block!important;
  margin:0 auto!important;
  flex:none!important;
}
@media(max-width:700px){
  body.repo-logged-out .repo-main-header .character-box{
    margin:10px auto 0!important;
  }
}

/* Signed-in masthead spacing: keep account controls clear of the logo */
body:not(.repo-logged-out) .repo-main-header .character-box{
  margin-top:8px!important;
  margin-bottom:0!important;
}
\n\n

/* Homepage daily XP leaderboard — parchment scroll */
.daily-xp-board{
  position:relative;
  width:calc(100% - 18px);
  margin:30px auto 22px;
  padding:22px 15px 18px;
  border:0;
  background:
    radial-gradient(circle at 18% 24%,rgba(117,74,30,.10),transparent 28%),
    radial-gradient(circle at 78% 74%,rgba(117,74,30,.09),transparent 30%),
    repeating-linear-gradient(0deg,rgba(91,58,24,.025) 0 1px,transparent 1px 4px),
    linear-gradient(90deg,#c7a96d 0,#ead8a2 7%,#f0dfae 50%,#e4cd93 93%,#b99559 100%);
  color:#392412;
  box-shadow:0 8px 12px #0007,inset 0 0 18px rgba(91,54,18,.25);
  isolation:isolate;
}
.daily-xp-board:before,.daily-xp-board:after{
  content:"";
  position:absolute;
  left:-8px;
  right:-8px;
  height:20px;
  z-index:-1;
  border:1px solid #8b672f;
  background:linear-gradient(#d9bd7d,#f1dda7 42%,#b68d4d 46%,#d6b977 72%,#8c642f);
  box-shadow:0 3px 5px #0006,inset 0 1px 1px #fff4c2;
}
.daily-xp-board:before{top:-13px;border-radius:48% 52% 34% 38%/75% 75% 35% 35%;transform:rotate(-.7deg)}
.daily-xp-board:after{bottom:-13px;border-radius:34% 38% 48% 52%/35% 35% 75% 75%;transform:rotate(.6deg)}
.daily-xp-heading{
  padding:2px 5px 10px;
  text-align:center;
  border-bottom:1px solid rgba(91,55,24,.28);
  background:none;
}
.daily-xp-heading span{
  display:block;
  color:#67291e;
  font:900 15px/1.15 Georgia,serif;
  letter-spacing:2px;
  text-shadow:0 1px #fff1c2;
}
.daily-xp-list{padding:7px 1px 1px}
.daily-xp-entry{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  min-height:32px;
  padding:5px 4px;
  border-bottom:1px solid rgba(109,74,34,.18);
  background:transparent;
}
.daily-xp-entry:last-child{border-bottom:0}
.daily-xp-entry.first{background:linear-gradient(90deg,rgba(157,116,46,.14),transparent)}
.daily-xp-rank{
  display:block;
  width:auto;height:auto;
  border:0;background:none;
  color:#4a2d16;
  font:700 12px/1 Georgia,serif;
  text-align:center;
  text-shadow:none;
}
.daily-xp-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#3c2513;
  font:700 12px/1.2 Georgia,serif;
}
.daily-xp-total{
  white-space:nowrap;
  color:#4f2f17;
  font:700 12px/1.2 Georgia,serif;
}
.daily-xp-empty{padding:18px 8px;text-align:center;color:#684a2a;font-size:11px;line-height:1.45}
@media(max-width:1100px){.daily-xp-board{max-width:520px}}

/* Shared Harmony skill */
.harmony-card #count{color:#5a2c13;text-shadow:0 2px 0 #f8e5a5,0 4px 0 #8a5a25;font-family:Georgia,serif}
.harmony-card .harmony-details li{display:flex;justify-content:space-between;gap:12px;align-items:center}
.harmony-card .harmony-details li span{color:#5b4028}
.harmony-card .harmony-details li b{text-align:right;color:#6b2b18;font-size:12px}
.harmony-card .bar i{background:linear-gradient(90deg,#8f5b22,#e6bd55,#fff0a0)}
.harmony-card .row b{color:#6b2b18}
.harmony-skill-icon{display:grid;place-items:center;width:55px;height:55px;flex:0 0 55px;border:2px solid #c99a3e;border-radius:50%;background:radial-gradient(circle,#fff4b1,#9d6825 70%,#3a210d);color:#fff7bd;font-size:30px;text-shadow:0 2px 2px #000}
.public-skill .public-combat-icon{display:grid;place-items:center}


/* Harmony skill unlock rewards */
.harmony-unlocks{margin-top:14px;border-top:1px solid #9a7747;padding-top:10px}
.harmony-unlocks-title{margin-bottom:7px;color:#6b2b18;font:700 12px/1.2 Georgia,serif;letter-spacing:1.5px;text-align:left}
.harmony-unlock{display:grid;grid-template-columns:27px 42px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:58px;padding:7px 6px;border-top:1px solid #b79a69;border-bottom:1px solid #b79a69;background:linear-gradient(90deg,#6f4b2114,#fff4c735,#6f4b2114)}
.harmony-unlock-level{display:grid;place-items:center;width:26px;height:26px;border:1px solid #70401f;border-radius:50%;background:#4d2615;color:#f5dda0;font:700 13px Georgia,serif;box-shadow:inset 0 0 0 2px #c49445}
.harmony-unlock img{width:38px;height:48px;object-fit:contain;filter:drop-shadow(0 2px 1px #3d220a88)}
.harmony-unlock-copy{min-width:0;display:flex;flex-direction:column;text-align:left}
.harmony-unlock-copy b{color:#4f2715;font:700 11px/1.2 Georgia,serif}
.harmony-unlock-copy small{margin-top:2px;color:#755738;font:10px/1.25 Georgia,serif}
.harmony-unlock>strong{color:#8a2f21;font:700 9px Georgia,serif;letter-spacing:.6px}
.harmony-unlock.locked img{filter:grayscale(1) sepia(.2) opacity(.55) drop-shadow(0 2px 1px #3d220a66)}
.harmony-unlock.locked .harmony-unlock-copy{opacity:.72}
.harmony-unlock.unlocked{background:linear-gradient(90deg,#6c9e4520,#fff4c74d,#6c9e4520)}
.harmony-unlock.unlocked>strong{color:#35621f}
.pet-visual>.pet-harmony-cape{width:72%!important;height:88%!important;top:38%!important;object-fit:fill!important}
.pet-visual[data-pet-ground="hover"]>.pet-harmony-cape{width:64%!important;height:79%!important;top:42%!important}
.pet-visual[data-pet-personality="heavy"]>.pet-harmony-cape{width:76%!important;height:91%!important;top:37%!important}
.pet-visual[data-pet-personality="skitter"]>.pet-harmony-cape{width:59%!important;height:70%!important;top:45%!important}
.harmony-cape-bank-art{object-fit:contain!important}


/* Harmony branding and restrained harmonize feedback */
.harmony-heading{display:flex;align-items:center;justify-content:center;gap:9px}
.harmony-heading img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 2px 1px #4b220a88)}
.harmony-skill-logo{width:55px!important;height:55px!important;object-fit:contain!important;flex:0 0 55px;filter:drop-shadow(0 2px 2px #2a1308aa)}
.harmony-button{isolation:isolate;display:flex!important;flex-direction:column;align-items:center;justify-content:center;padding:16px!important}
.harmony-button-logo{position:relative;z-index:2;display:grid;place-items:center;width:104px;height:104px;margin:-4px auto 7px}
.harmony-button-logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px #2b1209aa);transition:transform .18s ease,filter .18s ease}
.harmony-button strong{position:relative;z-index:2;font:900 22px/1 Georgia,serif!important;letter-spacing:2px!important;color:#fff0b5!important;text-shadow:2px 3px #37180c!important}
.harmony-button em{z-index:2;bottom:13px!important;color:#f3d78f!important}
.harmony-button .harmony-wave{position:absolute;z-index:1;left:50%;top:48%;width:96px;height:96px;border:2px solid #ffe7a666;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.7);pointer-events:none}
.harmony-button.harmonizing .harmony-button-logo img{animation:harmonyLogoPulse .48s ease-out}
.harmony-button.harmonizing .harmony-wave{animation:harmonyWave .5s ease-out}
.harmony-button.harmonizing:after{content:'✦';position:absolute;z-index:3;right:31px;top:31px;color:#fff6c8;font-size:24px;text-shadow:0 0 9px #fff0a0;animation:harmonyTwinkle .5s ease-out;pointer-events:none}
@keyframes harmonyLogoPulse{0%{transform:scale(.96)}42%{transform:scale(1.07);filter:drop-shadow(0 5px 4px #2b1209aa) drop-shadow(0 0 13px #ffe48e)}100%{transform:scale(1)}}
@keyframes harmonyWave{0%{opacity:.65;transform:translate(-50%,-50%) scale(.72)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}
@keyframes harmonyTwinkle{0%{opacity:0;transform:scale(.4) rotate(0)}35%{opacity:1;transform:scale(1.08) rotate(20deg)}100%{opacity:0;transform:scale(.7) rotate(45deg)}}
@media (prefers-reduced-motion:reduce){.harmony-button.harmonizing .harmony-button-logo img,.harmony-button.harmonizing .harmony-wave,.harmony-button.harmonizing:after{animation:none}}


/* Harmony sound control and Fredo unlock */
.harmony-sound-toggle{display:inline-flex;align-items:center;justify-content:center;gap:5px;margin:7px auto 1px;padding:3px 8px;border:1px solid #76502b55;border-radius:10px;color:#76502b;font:700 8px/1 Georgia,serif;letter-spacing:.7px;cursor:pointer;opacity:.72;transition:opacity .15s ease,background .15s ease}
.harmony-sound-toggle:hover{opacity:1;background:#fff2bd24}
.harmony-sound-toggle input{position:absolute;opacity:0;pointer-events:none}
.harmony-sound-toggle span{font-size:11px}
.harmony-sound-toggle input:not(:checked)~span,.harmony-sound-toggle input:not(:checked)~b{opacity:.38;text-decoration:line-through}
.harmony-unlocks .harmony-unlock+.harmony-unlock{margin-top:6px}
.harmony-unlock img[alt="Fredo the Friendly Otter"]{width:43px;height:43px}
.pet-visual[data-pet-id="pet_fredo"]{--pet-scale:1.02}
.pet-visual[data-pet-id="pet_fredo"] .fredo-body{position:relative;display:block;width:100%;height:100%}
.pet-visual[data-pet-id="pet_fredo"] .fredo-frame{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:contain;opacity:0}
.pet-visual[data-pet-id="pet_fredo"] .fredo-idle{opacity:1}
.roaming-pet .pet-visual[data-pet-id="pet_fredo"] .fredo-idle{animation:fredoIdleFrames 3.6s steps(1,end) infinite}
.roaming-pet .pet-visual[data-pet-id="pet_fredo"] .fredo-walk-one{animation:fredoWalkOne 3.6s steps(1,end) infinite}
.roaming-pet .pet-visual[data-pet-id="pet_fredo"] .fredo-walk-two{animation:fredoWalkTwo 3.6s steps(1,end) infinite}
.roaming-pet .pet-visual[data-pet-id="pet_fredo"] .fredo-stand{animation:fredoStandFrame 3.6s steps(1,end) infinite}
@keyframes fredoIdleFrames{0%,22%,68%,100%{opacity:1}23%,67%{opacity:0}}
@keyframes fredoWalkOne{0%,22%,35%,48%,61%,100%{opacity:0}23%,34%,49%,60%{opacity:1}}
@keyframes fredoWalkTwo{0%,34%,47%,60%,67%,100%{opacity:0}35%,46%,61%,66%{opacity:1}}
@keyframes fredoStandFrame{0%,67%,88%,100%{opacity:0}68%,87%{opacity:1}}
@media (prefers-reduced-motion:reduce){.roaming-pet .pet-visual[data-pet-id="pet_fredo"] .fredo-frame{animation:none!important}.roaming-pet .pet-visual[data-pet-id="pet_fredo"] .fredo-idle{opacity:1}}

/* Clean split navigation and account quick actions */
.repo-header-centre{display:flex;flex-direction:column;align-items:center}
.signed-in-controls{display:flex!important;align-items:stretch;justify-content:center;gap:8px;flex-wrap:wrap}
.signed-in-controls.hidden{display:none!important}
.header-quick-button{min-width:105px;padding:8px 13px!important;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(#654321,#351f10)!important;border:3px ridge #bd8d45!important;color:#f6dda0!important;font-family:Georgia,serif!important;font-size:12px!important;letter-spacing:.06em;box-shadow:0 3px 0 #100905}
.header-quick-button img{width:25px!important;height:25px!important;object-fit:contain;image-rendering:pixelated}
.header-quick-button:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}
.header-quick-button:disabled{opacity:.42}

.game-strip.adventure-nav{width:min(1510px,calc(100% - 26px))!important;max-width:none!important;display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:13px!important;padding:11px!important;background:#1d1109!important;border:3px ridge #a87838!important;align-items:stretch!important}
.game-strip.adventure-nav .nav-section{display:block!important;margin:0!important;padding:10px!important;border:2px solid #6f4d25;background:linear-gradient(180deg,rgba(111,70,32,.35),rgba(24,14,8,.7));box-shadow:inset 0 0 0 1px rgba(240,195,104,.15)}
.game-strip.adventure-nav .training-nav{border-color:#93642d}
.game-strip.adventure-nav .activities-nav{border-color:#735536}
.nav-section-heading{display:flex!important;flex-direction:row!important;align-items:baseline!important;justify-content:space-between!important;gap:10px!important;margin:0 2px 9px!important;padding:0 2px 7px!important;border-bottom:1px solid #7d592c}
.nav-section-heading span{color:#f0cb72!important;font-family:Georgia,serif;font-weight:900;letter-spacing:.14em;font-size:13px!important}
.nav-section-heading small{color:#bda77a;font-size:10px;letter-spacing:.04em}
.nav-button-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px!important}
.training-nav .nav-button-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.activities-nav .nav-button-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.game-strip.adventure-nav button{width:100%;min-width:0;min-height:56px!important;padding:7px 8px!important;font-size:10px!important}
.game-strip.adventure-nav button img{width:23px!important;height:23px!important;max-width:23px!important;max-height:23px!important}
@media(max-width:1050px){.game-strip.adventure-nav{grid-template-columns:1fr!important}.nav-button-grid,.training-nav .nav-button-grid,.activities-nav .nav-button-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:650px){.nav-button-grid,.training-nav .nav-button-grid,.activities-nav .nav-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-section-heading{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}.signed-in-controls{gap:5px}.header-quick-button{min-width:88px;font-size:10px!important;padding:7px!important}}

/* Training navigation label and icon consistency */
.training-nav .nav-button-grid button{
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-family:inherit;
  font-size:12px;
  font-weight:700;
  line-height:1;
}
.training-nav .nav-button-grid button>img,
.training-nav .nav-button-grid button>.training-skill-icon{
  width:24px!important;
  height:24px!important;
  flex:0 0 24px;
  object-fit:contain;
}
.training-nav .nav-button-grid button>span:not(.training-skill-icon){
  font:inherit;
  line-height:1;
}
.public-skill.harmony-public-skill img{
  image-rendering:pixelated;
  object-fit:contain;
  padding:3px;
  box-sizing:border-box;
}


/* Combat training button matches every other skill button. */
.training-nav .combat-open-button{color:#f6dda0!important;font:inherit!important;}
.training-nav .combat-open-button>span{color:inherit!important;font:inherit!important;line-height:1!important;}
.training-nav .combat-open-button>img{width:24px!important;height:24px!important;object-fit:contain!important;image-rendering:pixelated;}

/* Separate Pets collection and expanded reward bank */
.pets-open-button img{filter:drop-shadow(0 1px 1px #000)}
.bank-dialog{width:min(930px,calc(100% - 24px))!important}
.bank-dialog .bank-grid{grid-template-columns:repeat(6,minmax(0,1fr));max-height:520px;overflow:auto}
.pets-dialog{width:min(900px,calc(100% - 24px));background:linear-gradient(145deg,#2b2116,#100c08)!important}
.pets-heading>img{image-rendering:pixelated}
.pets-grid{grid-template-columns:repeat(4,minmax(145px,1fr));max-height:560px;overflow:auto;background:#17110c!important}
.lamp-bank-art{width:66px!important;height:55px!important;object-fit:contain;image-rendering:pixelated}
.lamp-bank-slot small{min-height:25px}
.lamp-dialog{width:min(470px,calc(100% - 24px))}
.lamp-dialog select{width:100%;margin:10px 0 15px;padding:12px;background:#ead8a8;border:2px solid #a66d29;color:#392313;font:700 14px Georgia,serif}
.lamp-dialog #confirmLampUse{width:100%}
.harmony-unlocks{max-height:360px;overflow-y:auto;padding-right:3px;scrollbar-width:thin}
.harmony-unlock img[alt*="XP lamp"]{width:45px;height:42px;image-rendering:pixelated}
@media(max-width:760px){.bank-dialog .bank-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.pets-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}}

/* Compact grouped Harmony lamp unlocks */
.harmony-lamp-group{margin-top:2px;padding:7px 7px 8px;border-top:1px solid #b79a69;border-bottom:1px solid #b79a69;background:linear-gradient(90deg,#6f4b2114,#fff4c735,#6f4b2114)}
.harmony-lamp-group-heading{display:flex;align-items:center;gap:8px;margin-bottom:7px;text-align:left}
.harmony-lamp-group-heading img{width:35px;height:29px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 1px #3d220a66)}
.harmony-lamp-group-heading span{display:flex;flex-direction:column;min-width:0}
.harmony-lamp-group-heading b{color:#4f2715;font:700 11px/1.15 Georgia,serif;letter-spacing:.5px}
.harmony-lamp-group-heading small{color:#755738;font:9px/1.2 Georgia,serif;margin-top:1px}
.harmony-lamp-levels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.harmony-lamp-tier{display:grid;grid-template-columns:25px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:6px;min-height:39px;padding:4px 5px;border:1px solid #b79a69;background:#ead7aa66}
.harmony-lamp-tier .harmony-unlock-level{grid-row:1/3;width:23px;height:23px;font-size:11px}
.harmony-lamp-tier>b{color:#4f2715;font:700 10px/1.1 Georgia,serif;text-align:left}
.harmony-lamp-tier>strong{color:#8a2f21;font:700 8px/1 Georgia,serif;letter-spacing:.4px;text-align:left}
.harmony-lamp-tier.unlocked{background:#dce7bd66;border-color:#8b9d59}
.harmony-lamp-tier.unlocked>strong{color:#35621f}
.harmony-lamp-tier.locked{opacity:.78}
.harmony-unlocks{max-height:none;overflow:visible;padding-right:0}
.harmony-unlocks .harmony-lamp-group+.harmony-unlock{margin-top:6px}


/* Other navigation consistency */
.activities-nav .nav-button-grid button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-height:58px!important;
  padding:8px 9px!important;
  font-family:Georgia,serif!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.08!important;
  letter-spacing:.025em!important;
  text-align:center!important;
  color:#f6dda0!important;
}
.activities-nav .nav-button-grid button>span:not(.ge-button-icon):not(.wise-task-badge){
  display:block;
  font:inherit!important;
  color:inherit!important;
  line-height:inherit!important;
}
.activities-nav .nav-button-grid button>img{
  flex:0 0 24px!important;
  width:24px!important;
  height:24px!important;
  max-width:24px!important;
  max-height:24px!important;
  object-fit:contain!important;
  image-rendering:pixelated;
}
.activities-nav .wise-task-open-button img{width:24px!important;height:24px!important}
.activities-nav .ge-button-icon{flex:0 0 24px;width:24px;height:24px;margin:0!important;font-size:10px!important}
.activities-nav .achievements-open-button span{white-space:normal}

/* Unified Training and Other navigation sizing */
.game-strip.adventure-nav{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.game-strip.adventure-nav .training-nav,
.game-strip.adventure-nav .activities-nav{
  min-width:0!important;
}
.training-nav .nav-button-grid,
.activities-nav .nav-button-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.training-nav .nav-button-grid button,
.activities-nav .nav-button-grid button{
  width:100%!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  box-sizing:border-box!important;
  padding:8px 9px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  font-family:Georgia,serif!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.08!important;
  letter-spacing:.025em!important;
  text-align:center!important;
  color:#f6dda0!important;
}
.training-nav .nav-button-grid button>img,
.activities-nav .nav-button-grid button>img,
.training-nav .nav-button-grid button>.training-skill-icon,
.activities-nav .nav-button-grid button>.ge-button-icon{
  flex:0 0 24px!important;
  width:24px!important;
  height:24px!important;
  max-width:24px!important;
  max-height:24px!important;
  object-fit:contain!important;
}
.training-nav .nav-button-grid button>span:not(.training-skill-icon),
.activities-nav .nav-button-grid button>span:not(.ge-button-icon):not(.wise-task-badge){
  font:inherit!important;
  color:inherit!important;
  line-height:inherit!important;
}
@media(max-width:1050px){
  .game-strip.adventure-nav{grid-template-columns:1fr!important}
}


/* Skills presentation refresh and final training-button normalization */
.training-nav .nav-button-grid .runecrafting-open-button{
  width:100%!important;min-width:0!important;max-width:none!important;
  height:58px!important;min-height:58px!important;max-height:58px!important;
  padding:8px 9px!important;box-sizing:border-box!important;
  font-family:Georgia,serif!important;font-size:11px!important;font-weight:900!important;
  line-height:1.08!important;letter-spacing:.025em!important;color:#f6dda0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
  white-space:normal!important;flex:initial!important;
}
.training-nav .nav-button-grid .runecrafting-open-button img{
  width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;flex:0 0 24px!important;
}
#skillsDialog.game-dialog.wide,#playerStatsDialog.game-dialog.wide{width:min(1040px,calc(100% - 28px));padding:26px;background:linear-gradient(145deg,#181611,#090908);border-color:#806331;box-shadow:inset 0 0 0 3px #292116,0 18px 70px #000}
#skillsDialog h3,#playerStatsDialog h3{text-align:center;font-size:25px;margin:0 45px 20px;color:#e1bd65;text-shadow:2px 2px #3b250d}
#skillsDialog .skills-grid,.public-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#skillsDialog .skill-card,.public-skill{position:relative;min-height:108px;padding:13px 14px;display:grid;grid-template-columns:82px minmax(0,1fr) 48px;align-items:center;gap:12px;background:linear-gradient(145deg,#22211d,#11110f);border:2px solid #4d473b;box-shadow:inset 0 0 0 2px #171612,0 4px 0 #070706;color:#dbc078}
#skillsDialog .skill-card>img,.public-skill>img{width:74px;height:74px;object-fit:contain;filter:drop-shadow(2px 3px 1px #000);image-rendering:auto}
#skillsDialog .skill-card>div{display:grid!important;grid-template-columns:1fr auto!important;grid-template-rows:auto auto auto!important;gap:3px 8px!important;min-width:0}
#skillsDialog .skill-card b,.public-skill b{font:700 18px/1.1 Georgia,serif;color:#d8b65f;text-shadow:1px 2px #24170b}
#skillsDialog .skill-card strong{grid-column:2!important;grid-row:1/3!important;align-self:center;font:700 38px/1 Georgia,serif;color:#e0bd68;text-shadow:2px 3px #211408}
#skillsDialog .skill-card small,.public-skill small{font:700 13px/1.2 Georgia,serif;color:#d9c9a2}
#skillsDialog .skill-card i,.public-skill i{grid-column:1/-1!important;height:8px!important;margin-top:5px;background:#080807;border:1px solid #3b352a;box-shadow:inset 0 1px 2px #000}
#skillsDialog .skill-card i span,.public-skill i span{display:block;height:100%;background:linear-gradient(90deg,#8b5411,#d5a631);box-shadow:inset 0 1px #f0c85b}
.public-skill-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
.public-skill>strong{font:700 38px/1 Georgia,serif;color:#e0bd68;text-shadow:2px 3px #211408;text-align:right}
.public-profile-summary{margin-bottom:15px;background:#12110e;border:2px solid #4d473b;padding:10px;gap:10px}
.public-profile-summary>div{background:#201d17;border:1px solid #494235;padding:10px;text-align:center}
.public-profile-summary span{display:block;color:#9f8c63;font:700 10px Georgia,serif;text-transform:uppercase;letter-spacing:1px}.public-profile-summary strong{color:#e0bd68;font:700 22px Georgia,serif}
#collectionGrid{display:none!important}
@media(max-width:850px){#skillsDialog .skills-grid,.public-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#skillsDialog .skills-grid,.public-skills-grid{grid-template-columns:1fr}#skillsDialog .skill-card,.public-skill{grid-template-columns:64px minmax(0,1fr) 42px;min-height:90px}#skillsDialog .skill-card>img,.public-skill>img{width:58px;height:58px}}

/* Character six: dusty-pink blouse, pale green flares, pink energy drink. */
.game-screen.monitor-dti .monitor-game-dti{display:block}
.monitor-game-dti{background:linear-gradient(#f2bad8 0 14%,#bc83c8 14% 72%,#6e427d 72%);color:#fff7d4;image-rendering:pixelated}
.dti-top{height:14%;display:flex;align-items:center;justify-content:space-between;padding:0 7px;background:linear-gradient(90deg,#8e2f77,#e65fa0);font-size:7px;letter-spacing:.6px;text-shadow:1px 1px #4a163d}.dti-top span{font-size:6px;background:#fff;color:#d3458e;padding:1px 3px;border-radius:2px;text-shadow:none}
.dti-stage{position:absolute;left:0;right:0;top:14%;bottom:15%;overflow:hidden;background:linear-gradient(145deg,#e7c8ef 0 30%,#8a5aa1 31% 36%,#d9b7e4 37% 62%,#70467e 63%)}
.dti-runway{position:absolute;left:30%;right:30%;top:0;bottom:0;background:linear-gradient(90deg,#9a648f,#f6d0eb 45% 55%,#9a648f);clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);box-shadow:0 0 10px #fff8}
.dti-avatar{position:absolute;left:47%;top:18%;width:18px;height:37px;background:#f1c1a4;border-radius:45% 45% 20% 20%;box-shadow:0 0 0 2px #713a67}.dti-avatar:before{content:"";position:absolute;left:-5px;top:12px;width:28px;height:18px;background:#f397c9;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}.dti-avatar:after{content:"";position:absolute;left:1px;top:28px;width:16px;height:18px;background:#f7f1e9;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}.dti-avatar b{position:absolute;left:3px;top:-7px;width:12px;height:9px;background:#d77942;border-radius:50% 50% 25% 25%}
.dti-judge{position:absolute;bottom:6px;width:14px;height:18px;background:#251a31;border-radius:50% 50% 10% 10%}.dti-judge.j1{left:12%}.dti-judge.j2{right:12%}.dti-star{position:absolute;color:#ffe25c;font-style:normal;font-size:11px;text-shadow:0 0 4px #fff}.dti-star.s1{left:16%;top:15%}.dti-star.s2{right:15%;top:28%}
.dti-status{position:absolute;left:0;right:0;bottom:0;height:15%;display:grid;place-items:center;background:#351d43;color:#ffe9ac;font-size:6px;letter-spacing:.4px}

.gamer.character-six .curls,.gamer.character-six .wizard-hat,.gamer.character-six .hood{display:none!important}
.gamer.character-six .hairback{display:block;left:139px;top:24px;width:116px;height:143px;background:linear-gradient(90deg,#b75e27,#e28a45 48%,#8f431e);clip-path:polygon(18% 4%,82% 4%,98% 26%,91% 76%,77% 100%,64% 72%,50% 100%,36% 73%,22% 100%,7% 76%,2% 25%);z-index:3;filter:drop-shadow(0 3px 2px #0007)}
.gamer.character-six .hairback:after{content:"";position:absolute;left:38px;top:0;width:40px;height:34px;background:#eb9950;clip-path:polygon(50% 0,100% 46%,71% 100%,50% 70%,29% 100%,0 46%)}
.gamer.character-six .head{left:160px;top:57px;width:77px;height:91px;background:#d4a17e;border-radius:43% 43% 49% 49%}
.gamer.character-six .head:before{content:"";position:absolute;left:14px;right:14px;top:39px;height:7px;background:linear-gradient(90deg,#2a211d 0 22%,transparent 23% 65%,#2a211d 66%);clip-path:polygon(0 0,100% 0,87% 100%,10% 100%)}
.gamer.character-six .head:after{content:"";position:absolute;left:31px;top:55px;width:13px;height:5px;border-bottom:2px solid #865641;border-radius:50%}
.gamer.character-six .ear,.gamer.character-six .nose,.gamer.character-six .neck,.gamer.character-six .hand{background:#d4a17e}
.gamer.character-six .cape{display:none!important}
.gamer.character-six .body{left:92px;top:151px;width:177px;height:165px;background:linear-gradient(90deg,#a8757c,#c8949a 48%,#93646c);border:4px solid #765059;border-radius:38% 38% 19% 19%;clip-path:polygon(8% 0,92% 0,86% 57%,68% 100%,50% 83%,32% 100%,14% 57%)}
.gamer.character-six .body:before{content:"";position:absolute;left:77px;top:0;width:5px;height:111px;background:#d5a4a7;opacity:.55}
.gamer.character-six .body:after{content:"";position:absolute;left:3px;right:3px;bottom:0;height:17px;background:#202416;clip-path:polygon(0 70%,100% 70%,95% 100%,5% 100%)}
.gamer.character-six .body .robe-panel{display:none}
.gamer.character-six .belly{display:none}
.gamer.character-six .arm{width:128px;height:38px;background:linear-gradient(#b78389,#96656d);border-radius:21px;border-bottom:9px solid #6f4b52}
.gamer.character-six .arm-left{left:205px;top:207px}.gamer.character-six .arm-right{left:188px;top:220px}
.gamer.character-six .leg{width:96px;height:78px;background:linear-gradient(90deg,#aab08c,#c3c8a6 48%,#929979);border-bottom:15px solid #42501f;border-radius:24px 24px 7px 7px;clip-path:polygon(8% 0,92% 0,100% 100%,0 100%)}
.gamer.character-six .leg.one{left:126px;top:304px;transform:rotate(4deg)}.gamer.character-six .leg.two{left:198px;top:309px;transform:rotate(-3deg)}
.gamer.character-six .leg:after{content:"";position:absolute;left:9px;bottom:-11px;width:46px;height:15px;background:#3d4b1e;clip-path:polygon(0 0,100% 20%,84% 100%,6% 100%)}
.energy-prop{display:none;position:absolute;width:62px;height:138px;transform-origin:50% 90%;filter:drop-shadow(0 4px 3px #0009)}
.energy-prop img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.gamer.character-six .energy-prop{display:block;left:-7px;top:-64px;transform:rotate(-7deg)}
.gamer.character-six.typing .arm-right{animation:energyCanArm 5.6s ease-in-out infinite!important;transform-origin:8px 50%}
.gamer.character-six.typing .energy-prop{animation:energyCanTip 5.6s ease-in-out infinite!important}
@keyframes energyCanArm{0%,58%,100%{transform:rotate(17deg) translate(0,0)}68%{transform:rotate(2deg) translate(-10px,-18px)}76%,86%{transform:rotate(-23deg) translate(-28px,-42px)}94%{transform:rotate(4deg) translate(-8px,-12px)}}
@keyframes energyCanTip{0%,68%,93%,100%{transform:rotate(-7deg)}77%,86%{transform:rotate(12deg)}}

/* Pet-room chat: deliberately compact so it blends into the room frame. */
.pet-chat-toggle{position:absolute;right:9px;top:8px;z-index:30;width:auto!important;min-width:0!important;height:22px!important;margin:0!important;padding:2px 8px!important;border:1px solid rgba(232,198,119,.55)!important;border-radius:2px;background:rgba(32,20,10,.82)!important;color:#e7ca88!important;font:700 9px/1 Georgia,serif!important;letter-spacing:.8px;opacity:.76;box-shadow:inset 0 0 0 1px rgba(0,0,0,.5);transition:opacity .15s ease,background .15s ease}
.pet-room-skip{position:absolute;right:55px;top:8px;z-index:30;width:auto!important;min-width:0!important;height:22px!important;margin:0!important;padding:2px 7px!important;border:1px solid rgba(232,198,119,.42)!important;border-radius:2px;background:rgba(32,20,10,.68)!important;color:rgba(231,202,136,.82)!important;font:700 8px/1 Georgia,serif!important;letter-spacing:.7px;opacity:.58;box-shadow:inset 0 0 0 1px rgba(0,0,0,.45);transition:opacity .15s ease,background .15s ease,color .15s ease}
.pet-room-skip:hover{opacity:1;background:rgba(67,40,19,.94)!important;color:#f1d694!important}
.pet-room-skip:disabled{opacity:.25!important;cursor:default!important;filter:grayscale(.35)}
.pet-chat-toggle:hover,.pet-chat-toggle[aria-expanded="true"]{opacity:1;background:rgba(67,40,19,.94)!important}
.pet-chat-panel{position:absolute;right:8px;top:35px;z-index:30;display:flex;gap:5px;width:min(330px,calc(100% - 16px));padding:6px;background:rgba(31,19,10,.94);border:1px solid rgba(221,179,91,.7);box-shadow:0 3px 12px rgba(0,0,0,.55);opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .14s ease,transform .14s ease,visibility .14s}
.pet-chat-panel.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.pet-chat-panel input{min-width:0;flex:1;height:29px;padding:4px 8px;border:1px solid #6b4c25;background:#110c08;color:#f0dca4;font:12px Georgia,serif;outline:none}
.pet-chat-panel input:focus{border-color:#c99b4d;box-shadow:0 0 0 1px rgba(201,155,77,.25)}
.pet-chat-panel button{width:auto!important;min-width:52px!important;height:29px!important;margin:0!important;padding:3px 8px!important;border:1px solid #8f6832!important;background:linear-gradient(#51351a,#2e1d0e)!important;color:#f1d694!important;font:700 10px Georgia,serif!important}
.pet-chat-bubble{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:40;max-width:190px;min-width:54px;padding:6px 8px;border:2px solid #36220f;border-radius:8px;background:#f3dfaa;color:#2b1a0c;font:700 11px/1.25 Georgia,serif;text-align:center;overflow-wrap:anywhere;box-shadow:0 3px 0 rgba(0,0,0,.25);transform:translateX(-50%);pointer-events:none;animation:petChatPop .18s ease-out}
.pet-chat-bubble:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#36220f}
.pet-chat-bubble:before{content:"";position:absolute;left:50%;top:100%;z-index:1;transform:translate(-50%,-2px);border:5px solid transparent;border-top-color:#f3dfaa}
@keyframes petChatPop{from{opacity:0;transform:translateX(-50%) translateY(5px) scale(.94)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
@media(max-width:650px){.pet-chat-panel{left:8px;right:8px;width:auto}.pet-chat-bubble{max-width:145px;font-size:10px}}


/* Recent pet-room chat history: intentionally faint until hovered. */
.pet-chat-history{position:absolute;left:10px;bottom:9px;z-index:24;width:min(360px,42%);max-height:126px;overflow-y:auto;padding:6px 8px;border:1px solid rgba(220,184,105,.13);border-radius:2px;background:rgba(17,11,7,.18);color:rgba(245,225,174,.43);font:10px/1.28 Georgia,serif;opacity:.36;backdrop-filter:blur(1px);box-shadow:inset 0 0 12px rgba(0,0,0,.08);transition:opacity .18s ease,background .18s ease,border-color .18s ease;scrollbar-width:thin;scrollbar-color:rgba(196,151,74,.25) transparent;pointer-events:auto}
.pet-chat-history:hover{opacity:.9;background:rgba(17,11,7,.68);border-color:rgba(220,184,105,.38);color:rgba(255,235,187,.92)}
.pet-chat-history-line{display:grid;grid-template-columns:max-content 1fr;gap:5px;min-width:0;padding:1px 0;opacity:calc(.34 + (11 - var(--age)) * .055)}
.pet-chat-history-line b{color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:92px}.pet-chat-history-line b:after{content:':'}.pet-chat-history-line span{min-width:0;overflow-wrap:anywhere}.pet-chat-history-empty{padding:3px 0;font-style:italic;text-align:left}
.global-xp-board{margin-top:20px}
@media(max-width:700px){.pet-chat-history{left:6px;bottom:6px;width:58%;max-height:92px;font-size:9px}.global-xp-board{margin-top:17px}}

/* Compact dual homepage leaderboards — preserve the original Harmony column height */
.harmony-actions{
  align-self:stretch;
  padding:18px 16px!important;
  overflow:hidden;
}
.harmony-actions>h2{
  margin:0 0 10px!important;
}
.harmony-actions .harmony-button{
  margin:8px 0 4px!important;
}
.harmony-actions .harmony-sound-toggle{
  margin:3px 0 6px!important;
}
.harmony-actions .daily-xp-board{
  width:calc(100% - 10px);
  margin:12px auto 8px!important;
  padding:10px 10px 8px!important;
  min-height:0;
  box-shadow:0 5px 8px #0006,inset 0 0 12px rgba(91,54,18,.2);
}
.harmony-actions .daily-xp-board:before,
.harmony-actions .daily-xp-board:after{
  left:-5px;
  right:-5px;
  height:12px;
}
.harmony-actions .daily-xp-board:before{top:-8px}
.harmony-actions .daily-xp-board:after{bottom:-8px}
.harmony-actions .daily-xp-heading{
  padding:0 3px 5px!important;
}
.harmony-actions .daily-xp-heading span{
  font-size:11px!important;
  line-height:1.05!important;
  letter-spacing:1.3px!important;
}
.harmony-actions .daily-xp-list{
  padding:3px 0 0!important;
}
.harmony-actions .daily-xp-entry{
  grid-template-columns:18px minmax(0,1fr) auto!important;
  gap:4px!important;
  min-height:20px!important;
  padding:2px 2px!important;
}
.harmony-actions .daily-xp-rank,
.harmony-actions .daily-xp-name,
.harmony-actions .daily-xp-total{
  font-size:9px!important;
  line-height:1.1!important;
}
.harmony-actions .daily-xp-empty{
  padding:8px 4px!important;
  font-size:9px!important;
}
.harmony-actions .global-xp-board{
  margin-top:12px!important;
  margin-bottom:2px!important;
}
@media(max-width:1100px){
  .harmony-actions{overflow:visible}
  .harmony-actions .daily-xp-board{max-width:520px}
}

/* Fourth pet room: pets queue down the pier and become trapped in the whirlpool. */
.pet-room-scene[data-room="whirlpool"]{
  /* Match the exact wide dimensions used by every other pet room. */
  aspect-ratio:2048/473;
  min-height:250px;
  max-height:420px;
}
.pet-room-scene[data-room="whirlpool"] .pet-room-bg{
  background-size:100% 100%!important;
  background-position:center!important;
}
.pet-room-scene[data-room="whirlpool"] .roaming-pet .pet-label{
  background:rgba(18,35,41,.78)!important;
  border-color:rgba(155,224,255,.78)!important;
  color:#e9fbff!important;
}
.roaming-pet.pet-whirlpool-jumping .pet-sprite{
  animation:whirlpoolPetJump .42s cubic-bezier(.22,.8,.35,1) infinite alternate!important;
}
@keyframes whirlpoolPetJump{
  from{transform:translateY(0) scale(1)}
  to{transform:translateY(-22px) scale(.96)}
}
.roaming-pet.pet-whirlpool-splash .pet-sprite::before,
.roaming-pet.pet-whirlpool-splash .pet-sprite::after{
  content:""!important;position:absolute!important;display:block!important;left:50%;bottom:0;
  width:48px;height:15px;border:3px solid rgba(186,237,255,.92)!important;border-radius:50%!important;
  transform:translateX(-50%) scale(.3);animation:whirlpoolSplash 1s ease-out forwards;pointer-events:none;
}
.roaming-pet.pet-whirlpool-splash .pet-sprite::after{animation-delay:.16s}
@keyframes whirlpoolSplash{0%{opacity:0;transform:translateX(-50%) scale(.25)}20%{opacity:1}100%{opacity:0;transform:translateX(-50%) scale(1.65)}}
.roaming-pet.pet-whirlpool-spinning .pet-sprite{
  transform:rotate(var(--whirlpool-tilt,0deg)) scale(var(--whirlpool-scale,1));
  transform-origin:center 75%;
  transition:transform .18s linear,opacity .18s linear;
}
.roaming-pet.pet-whirlpool-spinning .pet-visual img{
  animation-duration:.34s!important;
}
.roaming-pet.pet-whirlpool-spinning .pet-label{opacity:.72;transform:scale(.9);transform-origin:center bottom}
.roaming-pet.pet-whirlpool-sucked .pet-label{opacity:0!important}
.roaming-pet.pet-whirlpool-sucked .pet-sprite{filter:brightness(.82) saturate(.85)}
@media(max-width:850px){
  .pet-room-scene[data-room="whirlpool"]{min-height:220px;max-height:420px}
}


/* Whirlpool room: pets occasionally lose held weapons and food while spinning. */
.whirlpool-lost-item{
  position:absolute;z-index:76;width:34px;height:42px;margin:-17px 0 0 -17px;
  background-repeat:no-repeat;background-position:center;background-size:contain;
  pointer-events:none;filter:drop-shadow(2px 3px 1px rgba(0,0,0,.72));
  transform-origin:center;animation:whirlpoolLostItem 1.55s cubic-bezier(.16,.72,.28,1) forwards;
}
@keyframes whirlpoolLostItem{
  0%{opacity:0;transform:translate(0,0) rotate(0) scale(calc(var(--lost-size)*.6))}
  9%{opacity:1}
  52%{opacity:1;transform:translate(calc(var(--lost-x)*.62),var(--lost-y)) rotate(calc(var(--lost-r)*.55)) scale(var(--lost-size))}
  100%{opacity:0;transform:translate(var(--lost-x),calc(var(--lost-y) + 118px)) rotate(var(--lost-r)) scale(calc(var(--lost-size)*.68))}
}
@media(max-width:850px){.whirlpool-lost-item{width:27px;height:34px;margin:-13px 0 0 -13px}}

/* Fifth pet room: broom-flight quaffle match. */
.pet-room-scene[data-room="quidditch"] .pet-room-bg{background-size:100% 100%;background-position:center}
.pet-room-scene[data-room="quidditch"] .roaming-pet{z-index:12}
.pet-room-scene[data-room="quidditch"] .roaming-pet .pet-label{background:rgba(25,17,8,.88)!important;border-color:#d7ad4f!important;color:#fff0a8!important}
.pet-broom{display:none;position:absolute;left:-20px;bottom:11px;width:116px;height:42px;background-size:contain;background-repeat:no-repeat;background-position:center;image-rendering:pixelated;filter:drop-shadow(0 4px 3px rgba(0,0,0,.6));transform-origin:54% 50%;z-index:1}
.roaming-pet.pet-on-broom .pet-broom{display:block;transform:scaleX(var(--broom-facing,1)) rotate(calc(var(--quidditch-bank,0deg) * var(--broom-facing,1)))}
.roaming-pet.pet-on-broom .pet-sprite{z-index:3;bottom:15px!important;transform:translateY(-4px) scale(.82)}
.roaming-pet.pet-on-broom .pet-label{bottom:76px!important}
.roaming-pet.pet-on-broom .pet-visual img{animation:quidditchPetBob .65s ease-in-out infinite alternate!important}
.pet-quaffle,.quidditch-quaffle{position:absolute;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#dc7e51 0 16%,#8a351f 18% 56%,#45170f 58% 100%);border:2px solid #2b0d08;box-shadow:0 2px 3px #0008;z-index:18;pointer-events:none}
.pet-quaffle{right:2px;bottom:33px}
.quidditch-quaffle{transition:left .62s cubic-bezier(.2,.7,.25,1),top .62s cubic-bezier(.2,.7,.25,1),transform .62s ease}
.quidditch-quaffle.is-dropping{left:50%;transform:translate(-50%,0)}
.quidditch-quaffle.is-shot{transform:translate(-50%,-50%) rotate(0deg)}
.quidditch-quaffle.is-missed{animation:quaffleBounce .62s ease-out forwards}
.quidditch-scoreboard{display:none;position:absolute;left:50%;top:8px;transform:translateX(-50%);z-index:24;align-items:flex-start;gap:8px;padding:5px 9px;background:linear-gradient(#3c2a14,#1c130a);border:2px ridge #c79a42;box-shadow:0 3px 0 #0008,inset 0 0 0 1px #6f4b1f;color:#f4d889;font:700 9px/1 Georgia,serif;letter-spacing:.5px;pointer-events:none;min-width:255px}
.pet-room-scene[data-room="quidditch"] .quidditch-scoreboard{display:flex}
.quidditch-scoreboard>strong{align-self:center;font-size:9px;color:#b9914e;padding-top:12px}
.quidditch-team{width:108px;text-align:center;display:grid;grid-template-columns:1fr auto;column-gap:5px;align-items:center}
.quidditch-team b{font-size:8px;white-space:nowrap}.quidditch-team.gryffindor b{color:#e34b3f;text-shadow:0 1px 0 #4a0b08,0 0 4px #a91e17}.quidditch-team.slytherin b{color:#7ecb75}
.quidditch-team>span{font-size:18px;color:#fff4bd;grid-row:1/3;grid-column:2}
.quidditch-team small{grid-column:1/-1;display:flex;flex-direction:column;gap:1px;margin-top:3px;padding-top:3px;border-top:1px solid #8b632d66;font:600 7px/1.15 Georgia,serif;letter-spacing:0;color:#d8c79e;max-height:34px;overflow:hidden}
.quidditch-team small i{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quidditch-goal-flash{position:absolute;width:36px;height:36px;border-radius:50%;z-index:16;transform:translate(-50%,-50%);border:3px solid #ffe887;box-shadow:0 0 20px #ffd646;animation:goalFlash .85s ease-out forwards;pointer-events:none}
.roaming-pet.pet-quidditch-celebrate{animation:quidditchCelebrate .82s ease-in-out}
@keyframes quidditchPetBob{from{transform:translateY(1px) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}
@keyframes quidditchCelebrate{0%,100%{filter:none}25%{filter:brightness(1.5);margin-top:-8px}50%{transform:rotate(12deg)}75%{transform:rotate(-12deg)}}
@keyframes goalFlash{0%{opacity:1;transform:translate(-50%,-50%) scale(.35)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.5)}}
@keyframes quaffleBounce{0%{margin-top:0}45%{margin-top:-24px}100%{margin-top:25px;opacity:0}}
.quidditch-firework{position:absolute;width:1px;height:1px;z-index:28;pointer-events:none}.quidditch-firework i{position:absolute;left:0;top:0;width:4px;height:4px;border-radius:50%;background:#ffd966;box-shadow:0 0 6px currentColor;animation:quidditchSpark var(--fd,.65s) ease-out forwards}.quidditch-firework.is-gryffindor i:nth-child(3n){background:#d74232}.quidditch-firework.is-gryffindor i:nth-child(3n+1){background:#ffd65a}.quidditch-firework.is-slytherin i:nth-child(3n){background:#52bf72}.quidditch-firework.is-slytherin i:nth-child(3n+1){background:#d8f2d6}@keyframes quidditchSpark{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--fx),var(--fy)) scale(.15);opacity:0}}
@media(max-width:850px){.quidditch-scoreboard{top:5px;gap:4px;padding:4px 6px;min-width:205px}.quidditch-team{width:84px}.quidditch-team b{font-size:6px}.quidditch-team>span{font-size:14px}.quidditch-team small{font-size:6px;max-height:25px}.quidditch-scoreboard>strong{font-size:7px}.pet-broom{width:88px;height:34px;left:-10px}}

/* Fullscreen Quidditch mode */
.quidditch-mode-button{display:none;position:absolute;right:92px;top:8px;z-index:34;width:auto!important;min-height:22px!important;padding:4px 8px!important;margin:0!important;border:1px solid #8e672c!important;background:linear-gradient(#4b3218,#211407)!important;color:#e7c878!important;font:700 8px/1 Georgia,serif!important;letter-spacing:.5px;box-shadow:0 2px 0 #0009,inset 0 0 0 1px #c69b4a55;opacity:.82}
.pet-room-scene[data-room="quidditch"] .quidditch-mode-button{display:block}
.quidditch-mode-button:hover{opacity:1}.quidditch-mode-button:active{transform:translateY(1px)}
.quidditch-mode-overlay{position:fixed;inset:0;z-index:10000;background:#050403f2;display:none;place-items:center;padding:1.5vh 1.5vw}
.quidditch-mode-overlay.is-open{display:grid}
.quidditch-mode-tv{position:relative;width:min(97vw,1500px);aspect-ratio:1.503/1;background:url('assets/quidditch-mode-tv.png') center/contain no-repeat;filter:drop-shadow(0 18px 35px #000);overflow:hidden}
.quidditch-mode-close{position:absolute;right:4.1%;top:4.3%;z-index:20;width:36px!important;height:36px!important;padding:0!important;margin:0!important;border:2px ridge #c79a42!important;background:#38220f!important;color:#f4d889!important;font:900 26px/30px Georgia,serif!important}
.quidditch-mode-pitch{position:absolute;left:6.55%;right:6.6%;top:9.55%;bottom:12.9%;overflow:hidden;border-radius:1%;pointer-events:none}
.quidditch-mode-hud{position:absolute;left:50%;top:6.3%;transform:translateX(-50%);z-index:18;display:grid;grid-template-columns:210px 72px 210px;gap:7px;align-items:start;padding:6px 10px;background:linear-gradient(#362414ed,#140d07ed);border:2px ridge #c39743;box-shadow:0 3px 10px #000b;color:#f2d583;font-family:Georgia,serif;text-align:center;min-height:57px}
.quidditch-mode-team{display:grid;grid-template-columns:1fr 38px;gap:2px 6px}.quidditch-mode-team b{font-size:11px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quidditch-mode-team strong{grid-row:1/3;grid-column:2;font-size:27px;line-height:32px;color:#fff1ba}.quidditch-mode-team small{font-size:8px;line-height:10px;display:block;max-height:30px;overflow:hidden;color:#dcc890}.quidditch-mode-team.is-left b{color:#e34b3f}.quidditch-mode-team.is-right b{color:#79c681}.quidditch-mode-centre{display:grid;gap:2px}.quidditch-mode-centre span{font-size:19px;color:#fff0a8}.quidditch-mode-centre em{font-size:8px;color:#f2d583;font-style:normal;letter-spacing:1px}
.qm-pet{position:absolute;width:64px;height:58px;z-index:6;transition:left 1.35s cubic-bezier(.3,.1,.35,1),top 1.35s cubic-bezier(.3,.1,.35,1),transform .35s ease;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 2px #0009)}
.qm-pet.is-leftward{transform:translate(-50%,-50%) scaleX(-1)}.qm-pet.is-celebrating{animation:qmCelebrate .75s ease-in-out 2}.qm-pet .pet-label{position:absolute;left:50%;top:-16px;transform:translateX(-50%);font:700 8px/1 Georgia,serif;color:#fff0ae;background:#221506df;border:1px solid #b88a37;padding:2px 4px;white-space:nowrap}.qm-pet .pet-sprite{position:absolute;left:16px;top:0;width:38px;height:38px}.qm-pet .pet-sprite img{max-width:38px;max-height:38px}.qm-pet .qm-broom{position:absolute;left:1px;top:28px;width:60px;height:20px;object-fit:contain;z-index:-1}.qm-pet.team-left .pet-label{border-color:#b83b33}.qm-pet.team-right .pet-label{border-color:#488b45}.qm-pet.has-ball:after{content:"";position:absolute;right:3px;top:18px;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#dd8458,#7b2818 55%,#310c08);border:1px solid #210805;box-shadow:0 1px 2px #000}
.qm-quaffle{position:absolute;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#dd8458,#7b2818 55%,#310c08);border:2px solid #210805;z-index:12;transition:left .55s ease,top .55s ease,transform .55s ease;transform:translate(-50%,-50%)}
.qm-firework{position:absolute;width:4px;height:4px;z-index:16}.qm-firework i{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffd85a;animation:qmSpark .8s ease-out forwards}.qm-goal-text{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:17;color:#fff3a8;font:900 34px/1 Georgia,serif;text-shadow:0 3px 0 #5a1b0f,0 0 12px #ffb52e;animation:qmGoal 1.2s ease-out forwards}
@keyframes qmCelebrate{50%{transform:translate(-50%,-60%) rotate(18deg) scale(1.15)}}@keyframes qmSpark{to{transform:translate(var(--x),var(--y)) scale(.2);opacity:0}}@keyframes qmGoal{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-65%) scale(1)}}
@media(max-width:800px){.quidditch-mode-hud{grid-template-columns:125px 55px 125px;top:5.8%;transform:translateX(-50%) scale(.82)}.quidditch-mode-button{right:80px;font-size:7px!important;padding:4px 5px!important}}

/* Quidditch pre-match team presentation */
.qm-lineup{position:absolute;left:6.55%;right:6.6%;top:9.55%;bottom:12.9%;z-index:30;display:none;place-items:center;background:linear-gradient(90deg,#07160ddb,#080707e8 45%,#080707e8 55%,#081323db);backdrop-filter:blur(2px);pointer-events:none}
.qm-lineup.is-visible{display:grid}
.qm-lineup-card{width:min(92%,980px);display:grid;grid-template-columns:1fr 118px 1fr;gap:16px;align-items:stretch;color:#f2d99a;font-family:Georgia,serif;text-shadow:0 2px 2px #000}
.qm-lineup-team{border:2px ridge #9f7939;background:#100d09e8;box-shadow:0 6px 18px #000b,inset 0 0 28px #0008;padding:12px 14px;min-height:190px}
.qm-lineup-left{border-color:#9a3e32;background:linear-gradient(90deg,#33100fe8,#100d09e8)}
.qm-lineup-right{border-color:#36598d;background:linear-gradient(270deg,#0b1e3ae8,#100d09e8)}
.qm-lineup-team h3{margin:0 0 9px;padding-bottom:7px;border-bottom:1px solid #c9a45c66;font-size:17px;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qm-lineup-left h3{color:#ef6255}.qm-lineup-right h3{color:#6f9fff}
.qm-lineup-team div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px}
.qm-lineup-team span{display:block;padding:5px 7px;background:#0005;border:1px solid #b8924e33;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qm-lineup-centre{display:grid;place-content:center;text-align:center;gap:5px}.qm-lineup-centre b{font-size:29px;color:#d8b25e}.qm-lineup-centre span{font-size:52px;line-height:1;color:#fff1b4}.qm-lineup-centre small{font-size:8px;letter-spacing:1px;color:#bda777}
.qm-pet{will-change:left,top,transform;transition-timing-function:linear!important}
.qm-quaffle{will-change:left,top,transform;transition-timing-function:linear!important}
@media(max-width:760px){.qm-lineup-card{grid-template-columns:1fr 70px 1fr;gap:6px}.qm-lineup-team{padding:7px;min-height:145px}.qm-lineup-team h3{font-size:10px}.qm-lineup-team div{grid-template-columns:1fr}.qm-lineup-team span{font-size:8px;padding:3px}.qm-lineup-centre span{font-size:34px}}

/* Broadcast-quality teletext lineup. Flight positioning is controlled by the shared pet-room transition system below. */
.qm-pet{will-change:left,top,transform;contain:layout style paint;backface-visibility:hidden;transform-origin:center center}
.qm-lineup{background:radial-gradient(circle at 50% 45%,#152031f2,#05070bf8 68%);backdrop-filter:blur(4px) saturate(.8)}
.qm-lineup:before{content:"REPO SPORTS • LIVE TEAM SHEET";position:absolute;left:50%;top:7%;transform:translateX(-50%);color:#f5e8aa;font:900 13px/1 monospace;letter-spacing:3px;text-shadow:0 2px #000;padding:7px 18px;border-top:2px solid #ddba57;border-bottom:2px solid #ddba57;background:#05070bdd}
.qm-lineup-card{width:min(94%,1100px);grid-template-columns:minmax(0,1fr) 138px minmax(0,1fr);gap:18px;align-items:stretch;font-family:"Courier New",monospace;text-shadow:0 2px 0 #000}
.qm-lineup-team{padding:0;min-height:250px;border:3px solid;background:#05090eea;box-shadow:0 0 0 3px #050505,0 12px 28px #000d;overflow:hidden}
.qm-lineup-left{border-color:#5aaa43}.qm-lineup-right{border-color:#477ed0}
.qm-lineup-team h3{margin:0;padding:12px 14px;border:0;font:900 22px/1 monospace;letter-spacing:1px;text-align:center;color:#fff!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qm-lineup-left h3{background:linear-gradient(90deg,#244f1f,#142d12)}.qm-lineup-right h3{background:linear-gradient(90deg,#18335d,#244e8d)}
.qm-lineup-team div{display:grid;grid-template-columns:1fr;gap:0;padding:5px 10px 10px}
.qm-lineup-team span{display:grid;grid-template-columns:36px 34px 1fr;align-items:center;min-height:39px;padding:3px 5px;background:transparent;border:0;border-bottom:1px solid #45607866;color:#f0f0e8;font:700 15px/1 monospace}
.qm-lineup-team span i{color:#ffd45b;font-style:normal;text-align:center}.qm-lineup-team span img{width:29px;height:29px;object-fit:contain;image-rendering:auto}.qm-lineup-team span b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qm-lineup-team .qm-lineup-empty{grid-template-columns:1fr;place-items:center;color:#8290a0}
.qm-lineup-centre{align-self:center;display:grid;place-items:center;gap:8px;padding:18px 8px;border-top:2px solid #d7af4e;border-bottom:2px solid #d7af4e;background:#05070ddd}
.qm-lineup-centre b{font:900 34px/1 monospace;color:#e7c253}.qm-lineup-centre span{display:grid;place-items:center;width:74px;height:74px;border:3px solid #e3c568;border-radius:50%;font:900 48px/1 monospace;color:#fff4be;background:#15110a;box-shadow:0 0 24px #e0bd4a44}.qm-lineup-centre small{font:800 9px/1.4 monospace;color:#ddcf9d;letter-spacing:1px;text-align:center}

/* Harmony level-up celebration */
.harmony-level-firework{position:fixed;z-index:15000;width:1px;height:1px;pointer-events:none}
.harmony-level-firework i{position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle,#fff7bd 0 22%,#f6c941 24% 58%,#b5217d 60%);box-shadow:0 0 8px #ffe66d;animation:harmonyFirework 1.15s cubic-bezier(.15,.7,.2,1) var(--hd,0s) forwards}
@keyframes harmonyFirework{0%{transform:translate(0,0) scale(.25);opacity:0}12%{opacity:1}78%{transform:translate(var(--hx),var(--hy)) scale(1)}100%{transform:translate(calc(var(--hx)*1.08),calc(var(--hy)*1.08 + 18px)) scale(.15);opacity:0}}
.harmony-level-up-flash{animation:harmonyPanelFlash 1.2s ease-out}
@keyframes harmonyPanelFlash{0%,100%{filter:none}18%{filter:brightness(1.35) drop-shadow(0 0 18px #efc94c)}45%{filter:brightness(1.08) drop-shadow(0 0 7px #b62d83)}}
.harmony-level-toast{position:fixed;left:50%;top:19%;z-index:15001;transform:translate(-50%,-50%);padding:10px 20px;border:3px ridge #f2ce68;background:linear-gradient(#522043,#1f0e1b);color:#fff1a8;font:900 19px/1 Georgia,serif;letter-spacing:2px;text-shadow:0 2px #000;box-shadow:0 8px 28px #000c,0 0 24px #f2c94c88;pointer-events:none;animation:harmonyToast 1.9s ease forwards}
@keyframes harmonyToast{0%{opacity:0;transform:translate(-50%,-35%) scale(.7)}14%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-75%) scale(.92)}}
@media(max-width:760px){.qm-lineup:before{font-size:8px;letter-spacing:1px}.qm-lineup-card{grid-template-columns:1fr 65px 1fr;gap:5px}.qm-lineup-team{min-height:170px}.qm-lineup-team h3{font-size:10px;padding:7px 4px}.qm-lineup-team div{padding:3px}.qm-lineup-team span{grid-template-columns:23px 22px 1fr;min-height:26px;font-size:8px;padding:2px}.qm-lineup-team span img{width:20px;height:20px}.qm-lineup-centre span{width:42px;height:42px;font-size:25px}.qm-lineup-centre b{font-size:20px}.qm-lineup-centre small{font-size:6px}}


/* Quidditch TV now uses the same long, smooth flight transitions as the pet-room match. */
.qm-pet{
  left:50%;top:50%;
  transition:left 2.35s linear,top 2.35s linear,transform .28s ease!important;
  will-change:left,top,transform;
  contain:layout style paint;
  backface-visibility:hidden;
  transform:translate(-50%,-50%);
}
.qm-pet.is-leftward{transform:translate(-50%,-50%) scaleX(-1)}
.qm-quaffle{transition:left .58s cubic-bezier(.2,.7,.25,1),top .58s cubic-bezier(.2,.7,.25,1),transform .58s ease!important}
.other-quidditch-open-button img{object-fit:contain;filter:drop-shadow(0 1px 1px #000)}
/* Live Quidditch broadcast additions */
.quidditch-mode-centre small{font:700 7px/1.1 monospace;color:#8fd6a3;letter-spacing:.6px;white-space:nowrap}
.qm-prediction{display:grid;gap:5px;margin-top:6px;width:132px}.qm-prediction>em{font:800 7px/1.2 monospace;color:#f2d87c;font-style:normal}.qm-prediction>div{display:grid;grid-template-columns:1fr .65fr 1fr;gap:4px}.qm-prediction button{min-height:25px!important;padding:4px!important;margin:0!important;border:1px solid #9c7a3d!important;background:#17120a!important;color:#f4dda0!important;font:800 7px/1 monospace!important}.qm-prediction button:first-child{border-color:#4d9c58!important}.qm-prediction button:last-child{border-color:#507fc2!important}.qm-prediction button:disabled{opacity:.38;cursor:not-allowed}.qm-prediction small{font:700 6px/1.2 monospace;color:#bdb69d;min-height:14px}.qm-prediction.is-locked button{opacity:.35;pointer-events:none}
.qm-pet{transition:left 2.8s linear,top 2.8s linear,transform .32s ease!important}
.qm-pet .qm-broom{transition:transform .25s ease}
@media(max-width:760px){.qm-prediction{width:72px}.qm-prediction>em{font-size:5px}.qm-prediction button{font-size:5px!important;min-height:19px!important}.quidditch-mode-centre small{font-size:5px}}

/* Live broadcast labels and full-time card */
.qm-pet>.pet-label{position:absolute;left:50%;bottom:calc(100% + 7px);transform:translateX(-50%);min-width:96px;max-width:150px;padding:4px 7px;background:rgba(8,7,5,.78);border:1px solid rgba(225,190,102,.55);box-shadow:0 2px 5px #0009;color:#fff2b6;text-align:center;pointer-events:none;white-space:nowrap;z-index:20}
.qm-pet>.pet-label b{display:block;overflow:hidden;text-overflow:ellipsis;font:900 10px/1.1 Georgia,serif}
.qm-pet>.pet-label small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;font:700 7px/1 monospace;color:#d8c58c;letter-spacing:.25px}
.qm-pet.team-left>.pet-label{border-color:#68b875}.qm-pet.team-right>.pet-label{border-color:#6895d4}
.qm-goal-text.qm-full-time{top:50%;max-width:80%;text-align:center;font-size:25px;animation:none;opacity:1;background:#090805df;border:3px ridge #d2aa51;padding:18px 28px}


/* Locked live predictions and broadcast statistics */
.qm-prediction button.is-selected{opacity:1!important;border-color:#ffe382!important;background:linear-gradient(#5d4617,#211704)!important;color:#fff5bd!important;box-shadow:0 0 0 1px #211704,0 0 12px #f0c84b88!important;transform:translateY(-1px)}
.qm-prediction.is-locked button:not(.is-selected){opacity:.28!important}
.qm-prediction-split{display:grid;gap:2px;margin-top:3px;padding-top:4px;border-top:1px solid #7c684744;color:#d8cda8;font:700 6px/1.25 monospace;text-align:left}
.qm-prediction-split span{display:grid;grid-template-columns:1fr auto;gap:5px}.qm-prediction-split b{color:#fff0a8}.qm-prediction-split em{font-style:normal;color:#9fbee8}
.qm-full-time-stats{position:absolute;inset:4% 5%;z-index:80;display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:15px 18px;border:3px ridge #d2aa51;background:linear-gradient(180deg,#0d121beF,#050609f5);box-shadow:0 15px 45px #000e;color:#f5edcf;font-family:"Courier New",monospace;overflow:auto}
.qm-full-time-stats>header{text-align:center;border-bottom:2px solid #b39147;padding-bottom:8px}.qm-full-time-stats>header b{display:block;color:#f0cb68;font:900 13px/1 monospace;letter-spacing:2px}.qm-full-time-stats>header strong{display:block;margin-top:6px;color:#fff4c0;font:900 24px/1.1 Georgia,serif}.qm-full-time-stats>header small{display:block;margin-top:5px;color:#9fb0c0;font:700 8px/1 monospace;letter-spacing:1px}
.qm-ft-teams{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:0}.qm-ft-team{border:2px solid #506070;background:#05080dbb;overflow:hidden}.qm-ft-team.is-left{border-color:#66a96f}.qm-ft-team.is-right{border-color:#638ac4}.qm-ft-team h3{margin:0;padding:8px 10px;background:#18222d;color:#fff2b6;font:900 14px/1 monospace;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qm-ft-team.is-left h3{background:#18351d}.qm-ft-team.is-right h3{background:#172c4b}
.qm-ft-head,.qm-ft-row{display:grid;grid-template-columns:minmax(95px,1fr) 48px 62px 72px;align-items:center;gap:5px;padding:6px 8px;border-bottom:1px solid #43505c55}.qm-ft-head{color:#d1ad58;font:800 7px/1 monospace;background:#0a0d11}.qm-ft-row{color:#e8e4d2;font:700 9px/1.1 monospace}.qm-ft-row:last-child{border-bottom:0}.qm-ft-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff0ad}.qm-ft-row span{text-align:center}.qm-ft-row .qm-possession{text-align:right}
.qm-mvp{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 12px;border:2px solid #d8b557;background:linear-gradient(90deg,#34250c,#171005,#34250c);box-shadow:0 0 18px #d8b55733}.qm-mvp>span{font:900 10px/1 monospace;color:#f1cb63;letter-spacing:2px}.qm-mvp>b{color:#fff1b4;font:900 15px/1 Georgia,serif}.qm-mvp>small{color:#d6c78e;font:700 8px/1.25 monospace;text-align:right}
@media(max-width:760px){.qm-prediction-split{font-size:4px}.qm-full-time-stats{inset:3%;padding:8px;gap:6px}.qm-ft-teams{gap:5px}.qm-ft-team h3{font-size:8px;padding:5px}.qm-ft-head,.qm-ft-row{grid-template-columns:minmax(52px,1fr) 24px 31px 38px;gap:2px;padding:4px 3px;font-size:5px}.qm-full-time-stats>header strong{font-size:13px}.qm-mvp{grid-template-columns:1fr;padding:5px;gap:3px;text-align:center}.qm-mvp>small{text-align:center;font-size:5px}.qm-mvp>b{font-size:9px}}


/* Live Quidditch fixes: clickable predictions, compact split, Sky Sports full-time card */
.qm-lineup{pointer-events:auto!important}
.qm-lineup-card{pointer-events:auto!important}
.qm-lineup-team{pointer-events:none}
.qm-lineup-centre,.qm-prediction,.qm-prediction>div,.qm-prediction button{pointer-events:auto!important;position:relative;z-index:110}
.qm-prediction{width:210px!important;gap:7px!important;margin-top:8px!important;padding:8px!important;border:1px solid #826c3f66;background:#04070bd9}
.qm-prediction>em{font-size:9px!important;text-align:center}
.qm-prediction>div{grid-template-columns:1fr .7fr 1fr!important;gap:6px!important}
.qm-prediction button{min-height:34px!important;font-size:9px!important;cursor:pointer!important}
.qm-prediction button:not(:disabled):hover{filter:brightness(1.35);transform:translateY(-1px)}
.qm-prediction small{font-size:8px!important;min-height:12px!important;text-align:center}
.qm-prediction-split{font-size:7px!important;line-height:1.15!important;min-height:0!important;margin-top:4px!important;padding-top:4px!important}
.qm-prediction-split>span:only-child{display:block!important;text-align:center!important;font-size:7px!important;color:#8e9aaa!important;padding:2px!important}
.qm-sky-full-time{inset:2.5% 3.5%!important;padding:20px 24px!important;gap:13px!important;border:0!important;border-top:7px solid #e2b324!important;background:linear-gradient(150deg,#06172a 0%,#07111d 50%,#03101c 100%)!important;box-shadow:0 20px 70px #000f!important}
.qm-sky-full-time>header{border-bottom:1px solid #53708a!important;padding-bottom:12px!important}
.qm-sky-full-time>header b{font-size:15px!important;color:#f4cb32!important}
.qm-sky-full-time>header strong{font:900 31px/1.1 Arial,sans-serif!important;color:#fff!important}
.qm-sky-full-time>header strong i{display:inline-grid;place-items:center;min-width:46px;height:42px;margin:0 7px;background:#f2c426;color:#07121f;font-style:normal;border-radius:3px}
.qm-sky-full-time>header strong em{font-style:normal;color:#8fa0ae}
.qm-sky-full-time>header small{font-size:10px!important}
.qm-team-possession{display:grid;grid-template-columns:minmax(140px,1fr) 2fr minmax(140px,1fr);align-items:center;gap:14px;padding:10px 14px;background:#081d31;border:1px solid #25455e}
.qm-team-possession article{display:flex;align-items:center;justify-content:space-between;gap:10px;font:800 12px/1 Arial,sans-serif;color:#eaf3fa}.qm-team-possession article:last-child{text-align:right}.qm-team-possession strong{font-size:24px;color:#f4cc32}.qm-team-possession>div{height:13px;background:#24445f;border-radius:20px;overflow:hidden;position:relative}.qm-team-possession>div:after{content:"";position:absolute;right:0;top:0;bottom:0;width:100%;background:#284f84;z-index:0}.qm-team-possession>div i{display:block;position:relative;z-index:1;height:100%;background:#b61e35;border-right:3px solid #fff;box-sizing:border-box}
.qm-sky-full-time .qm-ft-teams{gap:18px!important}.qm-sky-full-time .qm-ft-team{border:1px solid #36546d!important;background:#071625!important}.qm-sky-full-time .qm-ft-team h3{padding:12px!important;font:900 16px/1 Arial,sans-serif!important;background:#102a42!important}.qm-sky-full-time .qm-ft-head,.qm-sky-full-time .qm-ft-row{grid-template-columns:minmax(120px,1fr) 70px 85px 90px!important;padding:9px 12px!important;font-family:Arial,sans-serif!important}.qm-sky-full-time .qm-ft-head{font-size:9px!important;background:#05101b!important}.qm-sky-full-time .qm-ft-row{font-size:12px!important}.qm-sky-full-time .qm-ft-row b{color:#fff!important}.qm-sky-full-time .qm-possession{text-align:center!important;color:#f4cc32;font-weight:900}
.qm-sky-full-time .qm-mvp{padding:13px 17px!important;border:0!important;border-left:7px solid #f2c426!important;background:#10283d!important}.qm-sky-full-time .qm-mvp>span{font-size:12px!important}.qm-sky-full-time .qm-mvp>b{font:900 20px/1 Arial,sans-serif!important}.qm-sky-full-time .qm-mvp>small{font-size:10px!important}
@media(max-width:760px){.qm-prediction{width:120px!important;padding:4px!important}.qm-prediction button{font-size:5px!important;min-height:24px!important}.qm-sky-full-time{inset:1.5%!important;padding:8px!important}.qm-team-possession{grid-template-columns:1fr;gap:5px}.qm-team-possession article{font-size:8px}.qm-team-possession strong{font-size:15px}.qm-sky-full-time .qm-ft-head,.qm-sky-full-time .qm-ft-row{grid-template-columns:minmax(60px,1fr) 30px 38px 42px!important;padding:5px 3px!important;font-size:6px!important}}

/* Professional live Quidditch player identifiers. Pet name above a side-coloured team badge. */
.qm-pet>.pet-label{
  bottom:calc(100% + 10px)!important;
  min-width:112px!important;
  max-width:180px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.9));
}
.qm-pet>.pet-label b{
  display:block!important;
  padding:2px 8px 3px!important;
  color:#fff7d6!important;
  font:900 11px/1.05 Georgia,serif!important;
  letter-spacing:.25px!important;
  text-shadow:0 2px 0 #000,1px 0 0 #000,-1px 0 0 #000!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.qm-pet>.pet-label small{
  display:block!important;
  width:max-content!important;
  max-width:170px!important;
  margin:1px auto 0!important;
  padding:3px 8px 3px!important;
  border:1px solid rgba(255,255,255,.35)!important;
  border-radius:2px!important;
  color:#fff!important;
  font:900 7px/1.05 Arial,sans-serif!important;
  letter-spacing:.65px!important;
  text-transform:uppercase!important;
  text-shadow:0 1px 1px #000!important;
  box-shadow:0 2px 5px rgba(0,0,0,.75),inset 0 1px rgba(255,255,255,.18)!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.qm-pet.team-left>.pet-label small{
  background:linear-gradient(#b73535,#681717)!important;
  border-color:#ef7b72!important;
}
.qm-pet.team-right>.pet-label small{
  background:linear-gradient(#316eb8,#173d73)!important;
  border-color:#79b4f2!important;
}
/* Keep identifiers readable when the broom/pet turns left. */
.qm-pet.is-leftward>.pet-label{transform:translateX(-50%) scaleX(-1)!important;}


/* ============================================================
   Quidditch broadcast polish: full labels and professional lineup
   ============================================================ */
.qm-pet>.pet-label{
  min-width:0!important;
  width:max-content!important;
  max-width:none!important;
  overflow:visible!important;
  white-space:nowrap!important;
  z-index:60!important;
}
.qm-pet>.pet-label b{
  width:max-content!important;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  font:900 10px/1.05 Arial,sans-serif!important;
  background:rgba(4,7,10,.82)!important;
  border-radius:2px!important;
  border:1px solid rgba(255,255,255,.22)!important;
}
.qm-pet>.pet-label small{
  width:max-content!important;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  font:900 6.5px/1 Arial,sans-serif!important;
  letter-spacing:.45px!important;
}
.qm-pet.team-left>.pet-label small{color:#ff8c8c!important;background:rgba(75,7,13,.94)!important;border-color:#d83a47!important;}
.qm-pet.team-right>.pet-label small{color:#91c5ff!important;background:rgba(5,31,70,.94)!important;border-color:#3985d7!important;}
/* The whole flyer flips; flip the text layer back without clipping it. */
.qm-pet.is-leftward>.pet-label{transform:translateX(-50%) scaleX(-1)!important;}

/* Pre-game presentation styled like a professional broadcast team sheet. */
.qm-lineup{background:linear-gradient(145deg,rgba(4,18,32,.98),rgba(2,8,15,.99))!important;}
.qm-lineup:before{content:"REPO SPORTS • MATCH CENTRE"!important;top:3.5%!important;color:#f3cc36!important;border-color:#f3cc36!important;background:#071522!important;}
.qm-lineup-card{
  width:min(96%,1160px)!important;
  grid-template-columns:minmax(0,1fr) 300px minmax(0,1fr)!important;
  gap:16px!important;
  align-items:center!important;
}
.qm-lineup-team{min-height:310px!important;border:1px solid #39556d!important;background:#071625!important;box-shadow:0 15px 45px #000c!important;}
.qm-lineup-left{border-top:7px solid #b9293f!important;}
.qm-lineup-right{border-top:7px solid #3278c8!important;}
.qm-lineup-team h3{font:900 18px/1 Arial,sans-serif!important;padding:15px 12px!important;background:#10283d!important;color:#fff!important;}
.qm-lineup-left h3{color:#ff9ba8!important;}.qm-lineup-right h3{color:#9bcaff!important;}
.qm-lineup-team span{font:800 12px/1 Arial,sans-serif!important;min-height:44px!important;background:#08111c!important;border-bottom:1px solid #294157!important;}
.qm-lineup-centre{padding:18px 12px!important;border:1px solid #36516a!important;border-top:7px solid #f3cc36!important;background:#071522!important;box-shadow:0 15px 45px #000c!important;}
.qm-lineup-centre>b{font:900 31px/1 Arial,sans-serif!important;}
.qm-lineup-centre>span{width:68px!important;height:68px!important;font:900 40px/1 Arial,sans-serif!important;}
.qm-lineup-centre>small{font:800 9px/1.3 Arial,sans-serif!important;}
.qm-prediction{width:270px!important;box-sizing:border-box!important;margin:10px auto 0!important;padding:10px!important;background:#04101bd9!important;border:1px solid #34516b!important;}
.qm-prediction>em{font:900 9px/1.2 Arial,sans-serif!important;color:#f3cc36!important;}
.qm-prediction button{font:900 8px/1 Arial,sans-serif!important;min-width:0!important;overflow:hidden!important;text-overflow:clip!important;white-space:nowrap!important;}
.qm-prediction small{font:700 8px/1.2 Arial,sans-serif!important;color:#c5d2dc!important;}
/* Undo broad .qm-lineup-centre span rules that caused enormous prediction text. */
.qm-lineup-centre .qm-prediction-split,
.qm-lineup-centre .qm-prediction-split span,
.qm-lineup-centre .qm-prediction-split b,
.qm-lineup-centre .qm-prediction-split em{
  width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  transform:none!important;font-size:8px!important;line-height:1.2!important;
}
.qm-prediction-split{display:grid!important;gap:4px!important;padding:7px 0 0!important;margin-top:5px!important;border-top:1px solid #37536a!important;text-align:left!important;}
.qm-prediction-split span{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;padding:2px 0!important;color:#dbe7ef!important;}
.qm-prediction-split span:only-child{display:block!important;text-align:center!important;color:#8194a3!important;font-size:8px!important;padding:3px 0!important;}
.qm-prediction-split b{overflow:hidden!important;text-overflow:clip!important;white-space:nowrap!important;color:#e9f0f5!important;}
.qm-prediction-split em{font-style:normal!important;color:#f3cc36!important;white-space:nowrap!important;}

@media(max-width:900px){
  .qm-lineup-card{grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr)!important;gap:7px!important;}
  .qm-prediction{width:180px!important;padding:6px!important;}
  .qm-lineup-team h3{font-size:11px!important;}
  .qm-lineup-team span{font-size:8px!important;}
}

/* Quidditch live labels — full pet name above a complete team-colour banner. */
.qm-pet{
  contain:layout style!important;
  overflow:visible!important;
}
.qm-pet>.pet-label{
  top:auto!important;
  bottom:calc(100% + 9px)!important;
  left:50%!important;
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  padding:0!important;
  overflow:visible!important;
  white-space:nowrap!important;
  text-align:center!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  z-index:100!important;
}
.qm-pet>.pet-label b{
  display:table!important;
  width:auto!important;
  max-width:none!important;
  margin:0 auto 2px!important;
  padding:3px 8px!important;
  overflow:visible!important;
  white-space:nowrap!important;
  text-overflow:clip!important;
  color:#fff7d6!important;
  background:rgba(5,7,9,.9)!important;
  border:1px solid rgba(255,255,255,.4)!important;
  border-radius:3px!important;
  font:900 10px/1 Arial,sans-serif!important;
  letter-spacing:.25px!important;
  text-shadow:0 1px 2px #000!important;
  box-shadow:0 2px 5px #000b!important;
}
.qm-pet>.pet-label small{
  display:table!important;
  width:auto!important;
  max-width:none!important;
  margin:0 auto!important;
  padding:3px 9px!important;
  overflow:visible!important;
  white-space:nowrap!important;
  text-overflow:clip!important;
  border-radius:3px!important;
  font:900 7px/1 Arial,sans-serif!important;
  letter-spacing:.35px!important;
  text-transform:uppercase!important;
  color:#fff!important;
  text-shadow:0 1px 2px #000!important;
  box-shadow:0 2px 6px #000c,inset 0 1px rgba(255,255,255,.2)!important;
}
.qm-pet.team-left>.pet-label small{
  color:#ffd9dc!important;
  background:linear-gradient(#c32e43,#751423)!important;
  border:1px solid #ff7886!important;
}
.qm-pet.team-right>.pet-label small{
  color:#dfffe5!important;
  background:linear-gradient(#248342,#0f4d27)!important;
  border:1px solid #65d985!important;
}
.qm-pet.is-leftward>.pet-label{
  transform:translateX(-50%) scaleX(-1)!important;
}

/* Live event-driven Quidditch commentary */
.qm-commentary{
  position:absolute;left:2.2%;bottom:3%;z-index:72;width:min(470px,44vw);max-height:150px;
  padding:9px 11px 10px;border-left:4px solid #e0b72f;border-top:1px solid #51627288;
  background:linear-gradient(90deg,rgba(3,12,20,.90),rgba(3,12,20,.68));
  box-shadow:0 8px 26px #000a;color:#eaf1f5;font-family:Arial,sans-serif;pointer-events:none;
  backdrop-filter:blur(2px)
}
.qm-commentary header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;color:#f0c93d;font:900 10px/1 Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase}
.qm-commentary header span:last-child{color:#9eafba;font-size:8px;letter-spacing:1px}
.qm-commentary-log{display:flex;flex-direction:column;gap:4px;overflow:hidden}
.qm-commentary-line{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:start;font:700 11px/1.25 Arial,sans-serif;text-shadow:0 1px 2px #000}
.qm-commentary-line time{color:#f0c93d;font:900 9px/1.35 monospace}
.qm-commentary-line.is-goal b{color:#ffd74f}.qm-commentary-line.is-shot b{color:#fff}.qm-commentary-line.is-steal b{color:#8ed3ff}.qm-commentary-line.is-rebound b{color:#ffbd83}
.qm-commentary-line:first-child{opacity:1}.qm-commentary-line:nth-child(2){opacity:.86}.qm-commentary-line:nth-child(3){opacity:.70}.qm-commentary-line:nth-child(4){opacity:.54}
.qm-commentary-pop{animation:qmCommentaryPop .28s ease-out}
@keyframes qmCommentaryPop{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:760px){.qm-commentary{left:1.5%;bottom:2%;width:62vw;max-height:92px;padding:5px 7px}.qm-commentary header{font-size:6px;margin-bottom:3px}.qm-commentary-line{grid-template-columns:28px 1fr;gap:4px;font-size:6px}.qm-commentary-line time{font-size:5px}}

/* Shared Quidditch broadcast commentary frame */
.qm-commentary{
  left:2.1%!important;bottom:2.1%!important;width:min(470px,46vw)!important;height:176px!important;
  padding:38px 46px 34px!important;background:url('assets/commentary-frame.png') center/100% 100% no-repeat!important;
  border:0!important;box-shadow:none!important;backdrop-filter:none!important;overflow:hidden!important;
}
.qm-commentary-log{height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;overflow:hidden}
.qm-commentary-line{grid-template-columns:40px 1fr!important;gap:8px!important;font:700 11px/1.25 Georgia,serif!important;color:#f7e7bd;text-shadow:0 1px 2px #000}
.qm-commentary-line time{color:#e4b54d!important;font:900 9px/1.35 monospace!important}
@media(max-width:760px){.qm-commentary{width:61vw!important;height:112px!important;padding:24px 29px 21px!important}.qm-commentary-line{font-size:7px!important;grid-template-columns:25px 1fr!important}.qm-commentary-line time{font-size:6px!important}}

/* Commentary frame visibility fix: newest line stays fully visible at the top. */
.qm-commentary{
  padding:34px 43px 29px!important;
}
.qm-commentary-log{
  justify-content:flex-start!important;
  align-content:flex-start!important;
  overflow:hidden!important;
  padding-top:1px!important;
}
.qm-commentary-line{
  flex:0 0 auto!important;
  min-height:0!important;
  line-height:1.22!important;
}
@media(max-width:760px){
  .qm-commentary{padding:22px 27px 18px!important}
  .qm-commentary-log{padding-top:0!important}
}

/* Smooth fullscreen Quidditch rendering: JS owns the 60fps interpolation. */
#quidditchModePitch .qm-pet{
  transition:none!important;
  will-change:left,top,transform;
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}

/* Quidditch Mode all-time broadcast leaderboards */
.quidditch-mode-layout{display:flex;align-items:center;justify-content:center;gap:14px;width:min(99vw,1780px);max-height:98vh}
.quidditch-mode-layout .quidditch-mode-tv{width:min(78vw,1390px);flex:0 1 auto}
.qm-career-panel{width:min(19vw,310px);height:min(88vh,760px);flex:0 0 auto;display:grid;grid-template-rows:auto repeat(3,minmax(0,1fr)) auto;gap:8px;padding:12px 11px;background:linear-gradient(180deg,#15110d 0%,#090806 100%);border:3px ridge #8e6c37;box-shadow:0 16px 34px #000c,inset 0 0 0 2px #2b2115;color:#ead39a;font-family:Georgia,serif;overflow:hidden}
.qm-career-panel header{text-align:center;border-bottom:1px solid #755728;padding-bottom:8px}.qm-career-panel header span{display:block;font:700 8px/1.1 monospace;letter-spacing:2px;color:#d9ae52}.qm-career-panel header b{display:block;margin-top:3px;font-size:17px;letter-spacing:1px;color:#fff0bc}.qm-career-panel header small{display:block;margin-top:2px;font-size:8px;color:#9d8a66}
.qm-career-panel section{min-height:0;padding:7px 7px 5px;background:linear-gradient(180deg,#231a11cc,#100d09e6);border:1px solid #5e4526;box-shadow:inset 0 0 12px #0008;overflow:hidden}.qm-career-panel h3{margin:0 0 5px;padding-bottom:4px;border-bottom:1px solid #644b29;color:#e5bd60;font:700 10px/1.1 Georgia,serif;letter-spacing:1px;text-align:center}
.qm-career-list{display:grid;gap:2px}.qm-career-list p{margin:12px 0;color:#786d5b;font-size:9px;text-align:center}.qm-career-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:5px;min-height:25px;padding:3px 4px;border-bottom:1px solid #3d3122;color:#e7d4aa}.qm-career-row:last-child{border-bottom:0}.qm-career-rank{color:#d7a93e;font:700 10px/1 monospace;text-align:center}.qm-career-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}.qm-career-name small{display:block;overflow:hidden;text-overflow:ellipsis;color:#8f8067;font:7px/1.1 sans-serif}.qm-career-value{text-align:right;color:#fff1b4;font:700 11px/1 Georgia,serif}.qm-career-value small{display:block;color:#9c8b6c;font:7px/1.1 sans-serif;font-weight:400}
.qm-career-panel footer{text-align:center;color:#786b55;font:7px/1.2 sans-serif;letter-spacing:.3px}
@media(max-width:1150px){.quidditch-mode-layout{gap:7px}.quidditch-mode-layout .quidditch-mode-tv{width:76vw}.qm-career-panel{width:21vw;padding:8px 6px}.qm-career-panel header b{font-size:13px}.qm-career-name{font-size:8px}.qm-career-value{font-size:9px}}
@media(max-width:820px){.quidditch-mode-layout{display:block;width:98vw;overflow:auto;max-height:98vh}.quidditch-mode-layout .quidditch-mode-tv{width:98vw}.qm-career-panel{width:98vw;height:auto;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto auto;margin-top:8px}.qm-career-panel header,.qm-career-panel footer{grid-column:1/-1}.qm-career-panel section{min-height:150px}}

/* Broadcast sidebar refinement: records and commentary sit beside, never over, the TV. */
.quidditch-mode-layout{
  align-items:center!important;
  gap:8px!important;
  width:min(99vw,1760px)!important;
  padding:0!important;
}
.quidditch-mode-layout .quidditch-mode-tv{
  width:min(80vw,1400px)!important;
  flex:1 1 auto!important;
}
.qm-broadcast-sidebar{
  width:min(18.5vw,300px);
  max-height:94vh;
  flex:0 0 auto;
  display:grid;
  grid-template-rows:minmax(0,1fr) 190px;
  gap:8px;
  align-self:center;
}
.qm-broadcast-sidebar .qm-career-panel{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  box-sizing:border-box;
  padding:10px 9px!important;
  gap:6px!important;
  border:2px solid #9b7536!important;
  outline:1px solid #281b0d;
  background:
    linear-gradient(180deg,rgba(46,31,17,.98),rgba(10,8,6,.99)),
    repeating-linear-gradient(90deg,transparent 0 31px,rgba(255,255,255,.018) 32px)!important;
  box-shadow:0 12px 30px #000c,inset 0 0 0 2px #4a351c,inset 0 0 22px #000a!important;
}
.qm-broadcast-sidebar .qm-career-panel header{
  padding:3px 4px 8px!important;
  border-bottom:2px solid #715125!important;
}
.qm-broadcast-sidebar .qm-career-panel header b{font-size:15px!important}
.qm-broadcast-sidebar .qm-career-panel section{
  padding:6px!important;
  border:1px solid #634922!important;
  background:linear-gradient(180deg,#251a10f2,#100c08f7)!important;
}
.qm-broadcast-sidebar .qm-career-panel h3{font-size:9px!important;margin-bottom:4px!important}
.qm-broadcast-sidebar .qm-career-row{min-height:22px!important;padding:2px 3px!important}
.qm-broadcast-sidebar .qm-career-name{font-size:9px!important}
.qm-broadcast-sidebar .qm-career-value{font-size:10px!important}

.qm-broadcast-sidebar .qm-commentary{
  position:relative!important;
  left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:100%!important;height:190px!important;max-height:none!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:38px 34px 27px!important;
  z-index:1!important;
  pointer-events:none!important;
  filter:drop-shadow(0 10px 20px #000b);
}
.qm-commentary-title{
  position:absolute;left:34px;right:34px;top:24px;
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:4px;border-bottom:1px solid #74532a;
  color:#d8aa4f;font:700 7px/1 monospace;letter-spacing:1.4px;
}
.qm-commentary-title b{color:#f8e0a3;font-size:8px;letter-spacing:1px}
.qm-broadcast-sidebar .qm-commentary-log{
  height:100%!important;
  padding-top:4px!important;
  gap:4px!important;
  justify-content:flex-start!important;
}
.qm-broadcast-sidebar .qm-commentary-line{
  grid-template-columns:31px minmax(0,1fr)!important;
  gap:6px!important;
  font-size:9px!important;
  line-height:1.2!important;
}
.qm-broadcast-sidebar .qm-commentary-line time{font-size:7px!important}

/* Pregame and full-time presentations remain clipped to the TV pitch only. */
.quidditch-mode-tv .qm-lineup,
.quidditch-mode-tv .qm-full-time-stats,
.quidditch-mode-tv .qm-goal-text.qm-full-time{
  max-width:none!important;
}

@media(max-width:1150px){
  .quidditch-mode-layout .quidditch-mode-tv{width:77vw!important}
  .qm-broadcast-sidebar{width:21vw;grid-template-rows:minmax(0,1fr) 158px;gap:5px}
  .qm-broadcast-sidebar .qm-commentary{height:158px!important;padding:31px 25px 22px!important}
  .qm-commentary-title{left:25px;right:25px;top:19px}
  .qm-broadcast-sidebar .qm-commentary-line{font-size:7px!important;grid-template-columns:25px minmax(0,1fr)!important}
}
@media(max-width:820px){
  .quidditch-mode-layout{display:block!important;width:98vw!important;max-height:98vh!important;overflow:auto!important}
  .quidditch-mode-layout .quidditch-mode-tv{width:98vw!important}
  .qm-broadcast-sidebar{width:98vw;max-height:none;grid-template-rows:auto 155px;gap:6px;margin-top:6px}
  .qm-broadcast-sidebar .qm-career-panel{grid-template-columns:repeat(3,1fr)!important;grid-template-rows:auto auto auto!important}
  .qm-broadcast-sidebar .qm-career-panel header,.qm-broadcast-sidebar .qm-career-panel footer{grid-column:1/-1}
  .qm-broadcast-sidebar .qm-career-panel section{min-height:135px!important}
  .qm-broadcast-sidebar .qm-commentary{height:155px!important;width:100%!important}
}

/* Repo Sports commentator studio — left of TV */
.quidditch-mode-layout{display:grid!important;grid-template-columns:minmax(240px,18vw) minmax(0,1fr) minmax(240px,18vw)!important;align-items:center!important;gap:8px!important;width:min(99vw,1900px)!important}
.quidditch-mode-layout .quidditch-mode-tv{width:100%!important;min-width:0!important}
.qm-commentator-sidebar{width:100%;max-height:94vh;display:grid;grid-template-rows:minmax(240px,38vh) 190px;gap:8px;align-self:center}
.qm-commentator-studio{position:relative;overflow:hidden;border:3px solid #9b7536;outline:1px solid #281b0d;background:#111 url('assets/quidditch-commentator-backdrop.png') center/cover no-repeat;box-shadow:0 12px 30px #000c,inset 0 0 0 2px #4a351c;min-height:0}
.qm-commentator-studio:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(4,3,2,.25) 70%,rgba(4,3,2,.72));pointer-events:none}
.qm-commentator-studio img{position:absolute;z-index:2;left:50%;bottom:44px;width:min(94%,360px);max-height:88%;object-fit:contain;object-position:center bottom;transform:translateX(-50%);image-rendering:pixelated;filter:drop-shadow(0 6px 4px #0009)}
.qm-commentator-live{position:absolute;z-index:4;left:10px;top:9px;padding:4px 7px;background:#8f1212;border:2px solid #e8c777;color:#fff;font:900 9px/1 monospace;letter-spacing:1px;box-shadow:0 2px 6px #000b}.qm-commentator-live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff3c32;margin-right:5px;box-shadow:0 0 7px #f33}
.qm-commentator-desk{position:absolute;z-index:3;left:0;right:0;bottom:0;height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#4b2d18,#25160c);border-top:3px ridge #a77d3f;box-shadow:0 -6px 14px #0008;color:#eac878;text-shadow:0 2px 2px #000}.qm-commentator-desk span{font:900 12px/1 Georgia,serif;letter-spacing:2px}.qm-commentator-desk b{margin-top:4px;font:700 7px/1 monospace;letter-spacing:1.3px;color:#fff0bd}
.qm-commentator-sidebar .qm-commentary{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%!important;height:190px!important;box-sizing:border-box!important;margin:0!important;padding:38px 34px 27px!important;filter:drop-shadow(0 10px 20px #000b)}
.qm-commentator-sidebar .qm-commentary-log{height:100%!important;padding-top:4px!important;gap:4px!important;justify-content:flex-start!important}.qm-commentator-sidebar .qm-commentary-line{grid-template-columns:31px minmax(0,1fr)!important;gap:6px!important;font-size:9px!important;line-height:1.2!important}.qm-commentator-sidebar .qm-commentary-line time{font-size:7px!important}
.qm-commentator-studio.is-speaking img{animation:qmCommentatorTalk .18s steps(1,end) infinite}.qm-commentator-studio.is-goal img{animation:qmCommentatorGoal .35s ease-in-out infinite alternate}
@keyframes qmCommentatorTalk{0%,49%{transform:translateX(-50%) translateY(0)}50%,100%{transform:translateX(-50%) translateY(-1px)}}
@keyframes qmCommentatorGoal{from{transform:translateX(-50%) translateY(0) rotate(-1deg)}to{transform:translateX(-50%) translateY(-8px) rotate(1deg)}}
@media(max-width:1150px){.quidditch-mode-layout{grid-template-columns:20vw minmax(0,1fr) 20vw!important}.qm-commentator-sidebar{grid-template-rows:minmax(210px,34vh) 158px}.qm-commentator-sidebar .qm-commentary{height:158px!important;padding:31px 25px 22px!important}}
@media(max-width:820px){.quidditch-mode-layout{display:block!important;overflow:auto!important}.qm-commentator-sidebar,.qm-broadcast-sidebar{width:98vw!important;margin:6px auto!important}.qm-commentator-sidebar{grid-template-columns:1fr;grid-template-rows:280px 155px}.qm-commentator-sidebar .qm-commentary{height:155px!important}.qm-commentator-studio img{width:min(78%,330px)}}

/* 2026-08-01: Correct Quidditch broadcast composition.
   Left: compact commentator + commentary. Centre: main television. Right: records. */
.quidditch-mode-layout{
  display:grid!important;
  grid-template-areas:"commentator television records"!important;
  grid-template-columns:minmax(210px,15vw) minmax(680px,1fr) minmax(210px,15vw)!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  width:min(99vw,1920px)!important;
  max-width:1920px!important;
  margin:0 auto!important;
}
.quidditch-mode-layout > .quidditch-mode-tv{
  grid-area:television!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  z-index:2!important;
}
.quidditch-mode-layout > .qm-commentator-sidebar{
  grid-area:commentator!important;
  width:100%!important;
  min-width:0!important;
  max-height:92vh!important;
  display:grid!important;
  grid-template-rows:minmax(180px,28vh) 170px!important;
  gap:7px!important;
  align-self:center!important;
  z-index:1!important;
}
.quidditch-mode-layout > .qm-broadcast-sidebar{
  grid-area:records!important;
  width:100%!important;
  min-width:0!important;
  max-height:92vh!important;
  align-self:center!important;
  z-index:1!important;
}
.qm-commentator-studio{
  min-height:180px!important;
  aspect-ratio:1/1!important;
  max-height:330px!important;
}
.qm-commentator-studio img{
  width:min(92%,255px)!important;
  max-height:86%!important;
  bottom:40px!important;
}
.qm-commentator-desk{height:48px!important}
.qm-commentator-desk span{font-size:10px!important}
.qm-commentator-desk b{font-size:6px!important}

/* Keep commentary entirely inside the supplied frame. */
.qm-commentator-sidebar .qm-commentary{
  width:100%!important;
  height:170px!important;
  min-width:0!important;
  overflow:hidden!important;
  padding:34px 28px 23px!important;
  box-sizing:border-box!important;
}
.qm-commentator-sidebar .qm-commentary-title{
  left:28px!important;
  right:28px!important;
  top:20px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.qm-commentator-sidebar .qm-commentary-log{
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:3px!important;
  padding:0!important;
}
.qm-commentator-sidebar .qm-commentary-line{
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr)!important;
  gap:5px!important;
  font-size:8px!important;
  line-height:1.18!important;
  overflow:hidden!important;
}
.qm-commentator-sidebar .qm-commentary-line time{
  font-size:6px!important;
  white-space:nowrap!important;
}
.qm-commentator-sidebar .qm-commentary-line b{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:normal!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow-wrap:anywhere!important;
}

/* Lineup and result overlays remain bounded by the central television. */
.quidditch-mode-tv{position:relative!important;overflow:hidden!important}
.quidditch-mode-tv .qm-lineup,
.quidditch-mode-tv .qm-full-time-stats,
.quidditch-mode-tv .qm-goal-text.qm-full-time{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

@media(max-width:1400px){
  .quidditch-mode-layout{
    grid-template-columns:minmax(185px,16vw) minmax(600px,1fr) minmax(185px,16vw)!important;
    gap:7px!important;
  }
  .quidditch-mode-layout > .qm-commentator-sidebar{grid-template-rows:minmax(165px,25vh) 150px!important}
  .qm-commentator-sidebar .qm-commentary{height:150px!important;padding:30px 23px 19px!important}
  .qm-commentator-sidebar .qm-commentary-title{left:23px!important;right:23px!important;top:17px!important}
  .qm-commentator-sidebar .qm-commentary-line{font-size:7px!important;grid-template-columns:24px minmax(0,1fr)!important}
}
@media(max-width:980px){
  .quidditch-mode-layout{
    display:grid!important;
    grid-template-areas:"television" "commentator" "records"!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:98vw!important;
    max-height:98vh!important;
    overflow:auto!important;
  }
  .quidditch-mode-layout > .quidditch-mode-tv,
  .quidditch-mode-layout > .qm-commentator-sidebar,
  .quidditch-mode-layout > .qm-broadcast-sidebar{width:100%!important}
  .quidditch-mode-layout > .qm-commentator-sidebar{
    grid-template-columns:minmax(220px,34%) minmax(0,1fr)!important;
    grid-template-rows:220px!important;
  }
  .qm-commentator-sidebar .qm-commentary{height:220px!important}
}

/* 2026-08-01: Final broadcast layout polish */
.quidditch-mode-layout{
  grid-template-columns:minmax(230px,16.5vw) minmax(700px,1fr) minmax(230px,16.5vw)!important;
  gap:14px!important;
  padding:12px!important;
  box-sizing:border-box!important;
}
.quidditch-mode-layout > .quidditch-mode-tv{
  align-self:center!important;
  filter:drop-shadow(0 16px 28px rgba(0,0,0,.58))!important;
}
.quidditch-mode-layout > .qm-commentator-sidebar,
.quidditch-mode-layout > .qm-broadcast-sidebar{
  align-self:center!important;
  min-height:0!important;
}
.quidditch-mode-layout > .qm-commentator-sidebar{
  grid-template-rows:minmax(220px,30vh) 205px!important;
  gap:10px!important;
}
.qm-commentator-studio,
.qm-broadcast-sidebar .qm-career-panel{
  border-radius:3px!important;
  box-shadow:0 12px 26px rgba(0,0,0,.62),inset 0 0 0 2px rgba(61,43,24,.9)!important;
}
.qm-commentator-studio{
  min-height:220px!important;
  max-height:360px!important;
}
.qm-commentator-studio img{
  width:min(92%,285px)!important;
  bottom:44px!important;
}
.qm-commentator-sidebar .qm-commentary{
  height:205px!important;
  padding:39px 30px 25px!important;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.6))!important;
}
.qm-commentator-sidebar .qm-commentary-title{
  left:30px!important;
  right:30px!important;
  top:21px!important;
}
.qm-commentator-sidebar .qm-commentary-log{
  gap:5px!important;
}
.qm-commentator-sidebar .qm-commentary-line{
  grid-template-columns:31px minmax(0,1fr)!important;
  gap:7px!important;
  font-size:9px!important;
  line-height:1.25!important;
}
.qm-commentator-sidebar .qm-commentary-line time{
  font-size:7px!important;
}
.qm-broadcast-sidebar{
  padding:0!important;
}
.qm-broadcast-sidebar .qm-career-panel{
  width:100%!important;
  height:min(82vh,720px)!important;
  padding:14px 12px!important;
  gap:10px!important;
  background:linear-gradient(180deg,#1b1510 0%,#0a0806 100%)!important;
}
.qm-broadcast-sidebar .qm-career-panel header{
  padding:2px 2px 10px!important;
}
.qm-broadcast-sidebar .qm-career-panel header b{
  font-size:16px!important;
  letter-spacing:1.4px!important;
}
.qm-broadcast-sidebar .qm-career-panel section{
  padding:9px 8px 7px!important;
  border-color:#6f522d!important;
  background:linear-gradient(180deg,rgba(44,31,19,.96),rgba(16,12,8,.96))!important;
}
.qm-broadcast-sidebar .qm-career-panel h3{
  font-size:10px!important;
  padding-bottom:6px!important;
}
.qm-broadcast-sidebar .qm-career-row{
  min-height:26px!important;
  padding:4px 4px!important;
}
.qm-broadcast-sidebar .qm-career-name{font-size:10px!important}
.qm-broadcast-sidebar .qm-career-value{font-size:11px!important}

@media(max-width:1400px){
  .quidditch-mode-layout{
    grid-template-columns:minmax(205px,17vw) minmax(610px,1fr) minmax(205px,17vw)!important;
    gap:10px!important;
    padding:8px!important;
  }
  .quidditch-mode-layout > .qm-commentator-sidebar{grid-template-rows:minmax(185px,27vh) 180px!important}
  .qm-commentator-sidebar .qm-commentary{height:180px!important;padding:35px 25px 22px!important}
  .qm-commentator-sidebar .qm-commentary-title{left:25px!important;right:25px!important;top:19px!important}
  .qm-commentator-sidebar .qm-commentary-line{font-size:8px!important;grid-template-columns:27px minmax(0,1fr)!important}
  .qm-broadcast-sidebar .qm-career-panel{height:min(80vh,650px)!important;padding:10px 8px!important;gap:7px!important}
}


/* 2026-08-01: final Quidditch broadcast arrangement and MMORPG records board. */
.quidditch-mode-layout{
  grid-template-areas:"records television commentator"!important;
  grid-template-columns:minmax(218px,15.5vw) minmax(680px,1fr) minmax(245px,17.5vw)!important;
  gap:7px!important;
  align-items:start!important;
}
.quidditch-mode-layout>.qm-broadcast-sidebar{grid-area:records!important;align-self:start!important;margin-top:0!important}
.quidditch-mode-layout>.quidditch-mode-tv{grid-area:television!important;align-self:start!important}
.quidditch-mode-layout>.qm-commentator-sidebar{grid-area:commentator!important;align-self:start!important;grid-template-rows:minmax(255px,38vh) 220px!important;gap:6px!important;margin-top:0!important}
.qm-commentator-sidebar .qm-commentary{height:220px!important;padding:39px 29px 27px!important}
.qm-commentator-sidebar .qm-commentary-line{font-size:9px!important;line-height:1.22!important;grid-template-columns:28px minmax(0,1fr)!important}
.qm-commentator-sidebar .qm-commentary-log{gap:5px!important}

/* MMORPG Quidditch records tome */
.qm-broadcast-sidebar .qm-career-panel{
  position:relative!important;border:3px ridge #ad833f!important;outline:2px solid #1a1007!important;border-radius:4px!important;
  background:linear-gradient(180deg,#302313 0%,#151008 44%,#090705 100%)!important;
  box-shadow:0 14px 34px #000d,inset 0 0 0 2px #5f4422,inset 0 0 32px #000c!important;
  padding:11px 9px 9px!important;gap:7px!important;
}
.qm-broadcast-sidebar .qm-career-panel:before{content:"⚜";display:grid;place-items:center;width:34px;height:34px;margin:-2px auto 5px;border-radius:50%;border:2px solid #d0a04a;background:#241609;color:#f0c96d;font-size:18px;box-shadow:0 3px 0 #000,inset 0 0 10px #0008}
.qm-broadcast-sidebar .qm-career-panel header{padding:0 4px 9px!important;border-bottom:2px solid #9b7132!important}
.qm-broadcast-sidebar .qm-career-panel header span{color:#c7933f!important;letter-spacing:2.5px!important}
.qm-broadcast-sidebar .qm-career-panel header b{font-size:16px!important;color:#ffe18f!important;text-shadow:0 2px #000!important}
.qm-broadcast-sidebar .qm-career-panel section{position:relative!important;padding:7px 6px!important;border:2px ridge #6f5128!important;background:linear-gradient(180deg,#2a1d10,#100b07)!important;box-shadow:inset 0 0 14px #000a!important}
.qm-broadcast-sidebar .qm-career-panel h3{margin:-1px -1px 6px!important;padding:5px!important;background:#161009!important;border-bottom:1px solid #8a632d!important;color:#f2cb70!important;font-size:9px!important;letter-spacing:1.2px!important}
.qm-career-row{grid-template-columns:22px minmax(0,1fr) auto!important;min-height:25px!important;border-bottom:1px dotted #644923!important}
.qm-career-rank{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#2e1d0c;border:1px solid #ba8736;color:#ffd777!important}
.qm-career-name{color:#f3dfaf!important}.qm-career-name small{color:#a38c68!important}.qm-career-value{color:#ffd36d!important}
.qm-career-panel footer{padding-top:2px!important;color:#8c7755!important}

.qm-prediction>div{grid-template-columns:1fr 1fr!important}
.qm-prediction-split span[data-prediction="draw"],.qm-prediction-split .is-draw{display:none!important}
@media(max-width:1150px){.quidditch-mode-layout{grid-template-columns:20vw minmax(0,1fr) 21vw!important}.quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:minmax(220px,34vh) 180px!important}.qm-commentator-sidebar .qm-commentary{height:180px!important}}
@media(max-width:820px){.quidditch-mode-layout{display:block!important}.qm-broadcast-sidebar,.qm-commentator-sidebar{width:98vw!important;margin:6px auto!important}.qm-commentator-sidebar{grid-template-rows:280px 190px!important}.qm-commentator-sidebar .qm-commentary{height:190px!important}}

/* Commentator tips and larger live commentary panel */
.quidditch-mode-layout>.qm-commentator-sidebar{
  grid-template-rows:minmax(255px,36vh) 38px 258px!important;
  gap:7px!important;
}
.qm-commentator-sidebar .qm-commentary{
  height:258px!important;
  min-height:258px!important;
  padding:41px 31px 29px!important;
}
.qm-commentator-sidebar .qm-commentary-title{left:31px!important;right:31px!important;top:21px!important}
.qm-commentator-sidebar .qm-commentary-log{gap:6px!important}
.qm-commentator-sidebar .qm-commentary-line{font-size:9px!important;line-height:1.28!important;grid-template-columns:29px minmax(0,1fr)!important}
.qm-throw-coin{
  width:100%!important;height:38px!important;min-height:38px!important;margin:0!important;padding:3px 12px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;
  border:2px ridge #ad833f!important;outline:1px solid #1b1007!important;border-radius:2px!important;
  background:linear-gradient(180deg,#563719 0%,#2b190c 52%,#171006 100%)!important;
  color:#ffe49b!important;box-shadow:0 5px 10px #0009,inset 0 0 0 1px #765027!important;
  cursor:pointer!important;transition:filter .12s ease,transform .12s ease!important;
}
.qm-throw-coin:hover:not(:disabled){filter:brightness(1.18)!important;transform:translateY(-1px)!important}
.qm-throw-coin:active:not(:disabled){transform:translateY(1px)!important}
.qm-throw-coin:disabled{opacity:.48!important;cursor:not-allowed!important;filter:grayscale(.4)!important}
.qm-throw-coin img{width:18px!important;height:14px!important;object-fit:contain!important;image-rendering:pixelated!important;filter:drop-shadow(1px 2px 0 #000)!important}
.qm-throw-coin span{display:flex;align-items:center}.qm-throw-coin b{font:900 10px/1 Georgia,serif;letter-spacing:1.5px}.qm-throw-coin.is-used{opacity:.55!important;filter:grayscale(.45)!important}.qm-throw-coin.is-used b{letter-spacing:.8px;font-size:8px}
.qm-commentator-studio.is-tipped{animation:qmTipStudioGlow .45s ease-in-out 3 alternate}
.qm-commentator-studio.is-tipped:before{content:"+200 GP";position:absolute;z-index:8;left:50%;top:17%;transform:translateX(-50%);padding:5px 9px;border:2px ridge #e4bd57;background:#211406;color:#ffe99a;font:900 11px/1 monospace;letter-spacing:1px;animation:qmTipFloat 2.1s ease-out forwards;white-space:nowrap;box-shadow:0 4px 10px #000b}
@keyframes qmTipStudioGlow{from{box-shadow:0 12px 26px #0009,inset 0 0 0 2px #3d2b18}to{box-shadow:0 12px 28px #0009,0 0 18px #ffd45d88,inset 0 0 18px #ffc94a55}}
@keyframes qmTipFloat{0%{opacity:0;transform:translate(-50%,12px)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-25px)}}
@media(max-width:1400px){
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:minmax(220px,32vh) 36px 220px!important}
  .qm-commentator-sidebar .qm-commentary{height:220px!important;min-height:220px!important;padding:37px 27px 24px!important}
}
@media(max-width:820px){
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:280px 38px 230px!important}
  .qm-commentator-sidebar .qm-commentary{height:230px!important;min-height:230px!important}
}

/* 2026-08-01: larger centre television with proportionate side panels. */
.quidditch-mode-layout{
  width:min(99.5vw,2040px)!important;
  grid-template-columns:minmax(210px,14.5vw) minmax(900px,1fr) minmax(245px,17vw)!important;
  gap:9px!important;
  padding:7px!important;
}
.quidditch-mode-layout>.quidditch-mode-tv{
  width:100%!important;
  max-width:none!important;
  align-self:start!important;
}
.quidditch-mode-layout>.qm-broadcast-sidebar,
.quidditch-mode-layout>.qm-commentator-sidebar{
  align-self:start!important;
  margin-top:0!important;
}
.qm-broadcast-sidebar .qm-career-panel{height:min(84vh,735px)!important}
.quidditch-mode-layout>.qm-commentator-sidebar{
  grid-template-rows:minmax(250px,35vh) 38px 252px!important;
}
.qm-commentator-sidebar .qm-commentary{height:252px!important;min-height:252px!important}
@media(max-width:1500px){
  .quidditch-mode-layout{grid-template-columns:minmax(190px,14vw) minmax(720px,1fr) minmax(220px,17vw)!important;gap:7px!important}
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:minmax(220px,32vh) 36px 220px!important}
  .qm-commentator-sidebar .qm-commentary{height:220px!important;min-height:220px!important}
}
@media(max-width:1100px){
  .quidditch-mode-layout{grid-template-columns:19vw minmax(620px,1fr) 20vw!important}
}


/* Barry Bramble lifetime tip counter */
.quidditch-mode-layout>.qm-commentator-sidebar{
  grid-template-rows:minmax(245px,36vh) 40px 72px 252px!important;
  gap:8px!important;
}
.qm-total-tips{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px;
  min-height:64px;padding:9px 13px;box-sizing:border-box;
  background:linear-gradient(180deg,#2a1b0f,#120c08);
  border:2px ridge #a77836;box-shadow:inset 0 0 0 1px #3b2917,0 6px 14px #0008;
  color:#e7c878;text-shadow:0 2px 2px #000;font-family:Georgia,serif;
}
.qm-total-tips>span{font:900 10px/1 Georgia,serif;letter-spacing:1.6px;color:#f3d68f}
.qm-total-tips>strong{grid-row:1/3;grid-column:2;display:flex;align-items:center;gap:6px;color:#fff1b9;font:900 18px/1 Georgia,serif;white-space:nowrap}
.qm-total-tips>strong img{width:22px;height:17px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(1px 2px 0 #000)}
.qm-total-tips>small{font:700 7px/1.2 monospace;color:#9f8b65;letter-spacing:.5px}
.qm-commentator-desk span{font-size:9px!important;letter-spacing:1.1px!important;text-align:center!important}
.qm-commentary-title span{max-width:72%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1150px){
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:minmax(215px,32vh) 38px 62px 220px!important}
  .qm-total-tips{min-height:58px;padding:7px 10px}.qm-total-tips>strong{font-size:15px}
}
@media(max-width:820px){
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:280px 38px 66px 230px!important}
}

/* Final Barry Bramble sidebar spacing fix */
.quidditch-mode-layout>.qm-commentator-sidebar{
  grid-template-rows:auto 40px 64px 278px!important;
  align-content:start!important;
  gap:7px!important;
}
.qm-commentator-sidebar .qm-commentator-studio{
  min-height:0!important;
  height:auto!important;
  aspect-ratio:1/1!important;
}
.qm-commentator-sidebar .qm-throw-coin{margin:0!important;min-height:40px!important}
.qm-commentator-sidebar .qm-total-tips{margin:0!important;min-height:64px!important}
.qm-commentator-sidebar .qm-commentary{
  margin:0!important;
  height:278px!important;
  min-height:278px!important;
}
@media(max-width:1500px){
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:auto 38px 58px 242px!important}
  .qm-commentator-sidebar .qm-commentary{height:242px!important;min-height:242px!important}
}
@media(max-width:820px){
  .quidditch-mode-layout>.qm-commentator-sidebar{grid-template-rows:auto 40px 64px 240px!important}
  .qm-commentator-sidebar .qm-commentary{height:240px!important;min-height:240px!important}
}

/* Barry Bramble community tip milestone */
.qm-commentator-toprow{
  display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:6px;align-items:stretch;min-width:0;
}
.qm-commentator-toprow .qm-commentator-studio{width:100%;height:auto!important;aspect-ratio:1/1;min-width:0}
.qm-tip-goal{
  position:relative;display:grid;grid-template-rows:auto minmax(110px,1fr) auto auto;gap:5px;
  min-width:0;padding:7px 5px 6px;box-sizing:border-box;overflow:hidden;
  background:linear-gradient(180deg,#21160d,#0d0906);border:2px ridge #a77337;
  box-shadow:inset 0 0 0 1px #4f3419,0 6px 15px #0009;color:#efd17f;text-align:center;font-family:Georgia,serif;
}
.qm-tip-goal header{display:grid;gap:2px;padding-bottom:5px;border-bottom:1px solid #6f4c24}
.qm-tip-goal header b{font:900 7px/1 Georgia,serif;letter-spacing:.8px;color:#f3d68f}
.qm-tip-goal header span{font:900 14px/1 Georgia,serif;color:#ffd75e;text-shadow:0 2px #000}
.qm-tip-goal-track{
  position:relative;align-self:stretch;min-height:120px;overflow:hidden;border:2px inset #765427;
  background:linear-gradient(90deg,#080603,#1a1007 50%,#080603);box-shadow:inset 0 0 14px #000;
}
.qm-tip-goal-fill{
  position:absolute;left:0;right:0;bottom:0;height:0%;transition:height 1.4s cubic-bezier(.22,.8,.24,1);
  background:linear-gradient(180deg,#f7d75b,#b87812 45%,#754407);opacity:.3;
  box-shadow:0 -4px 12px #f6cb4d66;
}
.qm-tip-goal-coins{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.qm-tip-goal-coins i{
  position:absolute;width:18px;height:13px;background:url('assets/commentator-coin.png') center/contain no-repeat;
  transform:rotate(var(--coin-r,0deg));filter:drop-shadow(1px 2px 0 #000);animation:qmTipCoinShimmer 2.8s ease-in-out infinite alternate;
}
@keyframes qmTipCoinShimmer{from{filter:drop-shadow(1px 2px 0 #000) brightness(.9)}to{filter:drop-shadow(1px 2px 0 #000) brightness(1.3)}}
.qm-tip-goal-track strong{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;padding:4px 3px;
  background:#100b07d9;border:1px solid #7d5929;color:#fff0a9;font:900 10px/1 Georgia,serif;text-shadow:0 1px #000;
}
.qm-tip-goal>img{width:54px;max-width:100%;height:35px;object-fit:contain;margin:auto;image-rendering:pixelated;filter:drop-shadow(1px 2px 0 #000)}
.qm-tip-goal>small{display:block;min-height:20px;color:#bca474;font:700 6px/1.15 monospace;overflow-wrap:anywhere}
.qm-tip-goal.is-unlocked{border-color:#e8c557;box-shadow:0 0 18px #e8c55766,inset 0 0 0 1px #76551f}
.qm-tip-goal.is-unlocked .qm-tip-goal-track strong{color:#fff7b4;border-color:#dfbd4f}
.qm-tip-goal.is-unlocked>img{animation:qmBoaterUnlocked 1.4s ease-in-out infinite alternate}
@keyframes qmBoaterUnlocked{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-3px) rotate(1deg)}}
.pet-barrys-boater{z-index:8!important;filter:drop-shadow(1px 2px 1px #0009)}
@media(max-width:1500px){.qm-commentator-toprow{grid-template-columns:minmax(0,1fr) 62px}.qm-tip-goal{padding:5px 3px}.qm-tip-goal>img{width:46px}.qm-tip-goal header span{font-size:12px}}
@media(max-width:820px){.qm-commentator-toprow{grid-template-columns:minmax(0,1fr) 76px}.qm-tip-goal-track{min-height:150px}}

/* Barry Bramble 250K goal panel: centred, readable and reward-forward */
.qm-commentator-toprow{
  grid-template-columns:minmax(0,1fr) 112px!important;
  gap:8px!important;
  align-items:stretch!important;
}
.qm-tip-goal{
  width:112px!important;
  min-width:112px!important;
  padding:9px 8px 8px!important;
  grid-template-rows:auto minmax(155px,1fr) 78px auto!important;
  gap:7px!important;
  justify-items:center!important;
  text-align:center!important;
  overflow:visible!important;
}
.qm-tip-goal header{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  padding:0 0 7px!important;
}
.qm-tip-goal header b{font-size:7px!important;line-height:1.15!important;letter-spacing:.7px!important;text-align:center!important;white-space:normal!important}
.qm-tip-goal header span{font-size:19px!important;line-height:1!important;text-align:center!important}
.qm-tip-goal-track{
  width:64px!important;
  min-height:155px!important;
  margin:0 auto!important;
  justify-self:center!important;
}
.qm-tip-goal-track strong{
  min-width:42px!important;
  padding:5px 4px!important;
  font-size:11px!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.qm-tip-goal>img{
  width:94px!important;
  height:72px!important;
  max-width:none!important;
  margin:0 auto!important;
  object-fit:contain!important;
  filter:drop-shadow(0 0 8px #e2b54666) drop-shadow(2px 3px 0 #000)!important;
  transform:scale(1.05)!important;
}
.qm-tip-goal>small{
  width:100%!important;
  min-height:46px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  padding:6px 4px!important;
  box-sizing:border-box!important;
  border:1px solid #7c5728!important;
  background:#120c07d9!important;
  color:#d9bd77!important;
  font:700 6px/1.2 monospace!important;
  text-align:center!important;
  overflow:visible!important;
}
.qm-tip-goal>small b{color:#ffd75e!important;font-size:7px!important;letter-spacing:.8px!important}
.qm-tip-goal>small span{color:#fff0b2!important;font:900 8px/1.15 Georgia,serif!important}
.qm-tip-goal>small em{font-style:normal!important;color:#a99163!important;font-size:5px!important}
.qm-tip-goal.is-unlocked>img{filter:drop-shadow(0 0 13px #ffd85caa) drop-shadow(2px 3px 0 #000)!important}
.qm-commentator-studio.is-tipped #qmCommentatorSprite{animation:none!important}
@media(max-width:1500px){
  .qm-commentator-toprow{grid-template-columns:minmax(0,1fr) 98px!important}
  .qm-tip-goal{width:98px!important;min-width:98px!important;padding:7px 5px!important;grid-template-rows:auto minmax(140px,1fr) 66px auto!important}
  .qm-tip-goal-track{width:58px!important;min-height:140px!important}
  .qm-tip-goal>img{width:82px!important;height:62px!important}
}
@media(max-width:820px){
  .qm-commentator-toprow{grid-template-columns:minmax(0,1fr) 104px!important}
  .qm-tip-goal{width:104px!important;min-width:104px!important}
}


/* Custom All-Time Records header artwork */
.qm-broadcast-sidebar .qm-career-panel .qm-career-art-header{
  width:100%!important;min-height:0!important;margin:0!important;padding:2px 0 8px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  border:0!important;border-bottom:2px solid #9b7132!important;background:transparent!important;
  overflow:visible!important;box-sizing:border-box!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-career-art-header img{
  display:block;width:100%!important;max-width:300px!important;height:auto!important;
  object-fit:contain!important;image-rendering:auto!important;filter:drop-shadow(0 4px 4px #000b)!important;
}
@media(max-width:1500px){.qm-broadcast-sidebar .qm-career-panel .qm-career-art-header img{max-width:245px!important}}
@media(max-width:820px){.qm-broadcast-sidebar .qm-career-panel .qm-career-art-header img{max-width:320px!important}}

/* Sudden-death winning goal pause before the full-time presentation. */
.qm-goal-text.qm-sudden-death-winner{top:43%;max-width:78%;padding:14px 24px;background:linear-gradient(180deg,#3d2108e8,#160b03f2);border:3px ridge #f0c85a;color:#fff2a6;text-align:center;font-size:22px;letter-spacing:1px;animation:qmSuddenWinner 4s ease both;z-index:90}
@keyframes qmSuddenWinner{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}12%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-54%) scale(1.06)}}


/* Quidditch spectator Agility reward */
.qm-agility-watch{position:absolute;right:18px;bottom:18px;z-index:42;display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid rgba(225,185,91,.72);background:linear-gradient(180deg,rgba(31,22,12,.90),rgba(10,8,5,.92));box-shadow:0 3px 10px #000b,inset 0 0 0 1px rgba(255,223,145,.08);color:#f2d987;pointer-events:none;opacity:.82;transition:transform .2s ease,filter .2s ease,opacity .2s ease}
.qm-agility-watch img{width:25px;height:25px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 2px #000)}
.qm-agility-watch span{display:grid;line-height:1.05}.qm-agility-watch b{font:800 8px/1 monospace;letter-spacing:1px;color:#ffe8a1}.qm-agility-watch small{margin-top:2px;font:700 7px/1 monospace;color:#bfa96f;white-space:nowrap}
.qm-agility-watch.is-earned{opacity:1;transform:scale(1.08);filter:brightness(1.45);box-shadow:0 0 18px #efd45d99,inset 0 0 0 1px #ffe6a2}
.qm-agility-xp-drop{position:absolute;right:26px;top:92px;z-index:75;display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #d9b14d;background:rgba(16,12,6,.93);box-shadow:0 5px 16px #000c;color:#fff0a7;opacity:0;transform:translateY(8px) scale(.92);pointer-events:none}
.qm-agility-xp-drop img{width:28px;height:28px;image-rendering:pixelated}.qm-agility-xp-drop b{font:900 18px/1 Georgia,serif;color:#fff2a3;text-shadow:0 2px #000}.qm-agility-xp-drop span{font:800 7px/1 monospace;letter-spacing:1px;color:#cfb76f}
.qm-agility-xp-drop.is-visible{animation:qmAgilityXpFloat 2.8s ease-out forwards}
@keyframes qmAgilityXpFloat{0%{opacity:0;transform:translateY(12px) scale(.9)}12%{opacity:1;transform:translateY(0) scale(1)}72%{opacity:1;transform:translateY(-18px) scale(1)}100%{opacity:0;transform:translateY(-34px) scale(.95)}}
@media(max-width:850px){.qm-agility-watch{right:8px;bottom:8px;padding:4px 6px}.qm-agility-watch img{width:18px;height:18px}.qm-agility-watch small{font-size:5px}.qm-agility-xp-drop{right:8px;top:70px}}

/* Repo Sports logo on team sheet and full-time broadcast */
.qm-lineup:after{content:"";position:absolute;top:1.2%;left:50%;transform:translateX(-50%);width:190px;height:88px;background:url('assets/repo-sports-logo.png') center/contain no-repeat;z-index:4;pointer-events:none;filter:drop-shadow(0 5px 8px #000a)}
.qm-lineup:before{top:13.5%!important;}
.qm-lineup-card{margin-top:70px!important;}
.qm-full-time-logo{display:block;width:150px;max-height:72px;object-fit:contain;margin:0 auto 5px;filter:drop-shadow(0 4px 5px #0009)}
.qm-sky-full-time>header b{display:block!important;margin-top:2px!important}
.qm-match-scorers{display:grid;grid-template-columns:1fr 1fr;gap:18px}.qm-match-scorers article{padding:9px 12px;background:#071625;border:1px solid #36546d}.qm-match-scorers article.is-left{border-left:5px solid #b61e35}.qm-match-scorers article.is-right{border-right:5px solid #2f7bba}.qm-match-scorers h4{margin:0 0 6px;color:#f3cc36;font:900 10px/1 Arial,sans-serif;letter-spacing:.8px}.qm-match-scorers p{display:flex;justify-content:space-between;gap:8px;margin:3px 0;color:#eef5fb;font:800 10px/1.2 Arial,sans-serif}.qm-match-scorers p span{color:#9ec1dc;font-weight:700}
.qm-sky-full-time .qm-ft-head,.qm-sky-full-time .qm-ft-row{grid-template-columns:minmax(110px,1fr) 54px 68px 74px 78px!important}.qm-sky-full-time .qm-ft-head span,.qm-sky-full-time .qm-ft-row span{text-align:center!important}
@media(max-width:760px){.qm-lineup:after{width:110px;height:50px}.qm-lineup:before{top:10%!important}.qm-lineup-card{margin-top:42px!important}.qm-full-time-logo{width:90px;max-height:44px}.qm-match-scorers{gap:5px}.qm-match-scorers article{padding:5px}.qm-match-scorers h4{font-size:6px}.qm-match-scorers p{font-size:6px}.qm-sky-full-time .qm-ft-head,.qm-sky-full-time .qm-ft-row{grid-template-columns:minmax(52px,1fr) 25px 31px 34px 38px!important}}

/* Final-score alignment and larger match-centre branding */
.qm-lineup:after{width:270px!important;height:126px!important;top:.6%!important}
.qm-lineup:before{top:16.5%!important}
.qm-lineup-card{margin-top:96px!important}

.qm-sky-full-time>header{display:grid!important;grid-template-columns:118px minmax(0,1fr)!important;align-items:center!important;gap:18px!important;text-align:left!important;padding:10px 18px 14px!important}
.qm-sky-full-time .qm-full-time-logo{width:112px!important;max-height:82px!important;margin:0!important}
.qm-final-scoreline{min-width:0;display:grid;grid-template-columns:62px minmax(0,1fr) 48px 18px 48px minmax(0,1fr) 124px;align-items:center;gap:8px;width:100%}
.qm-final-scoreline>b{font:900 12px/1.05 Arial,sans-serif!important;letter-spacing:1px!important;color:#f3cc36!important;text-align:center!important}
.qm-final-team{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:900 clamp(18px,2.1vw,30px)/1 Arial,sans-serif;color:#fff;text-align:center}
.qm-final-scoreline>i{display:grid;place-items:center;width:48px;height:42px;background:#f2c426;color:#07121f;font:900 25px/1 Arial,sans-serif;font-style:normal;border-radius:3px}
.qm-final-scoreline>em{font:900 25px/1 Arial,sans-serif;font-style:normal;color:#8fa0ae;text-align:center}
.qm-final-scoreline>small{font:800 8px/1.25 monospace!important;letter-spacing:1px!important;color:#9fb0c0!important;text-align:center!important}

@media(max-width:1100px){
  .qm-lineup:after{width:225px!important;height:104px!important}.qm-lineup:before{top:15%!important}.qm-lineup-card{margin-top:78px!important}
  .qm-sky-full-time>header{grid-template-columns:90px minmax(0,1fr)!important;gap:10px!important;padding:8px 10px!important}
  .qm-sky-full-time .qm-full-time-logo{width:86px!important}
  .qm-final-scoreline{grid-template-columns:44px minmax(0,1fr) 34px 12px 34px minmax(0,1fr) 82px;gap:4px}
  .qm-final-scoreline>b{font-size:8px!important}.qm-final-team{font-size:clamp(11px,1.7vw,18px)}
  .qm-final-scoreline>i{width:34px;height:31px;font-size:18px}.qm-final-scoreline>em{font-size:17px}.qm-final-scoreline>small{font-size:5px!important}
}
@media(max-width:760px){
  .qm-lineup:after{width:145px!important;height:68px!important}.qm-lineup:before{top:12.5%!important}.qm-lineup-card{margin-top:52px!important}
  .qm-sky-full-time>header{grid-template-columns:58px minmax(0,1fr)!important;gap:5px!important;padding:5px!important}
  .qm-sky-full-time .qm-full-time-logo{width:55px!important}
  .qm-final-scoreline{grid-template-columns:28px minmax(0,1fr) 24px 7px 24px minmax(0,1fr);gap:2px}
  .qm-final-scoreline>b{font-size:5px!important}.qm-final-team{font-size:8px}.qm-final-scoreline>i{width:24px;height:22px;font-size:12px}.qm-final-scoreline>em{font-size:10px}.qm-final-scoreline>small{display:none!important}
}


/* Final Match Centre and Barry Bramble branding refinements */
.qm-lineup:before{top:18.2%!important;}
.qm-lineup-card{margin-top:108px!important;}
.qm-commentator-live{overflow:visible!important;}
.qm-commentator-live:after{
  content:"";position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);
  width:62px;height:34px;background:url('assets/repo-sports-logo.png') center/contain no-repeat;
  filter:drop-shadow(0 2px 2px #000b);pointer-events:none;
}
.qm-prediction button.is-selected{opacity:1!important;filter:brightness(1.18)!important;box-shadow:0 0 0 1px #f4d770,0 0 12px #f4cc3988!important;}
.qm-prediction.is-locked button{pointer-events:none!important;}
.qm-prediction:not(.is-locked) button{pointer-events:auto!important;cursor:pointer!important;}
@media(max-width:1100px){.qm-lineup:before{top:17.2%!important}.qm-lineup-card{margin-top:91px!important}.qm-commentator-live:after{width:49px;height:27px}}
@media(max-width:760px){.qm-lineup:before{top:14.4%!important}.qm-lineup-card{margin-top:60px!important}.qm-commentator-live:after{width:38px;height:21px;top:calc(100% + 2px)}}
/* Restored permanent Quidditch spectator XP indicator */
.quidditch-mode-overlay:not(.is-open) .qm-agility-watch,.quidditch-mode-overlay:not(.is-open) .qm-agility-xp-drop{display:none}
.quidditch-mode-tv>.qm-agility-watch{display:flex!important}

/* Quidditch broadcast advertisements */
.qm-tv-ad{position:absolute;z-index:30;left:21%;right:21%;bottom:14.1%;height:auto;padding:0!important;margin:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:0 4px 11px #000b!important;cursor:pointer;overflow:hidden;animation:qmAdSlideUp .45s steps(6,end) both}
.qm-tv-ad[hidden]{display:none!important}.qm-tv-ad img{display:block;width:100%;height:auto;image-rendering:pixelated;pointer-events:none}.qm-tv-ad:hover{filter:brightness(1.08);background:transparent!important;outline:0!important;box-shadow:0 4px 11px #000b!important}.qm-tv-ad:focus,.qm-tv-ad:focus-visible{outline:0!important;background:transparent!important}.qm-tv-ad:active{transform:translateY(1px)}
@keyframes qmAdSlideUp{from{opacity:0;transform:translateY(115%)}to{opacity:1;transform:translateY(0)}}
.qm-ad-confirm{position:absolute;z-index:45;left:21%;right:21%;bottom:14.1%;display:block;background:transparent;pointer-events:none}
.qm-ad-confirm[hidden]{display:none!important}.qm-ad-confirm-card{position:relative;width:100%;filter:drop-shadow(0 5px 12px #000);animation:qmConfirmIn .18s steps(3,end) both;pointer-events:auto}.qm-ad-confirm-card>img{display:block;width:100%;height:auto;image-rendering:pixelated}
.qm-ad-confirm-hotspot{position:absolute!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer}
.qm-ad-confirm-hotspot.is-yes{left:23.6%;top:64%;width:35.6%;height:25%}.qm-ad-confirm-hotspot.is-no{left:61.1%;top:64%;width:27.7%;height:25%}.qm-ad-confirm-hotspot.is-close{right:1.1%;top:13.5%;width:4.4%;height:24%}
.qm-ad-confirm-hotspot:hover,.qm-ad-confirm-hotspot:focus,.qm-ad-confirm-hotspot:focus-visible{background:transparent!important;outline:0!important;box-shadow:none!important;filter:none!important}
@keyframes qmConfirmIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(max-width:760px){.qm-tv-ad,.qm-ad-confirm{left:14%;right:14%;bottom:14%}.qm-ad-confirm-card{width:100%}}

/* 2026-08-01: Fishing advert interaction cleanup.
   Keep browser/global button hover styles from painting a brown rectangle over the art. */
#qmFishingAd,
#qmFishingAd:hover,
#qmFishingAd:focus,
#qmFishingAd:focus-visible,
#qmFishingAd:active,
#qmFishingAdYes,
#qmFishingAdYes:hover,
#qmFishingAdYes:focus,
#qmFishingAdYes:focus-visible,
#qmFishingAdYes:active,
#qmFishingAdNo,
#qmFishingAdNo:hover,
#qmFishingAdNo:focus,
#qmFishingAdNo:focus-visible,
#qmFishingAdNo:active,
#qmFishingAdClose,
#qmFishingAdClose:hover,
#qmFishingAdClose:focus,
#qmFishingAdClose:focus-visible,
#qmFishingAdClose:active {
  -webkit-appearance:none!important;
  appearance:none!important;
  border:0!important;
  outline:0!important;
  background:none!important;
  background-color:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  -webkit-tap-highlight-color:transparent!important;
}
#qmFishingAd::before,#qmFishingAd::after,
#qmFishingAdYes::before,#qmFishingAdYes::after,
#qmFishingAdNo::before,#qmFishingAdNo::after,
#qmFishingAdClose::before,#qmFishingAdClose::after{content:none!important;display:none!important}
#qmFishingAd:hover{filter:brightness(1.05)!important;box-shadow:0 4px 11px #000b!important}
#qmFishingAd:active{transform:translateY(1px)!important}
#qmFishingAd img,
.qm-ad-confirm-card>img{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important}

/* Keep the complete purchase artwork visible, including its right-hand edge and close button. */
.qm-ad-confirm{overflow:visible!important;padding:0 7px!important}
.qm-ad-confirm-card{width:100%!important;max-width:100%!important;margin:0 auto!important;overflow:visible!important;box-sizing:border-box!important}
.qm-ad-confirm-card>img{width:100%!important;max-width:100%!important;height:auto!important;object-fit:contain!important;object-position:center!important}


/* Fishing advert purchase-complete feedback */
.qm-ad-success{position:absolute;z-index:46;left:21%;right:21%;bottom:14.1%;pointer-events:none;animation:qmPurchaseSuccessIn .28s steps(4,end) both}
.qm-ad-success[hidden]{display:none!important}
.qm-ad-success-card{box-sizing:border-box;width:100%;padding:8px 15px 9px;border:4px solid #17120c;outline:2px solid #806033;background:linear-gradient(#17354a,#0c2639);box-shadow:0 5px 14px #000;color:#f5ecd2;font-family:monospace;text-shadow:2px 2px #000;image-rendering:pixelated}
.qm-ad-success-title{text-align:center;color:#ffdc62;font-weight:900;font-size:clamp(12px,1.45vw,22px);letter-spacing:1.5px;margin-bottom:6px}
.qm-ad-success-row{display:grid;grid-template-columns:27px auto 1fr;align-items:center;gap:7px;margin:4px 0;padding:5px 9px;border:1px solid #85692c;background:#071522cc}
.qm-ad-success-row.is-gp b{color:#ffd447}.qm-ad-success-row.is-xp b{color:#8ee36e}
.qm-ad-success-row b{font-size:clamp(10px,1.15vw,17px);white-space:nowrap}.qm-ad-success-row small{text-align:right;color:#f0e7ce;font-weight:900;font-size:clamp(7px,.72vw,11px);letter-spacing:.5px}
.qm-ad-success-icon{display:grid;place-items:center;font-size:17px;color:#ffcf35;text-shadow:1px 1px #000}
.qm-ad-success-balances{display:flex;justify-content:space-between;gap:14px;margin-top:6px;padding:0 8px;color:#c9bfa8;font-size:clamp(7px,.72vw,11px);font-weight:900}.qm-ad-success-balances b{color:#fff}
@keyframes qmPurchaseSuccessIn{0%{opacity:0;transform:translateY(35%) scale(.94)}70%{opacity:1;transform:translateY(-3%) scale(1.02)}100%{opacity:1;transform:none}}
@media(max-width:760px){.qm-ad-success{left:14%;right:14%;bottom:14%}.qm-ad-success-card{padding:5px 8px}.qm-ad-success-row{grid-template-columns:20px auto 1fr;padding:3px 5px;gap:4px}.qm-ad-success-icon{font-size:12px}}

/* Repo Sports watch-party block beneath the all-time records. */
.qm-career-panel .qm-watch-party{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:0;
  padding:8px 8px 7px;
  border:1px solid #634922;
  background:linear-gradient(180deg,#17110bf2,#0b0907fa);
  box-shadow:inset 0 0 12px #0009;
  overflow:hidden;
}
.qm-career-panel .qm-watch-party>img{
  display:block;
  width:min(100%,250px);
  height:auto;
  object-fit:contain;
  object-position:left top;
  margin:0 0 7px 0;
  image-rendering:pixelated;
}
.qm-watcher-accounts i{display:block;width:6px;height:6px;border-radius:50%;background:#43d36c;box-shadow:0 0 6px #43d36c;flex:0 0 auto}
.qm-watcher-accounts{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:5px;width:100%;padding:0;max-height:42px;overflow:auto;scrollbar-width:thin}
.qm-watcher-accounts>span{display:flex;align-items:center;gap:4px;max-width:100%;padding:4px 6px;border:1px solid #4e3920;background:#21180f;color:#f3dfab;font:700 7px/1 monospace;box-shadow:inset 0 0 5px #0008}
.qm-watcher-accounts b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qm-watcher-accounts i{width:4px;height:4px}
@media(max-width:820px){.qm-career-panel .qm-watch-party{grid-column:1/-1}.qm-career-panel .qm-watch-party>img{width:min(100%,280px)}.qm-watcher-accounts{max-height:52px}}

/* 2026-08-01: keep all three Quidditch leaderboards compact enough to show a full Top 5. */
.qm-broadcast-sidebar .qm-career-panel{
  grid-template-rows:auto repeat(3,minmax(118px,1fr)) auto!important;
  gap:5px!important;
  padding:8px 7px 7px!important;
}
.qm-broadcast-sidebar .qm-career-panel:before{
  width:26px!important;
  height:26px!important;
  margin:-1px auto 2px!important;
  font-size:14px!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-career-art-header{
  padding:0 2px 5px!important;
}
.qm-broadcast-sidebar .qm-career-panel section{
  min-height:0!important;
  padding:4px 4px 3px!important;
  overflow:hidden!important;
}
.qm-broadcast-sidebar .qm-career-panel h3{
  margin:-1px -1px 3px!important;
  padding:3px 4px!important;
  font-size:8px!important;
  line-height:1!important;
  letter-spacing:.8px!important;
}
.qm-broadcast-sidebar .qm-career-list{
  gap:0!important;
}
.qm-broadcast-sidebar .qm-career-row{
  grid-template-columns:18px minmax(0,1fr) auto!important;
  gap:3px!important;
  min-height:18px!important;
  padding:1px 2px!important;
  line-height:1!important;
}
.qm-broadcast-sidebar .qm-career-rank{
  width:15px!important;
  height:15px!important;
  font-size:8px!important;
}
.qm-broadcast-sidebar .qm-career-name{
  font-size:8px!important;
  line-height:1!important;
}
.qm-broadcast-sidebar .qm-career-name small{
  font-size:6px!important;
  line-height:1!important;
}
.qm-broadcast-sidebar .qm-career-value{
  font-size:9px!important;
  line-height:1!important;
}
.qm-broadcast-sidebar .qm-career-value small{
  font-size:6px!important;
  line-height:1!important;
}
.qm-career-panel .qm-watch-party{
  padding:6px!important;
}

/* 2026-08-01: tighter watch-party spacing and character-backed viewer cards. */
.qm-career-panel .qm-watch-party>img{
  margin-bottom:1px!important;
}
.qm-watcher-accounts{
  align-items:flex-end!important;
  gap:5px!important;
  margin-top:0!important;
  max-height:72px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.qm-watcher-card{
  position:relative;
  display:flex;
  align-items:flex-end;
  flex:0 0 auto;
  min-width:max-content;
}
.qm-watcher-card.has-portrait{
  height:62px;
  padding-top:0;
}
.qm-watcher-portrait{
  position:absolute;
  z-index:0;
  left:50%;
  bottom:13px;
  width:56px;
  height:52px;
  object-fit:contain;
  object-position:center bottom;
  transform:translateX(-50%);
  image-rendering:pixelated;
  pointer-events:none;
}
.qm-watcher-name{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  padding:4px 6px;
  border:1px solid #4e3920;
  background:#21180ff2;
  color:#f3dfab;
  font:700 7px/1 monospace;
  box-shadow:inset 0 0 5px #0008,0 1px 2px #000;
}
.qm-watcher-name i{
  display:block;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#43d36c;
  box-shadow:0 0 6px #43d36c;
  flex:0 0 auto;
}
.qm-watcher-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Neutralise the old direct-child viewer-chip rule now that each chip is wrapped. */
.qm-watcher-accounts>.qm-watcher-card{padding-left:0;padding-right:0;border:0;background:transparent;box-shadow:none}

/* 2026-08-01: updated fishing purchase artwork and lower viewer nameplates. */
.qm-watcher-card.has-portrait{
  height:76px!important;
}
.qm-watcher-portrait{
  width:66px!important;
  height:66px!important;
  bottom:12px!important;
  object-position:center bottom!important;
}
.qm-watcher-name{
  align-self:flex-end!important;
  transform:translateY(0)!important;
}

/* 2026-08-01: pull Quidditch viewer portraits and nameplates up beneath the sponsor graphic. */
.qm-career-panel .qm-watch-party{
  justify-content:flex-start!important;
  overflow:hidden!important;
}
.qm-career-panel .qm-watch-party>img{
  flex:0 0 auto!important;
  margin:0 0 0 0!important;
}
.qm-watcher-accounts{
  flex:0 0 auto!important;
  align-items:flex-start!important;
  margin-top:-3px!important;
  max-height:54px!important;
  min-height:54px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.qm-watcher-card{
  align-items:flex-end!important;
}
.qm-watcher-card.has-portrait{
  height:52px!important;
  padding-top:0!important;
}
.qm-watcher-portrait{
  width:45px!important;
  height:45px!important;
  bottom:9px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.qm-watcher-name{
  position:absolute!important;
  left:50%!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  white-space:nowrap!important;
}
.qm-watcher-card:not(.has-portrait) .qm-watcher-name{
  position:relative!important;
  left:auto!important;
  bottom:auto!important;
  transform:none!important;
  margin-top:31px!important;
}

/* 2026-08-01 final watch-party placement fix: keep viewers directly below sponsor art. */
.qm-career-panel .qm-watch-party{
  position:relative!important;
  display:block!important;
  padding:6px!important;
  overflow:hidden!important;
}
.qm-career-panel .qm-watch-party>img{
  display:block!important;
  width:min(100%,265px)!important;
  height:auto!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:left top!important;
}
.qm-career-panel .qm-watcher-accounts{
  position:absolute!important;
  left:6px!important;
  right:6px!important;
  top:68px!important;
  width:auto!important;
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:flex-start!important;
  align-content:flex-start!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.qm-career-panel .qm-watcher-card{
  position:relative!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:52px!important;
  height:56px!important;
  padding:0!important;
  overflow:visible!important;
}
.qm-career-panel .qm-watcher-card.has-portrait{
  width:52px!important;
  min-width:52px!important;
  height:56px!important;
}
.qm-career-panel .qm-watcher-portrait{
  position:absolute!important;
  z-index:0!important;
  left:50%!important;
  top:0!important;
  bottom:auto!important;
  width:38px!important;
  height:42px!important;
  transform:translateX(-50%)!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.qm-career-panel .qm-watcher-name{
  position:absolute!important;
  z-index:2!important;
  left:50%!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  width:max-content!important;
  max-width:72px!important;
  padding:3px 5px!important;
  font-size:7px!important;
  line-height:1!important;
}
.qm-career-panel .qm-watcher-card:not(.has-portrait) .qm-watcher-name{
  bottom:2px!important;
}

/* 2026-08-01: use complete account name-card artwork for online Quidditch viewers. */
.qm-career-panel .qm-watch-party{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  padding:5px 6px 6px!important;
  overflow:visible!important;
}
.qm-career-panel .qm-watch-party>img{
  width:min(100%,250px)!important;
  height:auto!important;
  flex:0 0 auto!important;
  margin:0 0 2px 0!important;
}
.qm-watcher-accounts{
  position:static!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  align-content:flex-start!important;
  justify-content:flex-start!important;
  gap:3px 4px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
.qm-watcher-namecard{
  display:block!important;
  flex:0 0 auto!important;
  width:96px!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  line-height:0!important;
}
.qm-watcher-namecard img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
  border:0!important;
  background:transparent!important;
}
.qm-no-known-watchers{
  padding:3px 5px!important;
  color:#bca779!important;
  font:700 7px/1 monospace!important;
  border:0!important;
  background:transparent!important;
}
@media(max-width:820px){.qm-watcher-namecard{width:88px!important}}

/* 2026-08-01 polished Repo Sports viewer roster. Keep all online name cards
   inside the sponsor panel with consistent sizing and spacing. */
.qm-career-panel .qm-watch-party{
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-height:0!important;
  padding:7px 8px 8px!important;
  border:2px solid #755326!important;
  background:linear-gradient(180deg,#2b1b10 0%,#160f0a 100%)!important;
  box-shadow:inset 0 0 0 1px #1a1008,inset 0 0 14px #0009!important;
  overflow:hidden!important;
}
.qm-career-panel .qm-watch-party>img{
  display:block!important;
  width:min(100%,272px)!important;
  height:auto!important;
  margin:0 auto 6px!important;
  object-fit:contain!important;
  object-position:center!important;
  image-rendering:pixelated!important;
  flex:0 0 auto!important;
}
.qm-career-panel .qm-watcher-accounts{
  position:static!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:center!important;
  justify-items:stretch!important;
  gap:5px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:6px 0 0!important;
  border-top:1px solid #684923!important;
  overflow:hidden!important;
}
.qm-career-panel .qm-watcher-namecard{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:0 2px 4px #0008!important;
  line-height:0!important;
  overflow:hidden!important;
  transition:transform .12s ease,filter .12s ease!important;
}
.qm-career-panel .qm-watcher-namecard img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1.93/1!important;
  object-fit:contain!important;
  object-position:center!important;
  image-rendering:pixelated!important;
}
.qm-career-panel .qm-watcher-namecard:hover{
  transform:translateY(-1px)!important;
  filter:brightness(1.08)!important;
}
.qm-career-panel .qm-no-known-watchers{
  grid-column:1/-1!important;
  text-align:center!important;
  padding:5px!important;
}
@media(max-width:1150px) and (min-width:821px){
  .qm-career-panel .qm-watch-party{padding:6px!important}
  .qm-career-panel .qm-watch-party>img{width:min(100%,245px)!important;margin-bottom:5px!important}
  .qm-career-panel .qm-watcher-accounts{gap:4px!important;padding-top:5px!important}
}
@media(max-width:820px){
  .qm-career-panel .qm-watch-party>img{width:min(100%,320px)!important}
  .qm-career-panel .qm-watcher-accounts{grid-template-columns:repeat(3,minmax(90px,1fr))!important;overflow-x:auto!important}
}

/* 2026-08-01 final Repo Sports panel balance tweaks. */
.qm-career-panel .qm-watch-party>img{
  transform:translateY(20px)!important;
  margin-bottom:6px!important;
}
.qm-career-panel .qm-watcher-accounts{
  gap:3px!important;
  padding-left:0!important;
  padding-right:0!important;
}
.qm-career-panel .qm-watcher-namecard{
  width:calc(100% + 4px)!important;
  margin-left:-2px!important;
  margin-right:-2px!important;
}
.qm-career-panel .qm-watcher-namecard:hover{
  transform:translateY(-1px) scale(1.01)!important;
}

/* 2026-08-01 watcher roster visibility fix.
   Keep every supported online account card on a single row so additional
   viewers cannot be clipped by the fixed-height records sidebar. */
.qm-career-panel .qm-watcher-accounts{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:4px!important;
  overflow:visible!important;
}
.qm-career-panel .qm-watcher-namecard{
  width:100%!important;
  margin:0!important;
  min-width:0!important;
}
.qm-career-panel .qm-watcher-namecard img{
  width:100%!important;
  max-width:none!important;
}
@media(max-width:1150px) and (min-width:821px){
  .qm-career-panel .qm-watcher-accounts{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:3px!important;
  }
}
@media(max-width:820px){
  .qm-career-panel .qm-watcher-accounts{
    grid-template-columns:repeat(5,minmax(70px,1fr))!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
}
.qm-career-panel .qm-watcher-namecard-fallback{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  aspect-ratio:1.93/1!important;
  border:1px solid #75603a!important;
  background:linear-gradient(#332d20,#17130d)!important;
  color:#d7ad4b!important;
  font:700 clamp(6px,.58vw,9px)/1.1 monospace!important;
  text-align:center!important;
  text-shadow:1px 1px #000!important;
}

/* 2026-08-01: readable two-row watch-party roster.
   Restore the original three-card sizing, allow a second row for viewers 4–5,
   and pull the sponsor artwork upward to use the panel space better. */
.qm-career-panel .qm-watch-party>img{
  transform:translateY(5px)!important;
  margin-top:-4px!important;
  margin-bottom:10px!important;
}
.qm-career-panel .qm-watcher-accounts{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  align-content:start!important;
  gap:7px 8px!important;
  padding:8px 8px 4px!important;
  overflow:visible!important;
}
.qm-career-panel .qm-watcher-namecard{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.qm-career-panel .qm-watcher-namecard img{
  width:100%!important;
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
}
@media(max-width:1150px) and (min-width:821px){
  .qm-career-panel .qm-watcher-accounts{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    padding:7px 5px 3px!important;
  }
}

/* 2026-08-01 actual watch-party roster spacing/hover fix.
   Keep the divider directly beneath the sponsor graphic and reserve two
   readable rows for up to five active viewer cards. */
.qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
  justify-content:flex-start!important;
  padding:6px 8px 8px!important;
  overflow:visible!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watch-party>img{
  width:min(100%,272px)!important;
  transform:none!important;
  margin:-2px auto 2px!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  align-content:start!important;
  align-items:start!important;
  gap:7px 8px!important;
  width:100%!important;
  min-height:70px!important;
  max-height:none!important;
  margin:0!important;
  padding:5px 6px 0!important;
  border-top:1px solid #684923!important;
  overflow:visible!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-namecard{
  position:relative!important;
  z-index:1!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  overflow:visible!important;
  transform-origin:center!important;
  transition:transform .14s ease,filter .14s ease!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-namecard img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-namecard:hover{
  z-index:20!important;
  transform:translateY(-2px) scale(1.055)!important;
  filter:brightness(1.08)!important;
}
@media(max-width:1150px) and (min-width:821px){
  .qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts{
    gap:6px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }
}

/* 2026-08-01: give the two-row watch-party roster its own visible space. */
@media (min-width:821px){
  .quidditch-mode-layout > .qm-broadcast-sidebar{
    overflow:visible!important;
  }
  .qm-broadcast-sidebar .qm-career-panel{
    height:min(92vh,790px)!important;
    grid-template-rows:auto repeat(3,minmax(0,1fr)) minmax(150px,auto)!important;
    overflow:hidden!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
    min-height:150px!important;
    padding:5px 8px 8px!important;
    box-sizing:border-box!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party>img{
    margin:-2px auto 1px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:min-content!important;
    min-height:78px!important;
    gap:6px 8px!important;
    padding:5px 6px 2px!important;
    align-content:start!important;
  }
}

/* 2026-08-01 final annotated layout correction.
   Keep every Top 5 visible and tightly pack the two-row watch-party roster. */
@media (min-width:821px){
  .qm-broadcast-sidebar .qm-career-panel{
    height:min(94vh,780px)!important;
    grid-template-rows:auto 116px 116px 116px 184px!important;
    gap:5px!important;
    padding:7px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-career-art-header{
    padding:0 2px 3px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-career-art-header img{
    max-width:258px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel>section{
    height:116px!important;
    min-height:116px!important;
    padding:3px 4px 2px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .qm-broadcast-sidebar .qm-career-panel h3{
    margin:-1px -1px 2px!important;
    padding:2px 4px!important;
  }
  .qm-broadcast-sidebar .qm-career-row{
    min-height:17px!important;
    padding:0 2px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
    min-height:184px!important;
    height:184px!important;
    padding:4px 7px 6px!important;
    justify-content:flex-start!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party>img{
    width:min(100%,272px)!important;
    margin:0 auto 0!important;
    transform:none!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:min-content!important;
    width:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:-1px 0 0!important;
    padding:5px 5px 0!important;
    gap:6px 8px!important;
    align-content:start!important;
    border-top:1px solid #684923!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watcher-namecard{
    width:100%!important;
    min-width:0!important;
  }
}

/* 2026-08-01 annotated gap correction: remove unused grid stretch between
   the final leaderboard and Watch Party, while preserving two readable card rows. */
@media (min-width:821px){
  .qm-broadcast-sidebar .qm-career-panel{
    height:auto!important;
    min-height:0!important;
    max-height:94vh!important;
    grid-template-rows:auto 116px 116px 116px 202px!important;
    align-content:start!important;
    gap:5px!important;
    padding:7px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
    height:202px!important;
    min-height:202px!important;
    margin:0!important;
    padding:3px 7px 5px!important;
    justify-content:flex-start!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party>img{
    margin:-2px auto 0!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts{
    margin:0!important;
    padding:4px 5px 0!important;
    gap:5px 8px!important;
    align-content:start!important;
  }
}

/* 2026-08-01 final records-panel structure fix.
   Remove the obsolete crest grid item, place every section explicitly, and
   eliminate the accidental empty grid row above the Watch Party block. */
@media (min-width:821px){
  .qm-broadcast-sidebar .qm-career-panel::before{
    content:none!important;
    display:none!important;
  }
  .qm-broadcast-sidebar .qm-career-panel{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto 116px 116px 116px 202px!important;
    gap:5px!important;
    align-content:start!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:7px!important;
    overflow:hidden!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-career-art-header{
    grid-column:1!important;
    grid-row:1!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    min-height:0!important;
    align-self:start!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-career-art-header img{
    display:block!important;
    width:min(100%,258px)!important;
    max-width:258px!important;
    margin:0 auto!important;
    transform:none!important;
  }
  .qm-broadcast-sidebar .qm-career-panel>section:nth-of-type(1){grid-row:2!important}
  .qm-broadcast-sidebar .qm-career-panel>section:nth-of-type(2){grid-row:3!important}
  .qm-broadcast-sidebar .qm-career-panel>section:nth-of-type(3){grid-row:4!important}
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
    grid-column:1!important;
    grid-row:5!important;
    align-self:start!important;
    height:202px!important;
    min-height:202px!important;
    margin:0!important;
    padding:3px 7px 5px!important;
  }
}

/* 2026-08-01 FINAL: pull the viewer divider directly beneath the sponsor art. */
@media (min-width:821px){
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
    height:190px!important;
    min-height:190px!important;
    padding:2px 7px 4px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party>img{
    display:block!important;
    width:min(100%,272px)!important;
    margin:-2px auto -15px!important;
    flex:0 0 auto!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts{
    margin:0!important;
    padding:4px 5px 0!important;
    border-top:1px solid #684923!important;
    gap:5px 8px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel{
    grid-template-rows:auto 116px 116px 116px 190px!important;
  }
}


/* Rooftop Rumble — Skipper achievement and animated pet */
.achievement-group h4 .achievement-game-skill{margin-left:auto;font:800 9px/1 monospace;letter-spacing:1px;color:#9bd5ad;border:1px solid #55785d;padding:4px 6px;background:#172019}
.achievement-locked-future{opacity:.92;border-color:#8f7544;background:linear-gradient(90deg,#241b14,#2d281b)}
.achievement-locked-future .achievement-status{color:#e4c778;border-color:#9d7b3d;background:#19130d}
.skipper-achievement-preview{position:relative;display:block;overflow:hidden;padding:0!important;background:#0d0b09!important}
.skipper-achievement-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 24%;image-rendering:auto}
.pet-visual[data-pet-id="pet_skipper"]{--pet-scale:.94}
.pet-visual[data-pet-id="pet_skipper"] .skipper-body{position:relative;display:block;width:100%;height:100%}
.pet-visual[data-pet-id="pet_skipper"] .skipper-frame{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:contain;opacity:0}
.pet-visual[data-pet-id="pet_skipper"] .skipper-idle{opacity:1}
.roaming-pet .pet-visual[data-pet-id="pet_skipper"] .skipper-idle{animation:skipperIdleFrames 1.05s steps(1,end) infinite}
.roaming-pet .pet-visual[data-pet-id="pet_skipper"] .skipper-walk-one{animation:skipperWalkOne 1.05s steps(1,end) infinite}
.roaming-pet .pet-visual[data-pet-id="pet_skipper"] .skipper-walk-two{animation:skipperWalkTwo 1.05s steps(1,end) infinite}
@keyframes skipperIdleFrames{0%,15%,100%{opacity:1}16%,84%{opacity:0}}
@keyframes skipperWalkOne{0%,15%,49%,85%,100%{opacity:0}16%,48%{opacity:1}}
@keyframes skipperWalkTwo{0%,48%,84%,100%{opacity:0}49%,83%{opacity:1}}
@media (prefers-reduced-motion:reduce){.roaming-pet .pet-visual[data-pet-id="pet_skipper"] .skipper-frame{animation:none!important}.roaming-pet .pet-visual[data-pet-id="pet_skipper"] .skipper-idle{opacity:1}}


/* Homepage Achievement Log shortcut and OSRS-style NPC Contact */
.header-achievements-button{min-width:94px!important}
.header-achievements-button span{font-size:9px!important;letter-spacing:.2px!important}
.npc-contact-open-button{position:relative;overflow:hidden}
.npc-contact-open-button img{object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 1px 1px #000)}
.npc-contact-open-button span{color:#f7e5b1;text-shadow:1px 1px 0 #251409}

.npc-contact-dialog{width:min(530px,94vw);min-height:330px;padding:8px!important;background:#3e372d!important;border:5px ridge #777064!important;color:#ff9b25!important;box-shadow:0 0 0 3px #171511,0 14px 38px #000c!important;image-rendering:pixelated}
.npc-contact-dialog::backdrop{background:#000b}
.npc-contact-dialog .dialog-x{top:5px;right:6px;width:25px;height:25px;padding:0;background:#39362d!important;border:3px ridge #777064!important;color:#c9a76d!important;font:900 19px/18px Georgia,serif!important}
.npc-contact-title{height:26px;display:flex;align-items:center;justify-content:center;margin:-2px -2px 5px;border-bottom:2px solid #181611;color:#ff9b25;font:900 13px/1 Georgia,serif;letter-spacing:.4px;text-shadow:2px 2px #1a1007}
.npc-contact-roster{min-height:252px;display:grid;grid-template-columns:repeat(5,82px);align-content:start;justify-content:start;gap:16px 12px;padding:12px 14px;background:linear-gradient(#40382e,#342d25);border:3px inset #25221d;overflow:auto}
.npc-contact-card{width:82px;height:116px;padding:4px 2px 2px;border:0!important;background:transparent!important;box-shadow:none!important;color:#ff9b25!important;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;cursor:pointer}
.npc-contact-card:hover,.npc-contact-card:focus-visible{filter:brightness(1.22);transform:translateY(-2px);outline:1px dotted #e4bd68}
.npc-contact-portrait{width:76px;height:86px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.npc-contact-portrait img{width:72px;height:82px;object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 #17130f)}
.npc-contact-card strong{font:500 13px/1.05 Georgia,serif;color:#ff9b25;text-shadow:1px 1px #160d06}
.npc-contact-dialogue{min-height:250px;padding:20px;background:linear-gradient(#40382e,#342d25);border:3px inset #25221d;color:#ead7b0}
.npc-dialogue-speaker{display:flex;align-items:flex-end;gap:15px;padding-bottom:12px;border-bottom:1px solid #70604b}
.npc-dialogue-speaker img{width:74px;height:108px;object-fit:contain;object-position:bottom;image-rendering:pixelated}
.npc-dialogue-speaker strong{font:900 22px Georgia,serif;color:#ff9b25;text-shadow:2px 2px #180e07}
.npc-contact-dialogue p{margin:20px 8px;font:700 17px/1.55 Georgia,serif;color:#fff0c6;text-shadow:1px 1px #17100a}
.npc-contact-dialogue button{display:block;margin:15px auto 0;padding:8px 16px;background:linear-gradient(#6d5638,#3b2c1d)!important;border:3px ridge #a3865a!important;color:#ffd28a!important;font:800 11px Georgia,serif}
.npc-contact-footer{padding:7px 5px 1px;text-align:center;color:#9f927d;font:11px Georgia,serif}
@media(max-width:560px){.npc-contact-roster{grid-template-columns:repeat(3,82px)}.header-achievements-button{min-width:78px!important}.header-achievements-button span{font-size:8px!important}}

/* Leaderboard now lives at the bottom of the Skills menu. */
.skills-leaderboard-button {
  width: min(100%, 360px);
  min-height: 48px;
  margin: 16px auto 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.skills-leaderboard-button img {
  width: 26px;
  height: 26px;
  object-fit: contain;
  image-rendering: pixelated;
}

/* Grace NPC dialogue tree */
.npc-contact-dialog .dialog-x{display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;text-indent:0!important;box-sizing:border-box!important;padding:0 0 2px!important}
.npc-contact-roster{min-height:300px}
.npc-contact-dialogue{min-height:300px;display:flex;flex-direction:column}
.npc-dialogue-speaker.player-speaking img{width:112px;height:74px;object-fit:cover;object-position:left center;border:1px solid #8d7654;background:#211b15}
.npc-dialogue-speaker.player-speaking strong{color:#fff0c6}
.npc-dialogue-prompt{margin:6px 8px 2px;color:#d9c59d;font:700 13px Georgia,serif;text-align:center}
.npc-dialogue-options{display:flex;flex-direction:column;gap:6px;margin:4px 8px 8px}
.npc-dialogue-options button{width:100%;margin:0!important;padding:7px 10px!important;text-align:left;background:linear-gradient(#57452f,#30251a)!important;color:#fff0c6!important}
.npc-dialogue-options button:hover{filter:brightness(1.18);transform:translateX(2px)}
.npc-dialogue-controls{margin-top:auto;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.npc-dialogue-controls button{margin:8px 0 0!important}
.npc-contact-dialogue.interface-open .npc-dialogue-speaker{display:none}
.npc-contact-dialogue.interface-open #npcDialogueText{margin:8px}
.npc-grace-interface{border:2px inset #211d18;background:#2d271f;padding:14px;color:#ead7b0;text-align:center}
.npc-grace-interface h4{margin:0 0 10px;color:#ff9b25;font:900 17px Georgia,serif}
.npc-grace-interface p{margin:8px!important;font-size:14px!important}

/* OSRS parchment conversation box */
.npc-contact-dialogue{
  min-height:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  overflow:visible!important;
}
.npc-contact-dialogue:not(.interface-open){
  display:grid!important;
  grid-template-columns:132px minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-items:stretch;
  width:min(720px,calc(100vw - 54px));
  margin:18px auto 0;
  padding:10px 14px 8px!important;
  box-sizing:border-box;
  border:3px solid #201d18!important;
  outline:2px solid #847c69;
  background:
    linear-gradient(rgba(255,255,255,.16),rgba(113,91,55,.05)),
    repeating-linear-gradient(0deg,#ddd2b4 0,#ddd2b4 2px,#d8ccac 2px,#d8ccac 4px)!important;
  box-shadow:inset 0 0 0 2px #afa486,inset 0 0 18px rgba(77,57,29,.22),0 5px 15px #0009;
  color:#2f2118!important;
  font-family:Georgia,'Times New Roman',serif!important;
}
.npc-contact-dialogue:not(.interface-open)::before,
.npc-contact-dialogue:not(.interface-open)::after{
  content:'';position:absolute;left:8px;right:8px;height:1px;background:#8c8064;opacity:.6
}
.npc-contact-dialogue:not(.interface-open)::before{top:7px}.npc-contact-dialogue:not(.interface-open)::after{bottom:7px}
.npc-dialogue-speaker{
  grid-column:1;grid-row:1 / span 3;
  min-height:122px!important;
  display:flex!important;align-items:flex-end!important;justify-content:center!important;
  padding:0!important;margin:0 8px 0 0!important;border:0!important;background:transparent!important;
  position:relative;overflow:hidden;
}
.npc-dialogue-speaker img,
.npc-dialogue-speaker.player-speaking img{
  width:126px!important;height:126px!important;max-width:none!important;
  object-fit:contain!important;object-position:center bottom!important;
  border:0!important;background:transparent!important;image-rendering:auto!important;
  filter:drop-shadow(1px 2px 0 rgba(50,35,20,.25));
}
.npc-dialogue-speaker:not(.player-speaking) img{
  width:92px!important;height:112px!important;object-fit:cover!important;object-position:center 8%!important;
  clip-path:inset(0 0 31% 0);
  transform:translateY(18px) scale(1.18);
}
.npc-dialogue-speaker strong{display:none!important}
#npcDialogueText{
  grid-column:2;grid-row:1;margin:13px 8px 4px!important;min-height:44px;
  color:#302117!important;text-align:center;font-size:16px!important;line-height:1.35!important;
}
#npcDialogueText::before{content:attr(data-speaker);display:block;color:#8f2c22;font-size:15px;margin-bottom:8px}
.npc-dialogue-prompt{grid-column:2;grid-row:1;margin:8px 8px 4px!important;color:#3d2b20!important;font-size:15px!important}
.npc-dialogue-options{grid-column:2;grid-row:2;gap:2px!important;margin:2px 10px 5px!important;align-self:start}
.npc-dialogue-options button{
  border:0!important;background:transparent!important;box-shadow:none!important;
  color:#163db4!important;text-align:center!important;padding:3px 7px!important;
  font:15px Georgia,'Times New Roman',serif!important;text-shadow:none!important
}
.npc-dialogue-options button:hover{color:#9a1717!important;filter:none!important;transform:none!important;text-decoration:underline}
.npc-dialogue-controls{grid-column:2;grid-row:3;margin:0!important;min-height:25px;align-items:center}
#npcDialogueContinue{
  border:0!important;background:transparent!important;box-shadow:none!important;color:#253fc0!important;
  font:15px Georgia,'Times New Roman',serif!important;padding:3px 8px!important;margin:0!important;text-transform:none!important
}
#npcDialogueContinue:hover{color:#a41e1e!important;filter:none!important}
#npcDialogueContinue::first-letter{text-transform:uppercase}
#npcContactBack{position:absolute;right:7px;bottom:-34px;font-size:10px!important;padding:3px 7px!important;opacity:.75}
.npc-contact-dialogue.interface-open{width:100%;margin:0;padding:10px!important;background:#2d271f!important;border:2px inset #211d18!important}
@media(max-width:620px){
 .npc-contact-dialogue:not(.interface-open){grid-template-columns:95px 1fr;padding-left:8px!important}
 .npc-dialogue-speaker img,.npc-dialogue-speaker.player-speaking img{width:94px!important;height:112px!important}
 #npcDialogueText{font-size:14px!important}.npc-dialogue-options button{font-size:13px!important}
}

/* NPC Contact layout corrections */
.npc-contact-dialogue.hidden{display:none!important}
.npc-contact-dialog.dialogue-mode{
  width:min(820px,94vw)!important;
  min-height:0!important;
  max-height:90vh;
  overflow:visible;
}
.npc-contact-dialog.dialogue-mode .npc-contact-roster{display:none!important}
.npc-contact-dialog.dialogue-mode .npc-contact-dialogue:not(.hidden):not(.interface-open){
  width:100%!important;
  min-height:230px!important;
  margin:10px 0 4px!important;
  grid-template-columns:175px minmax(0,1fr)!important;
  padding:14px 22px 12px!important;
}
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker{
  min-height:190px!important;
}
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker img,
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker.player-speaking img{
  width:168px!important;
  height:188px!important;
}
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker:not(.player-speaking) img{
  width:145px!important;
  height:180px!important;
  object-position:center 5%!important;
  clip-path:inset(0 0 32% 0);
  transform:translateY(27px) scale(1.2);
}
.npc-contact-dialog.dialogue-mode #npcDialogueText{
  margin:24px 14px 8px!important;
  min-height:64px;
  font-size:19px!important;
  line-height:1.45!important;
}
.npc-contact-dialog.dialogue-mode #npcDialogueText::before{font-size:17px;margin-bottom:11px}
.npc-contact-dialog.dialogue-mode .npc-dialogue-prompt{font-size:18px!important;margin:17px 10px 8px!important}
.npc-contact-dialog.dialogue-mode .npc-dialogue-options{gap:5px!important;margin:5px 18px 10px!important}
.npc-contact-dialog.dialogue-mode .npc-dialogue-options button{font-size:17px!important;padding:5px 8px!important}
.npc-contact-dialog.dialogue-mode #npcDialogueContinue{font-size:17px!important;padding:6px 10px!important}
.npc-contact-dialog.dialogue-mode #npcContactBack{bottom:-39px}

/* Shop/counter interfaces contain only their interface content. */
.npc-contact-dialog.dialogue-mode .npc-contact-dialogue.interface-open{
  display:block!important;
  width:100%!important;
  min-height:250px!important;
  margin:10px 0 4px!important;
  box-sizing:border-box;
  padding:24px!important;
}
.npc-contact-dialogue.interface-open .npc-dialogue-speaker,
.npc-contact-dialogue.interface-open #npcDialoguePrompt,
.npc-contact-dialogue.interface-open #npcDialogueOptions,
.npc-contact-dialogue.interface-open .npc-dialogue-controls{display:none!important}
.npc-contact-dialogue.interface-open #npcDialogueText{display:block!important;margin:0!important;min-height:0!important}
.npc-contact-dialogue.interface-open #npcDialogueText::before{content:none!important}
.npc-contact-dialogue.interface-open .npc-grace-interface{min-height:175px;display:grid;place-content:center}

@media(max-width:700px){
 .npc-contact-dialog.dialogue-mode{width:96vw!important}
 .npc-contact-dialog.dialogue-mode .npc-contact-dialogue:not(.hidden):not(.interface-open){grid-template-columns:115px 1fr!important;padding:10px!important}
 .npc-contact-dialog.dialogue-mode .npc-dialogue-speaker img,.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker.player-speaking img{width:110px!important;height:145px!important}
 .npc-contact-dialog.dialogue-mode #npcDialogueText{font-size:15px!important;margin-top:16px!important}
 .npc-contact-dialog.dialogue-mode .npc-dialogue-options button{font-size:14px!important}
}

/* NPC dialogue portrait corrections */
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker:not(.player-speaking) img{
  width:145px!important;
  height:185px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  clip-path:none!important;
  transform:none!important;
}
.npc-contact-dialog.dialogue-mode .npc-dialogue-options:not(:empty) ~ *{}


/* NPC Contact sizing and navigation refinements */
.npc-contact-dialog:not(.dialogue-mode){
  width:min(680px,94vw)!important;
  min-height:470px!important;
}
.npc-contact-dialog:not(.dialogue-mode) .npc-contact-roster{
  min-height:380px!important;
  padding:18px 20px!important;
}
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker.player-speaking img{
  width:184px!important;
  height:205px!important;
}
.npc-contact-dialogue.interface-open .npc-grace-interface{
  gap:12px;
  text-align:center;
}
.npc-contact-dialogue.interface-open .npc-interface-back{
  display:block!important;
  margin:18px auto 0!important;
  padding:8px 18px!important;
  background:linear-gradient(#6d5638,#3b2c1d)!important;
  border:3px ridge #a3865a!important;
  color:#ffd28a!important;
  font:800 12px Georgia,serif!important;
  cursor:pointer;
}
.npc-contact-dialogue.interface-open .npc-interface-back:hover{filter:brightness(1.15)}
@media(max-width:700px){
  .npc-contact-dialog:not(.dialogue-mode){width:96vw!important;min-height:420px!important}
  .npc-contact-dialog.dialogue-mode .npc-dialogue-speaker.player-speaking img{width:122px!important;height:158px!important}
}

/* Grace's Graceful Clothing shop */
.graceful-shop-interface{width:min(920px,calc(100vw - 110px));margin:0 auto;text-align:left}
.graceful-shop-title{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:2px solid #8b6a35;padding:4px 4px 12px;margin-bottom:12px}
.graceful-shop-title h4{margin:0 0 4px;color:#7a260f;text-align:left;letter-spacing:1px}
.graceful-shop-title p{margin:0;color:#4b3926}
.graceful-mark-balance{display:grid;grid-template-columns:42px auto;grid-template-rows:auto auto;align-items:center;column-gap:7px;min-width:150px;padding:6px 10px;background:#d2bd8d;border:2px ridge #6b5531;box-shadow:inset 0 0 0 1px #eadcb9}
.graceful-mark-balance img{grid-row:1/3;width:40px;height:40px;object-fit:contain;image-rendering:auto}
.graceful-mark-balance span{font-size:22px;font-weight:800;color:#301f0d;line-height:1}
.graceful-mark-balance small{color:#5b4324;font-weight:700}
.graceful-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.graceful-shop-item{min-height:105px;display:grid;grid-template-columns:76px 1fr;grid-template-rows:1fr auto;gap:3px 8px;align-items:center;text-align:left;padding:7px;background:linear-gradient(#5a4734,#3a2d22);border:2px outset #9a7a48;color:#f5e7bf;cursor:pointer;box-shadow:inset 0 0 0 1px #241b14}
.graceful-shop-item:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.12)}
.graceful-shop-item:disabled{cursor:default;opacity:.78}
.graceful-shop-item.owned{background:linear-gradient(#3c5037,#293825);border-color:#7d986e}
.graceful-item-art{grid-row:1/3;display:flex;align-items:center;justify-content:center;height:88px;background:#28231d;border:1px solid #76613d}
.graceful-item-art img{max-width:69px;max-height:82px;object-fit:contain}
.graceful-item-copy{align-self:end;display:flex;flex-direction:column;min-width:0}
.graceful-item-copy b{font-size:16px;color:#fff0b8}
.graceful-item-copy small{color:#cbb88a}
.graceful-item-cost{align-self:start;display:flex;align-items:center;gap:5px;font-weight:900;color:#ffe98c;font-size:16px}
.graceful-item-cost img{width:24px;height:24px;object-fit:contain}
.graceful-item-cost.not-enough{color:#e79282}
.graceful-shop-message{min-height:22px;text-align:center!important;margin:10px 0 7px!important;color:#5b351d!important;font-weight:700}
.graceful-bank-slot .bank-item-art{object-fit:contain}
@media(max-width:760px){.graceful-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.graceful-shop-interface{width:calc(100vw - 50px)}.graceful-shop-title{align-items:flex-start}.graceful-mark-balance{min-width:125px}}

/* Keep Grace's shop fully contained inside the NPC Contact window */
.npc-contact-dialog.dialogue-mode:has(.npc-contact-dialogue.interface-open){
  width:min(1040px,96vw)!important;
  max-width:1040px!important;
}
.npc-contact-dialog.dialogue-mode .npc-contact-dialogue.interface-open{
  width:100%!important;
  max-width:100%!important;
  padding:18px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.npc-contact-dialogue.interface-open #npcDialogueText,
.npc-contact-dialogue.interface-open .npc-grace-interface,
.npc-contact-dialogue.interface-open .graceful-shop-interface{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.graceful-shop-interface{margin:0!important;padding:0!important}
.graceful-shop-grid{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));box-sizing:border-box}
.graceful-shop-item{min-width:0;width:100%;box-sizing:border-box}
@media(max-width:900px){
  .npc-contact-dialog.dialogue-mode:has(.npc-contact-dialogue.interface-open){width:96vw!important}
  .graceful-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:570px){
  .graceful-shop-title{flex-direction:column}
  .graceful-shop-grid{grid-template-columns:1fr}
}

/* Shared per-match arena broadcast */
.qm-lineup-arena{display:block!important;margin-top:2px;color:#f3cc36!important;font-size:8px!important;letter-spacing:.7px!important;max-width:132px;line-height:1.25!important;}
.qm-commentator-desk #qmArenaBroadcast{white-space:normal;line-height:1.12;text-align:center;font-size:clamp(7px,.62vw,10px);}
.quidditch-mode-tv{background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;}

/* Gertrude's Pet Emporium and name-tag shop */
.npc-contact-card img[src*="npc-gertrude"]{transform:scale(1.35);transform-origin:center bottom}
.npc-gertrude-interface{width:100%;min-height:330px;display:flex;flex-direction:column;gap:10px;color:#ead7b0}
.gertrude-shop-header{display:flex;align-items:center;gap:12px;padding:8px 12px;background:linear-gradient(#58472f,#30261c);border:3px ridge #8d744c;box-shadow:inset 0 0 0 1px #20170f}
.gertrude-shop-header>img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated;transform:scale(1.25)}
.gertrude-shop-header h4{margin:0;color:#ffd27f;font:900 17px Georgia,serif;text-shadow:2px 2px #1b1008}
.gertrude-shop-header p{margin:4px 0 0!important;color:#d9c7a4!important;font:12px/1.3 Georgia,serif!important;text-shadow:1px 1px #17100a!important}
.gertrude-shop-tabs{display:flex;border-bottom:3px ridge #816a49}
.gertrude-shop-tabs button{margin:0!important;padding:7px 18px!important;background:linear-gradient(#765431,#3e2c1c)!important;border:3px ridge #9b7950!important;border-bottom:0!important;color:#ffe1a4!important;font:900 12px Georgia,serif!important}
.nametag-shop-section{padding:10px;background:#25211b;border:3px inset #1a1713}
.nametag-shop-section h5{margin:0 0 9px;color:#ff9b25;font:900 13px Georgia,serif;letter-spacing:.6px;text-shadow:1px 1px #160d06}
.nametag-empty-state{min-height:135px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center;padding:14px;background:repeating-linear-gradient(135deg,#342d24 0 8px,#302920 8px 16px);border:2px dashed #6f604b;color:#d8c6a3}
.nametag-empty-state strong{color:#ffe0a2;font:900 14px Georgia,serif}
.nametag-empty-state p{margin:0!important;max-width:390px;color:#b9a98e!important;font:12px/1.4 Georgia,serif!important;text-shadow:none!important}
.nametag-preview-placeholder{display:grid;place-items:center;min-width:130px;height:30px;padding:0 18px;background:linear-gradient(#77592f,#3d2c1b);border:3px ridge #a68a5e;border-radius:4px;color:#fff0b7;font:900 11px Arial,sans-serif;text-shadow:1px 1px #1c1007;box-shadow:0 3px 0 #17110b}
.gertrude-shop-message{margin:0!important;text-align:center;color:#b9aa91!important;font:11px Georgia,serif!important;text-shadow:none!important}
.npc-contact-dialogue.interface-open .npc-gertrude-interface{min-height:360px}
@media(max-width:560px){.gertrude-shop-header h4{font-size:14px}.gertrude-shop-header>img{width:46px;height:46px}.nametag-empty-state{min-height:155px}}

/* Party Pete account watchcard shop */
.party-pete-shop{display:flex;flex-direction:column;gap:10px;color:#ead7b0}.party-pete-shop>header{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:12px;padding:9px 13px;border:3px ridge #99713d;background:linear-gradient(#5b3b68,#2b203b)}.party-pete-shop>header img{width:58px;height:64px;object-fit:contain;image-rendering:pixelated}.party-pete-shop h4,.party-pete-confirm h4{margin:0;color:#ffd66f;font:900 18px Georgia,serif}.party-pete-shop header p{margin:3px 0 0!important;color:#ddcbea!important;font:12px Georgia,serif!important;text-shadow:none!important}.party-pete-shop header strong{padding:7px 10px;border:2px ridge #b68c42;background:#21170d;color:#ffd361;white-space:nowrap}.party-pete-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:480px;overflow:auto;padding:5px;background:#17131d;border:3px inset #21182b}.party-pete-item{min-width:0;margin:0!important;padding:5px!important;border:2px outset #74567f!important;background:linear-gradient(#42304b,#251b2b)!important;text-align:left!important;cursor:pointer}.party-pete-item:hover{filter:brightness(1.18);transform:translateY(-2px)}.party-pete-item.owned{border-color:#6e9d5f!important}.party-pete-item.equipped{outline:2px solid #ffd260;box-shadow:0 0 12px #ffd04c88}.party-pete-item>img{display:block;width:100%;aspect-ratio:1.42;object-fit:cover;object-position:center 42%;image-rendering:auto;border:1px solid #171017}.party-pete-item span{display:flex;min-height:42px;flex-direction:column;padding:5px 3px 1px}.party-pete-item b{color:#ffe4a4;font-size:12px}.party-pete-item small{color:#cbb5d4;font-size:9px;margin-top:3px}.party-pete-message{min-height:18px;margin:0!important;text-align:center;color:#d8c29c!important;font:12px Georgia,serif!important;text-shadow:none!important}.party-pete-confirm{text-align:center;color:#ead7b0}.party-pete-confirm h4{margin:2px 0 10px}.party-pete-card-preview{position:relative;width:min(360px,90%);aspect-ratio:1.12;margin:0 auto 12px;overflow:hidden;border:5px ridge #b78d4e;background-image:linear-gradient(0deg,rgba(8,6,9,.1),rgba(8,6,9,.05)),var(--watchcard-bg);background-size:cover;background-position:center 42%;box-shadow:0 8px 22px #000a}.party-pete-card-preview>img{position:absolute;z-index:1;left:50%;bottom:-9%;width:73%;height:90%;transform:translateX(-50%);object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 2px #0008)}.party-pete-card-preview>span{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:18px 8px 8px;background:linear-gradient(transparent,#09070be8);display:flex;flex-direction:column}.party-pete-card-preview small{color:#ffd463;font-size:9px}.party-pete-card-preview b{color:white;font-size:17px}.party-pete-confirm>p{margin:9px!important;font-size:15px!important;text-shadow:none!important}.party-pete-confirm>div:last-child{display:flex;justify-content:center;gap:9px}.party-pete-confirm button{margin:0!important}.party-pete-confirm button:disabled{opacity:.55;cursor:not-allowed}
.watchcard-bank-slot .bank-item-art{width:100%;height:64px;object-fit:cover;object-position:center 42%;image-rendering:auto;border:1px solid #79572d}.watchcard-bank-slot .bank-watchcard-equip{display:block;width:100%;margin-top:7px;padding:7px 8px;border:2px solid #a97a35;background:#342414;color:#ffe6a5;font-weight:900;cursor:pointer}.watchcard-bank-slot .bank-watchcard-equip:hover{background:#5a3c1d}
@media(max-width:850px){.party-pete-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:590px){.party-pete-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.party-pete-shop>header{grid-template-columns:48px 1fr}.party-pete-shop>header img{width:44px}.party-pete-shop>header strong{grid-column:1/-1;text-align:center}}

/* Purchased backdrop occupies the portrait panel behind the animated avatar. */
.qm-watcher-profile-card.has-watchcard-background .qm-watcher-profile-top{position:relative;min-height:178px;align-items:flex-end;overflow:hidden;background-image:linear-gradient(0deg,#070a11e8 0,#070a1120 58%),var(--watchcard-profile-bg);background-size:cover;background-position:center 42%;border-bottom:2px solid #d2a846;padding:9px}.qm-watcher-profile-card.has-watchcard-background .qm-watcher-avatar{align-self:stretch;width:132px;height:166px;background:transparent!important;overflow:hidden}.qm-watcher-profile-card.has-watchcard-background .qm-watcher-avatar img{width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 2px #000b)}.qm-watcher-profile-card.has-watchcard-background .qm-watcher-profile-top>div:last-child{position:relative;z-index:2;padding:8px;background:#080b12bf;border-left:2px solid #d0a343}.qm-watcher-profile-details{display:contents}

/* Gertrude uses a square, tightly cropped portrait, so keep her head at the same visual scale as Grace. */
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker:not(.player-speaking) img[src*="npc-gertrude"]{
  width:118px!important;
  height:158px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  transform:none!important;
}
@media(max-width:700px){
  .npc-contact-dialog.dialogue-mode .npc-dialogue-speaker:not(.player-speaking) img[src*="npc-gertrude"]{
    width:92px!important;
    height:126px!important;
  }
}

/* Gertrude name-tag stock */
.npc-contact-card img[src*="npc-gertrude"]{transform:none!important;transform-origin:center bottom!important}
.npc-contact-dialog.dialogue-mode .npc-dialogue-speaker:not(.player-speaking) img[src*="npc-gertrude"]{
  width:110px!important;height:145px!important;object-fit:contain!important;object-position:center bottom!important;transform:none!important;
}
.gertrude-shop-header>img{width:58px!important;height:72px!important;object-fit:contain!important;object-position:center bottom!important;transform:none!important}
.gertrude-gp-balance{margin-left:auto;min-width:92px;padding:6px 10px;text-align:center;background:#1c1712;border:2px inset #6e593e;box-sizing:border-box}
.gertrude-gp-balance strong{display:block;color:#ffe17d;font:900 15px Georgia,serif;text-shadow:1px 1px #140d07}
.gertrude-gp-balance small{display:block;color:#c8b692;font:900 9px Georgia,serif;letter-spacing:1px}
.nametag-shop-section{min-height:0;overflow:hidden}
.nametag-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:360px;overflow-y:auto;padding-right:4px}
.nametag-shop-item{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0;padding:7px;background:linear-gradient(#443a2f,#27211b);border:3px ridge #79664c;color:#ead7b0;cursor:pointer;box-sizing:border-box}
.nametag-shop-item:hover:not(:disabled){filter:brightness(1.18)}
.nametag-shop-item.owned{background:linear-gradient(#32432d,#1f2c1c);border-color:#70865c;cursor:default}
.nametag-shop-art{display:grid;place-items:center;height:54px;padding:2px;background:#121212;border:1px solid #665742;overflow:hidden}
.nametag-shop-art img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.nametag-shop-copy{display:flex;justify-content:space-between;gap:5px;align-items:baseline;min-width:0}
.nametag-shop-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe1a4;font:900 11px Georgia,serif}
.nametag-shop-copy small{flex:none;color:#b9a98e;font:8px Georgia,serif}
.nametag-shop-cost{display:block;padding:4px;text-align:center;background:#23190f;border:1px solid #82683e;color:#ffd35a;font:900 10px Georgia,serif}
.nametag-shop-cost.not-enough{color:#d96d62}
@media(max-width:760px){.nametag-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gertrude-gp-balance{min-width:74px}}
@media(max-width:500px){.nametag-shop-grid{grid-template-columns:1fr}.gertrude-shop-header{align-items:flex-start;flex-wrap:wrap}.gertrude-gp-balance{margin-left:0}}


/* Improved Gertrude name-tag gallery and purchase confirmation */
.nametag-shop-grid{grid-template-columns:repeat(3,minmax(245px,1fr));gap:14px;padding:8px 8px 12px;align-items:stretch}
.nametag-shop-item{position:relative;min-height:126px;padding:9px 10px 8px;background:linear-gradient(180deg,#42382d,#211c17);border:2px solid #a27e45;box-shadow:inset 0 0 0 2px #17130f,0 2px 5px #0008;transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}
.nametag-shop-item:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:inset 0 0 0 2px #17130f,0 0 12px #f5a623aa,0 5px 8px #000b}
.nametag-shop-item.owned{cursor:pointer}
.nametag-shop-art{height:72px;padding:0;background:transparent;border:0;overflow:visible}
.nametag-shop-art img{width:100%;height:72px;object-fit:fill;filter:drop-shadow(0 2px 2px #000b)}
.nametag-shop-copy{margin-top:2px;padding:0 2px}
.nametag-shop-copy b{font-size:11px}
.nametag-shop-cost{margin-top:auto}
.nametag-confirm-screen{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-height:360px}
.nametag-confirm-preview{display:grid;place-items:center;min-height:145px;padding:20px;background:radial-gradient(ellipse at center,#5a4933 0,#2b241d 52%,#17130f 100%);border:3px ridge #a27e45;box-shadow:inset 0 0 20px #000b,0 0 14px #f4a32355}
.nametag-confirm-preview img{display:block;width:min(620px,95%);max-height:125px;object-fit:contain;filter:drop-shadow(0 5px 5px #000c);image-rendering:pixelated}
.nametag-confirm-screen>h5{margin:0;text-align:center;color:#ffe0a2;font:900 18px Georgia,serif;text-shadow:1px 2px #000}
.nametag-confirm-price{margin:0!important;text-align:center;color:#ffd35a!important;font:900 15px Georgia,serif!important;text-shadow:1px 1px #000!important}
.nametag-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}
.nametag-confirm-actions button{min-height:42px;border:3px ridge #a27e45;background:linear-gradient(#68451f,#38220f);color:#ffe3a7;font:900 12px Georgia,serif;cursor:pointer;text-shadow:1px 1px #000}
.nametag-confirm-actions button:hover:not(:disabled){filter:brightness(1.25);box-shadow:0 0 10px #f5a62388}
.nametag-confirm-actions button:disabled{filter:grayscale(.7);opacity:.65;cursor:not-allowed}
.nametag-confirm-no{background:linear-gradient(#4b443c,#29241f)!important}
@media(max-width:900px){.nametag-shop-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:560px){.nametag-shop-grid{grid-template-columns:1fr}.nametag-confirm-actions{grid-template-columns:1fr}}

/* Gertrude shop: compact OSRS-style confirmation controls */
.nametag-confirm-actions{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:8px}
.nametag-confirm-actions button{min-width:92px;min-height:42px;padding:7px 13px;border:3px ridge #776d5c;background:linear-gradient(#2d2b27,#12110f);font:700 13px "Trebuchet MS",Arial,sans-serif;letter-spacing:.2px;cursor:pointer;box-shadow:inset 0 0 0 2px #080807,0 3px 0 #090806;text-shadow:1px 1px 0 #000}
.nametag-confirm-actions button:hover:not(:disabled){filter:brightness(1.25);transform:translateY(-1px)}
.nametag-confirm-yes{color:#58ff43!important}
.nametag-confirm-no{color:#ff3b31!important;background:linear-gradient(#2d2b27,#12110f)!important}
.nametag-confirm-actions button:disabled{color:#a29b8e!important;opacity:.7;filter:grayscale(.65);cursor:not-allowed}
@media(max-width:560px){.nametag-confirm-actions{flex-direction:row}.nametag-confirm-actions button{min-width:88px}}

/* Pet cosmetics menu */
.pet-cosmetics-open{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 12px;padding:10px 14px;border:2px solid #c5944d;box-shadow:inset 0 0 0 2px #4c3218,0 2px 0 #090604;background:linear-gradient(#5a3b20,#2d1d11);color:#ffd889;text-align:left;cursor:pointer}
.pet-cosmetics-open:hover{filter:brightness(1.18);box-shadow:inset 0 0 0 2px #765129,0 0 10px rgba(255,181,71,.35)}
.pet-cosmetics-open img{width:42px;height:32px;object-fit:contain;image-rendering:pixelated}
.pet-cosmetics-open span{display:flex;flex-direction:column}.pet-cosmetics-open b{font-size:15px}.pet-cosmetics-open small{color:#d2c09b;margin-top:2px}
.pet-cosmetics-dialog{width:min(1020px,calc(100% - 24px));max-height:90vh;overflow:auto;background:linear-gradient(145deg,#2b2116,#100c08)!important}
.cosmetics-heading>img{width:58px;height:42px;object-fit:contain;image-rendering:pixelated}
.cosmetics-active-pet{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 16px;padding:10px 14px;border:2px solid #75552e;background:#1b140d;color:#ead7ae}
.cosmetics-active-pet div{display:flex;flex-direction:column}.cosmetics-active-pet small{color:#aa9877}.cosmetics-active-pet strong{display:flex;align-items:center;gap:9px;color:#ffd26d}
.cosmetics-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:14px 0 7px;padding:7px 10px;border-top:2px solid #9d6f37;border-bottom:1px solid #5a4125;background:#251b11;color:#ffca66}
.cosmetics-section-title small{color:#bba989}
.cosmetics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cosmetic-nametag-card,.cosmetic-equipment-card{position:relative;min-width:0;border:2px solid #8c6638;background:linear-gradient(#352719,#1a130d);color:#ecd6a9;padding:9px;cursor:pointer;box-shadow:inset 0 0 0 1px #1b1209;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}
.cosmetic-nametag-card:hover,.cosmetic-equipment-card:hover{transform:translateY(-2px);filter:brightness(1.12);box-shadow:inset 0 0 0 1px #7d562d,0 0 10px rgba(255,179,66,.3)}
.cosmetic-nametag-card.equipped,.cosmetic-equipment-card.equipped{border-color:#e8bd62;box-shadow:inset 0 0 0 2px #765019,0 0 12px rgba(255,191,73,.42)}
.cosmetic-nametag-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:'art art' 'name action' 'desc action';text-align:left;align-items:center}
.cosmetic-nametag-art{grid-area:art;height:72px;display:flex;align-items:center;justify-content:center;margin-bottom:5px;background:radial-gradient(ellipse at center,rgba(112,83,47,.35),transparent 68%);overflow:visible}
.cosmetic-nametag-art img{display:block;max-width:100%;max-height:68px;object-fit:contain;image-rendering:pixelated}
.cosmetic-nametag-card b{grid-area:name;color:#ffe0a2}.cosmetic-nametag-card small{grid-area:desc;color:#b9a483}.cosmetic-nametag-card>span:last-child{grid-area:action;margin-left:8px;padding:6px 8px;border:1px solid #b88a45;background:#4a3219;color:#ffd781;font-weight:900;font-size:11px}
.cosmetic-equipment-card{display:grid;grid-template-columns:64px 1fr auto;grid-template-rows:auto auto;column-gap:10px;text-align:left;align-items:center}
.cosmetic-equipment-card img{grid-row:1/3;width:58px;height:58px;object-fit:contain;image-rendering:pixelated}.cosmetic-equipment-card b{color:#ffe0a2}.cosmetic-equipment-card small{color:#b9a483}.cosmetic-equipment-card span{grid-column:3;grid-row:1/3;padding:6px 8px;border:1px solid #b88a45;background:#4a3219;color:#ffd781;font-weight:900;font-size:11px}
.cosmetics-empty{grid-column:1/-1;padding:24px;border:1px dashed #735630;background:#17110c;color:#b8a587;text-align:center}
@media(max-width:760px){.cosmetics-grid{grid-template-columns:1fr}.cosmetics-section-title{align-items:flex-start;flex-direction:column}.cosmetics-active-pet{align-items:flex-start;flex-direction:column}}

/* Equipped pet name tags inside fullscreen Quidditch Mode. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag{
  bottom:calc(100% + 6px)!important;
  filter:drop-shadow(0 2px 2px #000d)!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag>.qm-custom-nametag{
  position:relative!important;
  display:block!important;
  width:150px!important;
  height:42px!important;
  margin:0 auto -5px!important;
  z-index:1!important;
  overflow:visible!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag>.qm-custom-nametag>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:fill!important;
  image-rendering:pixelated!important;
  pointer-events:none!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag>.qm-custom-nametag>b{
  position:absolute!important;
  left:var(--qm-tag-left,14%)!important;
  right:var(--qm-tag-right,10%)!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  display:block!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  text-align:center!important;
  color:var(--qm-tag-text,#fff)!important;
  font-family:var(--qm-tag-font,Georgia,serif)!important;
  font-size:var(--qm-tag-size,8px)!important;
  font-weight:var(--qm-tag-weight,900)!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-shadow:
    -1px -1px 0 var(--qm-tag-outline,#000),1px -1px 0 var(--qm-tag-outline,#000),
    -1px 1px 0 var(--qm-tag-outline,#000),1px 1px 0 var(--qm-tag-outline,#000),
    0 1px 2px #000!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag>small{
  position:relative!important;
  z-index:2!important;
  margin-top:0!important;
}
@media(max-width:850px){
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag>.qm-custom-nametag{width:122px!important;height:35px!important}
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag>.qm-custom-nametag>b{font-size:calc(var(--qm-tag-size,8px) * .82)!important}
}

/* Slightly reduce the two naturally oversized Quidditch frames. Text sizing stays unchanged. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_venomcore"]>.qm-custom-nametag,
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_combat"]>.qm-custom-nametag{
  width:143px!important;
  height:40px!important;
}
@media(max-width:850px){
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_venomcore"]>.qm-custom-nametag,
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_combat"]>.qm-custom-nametag{
    width:116px!important;
    height:33px!important;
  }
}


/* Dreamies uses a playful sweeping script treatment inspired by the treat branding. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_dreamies"]>.qm-custom-nametag{
  width:143px!important;
  height:40px!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_dreamies"]>.qm-custom-nametag>b{
  font-style:italic!important;
  font-stretch:condensed!important;
  letter-spacing:-.35px!important;
  transform:translateY(-52%) skewX(-7deg)!important;
  text-shadow:
    -1px -1px 0 var(--qm-tag-outline,#fff),1px -1px 0 var(--qm-tag-outline,#fff),
    -1px 1px 0 var(--qm-tag-outline,#fff),1px 1px 0 var(--qm-tag-outline,#fff),
    -2px 0 0 var(--qm-tag-outline,#fff),2px 0 0 var(--qm-tag-outline,#fff),
    0 1px 1px #0005!important;
}

/* Venomcore is intentionally another 5% smaller than the previous adjustment. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_venomcore"]>.qm-custom-nametag{
  width:136px!important;
  height:38px!important;
}
@media(max-width:850px){
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_dreamies"]>.qm-custom-nametag{
    width:116px!important;
    height:33px!important;
  }
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_venomcore"]>.qm-custom-nametag{
    width:110px!important;
    height:31px!important;
  }
}

/* Final Quidditch name-tag alignment refinements. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_dreamies"]>.qm-custom-nametag>b{
  font-size:calc(var(--qm-tag-size,8px) * 1.06)!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_ancient_parchment"]>.qm-custom-nametag>b{
  font-size:calc(var(--qm-tag-size,8px) * 1.10)!important;
  transform:translateY(-42%)!important;
}


/* Druid's Embrace: keep the pet name centred in the open vine panel. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_druids_embrace"]>.qm-custom-nametag>b{
  left:18%!important;
  right:18%!important;
  transform:translateY(-49%)!important;
}

/* Dreamies scoring special: a tiny tag shimmer and short treat burst. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_dreamies"].dreamies-score-pop>.qm-custom-nametag{
  animation:qmDreamiesTagPop .48s ease-out both;
}
@keyframes qmDreamiesTagPop{
  0%,100%{filter:none;transform:scale(1)}
  28%{filter:brightness(1.18) drop-shadow(0 0 3px #ffe578);transform:scale(1.025)}
  60%{filter:brightness(1.06);transform:scale(.995)}
}
#quidditchModePitch .qm-dreamies-treat{
  position:absolute;
  z-index:95;
  width:10px;
  height:10px;
  object-fit:contain;
  image-rendering:pixelated;
  pointer-events:none;
  transform:translate(-50%,-50%) scale(.45) rotate(0deg);
  animation:qmDreamiesTreatBurst .72s cubic-bezier(.12,.72,.28,1) forwards;
  filter:drop-shadow(0 1px 1px #000b);
}
@keyframes qmDreamiesTreatBurst{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0deg)}
  15%{opacity:1}
  72%{opacity:1;transform:translate(calc(-50% + var(--dreamies-x)),calc(-50% + var(--dreamies-y))) scale(.72) rotate(var(--dreamies-r))}
  100%{opacity:0;transform:translate(calc(-50% + var(--dreamies-x)),calc(-50% + var(--dreamies-y) + 8px)) scale(.45) rotate(var(--dreamies-r))}
}

/* CatAsthma-only Quidditch name-tag special tester */
.qm-admin-special-tester{margin-top:7px;border:2px solid #bd3434;background:linear-gradient(180deg,#321010,#170707);box-shadow:0 0 0 2px #080303,0 0 15px #e21d1d66,inset 0 0 14px #000;color:#f5d7b0;padding:6px}
.qm-admin-special-tester.hidden{display:none!important}
.qm-admin-special-tester header{display:flex;justify-content:space-between;align-items:center;padding:3px 5px 6px;font-size:8px;letter-spacing:.7px;color:#ff8383;text-shadow:1px 1px #000}
.qm-admin-special-tester header b{color:#ffd9a0}
.qm-admin-special-tester button{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid #e25445;background:linear-gradient(#6b211b,#2a0907);box-shadow:inset 0 0 0 1px #a64a35,0 2px 0 #090000;color:#fff0ca;padding:7px 8px;cursor:pointer;font-family:Georgia,serif;font-weight:900;text-shadow:1px 1px #000}
.qm-admin-special-tester button:hover{filter:brightness(1.22);box-shadow:inset 0 0 0 1px #ef7967,0 0 10px #ff3f2f88,0 2px 0 #090000}
.qm-admin-special-tester button:active{transform:translateY(1px)}
.qm-admin-special-tester button small{font-size:8px;color:#eabf9f;font-weight:700}
.qm-admin-special-tester button+button{margin-top:4px}

/* Compact CatAsthma admin special tester beneath commentary */
.qm-commentator-sidebar{
  grid-template-rows:minmax(240px,38vh) auto 190px auto!important;
}
.qm-admin-special-tester{
  margin-top:0!important;
  min-height:0!important;
  height:auto!important;
  align-self:start!important;
  border:1px solid #8c6a2d!important;
  background:linear-gradient(180deg,#211b12,#120f0a)!important;
  box-shadow:0 0 0 1px #050403,inset 0 0 8px #000!important;
  color:#ead6a7!important;
  padding:5px!important;
}
.qm-admin-special-tester header{
  padding:1px 3px 4px!important;
  font-size:7px!important;
  color:#d7b45c!important;
}
.qm-admin-special-tester header b{color:#f0d892!important}
.qm-admin-special-tester button{
  min-height:30px!important;
  padding:5px 7px!important;
  border:1px solid #a67c2e!important;
  background:linear-gradient(#4b3a1d,#241b0d)!important;
  box-shadow:inset 0 0 0 1px #6f5526,0 2px 0 #050403!important;
  color:#fff0bd!important;
}
.qm-admin-special-tester button:hover{
  filter:brightness(1.18)!important;
  box-shadow:inset 0 0 0 1px #d0a84c,0 0 8px #d39a3455,0 2px 0 #050403!important;
}
@media(max-width:1150px){.qm-commentator-sidebar{grid-template-rows:minmax(210px,34vh) auto 158px auto!important}}
@media(max-width:820px){.qm-commentator-sidebar{grid-template-rows:280px auto 155px auto!important}}


/* Dreamies premium scoring effect: larger treats, star glints and a warm burst ring. */
#quidditchModePitch .qm-dreamies-treat{
  width:23px!important;
  height:23px!important;
  z-index:110!important;
  transform:translate(-50%,-50%) scale(.5) rotate(0deg)!important;
  animation:qmDreamiesTreatBurstDeluxe var(--dreamies-duration,1050ms) cubic-bezier(.18,.68,.28,1) forwards!important;
  animation-delay:var(--dreamies-delay,0ms)!important;
  filter:drop-shadow(0 2px 2px #0009)!important;
  transform-origin:50% 50%;
}
@keyframes qmDreamiesTreatBurstDeluxe{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.42) rotate(0deg);filter:brightness(1.18) drop-shadow(0 1px 1px #0008)}
  9%{opacity:1;transform:translate(-50%,-50%) scale(1.08) rotate(35deg)}
  58%{opacity:1;transform:translate(calc(-50% + var(--dreamies-x-mid)),calc(-50% + var(--dreamies-y-mid))) scale(1) rotate(var(--dreamies-spin-mid));filter:brightness(1.05) drop-shadow(0 2px 2px #0009)}
  82%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--dreamies-x)),calc(-50% + var(--dreamies-y))) scale(.76) rotate(var(--dreamies-spin));filter:brightness(.95) drop-shadow(0 2px 2px #0008)}
}
#quidditchModePitch .qm-dreamies-flash{
  position:absolute;z-index:108;width:12px;height:12px;pointer-events:none;
  transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,#fff 0 8%,#fff6a8 9% 24%,#ffba35aa 25% 44%,transparent 45%);
  box-shadow:0 0 8px #fff5a7,0 0 18px #ffb11f;
  animation:qmDreamiesFlash .82s ease-out forwards;
}
#quidditchModePitch .qm-dreamies-flash:before,
#quidditchModePitch .qm-dreamies-flash:after{
  content:"";position:absolute;left:50%;top:50%;background:#fff9c8;transform:translate(-50%,-50%);box-shadow:0 0 5px #ffd54c;
}
#quidditchModePitch .qm-dreamies-flash:before{width:58px;height:2px}
#quidditchModePitch .qm-dreamies-flash:after{width:2px;height:58px}
@keyframes qmDreamiesFlash{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.15) rotate(0)}
  18%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(12deg)}
  55%{opacity:.8;transform:translate(-50%,-50%) scale(1.55) rotate(34deg)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(2.15) rotate(58deg)}
}
#quidditchModePitch .pet-label[data-nametag="nametag_dreamies"].dreamies-score-pop>.qm-custom-nametag{
  animation:qmDreamiesTagPopDeluxe .72s ease-out both!important;
}
@keyframes qmDreamiesTagPopDeluxe{
  0%,100%{filter:none;transform:scale(1)}
  20%{filter:brightness(1.32) saturate(1.18) drop-shadow(0 0 7px #fff4a0);transform:scale(1.055) rotate(-1deg)}
  44%{filter:brightness(1.14) drop-shadow(0 0 4px #ffc83e);transform:scale(.985) rotate(1deg)}
  68%{filter:brightness(1.08);transform:scale(1.015)}
}

/* Admin special tester now lives below the All-Time Records panel. */
.qm-broadcast-sidebar .qm-admin-special-tester{
  margin-top:10px!important;
  width:100%!important;
  box-sizing:border-box!important;
  position:relative!important;
  z-index:4!important;
}
.qm-commentator-sidebar{grid-template-rows:minmax(240px,38vh) auto 190px!important}
@media(max-width:1150px){.qm-commentator-sidebar{grid-template-rows:minmax(210px,34vh) auto 158px!important}}
@media(max-width:820px){.qm-commentator-sidebar{grid-template-rows:280px auto 155px!important}}

/* Dreamies scoring effect cleanup: no giant glimmer, just 4–5 clear flying treats. */
#quidditchModePitch .qm-dreamies-flash{display:none!important}
#quidditchModePitch .qm-dreamies-treat.qm-dreamies-treat-clean{
  position:absolute!important;
  z-index:120!important;
  width:25px!important;
  height:25px!important;
  object-fit:fill!important;
  image-rendering:pixelated!important;
  pointer-events:none!important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))!important;
  animation:none!important;
  will-change:transform,opacity;
  transform-origin:50% 50%;
}
#quidditchModePitch .pet-label[data-nametag="nametag_dreamies"].dreamies-score-pop>.qm-custom-nametag{
  animation:qmDreamiesTagNudge .34s ease-out both!important;
}
@keyframes qmDreamiesTagNudge{
  0%,100%{filter:none;transform:scale(1)}
  42%{filter:brightness(1.05);transform:scale(1.018)}
}

/* Active Watch Party cards open player summaries on hover. */
#qmWatcherAccounts .qm-watcher-namecard[data-viewer-name]{cursor:help}

/* Rich hover profile for active Quidditch Watch Party viewers. */
.qm-watcher-profile-card{
  position:fixed;
  z-index:100000;
  width:286px;
  padding:10px;
  border:3px solid #8b692e;
  border-radius:8px;
  background:linear-gradient(145deg,#2b2418 0%,#15120d 58%,#0d0b08 100%);
  box-shadow:0 10px 28px rgba(0,0,0,.62),inset 0 0 0 1px rgba(255,222,141,.18);
  color:#f4dfaa;
  font-family:Georgia,'Times New Roman',serif;
  pointer-events:none;
  opacity:0;
  transform:translateY(5px) scale(.97);
  transition:opacity .14s ease,transform .14s ease;
}
.qm-watcher-profile-card.is-visible{opacity:1;transform:translateY(0) scale(1)}
.qm-watcher-profile-top{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:center;padding-bottom:9px;border-bottom:1px solid rgba(208,167,75,.45)}
.qm-watcher-avatar{width:86px;height:86px;overflow:hidden;border:0;background:transparent;box-shadow:none}
.qm-watcher-avatar img{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:none;image-rendering:pixelated}
.qm-watcher-profile-top small,.qm-watcher-profile-stat small,.qm-watcher-profile-pet small{display:block;color:#b89b62;font-size:9px;letter-spacing:.9px;font-weight:700}
.qm-watcher-profile-top strong{display:block;color:#ffd56b;font-size:19px;line-height:1.08;text-shadow:1px 1px #000}
.qm-watcher-profile-top span{display:block;margin-top:4px;color:#ded0aa;font-size:12px}
/* Never crop long account names in the Watch Party hover profile. */
.qm-watcher-profile-top>div:last-child{min-width:0}
.qm-watcher-profile-top strong{max-width:100%;overflow-wrap:anywhere;word-break:break-word;font-size:clamp(13px,1.45vw,19px)}

/* These 15 new frames have slightly different source proportions. Stretching
   only their transparent artwork to the standard tag box keeps text aligned
   with its intended inset in both Quidditch Mode and the pet rooms. */
#quidditchModePitch .pet-label:is([data-nametag="nametag_gilded_scroll"],[data-nametag="nametag_iron_prospect"],[data-nametag="nametag_lilac_unicorn"],[data-nametag="nametag_verdant_grove"],[data-nametag="nametag_midnight_familiar"],[data-nametag="nametag_glacial_sigil"],[data-nametag="nametag_crimson_decree"],[data-nametag="nametag_coastal_catch"],[data-nametag="nametag_imperial_onyx"],[data-nametag="nametag_runed_steel"],[data-nametag="nametag_prism_ward"],[data-nametag="nametag_nimbus_broom"],[data-nametag="nametag_garden_window"],[data-nametag="nametag_bakery_window"],[data-nametag="nametag_tea_biscuits"]) .qm-custom-nametag>img,
.pet-room .roaming-pet .pet-label:is([data-nametag="nametag_gilded_scroll"],[data-nametag="nametag_iron_prospect"],[data-nametag="nametag_lilac_unicorn"],[data-nametag="nametag_verdant_grove"],[data-nametag="nametag_midnight_familiar"],[data-nametag="nametag_glacial_sigil"],[data-nametag="nametag_crimson_decree"],[data-nametag="nametag_coastal_catch"],[data-nametag="nametag_imperial_onyx"],[data-nametag="nametag_runed_steel"],[data-nametag="nametag_prism_ward"],[data-nametag="nametag_nimbus_broom"],[data-nametag="nametag_garden_window"],[data-nametag="nametag_bakery_window"],[data-nametag="nametag_tea_biscuits"]) .qm-custom-nametag>img{object-fit:fill!important}
.qm-watcher-profile-stat{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;margin-top:9px;padding:7px 8px;border:1px solid rgba(174,132,57,.48);border-radius:5px;background:rgba(255,229,158,.045)}
.qm-watcher-profile-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#17120b;font-size:17px}
.qm-watcher-profile-skill-icon{width:30px;height:30px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 1px rgba(0,0,0,.65))}
.qm-watcher-profile-stat b{display:block;color:#fff0bd;font-size:15px}
.qm-watcher-profile-pet{display:grid;grid-template-columns:62px 1fr;gap:9px;align-items:center;margin-top:8px;padding:8px;border:1px solid rgba(174,132,57,.48);border-radius:5px;background:linear-gradient(90deg,rgba(78,108,63,.16),rgba(255,255,255,.025))}
.qm-watcher-profile-pet>img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 3px 2px rgba(0,0,0,.7))}
.qm-watcher-profile-pet b{display:block;color:#e9f4cb;font-size:15px;line-height:1.1}
.qm-watcher-profile-pet span{display:block;margin-top:3px;color:#d4bd7f;font-size:12px}
#qmWatcherAccounts .qm-watcher-namecard[data-viewer-name]{outline:none}
#qmWatcherAccounts .qm-watcher-namecard[data-viewer-name]:hover{filter:brightness(1.13) drop-shadow(0 0 5px rgba(255,211,103,.42));transform:translateY(-1px)}

/* The actual Watch Party viewer tiles: purchased room art sits directly behind
   the shoulder-up talking avatar, with the nameplate and live dot over it. */
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts .qm-watcher-watchcard{
  position:relative!important;
  display:block!important;
  width:100%!important;
  aspect-ratio:1/1!important;
  min-height:0!important;
  overflow:hidden!important;
  border:2px solid #8a6931!important;
  border-radius:4px!important;
  background-image:linear-gradient(0deg,rgba(7,10,15,.98) 0%,rgba(7,10,15,.5) 28%,rgba(7,10,15,.05) 64%),var(--watchcard-bg)!important;
  background-size:cover!important;
  background-position:center 42%!important;
  box-shadow:inset 0 0 0 1px #25180c,0 2px 5px #000b!important;
  line-height:normal!important;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts .qm-watcher-watchcard .qm-watcher-card-avatar{
  position:absolute!important;
  display:block!important;
  z-index:1!important;
  left:50%!important;
  bottom:8%!important;
  width:108%!important;
  height:94%!important;
  max-width:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  transform:translateX(-50%)!important;
  image-rendering:pixelated!important;
  filter:drop-shadow(0 3px 2px #000c)!important;
}
.qm-watcher-watchcard b{
  position:absolute;z-index:3;left:0;right:0;bottom:0;
  display:block;overflow:hidden;padding:10px 3px 3px;
  background:linear-gradient(transparent,rgba(5,7,10,.96) 48%);
  color:#fff0bd;text-align:center;text-overflow:ellipsis;white-space:nowrap;
  font:800 clamp(7px,.63vw,10px)/1.1 Georgia,serif;text-shadow:1px 1px 1px #000;
}
.qm-watcher-watchcard .qm-watcher-online{
  position:absolute;z-index:4;right:4px;top:4px;width:7px;height:7px;border-radius:50%;
  border:1px solid #e4ffd4;background:#51e878;box-shadow:0 0 5px #42e86d;
}
.qm-broadcast-sidebar .qm-career-panel .qm-watcher-accounts .qm-watcher-watchcard:hover{filter:brightness(1.04)!important;transform:none!important}

/* Give the Watch Party footer a full second row: three more avatar cards fit
   inside the All-Time Records panel instead of being clipped at its bottom. */
@media (min-width:821px){
  .qm-broadcast-sidebar .qm-career-panel{
    grid-template-rows:auto 116px 116px 116px 280px!important;
  }
  .qm-broadcast-sidebar .qm-career-panel .qm-watch-party{
    height:280px!important;
    min-height:280px!important;
  }
}


/* Consistent NPC Contact portraits and shared equipped name tags in homepage pet rooms. */
.npc-contact-card .npc-contact-portrait{width:76px;height:86px;align-items:flex-end;justify-content:center}
.npc-contact-card .npc-contact-portrait img{display:block;width:72px!important;height:82px!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center bottom!important}

/* Only cosmetic-equipped pets use the artwork-only label. Default pets retain the original pet/owner box. */
.pet-room .roaming-pet .pet-label.has-custom-nametag{
  bottom:70px!important;
  min-width:0!important;
  width:auto!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:drop-shadow(0 2px 2px #000d)!important;
  overflow:visible!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag{
  position:relative!important;
  display:block!important;
  width:150px!important;
  height:42px!important;
  margin:0!important;
  overflow:visible!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
  pointer-events:none!important;
  filter:none!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag>b{
  position:absolute!important;
  left:var(--qm-tag-left,14%)!important;
  right:var(--qm-tag-right,10%)!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  display:block!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
  text-align:center!important;
  color:var(--qm-tag-text,#fff)!important;
  font-family:var(--qm-tag-font,Georgia,serif)!important;
  font-size:var(--qm-tag-size,8px)!important;
  font-weight:var(--qm-tag-weight,900)!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-shadow:-1px -1px 0 var(--qm-tag-outline,#000),1px -1px 0 var(--qm-tag-outline,#000),-1px 1px 0 var(--qm-tag-outline,#000),1px 1px 0 var(--qm-tag-outline,#000),0 1px 2px #000!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>small{display:none!important}
@media(max-width:700px){
  .pet-room .roaming-pet .pet-label.has-custom-nametag{bottom:57px!important;transform:translateX(-50%) scale(.82)!important}
}

/* Pet-room custom nametag polish: artwork only, locked text, closer to pet. */
.pet-room .pet-room-scene .roaming-pet .pet-label.has-custom-nametag,
.pet-room .pet-room-scene[data-room] .roaming-pet .pet-label.has-custom-nametag,
.pet-room .roaming-pet.pet-in-kart .pet-label.has-custom-nametag{
  bottom:62px!important;
  min-width:0!important;
  max-width:none!important;
  width:150px!important;
  height:42px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  outline:0!important;
  border-radius:0!important;
  background:none!important;
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  filter:none!important;
  backdrop-filter:none!important;
  overflow:visible!important;
  animation:none!important;
  transition:none!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag::before,
.pet-room .roaming-pet .pet-label.has-custom-nametag::after,
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag::before,
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag::after{
  content:none!important;
  display:none!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag{
  position:absolute!important;
  inset:0!important;
  width:150px!important;
  height:42px!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  filter:none!important;
  animation:none!important;
  transition:none!important;
  transform:none!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag>b{
  top:21px!important;
  transform:translateY(-50%)!important;
  animation:none!important;
  transition:none!important;
  will-change:auto!important;
}
@media(max-width:700px){
  .pet-room .pet-room-scene .roaming-pet .pet-label.has-custom-nametag,
  .pet-room .pet-room-scene[data-room] .roaming-pet .pet-label.has-custom-nametag,
  .pet-room .roaming-pet.pet-in-kart .pet-label.has-custom-nametag{
    bottom:52px!important;
    transform:translateX(-50%) scale(.82)!important;
  }
}

/* Final pet-room nametag alignment: centred above the pet and kept as one static unit. */
.pet-room .pet-room-scene .roaming-pet .pet-label.has-custom-nametag,
.pet-room .pet-room-scene[data-room] .roaming-pet .pet-label.has-custom-nametag,
.pet-room .roaming-pet.pet-in-kart .pet-label.has-custom-nametag{
  left:50%!important;
  right:auto!important;
  bottom:45px!important;
  transform:translateX(-50%)!important;
  transform-origin:center center!important;
  animation:none!important;
  transition:none!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag,
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag>img,
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag>b{
  animation:none!important;
  transition:none!important;
}
.pet-room .roaming-pet .pet-label.has-custom-nametag>.qm-custom-nametag>img{
  transform:none!important;
}
@media(max-width:700px){
  .pet-room .pet-room-scene .roaming-pet .pet-label.has-custom-nametag,
  .pet-room .pet-room-scene[data-room] .roaming-pet .pet-label.has-custom-nametag,
  .pet-room .roaming-pet.pet-in-kart .pet-label.has-custom-nametag{
    left:50%!important;
    bottom:39px!important;
    transform:translateX(-50%) scale(.82)!important;
  }
}

/* 2026-08-02 default pet-room label alignment.
   Custom cosmetic nametags are already centred; only move the original
   two-line pet/owner labels slightly left and closer to the pet. */
.pet-room .pet-room-scene .roaming-pet .pet-label:not(.has-custom-nametag),
.pet-room .pet-room-scene[data-room] .roaming-pet .pet-label:not(.has-custom-nametag){
  left:calc(50% - 7px)!important;
  bottom:65px!important;
  transform:translateX(-50%)!important;
}
.pet-room .pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-label:not(.has-custom-nametag){
  left:calc(50% - 7px)!important;
  bottom:57px!important;
  transform:translateX(-50%)!important;
}
@media(max-width:700px){
  .pet-room .pet-room-scene .roaming-pet .pet-label:not(.has-custom-nametag),
  .pet-room .pet-room-scene[data-room] .roaming-pet .pet-label:not(.has-custom-nametag){
    left:calc(50% - 5px)!important;
    bottom:54px!important;
  }
.pet-room .pet-room-scene[data-room="mario"] .roaming-pet.pet-in-kart .pet-label:not(.has-custom-nametag){
    left:calc(50% - 5px)!important;
    bottom:51px!important;
  }
}

/* Fyrmfire Royal score effect: an anchored 8-frame fire loop behind the tag. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_wyrmfire_royal"]>.qm-custom-nametag>.qm-wyrmfire-score-fire{
  position:absolute!important;
  z-index:0!important;
  inset:auto!important;
  left:50%!important;
  bottom:18px!important;
  width:72px!important;
  height:98px!important;
  max-width:none!important;
  max-height:none!important;
  transform:translateX(-50%)!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  image-rendering:pixelated!important;
  pointer-events:none!important;
  filter:drop-shadow(0 2px 3px #3a0800aa)!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_wyrmfire_royal"]>.qm-custom-nametag>img:not(.qm-wyrmfire-score-fire){z-index:1!important}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_wyrmfire_royal"]>.qm-custom-nametag>b{z-index:2!important}
@media(max-width:850px){
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_wyrmfire_royal"]>.qm-custom-nametag>.qm-wyrmfire-score-fire{bottom:15px!important;width:58px!important;height:78px!important}
}

/* Tea & Biscuits score effect: the frame is deliberately behind the plate, so
   the plate becomes the tea mug rim while the biscuit drops into it. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_tea_biscuits"]>.qm-custom-nametag>.qm-tea-biscuits-score-dunk{
  position:absolute!important;
  z-index:0!important;
  inset:auto!important;
  left:50%!important;
  bottom:-15px!important;
  width:66px!important;
  height:173px!important;
  max-width:none!important;
  max-height:none!important;
  transform:translateX(-50%)!important;
  object-fit:fill!important;
  object-position:center bottom!important;
  image-rendering:pixelated!important;
  pointer-events:none!important;
  filter:drop-shadow(0 2px 2px rgba(54,20,4,.48))!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_tea_biscuits"]>.qm-custom-nametag>img:not(.qm-tea-biscuits-score-dunk){z-index:1!important}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_tea_biscuits"]>.qm-custom-nametag>b{z-index:2!important}
@media(max-width:850px){
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_tea_biscuits"]>.qm-custom-nametag>.qm-tea-biscuits-score-dunk{bottom:-12px!important;width:54px!important;height:141px!important}
}

/* Verdant Grove score effect: the tree grows from behind the tag, with the
   grass line resting at the top of the plaque instead of covering its text. */
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_verdant_grove"]>.qm-custom-nametag>.qm-verdant-grove-score-growth{
  position:absolute!important;
  z-index:0!important;
  inset:auto!important;
  left:50%!important;
  /* Keep the grass line in exactly the same place while reducing the tree. */
  bottom:16px!important;
  width:82px!important;
  height:82px!important;
  max-width:none!important;
  max-height:none!important;
  transform:translateX(-50%)!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  image-rendering:pixelated!important;
  pointer-events:none!important;
  filter:drop-shadow(0 2px 2px rgba(13,53,15,.42))!important;
}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_verdant_grove"]>.qm-custom-nametag>img:not(.qm-verdant-grove-score-growth){z-index:1!important}
#quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_verdant_grove"]>.qm-custom-nametag>b{z-index:2!important}
@media(max-width:850px){
  #quidditchModePitch .qm-pet>.pet-label.has-custom-nametag[data-nametag="nametag_verdant_grove"]>.qm-custom-nametag>.qm-verdant-grove-score-growth{bottom:12px!important;width:65px!important;height:65px!important}
}

/* Homepage tavern lobby: replaces the old desk-character carousel. */
.scene.tavern-scene{min-height:0!important;height:auto!important;width:100%;align-self:start;aspect-ratio:1086 / 1290;background:#100b07!important;box-shadow:inset 0 0 0 2px #2b1a0e,0 6px 15px rgba(0,0,0,.42)!important}
.scene.tavern-scene>.tavern-room,.scene.tavern-scene>.poster,.scene.tavern-scene>.monitor,.scene.tavern-scene>.desk,.scene.tavern-scene>.keyboard,.scene.tavern-scene>.chair,.scene.tavern-scene>.gamer,.scene.tavern-scene>.next-desk-character,.scene.tavern-scene>.level,.scene.tavern-scene>.resource-layer{display:none!important}
.tavern-lobby{position:absolute;inset:0;z-index:2;overflow:hidden;background:#120b07}.tavern-lobby>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;image-rendering:auto;pointer-events:none}.tavern-lobby-base{z-index:0;opacity:1}.tavern-lobby-frame{z-index:1;opacity:0;transition:opacity 180ms linear;will-change:opacity}.tavern-lobby-frame.is-visible{opacity:1}.tavern-lobby-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 26px rgba(18,8,3,.42)}
@media(max-width:760px){.scene.tavern-scene{min-height:0!important;aspect-ratio:1086 / 1290}}

/* Live tavern guests.  Their transparent sprites sit above the room artwork
   but below the vignette, so they read as part of the same warm scene. */
.tavern-guest-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.tavern-sound-toggle{position:absolute;z-index:5;top:8px;right:8px;width:24px;height:24px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,221,155,.38);border-radius:4px;background:rgba(27,13,7,.48);box-shadow:0 1px 3px rgba(0,0,0,.38);color:#ffe4ae;font:13px/1 sans-serif;opacity:.66;cursor:pointer;transition:opacity .18s ease,background .18s ease,border-color .18s ease}
.tavern-sound-toggle:hover,.tavern-sound-toggle:focus-visible{opacity:1;background:rgba(65,32,14,.74);border-color:rgba(255,225,160,.82);outline:none}
.tavern-sound-toggle[aria-pressed="true"]{opacity:.9;border-color:rgba(255,199,91,.76);background:rgba(75,39,15,.7)}
@media(max-width:760px){.tavern-sound-toggle{top:6px;right:6px;width:22px;height:22px;font-size:12px}}
.tavern-seat-tester{position:absolute;z-index:4;right:7px;bottom:7px;max-width:210px;border:1px solid #d6a440;background:#231408e8;box-shadow:0 0 0 1px #4a2b10,inset 0 0 10px #000;color:#ffdeb0;padding:4px;font:700 7px Georgia,serif;text-align:center;pointer-events:auto}
.tavern-seat-tester.hidden{display:none}
.tavern-seat-tester b{display:block;margin-bottom:3px;color:#ffe196;letter-spacing:.45px}
.tavern-seat-tester div{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.tavern-seat-tester button{border:1px solid #947032;background:#503616;color:#fff0bd;padding:3px 2px;font:700 6px Georgia,serif;cursor:pointer}
.tavern-seat-tester button:hover{background:#8a6027;color:#fff7d4}
.tavern-guest{position:absolute;z-index:1;width:34%;left:var(--guest-x,-20%);top:var(--guest-y,63%);opacity:0;transform:translate(-50%,-50%);transition:left 3200ms linear,top 3200ms linear,opacity 180ms ease;will-change:left,top,opacity}
.tavern-guest.is-present{opacity:1}
.tavern-guest.is-idle{animation:tavern-guest-breathe 2800ms ease-in-out infinite}
.tavern-guest img{display:block;width:100%;height:auto;image-rendering:auto;transform:translate(var(--frame-x,0%),var(--frame-y,0%)) scaleX(var(--guest-facing,1)) scale(var(--frame-scale,1));transform-origin:50% 100%;filter:drop-shadow(0 2px 1px rgba(25,10,3,.35))}
@keyframes tavern-guest-breathe{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 1.5px))}}
@media(max-width:760px){.tavern-guest{width:38%}}


/* Account rename administration */
.admin-account-dialog{width:min(520px,calc(100vw - 28px));border:2px solid #c89432;background:linear-gradient(#21170b,#0e0904);color:#f3dfb1;box-shadow:0 0 0 3px #080500,0 18px 70px #000;padding:22px}
.admin-account-dialog h3{margin:0 38px 8px 0;color:#ffd66c;letter-spacing:1px}
.admin-account-help{font-size:13px;line-height:1.45;color:#d7c59e}
.admin-account-field{display:grid;gap:6px;margin:14px 0;font-weight:900;font-size:12px;letter-spacing:.8px;color:#f0cf7b}
.admin-account-field select,.admin-account-field input{width:100%;box-sizing:border-box;border:1px solid #8d6724;background:#120c05;color:#fff1c5;padding:11px;font:700 15px Georgia,serif}
.admin-account-refresh,.admin-rename-submit{border:1px solid #c89432;background:linear-gradient(#4a3512,#211607);color:#ffe099;font-weight:900;letter-spacing:.8px;padding:10px 13px;cursor:pointer}
.admin-rename-submit{width:100%;margin-top:4px;background:linear-gradient(#6a201b,#2c0907);border-color:#e05b4d;color:#fff1cf}
.admin-account-refresh:hover,.admin-rename-submit:hover{filter:brightness(1.18)}
.admin-rename-preview{border:1px solid #5f4820;background:#090603;padding:12px;margin:12px 0;color:#d8c39a;min-height:20px}
.admin-rename-preview strong{color:#fff0af}.admin-rename-preview b{color:#ff9b8e}
.admin-rename-status{min-height:20px;margin:10px 0 0;font-weight:700;color:#f0cf7b}.admin-rename-status.is-error{color:#ff8d82}.admin-rename-status.is-success{color:#a9ef9b}


/* Stable admin dropdown: does not wrap or interfere with existing admin visibility logic. */
.signed-in-controls{position:relative}
.admin-dropdown{position:absolute;top:calc(100% + 7px);left:0;z-index:10020;min-width:220px;padding:7px;background:#20150d;border:2px solid #9d7135;box-shadow:0 8px 20px #0009}
.admin-dropdown.hidden{display:none!important}
.admin-dropdown button{display:block;width:100%;padding:9px 11px;border:1px solid #694821;background:#3a2414;color:#f1d59a;text-align:left;font:inherit;cursor:pointer}
.admin-dropdown button+button{margin-top:5px}
.admin-dropdown button:hover{background:#57351b}


/* Admin menu + signed-in header layout correction */
@media (min-width:761px){
  .repo-main-header .signed-in-controls{
    flex-wrap:nowrap!important;
    width:auto!important;
    max-width:none!important;
    white-space:nowrap;
  }
  .repo-main-header .header-quick-button,
  .repo-main-header .character-summary,
  .repo-main-header .admin-button{
    flex:0 0 auto!important;
  }
}

/* Fixed admin pop-up: remains above the tavern/header clipping context. */
.admin-dropdown{
  position:fixed!important;
  top:50%!important;
  left:50%!important;
  right:auto!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  z-index:2147483000!important;
  width:min(330px,calc(100vw - 28px))!important;
  min-width:0!important;
  box-sizing:border-box;
  padding:12px!important;
  border:3px ridge #b78a3d!important;
  background:linear-gradient(180deg,#2c1d10,#100a05)!important;
  box-shadow:0 0 0 2px #090500,0 20px 70px rgba(0,0,0,.88)!important;
}
.admin-dropdown::before{
  content:'ADMIN MENU';
  display:block;
  margin:0 0 10px;
  padding:0 2px 8px;
  border-bottom:1px solid #705020;
  color:#ffd879;
  font:900 14px Georgia,'Times New Roman',serif;
  letter-spacing:1.3px;
  text-align:center;
}
.admin-dropdown button{
  padding:12px 14px!important;
  text-align:center!important;
  font-weight:900!important;
  letter-spacing:.7px!important;
}
.admin-dropdown button+button{margin-top:8px!important}


/* Comical command-prompt admin console, mounted directly under <body> so no header/tavern overflow can clip it. */
.admin-dropdown{
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  z-index:2147483647!important;
  width:min(440px,calc(100vw - 24px))!important;
  min-width:0!important;
  padding:0!important;
  overflow:visible!important;
  border:2px solid #bdbdbd!important;
  border-radius:0!important;
  background:#050705!important;
  box-shadow:0 0 0 9999px rgba(0,0,0,.58),0 0 0 3px #111,0 24px 90px #000!important;
  font-family:"Courier New",Consolas,monospace!important;
  color:#39ff6a!important;
  isolation:isolate;
}
.admin-dropdown::before{content:none!important;display:none!important}
.admin-terminal-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:7px 9px;
  background:linear-gradient(90deg,#050b54,#1449a6);
  color:#fff;
  font:700 13px Arial,sans-serif;
  letter-spacing:.2px;
  text-shadow:none;
  user-select:none;
}
.admin-terminal-title i{font-style:normal;letter-spacing:8px;opacity:.95}
.admin-terminal-body{padding:15px 15px 13px;background:repeating-linear-gradient(0deg,rgba(57,255,106,.025) 0,rgba(57,255,106,.025) 1px,transparent 1px,transparent 4px)}
.admin-terminal-line{margin:0 0 8px;font-size:13px;line-height:1.35;color:#39ff6a;text-shadow:0 0 5px rgba(57,255,106,.6)}
.admin-terminal-status{color:#d7ff42;margin-bottom:11px}
.admin-dropdown button{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:10px 9px!important;
  border:1px solid #1f7d38!important;
  border-radius:0!important;
  background:#071309!important;
  color:#65ff84!important;
  text-align:left!important;
  font:700 13px/1.25 "Courier New",Consolas,monospace!important;
  letter-spacing:0!important;
  text-shadow:0 0 5px rgba(57,255,106,.55)!important;
  box-shadow:inset 0 0 0 1px #020!important;
  cursor:pointer;
}
.admin-dropdown button span{display:inline-block;width:18px;color:#fff600}
.admin-dropdown button+button{margin-top:7px!important}
.admin-dropdown button:hover,.admin-dropdown button:focus-visible{
  background:#123819!important;
  color:#fff!important;
  border-color:#62ff7f!important;
  outline:none!important;
  box-shadow:inset 0 0 12px rgba(57,255,106,.22),0 0 10px rgba(57,255,106,.25)!important;
}
.admin-terminal-cursor{margin-top:12px;font-size:13px;color:#39ff6a;text-shadow:0 0 5px rgba(57,255,106,.65)}
.admin-terminal-cursor b{animation:adminTerminalBlink .85s steps(1,end) infinite}
@keyframes adminTerminalBlink{0%,48%{opacity:1}49%,100%{opacity:0}}
@media (max-width:520px){.admin-dropdown{width:calc(100vw - 16px)!important}.admin-terminal-body{padding:12px}.admin-dropdown button{font-size:12px!important}}

/* CMD theme for the account rename window. Kept in the browser top layer via <dialog>. */
#adminAccountDialog.admin-account-dialog{
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  z-index:2147483647!important;
  width:min(600px,calc(100vw - 24px))!important;
  max-height:calc(100vh - 24px)!important;
  overflow:auto!important;
  box-sizing:border-box!important;
  padding:44px 18px 18px!important;
  border:2px solid #bdbdbd!important;
  border-radius:0!important;
  background:repeating-linear-gradient(0deg,rgba(57,255,106,.025) 0,rgba(57,255,106,.025) 1px,#050705 1px,#050705 4px)!important;
  color:#39ff6a!important;
  box-shadow:0 0 0 3px #111,0 24px 90px #000!important;
  font-family:"Courier New",Consolas,monospace!important;
  text-shadow:0 0 5px rgba(57,255,106,.35);
}
#adminAccountDialog.admin-account-dialog::backdrop{background:rgba(0,0,0,.72)!important}
#adminAccountDialog.admin-account-dialog::before{
  content:'REPO_ACCOUNT_ADMIN.EXE';
  position:absolute;
  top:0;left:0;right:0;
  height:31px;
  display:flex;
  align-items:center;
  padding:0 10px;
  box-sizing:border-box;
  background:linear-gradient(90deg,#050b54,#1449a6);
  color:#fff;
  font:700 13px Arial,sans-serif;
  letter-spacing:.2px;
  text-shadow:none;
}
#adminAccountDialog .dialog-x{
  position:absolute!important;
  z-index:2!important;
  top:3px!important;
  right:5px!important;
  width:26px!important;
  height:24px!important;
  padding:0!important;
  border:1px solid #fff!important;
  border-radius:0!important;
  background:#c8c8c8!important;
  color:#050505!important;
  font:900 17px/20px Arial,sans-serif!important;
  box-shadow:inset -1px -1px #555,inset 1px 1px #fff!important;
  text-shadow:none!important;
}
#adminAccountDialog h3{
  margin:3px 34px 10px 0!important;
  color:#d7ff42!important;
  font:700 17px/1.2 "Courier New",Consolas,monospace!important;
  letter-spacing:0!important;
  text-shadow:0 0 6px rgba(215,255,66,.55)!important;
}
#adminAccountDialog h3::before{content:'C:\\REPO\\ADMIN> ';color:#39ff6a}
#adminAccountDialog .admin-account-help{
  margin:0 0 14px!important;
  padding:9px 10px!important;
  border-left:3px solid #1f7d38!important;
  background:#071309!important;
  color:#65ff84!important;
  font:700 12px/1.45 "Courier New",Consolas,monospace!important;
  text-shadow:0 0 5px rgba(57,255,106,.45)!important;
}
#adminAccountDialog .admin-account-help::before{content:'SYSTEM: ';color:#fff600}
#adminAccountDialog .admin-account-field{
  display:grid!important;
  gap:6px!important;
  margin:13px 0!important;
  color:#d7ff42!important;
  font:700 12px/1.2 "Courier New",Consolas,monospace!important;
  letter-spacing:0!important;
}
#adminAccountDialog .admin-account-field::before{content:'> ';color:#fff600}
#adminAccountDialog .admin-account-field select,
#adminAccountDialog .admin-account-field input{
  width:100%!important;
  box-sizing:border-box!important;
  padding:10px!important;
  border:1px solid #1f7d38!important;
  border-radius:0!important;
  background:#020703!important;
  color:#65ff84!important;
  font:700 14px "Courier New",Consolas,monospace!important;
  outline:none!important;
  box-shadow:inset 0 0 0 1px #020!important;
  text-shadow:0 0 4px rgba(57,255,106,.45)!important;
}
#adminAccountDialog .admin-account-field select:focus,
#adminAccountDialog .admin-account-field input:focus{border-color:#fff600!important;box-shadow:0 0 8px rgba(255,246,0,.35),inset 0 0 0 1px #423f00!important}
#adminAccountDialog .admin-account-field input::placeholder{color:#267d39!important;opacity:1}
#adminAccountDialog .admin-account-refresh,
#adminAccountDialog .admin-rename-submit{
  display:block!important;
  width:100%!important;
  margin:8px 0 0!important;
  padding:11px 10px!important;
  border:1px solid #1f7d38!important;
  border-radius:0!important;
  background:#071309!important;
  color:#65ff84!important;
  font:700 13px/1.2 "Courier New",Consolas,monospace!important;
  letter-spacing:0!important;
  text-align:left!important;
  text-shadow:0 0 5px rgba(57,255,106,.55)!important;
  box-shadow:inset 0 0 0 1px #020!important;
}
#adminAccountDialog .admin-account-refresh::before{content:'> RUN '}
#adminAccountDialog .admin-rename-submit::before{content:'> EXECUTE '}
#adminAccountDialog .admin-account-refresh:hover,
#adminAccountDialog .admin-rename-submit:hover{background:#0d2912!important;color:#fff600!important;filter:none!important;border-color:#39ff6a!important}
#adminAccountDialog .admin-rename-preview{
  min-height:20px!important;
  margin:13px 0!important;
  padding:11px!important;
  border:1px dashed #1f7d38!important;
  background:#020703!important;
  color:#65ff84!important;
  font:700 12px/1.45 "Courier New",Consolas,monospace!important;
  text-shadow:0 0 5px rgba(57,255,106,.4)!important;
}
#adminAccountDialog .admin-rename-preview::before{content:'PREVIEW_OUTPUT: ';color:#fff600}
#adminAccountDialog .admin-rename-preview strong{color:#fff!important}
#adminAccountDialog .admin-rename-preview b{color:#ff6b6b!important}
#adminAccountDialog .admin-rename-status{
  min-height:18px!important;
  margin:10px 0 0!important;
  color:#d7ff42!important;
  font:700 12px/1.4 "Courier New",Consolas,monospace!important;
  text-shadow:0 0 5px rgba(57,255,106,.45)!important;
}
#adminAccountDialog .admin-rename-status::before{content:'C:\\REPO\\ADMIN> ';color:#39ff6a}
#adminAccountDialog .admin-rename-status.is-error{color:#ff6b6b!important}
#adminAccountDialog .admin-rename-status.is-success{color:#65ff84!important}
@media(max-width:600px){
  #adminAccountDialog.admin-account-dialog{padding:42px 12px 14px!important}
  #adminAccountDialog h3{font-size:14px!important}
}

/* CovidPanda birthday genie lamp */
.birthday-genie-lamp-slot{font:inherit;color:inherit;width:100%;cursor:pointer;border:2px solid #b88a2f!important;background:radial-gradient(circle at 50% 35%,#473316,#21170c 72%)!important;box-shadow:inset 0 0 18px rgba(255,202,77,.18),0 0 10px rgba(110,69,255,.2);animation:birthdayLampSlotGlow 1.15s ease-in-out infinite alternate}
.birthday-genie-lamp-slot:hover{border-color:#f2cd65!important;filter:brightness(1.12)}
.birthday-genie-lamp-art{width:78px!important;height:68px!important;object-fit:contain!important;image-rendering:pixelated;filter:drop-shadow(0 3px 2px rgba(0,0,0,.75)) drop-shadow(0 0 5px rgba(100,74,255,.55))}
.birthday-genie-lamp-slot small{color:#ffe6a4!important;font-weight:800;line-height:1.15}.birthday-genie-lamp-hint{position:absolute;right:5px;bottom:3px;color:#a996ff!important;font-size:8px!important;font-weight:900}
@keyframes birthdayLampSlotGlow{from{box-shadow:inset 0 0 12px rgba(255,202,77,.12),0 0 5px rgba(110,69,255,.15)}to{box-shadow:inset 0 0 22px rgba(255,202,77,.25),0 0 14px rgba(110,69,255,.38)}}
.birthday-genie-lamp-dialog{border:2px solid #d4a94d;border-radius:8px;padding:0;background:#171006;color:#f8e4ad;box-shadow:0 18px 70px #000,0 0 30px rgba(102,70,255,.35);max-width:min(92vw,430px)}.birthday-genie-lamp-dialog::backdrop{background:rgba(0,0,0,.78)}
.birthday-genie-lamp-modal{position:relative;padding:22px 28px 26px;text-align:center;background:radial-gradient(circle at 50% 25%,#493516 0,#21160a 55%,#100b06 100%)}.birthday-genie-lamp-modal img{width:210px;height:160px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 6px 4px #000) drop-shadow(0 0 12px rgba(105,75,255,.65));animation:birthdayModalLampShake .7s steps(2,end) infinite}.birthday-genie-lamp-modal h2{margin:3px 0 8px;color:#ffd86f;font-size:22px}.birthday-genie-lamp-modal p{margin:0 0 13px;color:#ead9ad}.birthday-genie-lamp-modal strong{display:block;font:900 34px/1.1 monospace;letter-spacing:2px;color:#b9a7ff;text-shadow:0 0 10px rgba(105,75,255,.8)}.birthday-genie-lamp-modal strong.ready{color:#ffe071;text-shadow:0 0 14px rgba(255,205,72,.9)}.birthday-genie-lamp-modal small{display:block;margin-top:9px;color:#bcaa80}.birthday-genie-close{position:absolute;right:9px;top:7px;border:0;background:transparent;color:#d9bf7b;font-size:27px;line-height:1;cursor:pointer;z-index:2}@keyframes birthdayModalLampShake{0%{transform:rotate(-2deg) translateX(-2px)}50%{transform:rotate(2deg) translateX(2px)}100%{transform:rotate(-2deg) translateX(-2px)}}
.birthday-open-lamp,.birthday-claim-button{border:2px solid #f2ce62;background:linear-gradient(#7b4d11,#3d2308);color:#fff2ad;padding:12px 22px;font-weight:900;cursor:pointer;box-shadow:0 0 18px rgba(255,205,72,.45)}
.birthday-reward-stage{position:relative;width:min(94vw,900px);min-height:520px;display:grid;place-items:center;padding:20px;background:#030303;overflow:hidden}.birthday-reward-stage>img{max-width:100%;max-height:72vh;object-fit:contain;image-rendering:pixelated}.birthday-flash{position:absolute;inset:0;background:#fff;z-index:2;pointer-events:none;animation:birthdayMassiveFlash 1.15s ease-out forwards}@keyframes birthdayMassiveFlash{0%{opacity:0}12%{opacity:1}35%{opacity:.95}100%{opacity:0}}
.birthday-claim-stage{grid-template-rows:1fr auto}.birthday-claim-button{margin:8px 0 20px;font-size:18px}.birthday-reward-confirm{position:relative;width:min(92vw,720px);padding:28px;text-align:center;background:radial-gradient(circle at top,#493516,#160d05 65%);color:#f5dfac}.birthday-reward-confirm h2{color:#ffe177;font-size:30px}.birthday-reward-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:16px}.birthday-reward-grid>div,.birthday-osrs-code{border:1px solid #a8792c;background:rgba(0,0,0,.35);padding:16px;display:grid;gap:7px;place-items:center}.birthday-reward-grid img{max-width:100%;height:150px;object-fit:contain;image-rendering:pixelated}.birthday-reward-grid strong{color:#fff0a7}.birthday-reward-grid small{color:#d5c08e}.birthday-osrs-code{margin-top:16px}.birthday-osrs-code code{display:block;padding:12px;background:#080808;color:#9ef59e;font-size:17px;letter-spacing:1px;user-select:all}.birthday-test-note{display:block;margin-top:13px;color:#d8b56b}@media(max-width:640px){.birthday-reward-grid{grid-template-columns:1fr}.birthday-reward-stage{min-height:420px}.birthday-osrs-code code{font-size:12px}}


/* Birthday reveal presentation — free-floating scroll, no enclosing box */
.birthday-genie-lamp-dialog.birthday-reward-dialog{
  width:100vw!important;
  max-width:none!important;
  height:100vh!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.birthday-genie-lamp-dialog.birthday-reward-dialog::backdrop{background:rgba(0,0,0,.88)!important}
.birthday-reward-stage{
  width:100vw!important;
  height:100vh!important;
  min-height:0!important;
  padding:3vh 3vw 2.5vh!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:10px!important;
  background:transparent!important;
  overflow:visible!important;
}
.birthday-reward-stage>img{
  display:block!important;
  width:min(92vw,1150px)!important;
  height:auto!important;
  max-width:92vw!important;
  max-height:82vh!important;
  object-fit:contain!important;
  flex:0 1 auto!important;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.9));
}
.birthday-claim-stage{grid-template-rows:none!important}
.birthday-claim-stage>img{max-height:76vh!important}
.birthday-claim-button{
  position:relative!important;
  left:auto!important;
  bottom:auto!important;
  margin:0 auto!important;
  flex:0 0 auto!important;
  min-width:220px!important;
  text-align:center!important;
  font-size:18px!important;
  z-index:4!important;
}
.birthday-reward-dialog .birthday-genie-close{
  position:fixed!important;
  top:18px!important;
  right:24px!important;
  color:#ffe6a4!important;
  text-shadow:0 2px 4px #000!important;
}
.birthday-reward-dialog .birthday-reward-confirm{
  margin:auto!important;
  max-height:90vh!important;
  overflow:auto!important;
  border:2px solid #d4a94d!important;
  box-shadow:0 18px 70px #000,0 0 30px rgba(102,70,255,.35)!important;
}
@media(max-width:640px){
  .birthday-reward-stage>img{width:96vw!important;max-width:96vw!important;max-height:76vh!important}
  .birthday-claim-stage>img{max-height:70vh!important}
}

/* Birthday scroll transparency and exact frame anchoring */
.birthday-reward-stage,
.birthday-reward-stage::before,
.birthday-reward-stage::after{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
}
.birthday-reward-stage>img{
  position:relative!important;
  inset:auto!important;
  margin:0 auto!important;
  object-position:50% 50%!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.birthday-reward-dialog .birthday-genie-close{
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  display:grid!important;
  place-items:center!important;
  font-size:28px!important;
  line-height:1!important;
}
\n\n/* Birthday lamp close control + fireworks */\n.birthday-genie-close{\n  width:22px!important;min-width:22px!important;height:22px!important;\n  padding:0!important;margin:0!important;font-size:16px!important;line-height:1!important;\n  display:grid!important;place-items:center!important;\n}\n.birthday-ready-modal .birthday-genie-close{right:7px!important;top:6px!important;font-size:15px!important}\n.birthday-reward-dialog .birthday-genie-close{\n  width:24px!important;min-width:24px!important;height:24px!important;\n  top:10px!important;right:12px!important;font-size:17px!important;\n}\n.birthday-claim-stage{isolation:isolate}\n.birthday-claim-stage>img,.birthday-claim-stage>.birthday-claim-button,.birthday-claim-stage>.birthday-genie-close{position:relative;z-index:3}\n.birthday-firework-burst{\n  position:absolute;z-index:1;width:8px;height:8px;pointer-events:none;\n  transform:translate(-50%,-50%);filter:drop-shadow(0 0 6px hsl(var(--firework-hue) 100% 65%));\n}\n.birthday-firework-burst::before{\n  content:'';position:absolute;inset:-5px;border-radius:50%;background:#fff;\n  box-shadow:0 0 12px 5px hsl(var(--firework-hue) 100% 60%);animation:birthdayFireworkCore .42s ease-out forwards;\n}\n.birthday-firework-burst i{\n  position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:1px;\n  background:hsl(var(--firework-hue) 100% 65%);box-shadow:0 0 7px 2px hsl(var(--firework-hue) 100% 60%);\n  transform:translate(-50%,-50%) rotate(var(--angle)) translateX(0);\n  animation:birthdayFireworkSpark 1.1s cubic-bezier(.15,.6,.2,1) var(--delay) forwards;\n}\n@keyframes birthdayFireworkCore{0%{transform:scale(.2);opacity:0}20%{transform:scale(1);opacity:1}100%{transform:scale(.1);opacity:0}}\n@keyframes birthdayFireworkSpark{\n  0%{transform:translate(-50%,-50%) rotate(var(--angle)) translateX(0) scale(1.2);opacity:0}\n  12%{opacity:1}\n  75%{opacity:1}\n  100%{transform:translate(-50%,-50%) rotate(var(--angle)) translateX(var(--distance)) scale(.25);opacity:0}\n}\n.birthday-copy-code{display:block;margin:12px auto 0;padding:8px 18px;border:1px solid #e6b64e;background:linear-gradient(#70451f,#43260f);color:#ffe7a5;font:700 13px Georgia,serif;cursor:pointer}.birthday-copy-code:hover{filter:brightness(1.12)}


/* 2026-08-06: Scalable homepage training navigation.
   Six compact skill tiles fit per desktop row, leaving room for future skills. */
.game-strip.adventure-nav{
  grid-template-columns:minmax(0,1.32fr) minmax(0,1fr)!important;
}
.training-nav .training-skill-grid{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:8px!important;
}
.training-nav .training-skill-grid button,
.training-nav .training-skill-grid .runecrafting-open-button{
  position:relative;
  height:68px!important;
  min-height:68px!important;
  max-height:68px!important;
  padding:6px 5px!important;
  flex-direction:column!important;
  gap:3px!important;
  overflow:hidden;
  white-space:normal!important;
  background:linear-gradient(180deg,#704822 0%,#4a2d17 56%,#351f11 100%)!important;
  border:2px solid #e0a447!important;
  box-shadow:inset 0 0 0 1px #4d2b13,0 2px 0 #140b06!important;
}
.training-nav .training-skill-grid button::after{
  content:'';
  position:absolute;
  inset:2px;
  pointer-events:none;
  border:1px solid rgba(255,220,145,.16);
}
.training-nav .training-skill-grid button:hover:not(:disabled){
  transform:translateY(-1px);
  filter:brightness(1.12);
  box-shadow:inset 0 0 0 1px #6c401d,0 4px 0 #140b06!important;
}
.training-nav .training-skill-grid button:active:not(:disabled){
  transform:translateY(1px);
  box-shadow:inset 0 0 0 1px #4d2b13,0 1px 0 #140b06!important;
}
.training-nav .training-skill-grid button>img,
.training-nav .training-skill-grid .runecrafting-open-button>img,
.training-nav .training-skill-grid button>.training-skill-icon{
  width:28px!important;
  height:28px!important;
  max-width:28px!important;
  max-height:28px!important;
  flex:0 0 28px!important;
  object-fit:contain!important;
  image-rendering:pixelated;
  filter:drop-shadow(0 2px 1px #140b06);
}
.training-nav .training-button-copy{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  min-width:0;
  max-width:100%;
  color:#f8dfa0!important;
  font-family:Georgia,serif!important;
  line-height:1!important;
  text-align:center;
}
.training-nav .training-button-copy>small{
  display:block;
  color:#cda963;
  font:700 7px/1 Georgia,serif;
  letter-spacing:.16em;
}
.training-nav .training-button-copy>span{
  display:block;
  max-width:100%;
  color:inherit!important;
  font:900 10px/1.05 Georgia,serif!important;
  letter-spacing:.025em;
  overflow-wrap:anywhere;
}
.training-nav .fishing-open-button img{
  transform:scale(1.08);
}
.training-nav .cooking-open-button img{
  transform:scale(.92);
}
@media(max-width:1180px) and (min-width:1051px){
  .game-strip.adventure-nav{grid-template-columns:minmax(0,1.42fr) minmax(0,1fr)!important}
  .training-nav .training-skill-grid{gap:6px!important}
  .training-nav .training-button-copy>span{font-size:9px!important}
}
@media(max-width:1050px){
  .game-strip.adventure-nav{grid-template-columns:1fr!important}
  .training-nav .training-skill-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .training-nav .training-skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .activities-nav .nav-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  .training-nav .training-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* 2026-08-06: Expandable Training + Other homepage navigation.
   Both sections now use compact, consistent tiles with room for future entries. */
.game-strip.adventure-nav{
  grid-template-columns:minmax(0,1.38fr) minmax(0,1fr)!important;
}
.training-nav .training-skill-grid{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:8px!important;
}
.activities-nav .activity-button-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
}
.training-nav .training-skill-grid button,
.activities-nav .activity-button-grid button{
  --nav-icon-scale:1;
  --nav-icon-hover-scale:1.07;
  position:relative!important;
  isolation:isolate;
  width:100%!important;
  min-width:0!important;
  height:70px!important;
  min-height:70px!important;
  max-height:70px!important;
  box-sizing:border-box!important;
  padding:6px 5px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  overflow:hidden!important;
  white-space:normal!important;
  background:linear-gradient(180deg,#704822 0%,#4a2d17 56%,#351f11 100%)!important;
  border:2px solid #e0a447!important;
  color:#f8dfa0!important;
  box-shadow:inset 0 0 0 1px #4d2b13,0 2px 0 #140b06!important;
  transform:translateY(0);
  transition:transform .16s ease,filter .16s ease,border-color .16s ease,box-shadow .16s ease!important;
}
.training-nav .training-skill-grid button::after,
.activities-nav .activity-button-grid button::after{
  content:'';
  position:absolute;
  inset:2px;
  z-index:0;
  pointer-events:none;
  border:1px solid rgba(255,220,145,.16);
}
.training-nav .training-skill-grid button::before,
.activities-nav .activity-button-grid button::before{
  content:'';
  position:absolute;
  z-index:0;
  top:-38%;
  left:-62%;
  width:34%;
  height:176%;
  pointer-events:none;
  opacity:0;
  transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,232,168,.24),transparent);
  transition:left .38s ease,opacity .18s ease;
}
.training-nav .training-skill-grid button:hover:not(:disabled),
.activities-nav .activity-button-grid button:hover:not(:disabled){
  transform:translateY(-2px);
  filter:brightness(1.12) saturate(1.04);
  border-color:#f3bd60!important;
  box-shadow:inset 0 0 0 1px #765027,0 5px 0 #140b06,0 7px 15px rgba(0,0,0,.3)!important;
}
.training-nav .training-skill-grid button:hover:not(:disabled)::before,
.activities-nav .activity-button-grid button:hover:not(:disabled)::before{
  left:128%;
  opacity:1;
}
.training-nav .training-skill-grid button:active:not(:disabled),
.activities-nav .activity-button-grid button:active:not(:disabled){
  transform:translateY(1px);
  filter:brightness(1.04);
  box-shadow:inset 0 0 0 1px #4d2b13,0 1px 0 #140b06!important;
  transition-duration:.06s!important;
}
.training-nav .training-skill-grid button>img,
.training-nav .training-skill-grid button>.training-skill-icon,
.activities-nav .activity-button-grid button>img,
.activities-nav .activity-button-grid button>.activity-icon{
  position:relative;
  z-index:1;
  flex:0 0 28px!important;
  width:28px!important;
  height:28px!important;
  max-width:28px!important;
  max-height:28px!important;
  object-fit:contain!important;
  image-rendering:pixelated;
  filter:drop-shadow(0 2px 1px #140b06);
  transform:translateY(0) scale(var(--nav-icon-scale));
  transition:transform .18s ease,filter .18s ease!important;
}
.training-nav .training-skill-grid button:hover:not(:disabled)>img,
.training-nav .training-skill-grid button:hover:not(:disabled)>.training-skill-icon,
.activities-nav .activity-button-grid button:hover:not(:disabled)>img,
.activities-nav .activity-button-grid button:hover:not(:disabled)>.activity-icon{
  transform:translateY(-1px) scale(var(--nav-icon-hover-scale));
  filter:drop-shadow(0 3px 2px #140b06) brightness(1.08);
}
.training-nav .fishing-open-button{--nav-icon-scale:1.08;--nav-icon-hover-scale:1.15}
.training-nav .cooking-open-button{--nav-icon-scale:.92;--nav-icon-hover-scale:.99}
.training-nav .herblore-open-button{--nav-icon-scale:1.05;--nav-icon-hover-scale:1.12}
.training-nav .construction-open-button{--nav-icon-scale:.94;--nav-icon-hover-scale:1.01}
.training-nav .hunter-open-button{--nav-icon-scale:.92;--nav-icon-hover-scale:.99}
.training-nav .training-button-copy,
.activities-nav .activity-button-grid button>.activity-button-copy{
  position:relative;
  z-index:1;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  min-width:0!important;
  max-width:100%!important;
  color:#f8dfa0!important;
  font-family:Georgia,serif!important;
  line-height:1!important;
  text-align:center!important;
}
.training-nav .training-button-copy>small,
.activities-nav .activity-button-grid button>.activity-button-copy>small{
  display:block!important;
  color:#cda963!important;
  font:700 7px/1 Georgia,serif!important;
  letter-spacing:.16em!important;
}
.training-nav .training-button-copy>span,
.activities-nav .activity-button-grid button>.activity-button-copy>span{
  display:block!important;
  max-width:100%!important;
  color:inherit!important;
  font:900 10px/1.05 Georgia,serif!important;
  letter-spacing:.025em!important;
  overflow-wrap:anywhere;
}
.activities-nav .ge-button-icon.activity-icon{
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  border-radius:50%;
  font-size:9px!important;
  line-height:1!important;
}
.activities-nav .wise-task-badge{
  z-index:3!important;
}
@media(max-width:1180px) and (min-width:1051px){
  .game-strip.adventure-nav{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)!important}
  .training-nav .training-skill-grid,
  .activities-nav .activity-button-grid{gap:6px!important}
  .training-nav .training-button-copy>span,
  .activities-nav .activity-button-grid button>.activity-button-copy>span{font-size:9px!important}
}
@media(max-width:1050px){
  .game-strip.adventure-nav{grid-template-columns:1fr!important}
  .training-nav .training-skill-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .activities-nav .activity-button-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .training-nav .training-skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .activities-nav .activity-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:430px){
  .training-nav .training-skill-grid,
  .activities-nav .activity-button-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(prefers-reduced-motion:reduce){
  .training-nav .training-skill-grid button,
  .activities-nav .activity-button-grid button,
  .training-nav .training-skill-grid button>img,
  .activities-nav .activity-button-grid button>img,
  .activities-nav .activity-button-grid button>.activity-icon{
    transition:none!important;
  }
  .training-nav .training-skill-grid button::before,
  .activities-nav .activity-button-grid button::before{display:none!important}
}
