:root{color-scheme:dark;--bg:#171512;--nav:#1b1814;--panel:#211d17;--line:#443728;--gold:#efc378;--text:#f4e5ce;--muted:#c5b19a;--warm:#b87950}
*{box-sizing:border-box}html{scroll-padding-top:16px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.7 "Noto Sans Myanmar","Myanmar Text",system-ui,sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:750;line-height:1.45}html[lang=en] h1,html[lang=en] h2,html[lang=en] h3{font-family:Georgia,serif}h1{font-size:clamp(36px,6vw,66px)}h2{font-size:24px}h3{font-size:17px}p{color:var(--muted);margin-top:6px}a{color:var(--gold)}a:hover{text-decoration:none}
.layout{display:grid;grid-template-columns:214px minmax(0,1fr);max-width:1440px;min-height:100vh;margin:auto}aside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;padding:24px 16px;background:var(--nav);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;letter-spacing:.09em;font:700 15px/1.3 Georgia,serif}.seal{font-size:30px;border:1px solid var(--line);border-radius:8px;padding:0 7px}.controls{margin-top:auto;display:flex;flex-wrap:wrap;gap:7px}nav{display:grid;gap:5px}nav a{color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:7px}nav a:hover,nav a:focus-visible{background:var(--panel);color:var(--gold)}main{min-width:0;padding:24px 28px 16px}.hero{min-height:194px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;overflow:hidden;background:radial-gradient(ellipse at right,#5e3c29,transparent 65%),#282018;border:1px solid #705135;border-radius:14px;padding:25px}.hero p{max-width:590px}.temple{width:min(24%,240px);flex:none;stroke:var(--gold);fill:none;opacity:.55}.eyebrow{color:var(--gold);font-size:12px;font-weight:750;letter-spacing:.08em}.eyebrow span{opacity:.8}section{margin-top:24px}.panel,.resources>div,.cards>article,.places>*{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--panel)}.narrow{max-width:530px;padding:20px}.section-heading,.buttons,.row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.buttons{justify-content:flex-start}.tag{color:var(--gold);border:1px solid var(--line);border-radius:99px;padding:4px 12px}.resources,.cards,.places{display:grid;gap:10px;margin-top:10px;grid-template-columns:repeat(auto-fit,minmax(158px,1fr))}.resources b{display:block;font-size:19px;overflow-wrap:anywhere}.resources small,.places small{display:block;color:var(--muted)}.places>*{text-decoration:none}.places a:hover{border-color:var(--gold)}.cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.cards article button{margin-top:10px}.cards p{font-size:14px}.reward{color:var(--gold)}#active-job{margin-top:12px}#notice{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:9px 12px;color:var(--gold);margin-top:12px}progress{display:block;width:100%;height:8px;margin:5px 0;accent-color:var(--warm);appearance:none}progress::-webkit-progress-bar{border-radius:6px;background:#4b3829}progress::-webkit-progress-value{border-radius:6px;background:var(--gold)}form label{display:block;margin:12px 0}input,select,button{font:inherit}input,select{display:block;width:100%;padding:8px 10px;margin-top:4px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text)}button{padding:7px 12px;border:1px solid transparent;border-radius:7px;background:var(--gold);color:#24180e;font-weight:750;cursor:pointer}button.secondary{background:transparent;border-color:var(--line);color:var(--gold)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid white;outline-offset:3px}ul.panel{list-style:none;margin:10px 0 0}ul.panel li+li{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}footer{margin-top:28px;color:var(--muted);font-size:13px}[hidden]{display:none!important}
@media(max-width:760px){.layout{display:block}aside{position:static;height:auto;display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-right:0;border-bottom:1px solid var(--line)}.controls{grid-row:1;grid-column:2;margin:0;justify-content:flex-end}nav{grid-column:1/-1;display:flex;flex-wrap:wrap}nav a{padding:5px 7px}main{padding:12px}.hero{padding:16px;min-height:145px}.temple{width:19%}.resources,.cards,.places{grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr))}}
/* Illustrated city directory */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.hero{isolation:isolate;min-height:clamp(210px,27vw,328px);background:#4a3127;align-items:flex-end;padding:clamp(18px,3vw,36px)}
.city-panorama{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#211712ef 0%,#211712ad 45%,transparent 84%),linear-gradient(0deg,#201711b8,transparent 70%)}
.hero p{color:#f0d9bd;max-width:440px}
.icon{display:inline-block;width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linejoin:round;stroke-linecap:round;color:var(--gold)}
.icon-label,.resources small.icon-label{display:flex;align-items:center;gap:.48em}
.places{grid-template-columns:repeat(auto-fit,minmax(min(100%,192px),1fr))}
.places .district{display:flex;flex-direction:column;overflow:hidden;padding:0;text-align:start;color:var(--text);font:inherit;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.places a.district:hover,.places button.district:hover,.district[aria-current]{border-color:var(--gold)}
.district-art{width:100%;height:auto;aspect-ratio:8/3;display:block;border-bottom:1px solid var(--line)}
.district-copy{display:block;padding:10px 12px 12px}
.district-copy strong{font-size:15px}
.district-copy small{margin-top:3px}
@media(max-width:520px){.places{grid-template-columns:repeat(2,minmax(0,1fr))}.district-copy{padding:8px}.district-copy strong{font-size:13px}.hero{min-height:206px}}
.profile-layout{display:grid;grid-template-columns:minmax(170px,240px) minmax(0,1fr);gap:12px;margin-top:10px}
.profile-layout .resources{margin:0;align-content:start}
.avatar-art{width:100%;display:block;max-height:232px;background:radial-gradient(ellipse at center,#563b2b,#25201b);border:1px solid var(--line);border-radius:8px}
.gear-list{list-style:none;margin:8px 0;padding:0;color:var(--muted)}
.gear-list li+li{margin-top:3px}
.battle-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:10px 0}
#battle-content{margin-top:10px}
#battle{scroll-margin-top:12px}
@media(max-width:540px){.profile-layout{grid-template-columns:1fr}.avatar-art{max-height:190px}}
/* Cinematic visual system */
:root{--bg:#101314;--nav:#141819;--panel:#1b2021;--line:#39403e;--gold:#d8b27a;--text:#eeeae1;--muted:#aeb5b0;--warm:#8a6b44}
body{background:radial-gradient(ellipse at 70% 0,#26302d55,transparent 60%),var(--bg);font-size:14px;line-height:1.8}
.layout{max-width:1680px;grid-template-columns:224px minmax(0,1fr)}
aside{background:linear-gradient(180deg,#1b2020,#101516);padding:26px 16px;border-right-color:#3c453c}
.brand{color:#e9c78e;font-size:16px;letter-spacing:.1em;padding-bottom:18px;border-bottom:1px solid var(--line)}
nav{gap:4px;overflow:auto;scrollbar-width:thin}
nav a{display:flex;align-items:center;min-height:38px;padding:6px 10px;border:1px solid transparent;border-radius:4px;font-size:13px}
nav a[aria-current=page]{background:linear-gradient(90deg,#b58f512a,transparent);border-color:#71573577;color:#efd6ad}
nav a .icon{width:29px;height:29px}
.controls{padding-top:16px;border-top:1px solid var(--line)}
main{padding:24px 32px 28px}
.command-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;padding:0 0 18px;border-bottom:1px solid var(--line);margin-bottom:22px;color:var(--muted)}
.command-bar strong{color:var(--text)}
.command-bar .icon{width:28px;height:28px}
h2{font-size:28px;font-weight:600}
h3{font-size:17px}
.eyebrow{font-size:10px;letter-spacing:.16em;font-family:system-ui,sans-serif;text-transform:uppercase;color:#c6a776}
section{margin-top:24px}
.hero{min-height:350px;border-radius:6px;align-items:flex-end;border-color:#6a654d;background:#303b30 url("/assets/bagan-cinematic.png") center/cover no-repeat;box-shadow:0 16px 70px #0005}
.hero::after{background:linear-gradient(90deg,#101717bd,transparent 85%),linear-gradient(0deg,#101714bf,transparent 75%)}
.hero h1{font-size:clamp(42px,5.8vw,72px);text-shadow:0 3px 18px #0006;font-weight:500}
.hero p{color:#e4decd;max-width:520px}
.hero-thaton{background-image:url("/assets/district-atlas.png");background-size:400% 400%;background-position:100% 66.6667%}
.hero-sriKsetra{background-image:url("/assets/district-atlas.png");background-size:400% 400%;background-position:0 100%}
.panel,.resources>div,.cards>article{border-radius:6px;background:linear-gradient(145deg,#222828,#181d1e);border-color:#38403c;padding:18px;box-shadow:0 6px 18px #0002}
#districts{margin-top:28px}
.places{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}
.places .district{background:#1c2222;border-color:#39423b;border-radius:5px;box-shadow:0 8px 20px #0003;transition:transform .18s,border-color .18s}
.places .district:hover{transform:translateY(-3px);border-color:#9c855a}
.art-tile{background-image:url("/assets/district-atlas.png");background-size:400% 400%;background-repeat:no-repeat}
.district-art{aspect-ratio:4/3;border:0;position:relative}
.district-art::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#16202177,transparent 65%)}
.district-copy{padding:12px 13px 15px}
.district-copy strong{font-weight:600;font-size:14px}
.district-copy small{padding-left:37px;font-size:12px;color:#c4b58f}
.district-copy .icon{width:29px;height:29px}
.icon{display:inline-block;flex:none;width:28px;height:28px;background:url("/assets/icon-atlas.png") no-repeat;background-size:600% 600%;border-radius:5px;vertical-align:middle}
.icon-label{gap:8px}
.resources .icon{width:25px;height:25px}
.resources b{font-size:23px;line-height:1.6}
.resources{gap:12px}
button{border-radius:4px;background:linear-gradient(#d7b781,#af8955);border:1px solid #ddc49355;color:#191b17;font-size:13px;padding:8px 14px;box-shadow:inset 0 1px 0 #fff2}
button.secondary{background:#202625;color:#dbbf8d;border-color:#5c5947}
button:disabled{opacity:.42}
.cards{gap:16px;margin-top:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,225px),1fr))}
.cards article h3 .icon{width:44px;height:44px}
.cards article button{margin-top:14px}
.illustrated-card{overflow:hidden}
.card-art{aspect-ratio:4/2.3;margin:-18px -18px 16px}
.illustrated-card h3{margin-top:4px}
.illustrated-card p{font-size:13px}
input,select{background:#111718;border-radius:4px;border-color:#495249;padding:10px}
.profile-layout{grid-template-columns:260px minmax(0,1fr);gap:20px;margin-top:20px}
#avatar{padding:12px}
.portrait-wrap{position:relative}
.avatar-art{height:350px;width:100%;max-height:none;background-image:url("/assets/character-atlas.png");background-size:200% 200%;background-repeat:no-repeat;aspect-ratio:3/4;border:0;border-radius:3px}
.outfit-0{background-position:0 0}.outfit-1{background-position:100% 0}.outfit-2{background-position:0 100%}.outfit-3{background-position:100% 100%}
.portrait-weapon{position:absolute;right:10%;top:47%;width:82px;height:82px;mix-blend-mode:lighten;transform:rotate(8deg)}
.portrait-gem{position:absolute;left:45%;top:25%;width:20px;height:20px;mix-blend-mode:lighten}
#battle-content{padding:24px}
.battle-meters{gap:24px;margin:20px 0}
.gear-list{font-size:12px}
.guild-panel,#journey,#tavern-result{margin-top:18px}
.guild-form{max-width:420px}
progress{height:5px}
progress::-webkit-progress-bar{background:#38423c}
progress::-webkit-progress-value{background:linear-gradient(90deg,#8c714b,#d0ad75)}
footer{border-top:1px solid #343d36;padding-top:18px;font-size:11px}
@media(min-width:1450px){.places{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){.places{grid-template-columns:repeat(3,minmax(0,1fr))}.layout{grid-template-columns:192px minmax(0,1fr)}main{padding:22px}.hero{min-height:290px}}
@media(max-width:760px){.layout{display:block}aside{position:static;padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:6px}.brand{padding:0;border:0;font-size:13px}.seal{font-size:24px}nav{grid-column:1/-1;display:flex;overflow-x:auto;flex-wrap:nowrap;gap:6px;padding-top:8px;max-width:100%}nav a{white-space:nowrap;min-height:32px;font-size:11px;padding:3px 7px}.controls{padding:0;border:0}.controls button{font-size:11px;padding:6px 8px}nav a .icon{width:22px;height:22px}main{padding:14px}.hero{min-height:235px;padding:22px}.command-bar{font-size:12px;margin-bottom:12px;gap:8px}.places{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.district-copy{padding:10px}.district-copy strong{font-size:12px}.district-copy small{padding-left:0}.district-copy .icon{width:25px;height:25px}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.profile-layout{grid-template-columns:200px minmax(0,1fr)}.avatar-art{height:280px}}
@media(max-width:540px){.profile-layout{grid-template-columns:1fr}.avatar-art{height:auto;aspect-ratio:3/4;max-width:260px;margin:auto}.portrait-weapon{right:calc(50% - 90px);top:48%}.cards{grid-template-columns:1fr}.hero h1{font-size:42px}.hero p{font-size:12px}.hero{min-height:215px}.resources{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-meters{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.icon-0{background-position:0% 0%}
.icon-1{background-position:20% 0%}
.icon-2{background-position:40% 0%}
.icon-3{background-position:60% 0%}
.icon-4{background-position:80% 0%}
.icon-5{background-position:100% 0%}
.icon-6{background-position:0% 20%}
.icon-7{background-position:20% 20%}
.icon-8{background-position:40% 20%}
.icon-9{background-position:60% 20%}
.icon-10{background-position:80% 20%}
.icon-11{background-position:100% 20%}
.icon-12{background-position:0% 40%}
.icon-13{background-position:20% 40%}
.icon-14{background-position:40% 40%}
.icon-15{background-position:60% 40%}
.icon-16{background-position:80% 40%}
.icon-17{background-position:100% 40%}
.icon-18{background-position:0% 60%}
.icon-19{background-position:20% 60%}
.icon-20{background-position:40% 60%}
.icon-21{background-position:60% 60%}
.icon-22{background-position:80% 60%}
.icon-23{background-position:100% 60%}
.icon-24{background-position:0% 80%}
.icon-25{background-position:20% 80%}
.icon-26{background-position:40% 80%}
.icon-27{background-position:60% 80%}
.icon-28{background-position:80% 80%}
.icon-29{background-position:100% 80%}
.icon-30{background-position:0% 100%}
.icon-31{background-position:20% 100%}
.icon-32{background-position:40% 100%}
.icon-33{background-position:60% 100%}
.icon-34{background-position:80% 100%}
.icon-35{background-position:100% 100%}
.art-0{background-position:0% 0%}
.art-1{background-position:33.333333% 0%}
.art-2{background-position:66.666667% 0%}
.art-3{background-position:100% 0%}
.art-4{background-position:0% 33.333333%}
.art-5{background-position:33.333333% 33.333333%}
.art-6{background-position:66.666667% 33.333333%}
.art-7{background-position:100% 33.333333%}
.art-8{background-position:0% 66.666667%}
.art-9{background-position:33.333333% 66.666667%}
.art-10{background-position:66.666667% 66.666667%}
.art-11{background-position:100% 66.666667%}
.art-12{background-position:0% 100%}
.art-13{background-position:33.333333% 100%}
.art-14{background-position:66.666667% 100%}
.art-15{background-position:100% 100%}
.market-icon{background-image:url("/assets/market-atlas.png");background-size:1000% 500%}
.market-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;margin-top:18px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:6px}
.market-filters label{flex:1;min-width:180px;color:var(--muted);font-size:12px}
#market-count{font-size:12px;color:var(--gold);padding-bottom:10px}
#items article button+button{margin-left:6px}
#wares article h3 .icon{width:66px;height:66px}
#wares article .reward{font-size:12px}
.market-0{background-position:0% 0%}
.market-1{background-position:11.111111% 0%}
.market-2{background-position:22.222222% 0%}
.market-3{background-position:33.333333% 0%}
.market-4{background-position:44.444444% 0%}
.market-5{background-position:55.555556% 0%}
.market-6{background-position:66.666667% 0%}
.market-7{background-position:77.777778% 0%}
.market-8{background-position:88.888889% 0%}
.market-9{background-position:100% 0%}
.market-10{background-position:0% 25%}
.market-11{background-position:11.111111% 25%}
.market-12{background-position:22.222222% 25%}
.market-13{background-position:33.333333% 25%}
.market-14{background-position:44.444444% 25%}
.market-15{background-position:55.555556% 25%}
.market-16{background-position:66.666667% 25%}
.market-17{background-position:77.777778% 25%}
.market-18{background-position:88.888889% 25%}
.market-19{background-position:100% 25%}
.market-20{background-position:0% 50%}
.market-21{background-position:11.111111% 50%}
.market-22{background-position:22.222222% 50%}
.market-23{background-position:33.333333% 50%}
.market-24{background-position:44.444444% 50%}
.market-25{background-position:55.555556% 50%}
.market-26{background-position:66.666667% 50%}
.market-27{background-position:77.777778% 50%}
.market-28{background-position:88.888889% 50%}
.market-29{background-position:100% 50%}
.market-30{background-position:0% 75%}
.market-31{background-position:11.111111% 75%}
.market-32{background-position:22.222222% 75%}
.market-33{background-position:33.333333% 75%}
.market-34{background-position:44.444444% 75%}
.market-35{background-position:55.555556% 75%}
.market-36{background-position:66.666667% 75%}
.market-37{background-position:77.777778% 75%}
.market-38{background-position:88.888889% 75%}
.market-39{background-position:100% 75%}
.market-40{background-position:0% 100%}
.market-41{background-position:11.111111% 100%}
.market-42{background-position:22.222222% 100%}
.market-43{background-position:33.333333% 100%}
.market-44{background-position:44.444444% 100%}
.market-45{background-position:55.555556% 100%}
.market-46{background-position:66.666667% 100%}
.market-47{background-position:77.777778% 100%}
.market-48{background-position:88.888889% 100%}
.market-49{background-position:100% 100%}
/* Regional bestiary and battle telegraphs */
.boss-art{background-image:url("/assets/boss-atlas.png");background-size:500% 300%;background-repeat:no-repeat}
.boss-card-image{aspect-ratio:5/3;margin:-18px -18px 16px;border-bottom:1px solid var(--line)}
.mythic-card{overflow:hidden}
.mythic-card h3{margin-top:10px}
.mythic-card a{display:block;font-size:12px;margin-top:8px}
.battle-scene{position:relative;border-radius:6px;overflow:hidden;background:#171c1b}
.boss-fight-image{height:300px;position:relative}
.boss-fight-image::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#131818,transparent 65%)}
.battle-scene h3{position:absolute;bottom:18px;left:20px;text-shadow:0 2px 8px #000}
.intent{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:5px}
.intent-danger{border-color:#ba754a;background:#5c352633}
.intent p{font-size:12px}
.hunt-guide{margin-top:18px}
.hunt-guide label{display:block;max-width:300px;margin-top:12px}
.specialty{border-left:2px solid var(--gold);padding:8px 14px;background:#bd9a5e0b;margin-top:12px;font-size:13px}
.loot-icon{background-image:url("/assets/loot-atlas.png");background-size:500% 400%}
.portrait-shield{position:absolute;top:47%;left:10%;width:75px;height:75px;mix-blend-mode:lighten}
.art-16,.art-17,.art-18{background-image:url("/assets/new-cities.png");background-size:300% 100%}
.art-16{background-position:0 0}.art-17{background-position:50% 0}.art-18{background-position:100% 0}
.hero-tagaung,.hero-halin,.hero-martaban{background-image:url("/assets/new-cities.png");background-size:300% 100%}
.hero-tagaung{background-position:0 0}.hero-halin{background-position:50% 0}.hero-martaban{background-position:100% 0}
@media(max-width:540px){.boss-fight-image{height:210px}.portrait-shield{left:calc(50% - 100px)}}
.boss-0{background-position:0% 0%}
.boss-1{background-position:25% 0%}
.boss-2{background-position:50% 0%}
.boss-3{background-position:75% 0%}
.boss-4{background-position:100% 0%}
.boss-5{background-position:0% 50%}
.boss-6{background-position:25% 50%}
.boss-7{background-position:50% 50%}
.boss-8{background-position:75% 50%}
.boss-9{background-position:100% 50%}
.boss-10{background-position:0% 100%}
.boss-11{background-position:25% 100%}
.boss-12{background-position:50% 100%}
.boss-13{background-position:75% 100%}
.boss-14{background-position:100% 100%}
.loot-0{background-position:0% 0%}
.loot-1{background-position:25% 0%}
.loot-2{background-position:50% 0%}
.loot-3{background-position:75% 0%}
.loot-4{background-position:100% 0%}
.loot-5{background-position:0% 33.333333%}
.loot-6{background-position:25% 33.333333%}
.loot-7{background-position:50% 33.333333%}
.loot-8{background-position:75% 33.333333%}
.loot-9{background-position:100% 33.333333%}
.loot-10{background-position:0% 66.666667%}
.loot-11{background-position:25% 66.666667%}
.loot-12{background-position:50% 66.666667%}
.loot-13{background-position:75% 66.666667%}
.loot-14{background-position:100% 66.666667%}
.loot-15{background-position:0% 100%}
.loot-16{background-position:25% 100%}
.loot-17{background-position:50% 100%}
.loot-18{background-position:75% 100%}
.loot-19{background-position:100% 100%}
.boss-picture{position:relative;overflow:hidden}
.boss-picture>.boss-art{position:absolute;width:100%;aspect-ratio:1;left:0;top:50%;transform:translateY(-50%)}
.boss-card-image{aspect-ratio:1}
#loot-dialog{width:min(640px,92vw);max-height:88vh;overflow:auto;background:linear-gradient(145deg,#2b2b20,#171d1c);color:var(--text);border:1px solid var(--gold);border-radius:10px;padding:24px;box-shadow:0 20px 90px #000b}
#loot-dialog::backdrop{background:#07100fbb;backdrop-filter:blur(4px)}
.loot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:18px 0}
.loot-item{border:1px solid var(--line);padding:12px;border-radius:7px;background:#101716}
.loot-item h3{flex-direction:column;align-items:flex-start;font-size:14px}
.loot-item .icon{width:88px;height:88px}
.guild-block{padding-top:20px;border-top:1px solid var(--line)}
.member-row,.request-row,.war-card{margin-top:10px}
.member-row summary,.war-card summary{cursor:pointer;color:var(--gold)}
.war-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:14px}
.war-form label{font-size:12px;color:var(--muted)}
.war-form button{align-self:end}
.war-fighter{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.request-row .buttons{margin-top:10px}
.business-icon{background-image:url("/assets/business-atlas.png");background-size:400% 300%}
.business-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:14px}
.business-form label{font-size:12px;color:var(--muted)}
.business-form button{align-self:end}
.owned-shop{margin:18px 0}
#businesses>h3{margin-top:24px}
#active-effects{margin-top:14px;color:var(--gold)}
#player-listings article h3 .icon,#my-businesses article h3 .icon{width:60px;height:60px}
#business-open form{margin-top:10px}
.business-0{background-position:0% 0%}
.business-1{background-position:33.333333% 0%}
.business-2{background-position:66.666667% 0%}
.business-3{background-position:100% 0%}
.business-4{background-position:0% 50%}
.business-5{background-position:33.333333% 50%}
.business-6{background-position:66.666667% 50%}
.business-7{background-position:100% 50%}
.business-8{background-position:0% 100%}
.business-9{background-position:33.333333% 100%}
.business-10{background-position:66.666667% 100%}
.business-11{background-position:100% 100%}
.item-tooltip{position:fixed;z-index:10000;box-sizing:border-box;width:340px;max-width:calc(100vw - 16px);padding:16px 18px;background:#181714;border:1px solid #b3955e;border-radius:8px;box-shadow:0 15px 50px #000b;color:#eee3ce;pointer-events:none;font-size:.9rem;line-height:1.65}.item-tooltip p{margin:6px 0}.item-tooltip strong{color:#e6bf77;font-size:1.05rem}[data-item]{cursor:help}[data-item]:focus-visible{outline:2px solid #c6a269;outline-offset:4px}.campaign-scope{margin:32px 0 48px}.campaign-scope .cards{margin:20px 0}.campaign-front{max-width:900px;margin:24px 0}.campaign-front progress{width:100%;height:16px;accent-color:#c4a269}.campaign-front .card-art{height:180px}.territory-owned{border-color:#648369!important}.campaign-zone p{overflow-wrap:anywhere}
#chat-root{position:fixed;right:22px;bottom:18px;z-index:200;max-width:calc(100vw - 24px)}.chat-launcher{display:flex;gap:4px;background:#181d1c;padding:5px;border:1px solid #6b5c40;border-radius:9px;box-shadow:0 8px 24px #0008}.chat-launcher button{padding:9px 12px;font-size:.83rem;margin:0}.chat-launcher button[aria-pressed=true]{background:#c2a36c;color:#191c19}.chat-panel{display:flex;flex-direction:column;width:390px;max-width:calc(100vw - 24px);height:520px;max-height:calc(100dvh - 110px);margin:0 0 10px;background:#171d1c;border:1px solid #8b754d;border-radius:12px;box-shadow:0 18px 60px #000b;overflow:hidden}.chat-panel[hidden]{display:none}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid #ffffff18;gap:10px}.chat-header h2{font:600 1.1rem Georgia,serif;margin:0}.chat-header button{padding:6px 10px;font-size:.75rem}.chat-messages{flex:1;min-height:80px;overflow-y:auto;overscroll-behavior:contain;padding:12px}.chat-message{padding:10px 0;border:0;border-bottom:1px solid #ffffff12;background:none;box-shadow:none;border-radius:0}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;font-size:.9rem}.chat-meta{display:flex;align-items:center;gap:8px;font-size:.8rem}.chat-meta time{margin-left:auto;font-size:.7rem;color:#9ca7a0}.gm-badge{color:#f1d28a;border:1px solid #ad8c4f;font-size:.65rem;padding:0 5px;border-radius:3px}.chat-message button{padding:3px 7px;font-size:.7rem;background:transparent;color:#bca989;border:1px solid #ffffff20}.chat-message details{font-size:.8rem}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px 13px;border-top:1px solid #ffffff18}.chat-compose label{grid-column:1/-1;margin:0}.chat-compose label>span{font-size:.75rem}.chat-compose textarea{width:100%;resize:none;box-sizing:border-box;min-height:60px}.chat-compose small{font-size:.7rem;color:#a9b4ab;align-self:center}.chat-feedback{font-size:.77rem;margin:0;padding:0 12px;color:#edc277;overflow-wrap:anywhere}.chat-feedback:empty{display:none}.chat-empty{font-size:.85rem;color:#a9b4ab}.gm-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.gm-stats .panel{margin:0}.gm-stats strong{display:block;font-size:1.6rem;color:#d6bd85}.gm-table{overflow:auto;margin:18px 0}.gm-table table{width:100%;border-collapse:collapse;font-size:.85rem}.gm-table td,.gm-table th{text-align:left;padding:10px;border-bottom:1px solid #ffffff18}.gm-table button{font-size:.75rem;padding:5px 9px}.gm-player:empty{display:none}.gm-player .cards>.panel{padding:15px}.gm-player form{min-width:0}.gm-player input,.gm-player select{box-sizing:border-box;width:100%;min-width:0}.gm-search{display:flex;align-items:end;gap:10px}.gm-search label{flex:1}.gm-moderation{max-height:650px;overflow:auto;overscroll-behavior:contain;margin:15px 0}.gm-chat-row p{white-space:pre-wrap;overflow-wrap:anywhere}.gm-chat-row form{display:flex;align-items:end;gap:10px}.gm-chat-row label{flex:1}.gm-restriction{color:#efb28c}#admin li p{overflow-wrap:anywhere}body:has(#chat-root:not([hidden])) main{padding-bottom:100px}@media(max-width:600px){#chat-root{right:12px;bottom:12px}.chat-launcher button{padding:8px;font-size:.75rem}.gm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gm-search,.gm-chat-row form{display:block}.chat-panel{height:480px}}
.chat-compose textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text)}.chat-compose textarea:focus-visible{outline:2px solid #d8ba78;outline-offset:2px}
.chat-launcher button{background:transparent;border:1px solid #746342;color:#d0ba8c}.chat-launcher button[aria-pressed=true]{background:#c2a36c;color:#191c19;border-color:#d6bc85}
.owner-console{min-height:100vh}.owner-header{max-width:1320px;margin:0 auto;padding:30px 28px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center}.owner-header h1{font-size:30px;margin:10px 0}.owner-main{max-width:1320px;margin:auto;padding:20px 28px 60px}.owner-login{margin:10vh auto;padding:28px!important}.owner-game-link{color:var(--gold);text-decoration:none;padding:8px 12px}.owner-console .gm-stats{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:760px){.owner-header{display:block;padding:20px 16px}.owner-main{padding:16px}.owner-console .gm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-login{margin:30px 12px}}
.spell-icon{display:inline-block;flex:none;width:64px;height:64px;background-image:url('/assets/spell-atlas.png');background-size:600% 600%;border-radius:7px;box-shadow:0 3px 12px #0008;vertical-align:middle}.academy-banner{background:linear-gradient(110deg,#20353bd9,#151c22f2);border-color:#6c7162}.academy-banner strong{color:#dfc58e}.academy-tabs,.academy-presets{margin:16px 0;gap:8px}.academy-tabs button,.academy-presets button{background:transparent;border:1px solid var(--line);color:var(--text)}.academy-tabs button[aria-pressed=true],.academy-presets button[aria-pressed=true]{background:#b9995f;color:#151c1d;border-color:#d4bf91}.academy-spells{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px;margin-top:20px}.spell-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border-color:#ffffff1c}.spell-card.learned{border-color:#aa915b}.spell-card-head{display:flex;align-items:center;gap:14px}.spell-card h4{font-size:1.05rem;margin:0}.spell-card p{font-size:.86rem;line-height:1.75}.spell-card button{margin-top:auto}.spell-description{color:#bac6c0}.spell-slots{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.spell-slot button{display:flex;flex-direction:column;align-items:center;gap:7px;max-width:135px;font-size:.78rem;background:#17201f;color:#dcc8a2;border:1px solid #665a40}.spell-slot small{font-size:.65rem}.empty-spell{display:grid;place-items:center;width:76px;height:98px;border:1px dashed #6c725b;border-radius:7px;color:#798479}.battle-spells{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.battle-spells button{display:grid;grid-template-columns:48px 1fr;gap:5px 10px;text-align:left;min-width:160px;background:#1c2725;color:#e2ce9e;border:1px solid #8c754c}.battle-spells .spell-icon{width:48px;height:48px;grid-row:span 2}.battle-spells small{font-size:.7rem}.battle-focus{margin:14px 0}.battle-focus p{font-size:.82rem;margin:7px 0}.boss-spell-preview{display:flex;gap:10px;align-items:flex-start;margin:14px 0}.boss-spell-tile{flex:1;min-width:0;text-align:center}.boss-spell-tile .spell-icon{width:44px;height:44px}.boss-spell-tile small{font-size:.65rem;display:block;overflow-wrap:anywhere;line-height:1.6;margin-top:5px}.intent>.spell-icon{float:left;margin-right:14px;width:54px;height:54px}.intent:after{content:'';display:block;clear:both}@media(max-width:600px){.academy-spells{grid-template-columns:1fr}.academy-tabs button{font-size:.78rem;padding:7px 10px}.battle-spells{display:grid;grid-template-columns:1fr 1fr}.battle-spells button{min-width:0;font-size:.75rem;grid-template-columns:36px 1fr;padding:8px}.battle-spells .spell-icon{width:36px;height:36px}.spell-slot button{max-width:105px}.spell-slot .spell-icon{width:52px;height:52px}}
.academy-tabs button{display:flex;align-items:center;gap:9px}.academy-tabs .spell-icon{width:34px;height:34px}

.professional-icon{display:inline-block;flex:none;width:64px;height:64px;background-image:url('/assets/profession-atlas.png');background-size:800% 400%;border-radius:6px;vertical-align:middle}.icon.professional-icon{width:34px;height:34px}.pro-progress{margin:18px 0}.pro-progress h3{margin-top:0}.pro-recipes{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px;margin:20px 0}.pro-recipe{display:flex;flex-direction:column;gap:8px;min-width:0}.pro-recipe h4{margin:0;line-height:1.5}.pro-recipe .icon{width:56px;height:56px}.pro-recipe p{margin:0;font-size:.83rem;line-height:1.7}.pro-ingredients{display:flex;flex-wrap:wrap;gap:6px;font-size:.75rem;color:#b4c4bc}.pro-ingredients span{border:1px solid #ffffff16;padding:3px 6px;border-radius:4px}.pro-recipe form{margin-top:auto;display:flex;align-items:end;gap:10px}.pro-recipe form label{flex:1;margin:0;max-width:100px}.pro-recipe input{box-sizing:border-box}.pro-effects{margin:15px 0}.pro-use article{min-width:0}@media(max-width:600px){.pro-recipes{grid-template-columns:1fr}.pro-recipe .icon{width:48px;height:48px}}
.pro-0{background-position:0% 0%}
.pro-1{background-position:14.285714285714286% 0%}
.pro-2{background-position:28.571428571428573% 0%}
.pro-3{background-position:42.857142857142854% 0%}
.pro-4{background-position:57.142857142857146% 0%}
.pro-5{background-position:71.42857142857143% 0%}
.pro-6{background-position:85.71428571428571% 0%}
.pro-7{background-position:100% 0%}
.pro-8{background-position:0% 33.333333333333336%}
.pro-9{background-position:14.285714285714286% 33.333333333333336%}
.pro-10{background-position:28.571428571428573% 33.333333333333336%}
.pro-11{background-position:42.857142857142854% 33.333333333333336%}
.pro-12{background-position:57.142857142857146% 33.333333333333336%}
.pro-13{background-position:71.42857142857143% 33.333333333333336%}
.pro-14{background-position:85.71428571428571% 33.333333333333336%}
.pro-15{background-position:100% 33.333333333333336%}
.pro-16{background-position:0% 66.66666666666667%}
.pro-17{background-position:14.285714285714286% 66.66666666666667%}
.pro-18{background-position:28.571428571428573% 66.66666666666667%}
.pro-19{background-position:42.857142857142854% 66.66666666666667%}
.pro-20{background-position:57.142857142857146% 66.66666666666667%}
.pro-21{background-position:71.42857142857143% 66.66666666666667%}
.pro-22{background-position:85.71428571428571% 66.66666666666667%}
.pro-23{background-position:100% 66.66666666666667%}
.pro-24{background-position:0% 100%}
.pro-25{background-position:14.285714285714286% 100%}
.pro-26{background-position:28.571428571428573% 100%}
.pro-27{background-position:42.857142857142854% 100%}
.pro-28{background-position:57.142857142857146% 100%}
.pro-29{background-position:71.42857142857143% 100%}
.pro-30{background-position:85.71428571428571% 100%}
.pro-31{background-position:100% 100%}
.academy-tabs .professional-icon,.academy-tabs .market-icon{width:34px;height:34px}
.campaign-unit-card{overflow:hidden;padding:0 0 16px!important}.campaign-unit-card>h4,.campaign-unit-card>p,.campaign-unit-card>form{margin-left:16px;margin-right:16px}.campaign-unit-art{height:180px;width:100%;background-image:url('/assets/campaign-armies.png');background-size:400% 200%;background-repeat:no-repeat;border-bottom:1px solid #a68a5133}.campaign-unit-materials{font-size:.78rem;line-height:1.7;color:#b9c7be}.campaign-landscape{background-image:url('/assets/campaign-territories.png');background-size:300% 200%;background-repeat:no-repeat}
.army-0{background-position:0% 0%}
.army-1{background-position:33.333333333333336% 0%}
.army-2{background-position:66.66666666666667% 0%}
.army-3{background-position:100% 0%}
.army-4{background-position:0% 100%}
.army-5{background-position:33.333333333333336% 100%}
.army-6{background-position:66.66666666666667% 100%}
.army-7{background-position:100% 100%}
.territory-0{background-position:0% 0%}
.territory-1{background-position:50% 0%}
.territory-2{background-position:100% 0%}
.territory-3{background-position:0% 100%}
.territory-4{background-position:50% 100%}
.territory-5{background-position:100% 100%}
/* Animated gaming hall */
.hall-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}.hall-table,.hall-panel{padding:20px;border:1px solid #5c4931;border-radius:12px;background:linear-gradient(145deg,#182822,#151b18);margin:14px 0;min-width:0}.hall-table h3{margin:8px 0 16px}.hall-table label{display:block;margin:16px 0}.hall-table input{width:100%;box-sizing:border-box}.hall-table>.hall-stage{height:142px;display:flex;gap:28px;align-items:center;justify-content:center;background:radial-gradient(ellipse,#35533e,#0b1714);border:1px solid #665031;border-radius:9px;overflow:hidden}.hall-outcome{min-height:54px;color:#f1ce87;font-weight:bold}.hall-choices{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.hall-choices .selected,.hall-animal-choices .selected{background:#5a4524;outline:2px solid #d6ab5d}.hall-animal-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.hall-animal-choices button{padding:5px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.hall-animal{width:96px;height:96px;display:inline-block;flex:0 0 96px;background-image:url('/assets/hall-animals.png');background-size:300% 200%;border-radius:5px}.hall-animal-choices .hall-animal{width:58px;height:58px;flex-basis:58px}.hall-reel-window{width:96px;height:96px;overflow:hidden;border:3px solid #e0b76d;box-shadow:0 0 24px #c48b3255;border-radius:7px}.hall-reel{display:flex;width:max-content;transition:transform .7s cubic-bezier(.15,.85,.2,1)}.hall-reel.is-rolling{animation:hall-spin .55s linear infinite}.hall-recent{display:flex;gap:18px;flex-wrap:wrap}.hall-recent>div{display:flex;align-items:center;gap:9px}.hall-recent .hall-animal{width:54px;height:54px;flex-basis:54px}.hall-table-scroll{overflow:auto}.hall-leaderboard{width:100%;border-collapse:collapse;font-size:14px}.hall-leaderboard td,.hall-leaderboard th{padding:12px 8px;text-align:left;border-bottom:1px solid #51442d;white-space:nowrap}.hall-round{color:#e2be75;min-height:26px}.hall-die-space{width:58px;height:58px;perspective:500px}.hall-die{width:58px;height:58px;position:relative;transform-style:preserve-3d;transition:transform .7s ease-out}.hall-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:4px;padding:9px;box-sizing:border-box;background:#f0dfb2;border:2px solid #b69255;border-radius:8px;backface-visibility:hidden}.hall-face i{border-radius:50%;background:#342719;box-shadow:inset 1px 1px 2px #0008}.hall-face-1{transform:translateZ(29px)}.hall-face-2{transform:rotateY(90deg) translateZ(29px)}.hall-face-3{transform:rotateY(180deg) translateZ(29px)}.hall-face-4{transform:rotateY(-90deg) translateZ(29px)}.hall-face-5{transform:rotateX(90deg) translateZ(29px)}.hall-face-6{transform:rotateX(-90deg) translateZ(29px)}.hall-die.is-rolling{animation:hall-dice .6s linear infinite}.hall-stage.is-rolling .hall-die-space{animation:hall-bounce .3s ease-in-out infinite alternate}@keyframes hall-dice{to{transform:rotateX(720deg) rotateY(360deg) rotateZ(180deg)}}@keyframes hall-bounce{to{transform:translateY(-14px)}}@keyframes hall-spin{from{transform:translateX(0)}to{transform:translateX(-576px)}}@media(prefers-reduced-motion:reduce){.hall-reel.is-rolling,.hall-die.is-rolling,.hall-stage.is-rolling .hall-die-space{animation:none}.hall-die,.hall-reel{transition:none}}
/* Player guide, dossier, recovery and local auction house */
.guide-link{color:#ecd29c;text-decoration:underline;text-underline-offset:4px}.guide-chapters{display:grid;gap:12px;margin-top:20px}.guide-chapter summary{font-weight:700;font-size:19px;cursor:pointer;line-height:1.8}.guide-chapter li,.source-finder li{margin:12px 0;line-height:1.9}.source-finder select,.source-finder input{width:100%;box-sizing:border-box}.dossier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}.record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:10px}.record-grid article{display:flex;flex-direction:column;gap:8px}.record-grid strong{font-size:26px;color:#e6c184}.dossier-grid form{display:grid;gap:8px}.dossier-grid select{max-width:100%;width:100%}.recovery-strip{flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px;font-size:12px}.recovery-strip>div{padding:10px 12px;border:1px solid #465347;border-radius:8px;background:#15201b;line-height:1.8}.requirement-help{color:#efc17f;font-size:13px;line-height:1.7}.campaign-supplies{border-color:#947343}.campaign-supplies form,.auction-list-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;align-items:end}.auction-list-form input,.auction-list-form select{width:100%;box-sizing:border-box}.auction-card{min-width:0}.auction-card form{display:grid;gap:10px}.auction-owned{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #394037}#guide-content input,#guide-content select{max-width:100%}#profile-details{margin-top:26px}.dossier-grid>p{padding:14px;background:#1d2921;border-radius:8px}
.guide-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;align-items:start}.guide-layout .source-finder{position:sticky;top:16px;max-height:76vh;overflow:auto;margin-top:20px}.guide-uses{margin-top:18px}.guide-uses summary{cursor:pointer;color:#e5c386}.auction-card small{display:block}@media(max-width:1100px){.guide-layout{grid-template-columns:1fr}.guide-layout .source-finder{position:static;max-height:none}.guide-layout .guide-chapters{order:0}}

/* Campaign tactical reconnaissance and local battle receipts */
.campaign-front{max-width:none}.campaign-front>.card-art{max-width:600px;height:230px}.strategy-art{background-image:url('/assets/campaign-strategy.png');background-size:300% 300%;background-repeat:no-repeat;aspect-ratio:1;display:block;width:100%;border-radius:6px}.defense-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.defense-grid article{background:#101917;border:1px solid #a68a5140;padding:12px;border-radius:8px}.defense-grid .strategy-art{aspect-ratio:2}.campaign-front .buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tactic-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:10px;gap:10px;white-space:normal}.tactic-card .strategy-art{aspect-ratio:1.65}.tactic-card small{font-weight:400;line-height:1.6}.tactic-card:disabled{opacity:.55}.battle-records{margin-top:26px;border-top:1px solid #a68a5140}.battle-record{display:grid;grid-template-columns:84px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid #a68a5140}.battle-record p{font-size:.85rem}.casualty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.casualty-grid>div{background:#101917;padding:8px;border-radius:6px}.casualty-grid .campaign-unit-art{height:80px}.casualty-grid strong{font-size:.8rem}.battle-records>article>div{min-width:0}
.strategy-0{background-position:0% 0%}
.strategy-1{background-position:50% 0%}
.strategy-2{background-position:100% 0%}
.strategy-3{background-position:0% 50%}
.strategy-4{background-position:50% 50%}
.strategy-5{background-position:100% 50%}
.strategy-6{background-position:0% 100%}
.strategy-7{background-position:50% 100%}
.strategy-8{background-position:100% 100%}
@media(max-width:700px){.campaign-front .buttons,.defense-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-record{grid-template-columns:50px 1fr}.campaign-front>.card-art{height:180px}}

/* Dedicated estate artwork. */
.estate-art{display:block;width:calc(100% + 36px);max-width:none;object-fit:cover;object-position:center;aspect-ratio:4/2.3;height:auto}

/* Keep equipment actions aligned across occupied and empty slots. */
.loadout-grid > article {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.loadout-grid form {
  margin-top: auto;
  padding-top: 10px;
  gap: 12px;
}
.loadout-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.loadout-actions button {
  min-width: 0;
  min-height: 42px;
  padding: 8px 6px;
  border-radius: 7px;
  overflow-wrap: anywhere;
}
.loadout-actions .loadout-remove {
  background: #18201d;
  border: 1px solid #8a744e;
  color: #eed4a3;
}
.loadout-actions .loadout-remove:hover:not(:disabled) {
  background: #302b21;
  border-color: #d5b47d;
}
.loadout-actions button:disabled {
  opacity: 1;
  background: #242927;
  border: 1px solid #404943;
  color: #9aa59d;
}
.loadout-actions button:focus-visible {
  outline: 2px solid #e6c184;
  outline-offset: 3px;
}

.wanted-panel { margin: 16px 0 24px; }
.wanted-search, .wanted-bounty-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin: 12px 0;
}
.wanted-search label { flex-basis: 100%; }
.wanted-search input { flex: 1 1 160px; min-width: 0; }
.wanted-bounty-form label { flex: 1 1 90px; min-width: 0; }
.wanted-bounty-form input { width: 100%; }
.wanted-list { display: grid; gap: 8px; margin-top: 10px; }
.versus-fighter { display: grid; justify-items: center; min-width: 0; }
.versus-fighter .portrait-wrap { width: min(100%, 150px); margin: 0 auto 8px; }
.versus-fighter p { text-align: center; overflow-wrap: anywhere; }

.battle-loadout { width: 100%; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 4px 12px; margin: 10px 0; }
.battle-loadout dt { color: var(--muted); }
.battle-loadout dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.knockout-dialog { color: var(--text); width: min(440px, calc(100% - 32px)); padding: 24px; }
.knockout-dialog::backdrop { background: #000a; }
.knockout-dialog .buttons { margin-top: 16px; }

#business-detail > .guide-link { display: inline-block; margin-bottom: 14px; }
#business-open .guide-link, .owned-shop .guide-link { display: inline-block; margin-top: 10px; }
.owned-shop h4 { margin: 24px 0 8px; }
.shop-listing { border-bottom: 1px solid var(--line); padding: 10px 0; }
.owned-shop .business-form > p { align-self: center; }

.recipe-ingredients { margin: 12px 0; }
.recipe-ingredients ul { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 5px; }
.recipe-ingredients button { width: 100%; margin: 0; text-align: left; background: #18221e; color: var(--text); border: 1px solid #536658; }
.recipe-ingredients button.ingredient-missing { border-color: #946356; color: #ffcfbb; }
.forge-ingredients { grid-column: 1 / -1; }
.guide-catalog-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,165px),1fr)); gap: 8px; margin: 10px 0; }
.guide-catalog-grid button { text-align: left; background: var(--panel); color: var(--text); border: 1px solid var(--line); }
.guide-spell-library { margin-top: 16px; }
.guide-spell-library input { width: 100%; }

.forge-icon { background-image: url("/assets/forge-atlas.png"); background-size: 400% 300%; }
.forge-0 { background-position: 0% 0%; }
.forge-1 { background-position: 33.333333333333336% 0%; }
.forge-2 { background-position: 66.66666666666667% 0%; }
.forge-3 { background-position: 100% 0%; }
.forge-4 { background-position: 0% 50%; }
.forge-5 { background-position: 33.333333333333336% 50%; }
.forge-6 { background-position: 66.66666666666667% 50%; }
.forge-7 { background-position: 100% 50%; }
.forge-8 { background-position: 0% 100%; }
.forge-9 { background-position: 33.333333333333336% 100%; }
.forge-10 { background-position: 66.66666666666667% 100%; }
.forge-11 { background-position: 100% 100%; }

.forge-recipe h3 { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.forge-recipe h3 .forge-icon { width: 104px; height: 104px; flex: 0 0 104px; border-radius: 6px; }

.profile-estates { grid-column: 1 / -1; }
.estate-dialog .estate-art { width: 100%; height: 150px; margin-top: 12px; object-fit: cover; }
.estate-residence button { margin-top: 6px; }

.campaign-unit-card .recipe-ingredients .icon-label { display: flex; align-items: center; gap: 8px; }
.campaign-unit-card .recipe-ingredients .icon { flex: 0 0 28px; width: 28px; height: 28px; }

.guild-banner {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.6rem;
  margin-inline-end: .4rem;
  padding-bottom: .3rem;
  color: #fff5de;
  background: var(--banner-color);
  clip-path: polygon(0 0, 100% 0, 100% 75%, 50% 100%, 0 75%);
}
.guild-map {
  position: relative;
  width: min(100%, 460px);
  aspect-ratio: 1;
  margin-block: .8rem;
  background: radial-gradient(ellipse at 50% 35%, #253834, #111b21);
  border: 1px solid #52645a;
  border-radius: .6rem;
}
.guild-map svg { width: 100%; height: 100%; }
.guild-map path { fill: #37483c; stroke: #9c9367; stroke-width: .7; }
.guild-map .guild-map-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  min-height: 20px;
  padding: 2px 5px;
  white-space: nowrap;
  font-size: clamp(9px, 2.4vw, 12px);
  color: #fff4d5;
  background: #303a3d;
}
.guild-map .map-own { background: #25634d; }
.guild-map .map-rival { background: #813c46; }
.guild-map-pin[aria-pressed="true"] { outline: 2px solid #f4ce85; z-index: 1; }
.territory-map-row { gap: .5rem; padding-block: .4rem; border-bottom: 1px solid #ffffff1a; }
.bank-scroll { overflow-x: auto; margin-block: .8rem; }
.bank-grid { display: grid; grid-template-columns: repeat(10, minmax(42px, 1fr)); gap: 4px; min-width: 460px; max-width: 670px; }
.bank-grid .bank-slot {
  display: grid;
  place-content: center;
  justify-items: center;
  aspect-ratio: 1;
  min-width: 0;
  min-height: 0;
  padding: 2px;
  gap: 0;
  border: 1px solid #64583f;
  border-radius: .3rem;
  background: #25271f;
  color: #f2d79d;
  font-size: .7rem;
}
.bank-grid .bank-empty { background: #121819; border-color: #303a38; }
.bank-slot .icon { width: 25px; height: 25px; }
.bank-grid button:focus-visible, .bank-grid button:hover { border-color: #f4ce85; }
.bank-pages button[aria-current="page"] { outline: 2px solid #f4ce85; }
.bank-selected { margin-block: .75rem; }

.road-scene{margin-bottom:.8rem;overflow:hidden;border-radius:7px;border:1px solid #997858;background:#6e5449}
.road-scene svg{width:100%;display:block;max-height:270px;aspect-ratio:800/220}
.road-tracks{animation:road-scroll 1.5s linear infinite}
.road-team{animation:road-drive 5s ease-in-out infinite alternate}
.road-cart{animation:road-bounce .55s ease-in-out infinite alternate}
.road-wheel{transform-origin:326px 166px;animation:road-spin 1.5s linear infinite}
.road-leg{transform-box:fill-box;transform-origin:50% 0;animation:road-step .55s ease-in-out infinite alternate}
.road-leg.front{animation-direction:alternate-reverse}
.road-dust{animation:road-dust 1.1s ease-out infinite}
@keyframes road-scroll{to{transform:translateX(-130px)}}
@keyframes road-drive{from{transform:translateX(-38px)}to{transform:translateX(46px)}}
@keyframes road-bounce{to{transform:translateY(-2px)}}
@keyframes road-spin{to{transform:rotate(360deg)}}
@keyframes road-step{from{transform:rotate(-17deg)}to{transform:rotate(18deg)}}
@keyframes road-dust{to{transform:translateX(-24px);opacity:0}}
@media(prefers-reduced-motion:reduce){.road-scene svg *{animation:none!important}}
#hospital-content{display:grid;gap:12px}
#hospital-content .row{border-bottom:1px solid var(--line)}
