html.gori-art-v2 body:not(.act2):not(.act3):not(.act4),.world-sample[data-world="1"]{--wu-bg:#181615;--wu-panel:#27221f;--wu-btn:#372c24;--wu-top:#514036;--wu-bottom:#2c241f;--wu-selected:#6d3b21;--wu-accent:#eaae63;--wu-text:#f6e8d2;--wu-muted:#bcad9b;--px-steel:url("/assets/world-ui-v237/forge-steel.svg");--px-gold:url("/assets/world-ui-v237/forge-gold.svg");--wu-grain:url("/assets/world-ui-v237/forge-grain.svg");}
html.gori-art-v2 body.act2,.world-sample[data-world="2"]{--wu-bg:#101923;--wu-panel:#182735;--wu-btn:#233747;--wu-top:#3e5666;--wu-bottom:#1a2c3b;--wu-selected:#34536a;--wu-accent:#e0c483;--wu-text:#e5edf0;--wu-muted:#b3c2ce;--px-steel:url("/assets/world-ui-v237/city-steel.svg");--px-gold:url("/assets/world-ui-v237/city-gold.svg");--wu-grain:url("/assets/world-ui-v237/city-grain.svg");}
html.gori-art-v2 body.act3,.world-sample[data-world="3"]{--wu-bg:#111d19;--wu-panel:#192b24;--wu-btn:#243c31;--wu-top:#44614d;--wu-bottom:#1c3128;--wu-selected:#365943;--wu-accent:#d5c592;--wu-text:#e8ecdc;--wu-muted:#afc6b7;--px-steel:url("/assets/world-ui-v237/ink-steel.svg");--px-gold:url("/assets/world-ui-v237/ink-gold.svg");--wu-grain:url("/assets/world-ui-v237/ink-grain.svg");}
html.gori-art-v2 body.act4,.world-sample[data-world="4"]{--wu-bg:#101322;--wu-panel:#191e33;--wu-btn:#252d46;--wu-top:#405476;--wu-bottom:#1c2339;--wu-selected:#334e70;--wu-accent:#88e7ed;--wu-text:#e4f5ff;--wu-muted:#b2c4df;--px-steel:url("/assets/world-ui-v237/light-steel.svg");--px-gold:url("/assets/world-ui-v237/light-gold.svg");--wu-grain:url("/assets/world-ui-v237/light-grain.svg");}
html.gori-art-v2 body,.world-sample{background-color:var(--wu-bg)!important;background-image:var(--wu-grain)!important;color:var(--wu-text)}
html.gori-art-v2 :is(button,.btn){background-color:var(--wu-btn);background-image:linear-gradient(var(--wu-top) 0 2px,transparent 2px calc(100% - 3px),var(--wu-bottom) calc(100% - 3px)),var(--wu-grain)!important;color:var(--wu-text);text-shadow:0 1px #000}
html.gori-art-v2 :is(button,.btn):is(.hot,.on,.active,[aria-selected=true],[aria-pressed=true]){background-color:var(--wu-selected)!important;background-image:linear-gradient(var(--wu-accent) 0 2px,transparent 2px calc(100% - 3px),#0003 calc(100% - 3px)),var(--wu-grain)!important;color:var(--wu-text)!important;border-image-source:var(--px-gold)!important}
html.gori-art-v2 :is(.card,.gacha,.pot-card,.skill-card,.tv-b,.castle-run,.castle-entry,.rift-expedition,.exp-lock,#forge,#a1-focus,#growth-center,#newsdock,#game-dock,#a1-roomhd,#a1-room,.modal,.modal-content,dialog,#growth-detail){background-color:var(--wu-panel)!important;background-image:var(--wu-grain)!important;color:var(--wu-text);border-image-source:var(--px-steel)}
html.gori-art-v2 :is(#brand-header,#growth-center .growth-header,nav,#gori-dock){background-color:var(--wu-panel)!important;background-image:var(--wu-grain)!important}
html.gori-art-v2 :is(button,a,summary,input,select):focus-visible{outline-color:var(--wu-accent)!important}
html.gori-art-v2 :is(.btn,button).danger{color:#ffd4ce!important;background-color:#632b2b!important}
/* The legacy arena is redundant once the pixel scene exists, even after DOM relocation. */
body.tv2:has(.pixel-stage) :is(#dm-arena,#dm-mates){display:none!important}
#pc-combat-info{padding:12px;background:var(--wu-panel,#19232b);border:1px solid var(--wu-top,#41515e);min-width:0}
#pc-combat-info summary{cursor:pointer;min-height:32px;font-weight:bold;color:var(--wu-accent,#eac78c)}
#pc-combat-info>.top{display:block!important;margin-top:12px}#pc-combat-info .inf{width:100%;min-width:0}#pc-combat-info .inf>.row{flex-wrap:wrap!important;gap:6px}#pc-combat-info .stat{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;font-size:12px;line-height:1.6}#pc-combat-info .hpz{position:relative;height:7px;background:#090d13;overflow:hidden;margin:8px 0}#pc-combat-info .hpz>i{display:block;height:100%;background:#bb6376}#pc-combat-info .gold>i{background:#c6a361}
@media(min-width:960px){body.tv2 #a1pager .a1pg[data-pg=war]{grid-template-columns:minmax(0,1fr)!important;gap:12px}body.tv2 #side-col{grid-column:1/-1!important;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr);align-items:start;gap:14px}body.tv2 #side-col[hidden]{display:none}body.tv2 #a1pager .a1pg[data-pg=war]>:is(#newsdock,#exp-lock,#a1-controls){grid-column:1/-1!important}body.tv2 #a1pager .a1pg[data-pg=war]>#newsdock #nd-body{max-height:76px;overflow:auto}body.tv2 #side-col .castle-run{padding:14px}body.tv2 #side-col .castle-run .btn{width:auto;min-height:40px}body.tv2 #a1pager{padding-bottom:24px}}
@media(max-width:959px){#pc-combat-info{display:none}}
/* Short viewports must not trap expedition controls between stage and dock. */
@media(max-width:959px){body.tv2 #a1-below{padding-bottom:calc(var(--game-dock-height,90px) + 24px)}body.tv2 #a1-below button{scroll-margin-top:390px;scroll-margin-bottom:110px}}
@media(max-width:959px) and (max-height:740px){body.tv2 #a1-stage{position:relative!important;top:auto!important}}
html.gori-art-v2 :is(#castle-swap-l,#castle-auto-l,#castle-swap,#castle-camp,#castle-floorinfo,#castle-outposts,#castle-warp)[hidden]{display:none!important}
html.gori-art-v2 :is(.card,.gacha,.pot-card,.skill-card,.tv-b,.castle-run,.castle-entry,.rift-expedition,.exp-lock,#forge,#a1-focus,#growth-center,#newsdock,#game-dock,#a1-roomhd,#a1-room,.modal,.modal-content,dialog,#growth-detail){background-image:linear-gradient(#ffffff03,transparent 80px)!important}
@media(min-width:960px){body.tv2 #exp-lock p{max-width:85ch;line-height:1.65}body.tv2 #exp-lock .xl-act small{font-size:12px}body.tv2 .rift-expedition{padding:10px 12px}body.tv2 #pc-combat-info .top{cursor:auto}body.tv2 #side-col .castle-actions{gap:8px;flex-wrap:wrap}}

/* v238: compact illustrated RPG buttons; rounded lip, bevel and a stable pressed face. */
html.gori-art-v2 body{--bt-top:#71899a;--bt-face:#425e73;--bt-edge:#253b4d;--bt-hot-top:#ffe6a0;--bt-hot-face:#d99c49;--bt-hot-edge:#795027}
html.gori-art-v2 body.act2{--bt-top:#9bb9ce;--bt-face:#577b98;--bt-edge:#293f5e;--bt-hot-top:#f5e3ab;--bt-hot-face:#c4a36a;--bt-hot-edge:#69543c}
html.gori-art-v2 body.act3{--bt-top:#a7c9af;--bt-face:#5b8b78;--bt-edge:#2b5147;--bt-hot-top:#f4e7b9;--bt-hot-face:#bba466;--bt-hot-edge:#5b5736}
html.gori-art-v2 body.act4{--bt-top:#b1b8ee;--bt-face:#6c78b5;--bt-edge:#3a426f;--bt-hot-top:#c5fbef;--bt-hot-face:#68bfc1;--bt-hot-edge:#326779}
html.gori-art-v2 body :is(button,.btn){border-image:none!important;border:1px solid var(--bt-edge)!important;border-radius:7px!important;background:linear-gradient(to bottom,var(--bt-top) 0%,var(--bt-face) 47%,var(--bt-face) 100%)!important;box-shadow:inset 0 1px 0 #ffffffb3,inset 1px 0 0 #ffffff38,inset -1px 0 0 #ffffff20,inset 0 -3px 0 #00000029,0 2px 0 #080d15b3!important;color:#fff8e9!important;font-weight:700;text-shadow:0 1px 1px #162536;transition:filter .1s,box-shadow .1s;line-height:1.35;}
html.gori-art-v2 body :is(button,.btn):is(.hot,.on,.active,[aria-selected=true],[aria-pressed=true]){border-image:none!important;border-color:var(--bt-hot-edge)!important;background:linear-gradient(var(--bt-hot-top),var(--bt-hot-face) 65%)!important;color:#29251f!important;text-shadow:0 1px #fff6!important;box-shadow:inset 0 1px 0 #fff9d5,inset 1px 0 0 #fff5,inset 0 -3px 0 #0002,0 2px 0 #080d15b3!important;}
html.gori-art-v2 body :is(button,.btn):not(:disabled):active{filter:brightness(.95);box-shadow:inset 0 2px 3px #0005,inset 0 -1px 0 #fff4!important;}
html.gori-art-v2 body :is(button,.btn):disabled{background:linear-gradient(#626973,#414852)!important;color:#bbc0c7!important;text-shadow:none!important;border-color:#343d48!important;box-shadow:inset 0 1px #ffffff30!important;opacity:.65;filter:none;cursor:not-allowed;}
html.gori-art-v2 body :is(button,.btn).danger{background:linear-gradient(#cc897f,#874b51)!important;border-color:#592b34!important;color:#fff2e6!important;}
@media(prefers-reduced-motion:reduce){html.gori-art-v2 body :is(button,.btn){transition:none}}

/* v240: popup must escape the news stacking level; normal dock stays below dialogs. */
body #game-dock:has(#dock-more-panel:not([hidden])){z-index:90}
body #dock-more-panel{max-height:calc(var(--dock-viewport,100dvh) - var(--game-dock-height,110px) - 32px);scrollbar-gutter:stable}
body.tv2 .castle-run,body.tv2 #side-col .castle-run{padding:8px 10px}
body.tv2 .castle-run-head{font-size:12px;align-items:center;gap:4px 8px}
body.tv2 .castle-run progress{height:6px;margin:4px 0}
body.tv2 .castle-run .castle-timer{padding:5px 8px;margin:4px 0;gap:4px 12px;border-radius:5px}
body.tv2 .castle-timer b{font-size:14px}
body.tv2 .castle-timer small{font-size:10px}
body.tv2 .castle-timer i{height:3px}
body.tv2 .castle-run .castle-actions{margin:6px 0;gap:6px}
body.tv2 .castle-run .castle-actions button{font-size:12px;padding:5px 10px;min-height:40px}
body.tv2 .castle-run[data-running=true] #castle-start{display:none}
body.tv2 .castle-run[data-running=false] #castle-retire{display:none}
body.tv2 .castle-run summary{min-height:36px;padding:7px 0;font-size:12px}
body.tv2 #castle-status-details{border-top:1px solid #ffffff1c}
body.tv2 #castle-status-details p{margin:4px 0}
body.tv2 .rift-modes{flex-wrap:wrap}
body.tv2 .rift-modes button{flex:0 1 130px;min-width:100px;min-height:36px}
body.tv2 .rift-expedition .rift-heading{margin-bottom:4px}
body.tv2 .rift-expedition{padding:6px 10px}
body.tv2 #castle-result:empty{display:none}
@media(max-width:480px){body.tv2 .castle-run .castle-actions button{min-height:44px}}

body.tv2 .castle-run:has(.castle-timer.short) #ct-verdict{color:#ff9f8a}
