:root{color-scheme:dark;--bg:#0d1420;--panel:#1b2638;--line:#475369;--text:#eeeae1;--muted:#aeb8c8;--gold:#d9b45f;--primary:#8da5c4;--accent:#d9b45f;--danger:#e2a09e;--success:#9dc7ab}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top right,#243347,#0b121e 70%);color:var(--text);font:15px/1.5 system-ui,"Segoe UI",sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}button{border:1px solid #56637a;border-radius:8px;background:#263246;color:var(--text);padding:9px 13px;cursor:pointer;text-align:left}button:hover:not(:disabled){border-color:var(--gold);background:#344259}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:#4d432b;border-color:var(--gold)}.danger{border-color:#b87775;color:#f1c4c1}.small{padding:5px 9px;font-size:12px}.ghost{background:transparent}.active{border-color:var(--gold);box-shadow:inset 3px 0 var(--gold)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}header{padding:18px 24px;border-bottom:1px solid #806c46;background:#111a26e8;display:flex;align-items:center;justify-content:space-between;gap:18px}h1,h2,h3{font-family:Georgia,serif;font-weight:500;color:var(--gold)}h1{margin:0;font-size:25px}h2{margin:0 0 6px;font-size:28px}h3{margin:0 0 8px;font-size:20px}.subtitle,.muted{color:var(--muted)}.subtitle,.sm{font-size:12px}.connection{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}#connection-dot{height:7px;width:7px;background:#808b9b;border-radius:50%}#connection-dot.connected{background:var(--success)}#shell{display:grid;grid-template-columns:190px minmax(0,1fr);max-width:1460px;margin:auto;padding:22px 18px 180px;gap:20px}nav{display:flex;flex-direction:column;gap:9px}nav button{width:100%}main{border:1px solid #9c804b;background:linear-gradient(145deg,#202d42,#151f2e);border-radius:18px;min-height:590px;padding:24px;min-width:0}#notice{padding:11px 14px;border-left:3px solid var(--gold);background:#142031;border-radius:5px;margin-bottom:21px;color:#d6deea}#notice.error{border-color:var(--danger)}footer{text-align:right;color:#8d9bae;font-size:11px;margin-top:30px}.heading{margin-bottom:18px}.heading p{margin:0;color:var(--muted)}.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:14px 0}.toolbar select{width:auto;max-width:100%}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}.card{border:1px solid var(--line);border-radius:10px;background:#141f30;padding:15px;min-width:0}.card label{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.value{font-size:24px;font-weight:650;color:#faf2dc;margin-top:4px}.hero{display:flex;align-items:center;gap:20px;margin:18px 0}.portrait{height:120px;width:120px;object-fit:cover;border:2px solid var(--primary);border-radius:13px;background:#172437}.portrait.empty{display:grid;place-items:center;color:var(--gold);font-size:36px}.pill{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:3px 9px;font-size:11px;color:#c7d0dc;margin:4px 6px 4px 0}.pill.good{border-color:#638471;color:#b4d6bf}.pill.warn{border-color:#a58c55;color:#e9cd93}.section{margin-top:23px}.row{border-bottom:1px solid #3c485c;padding:12px 0;display:flex;gap:12px;align-items:center;justify-content:space-between}.row>div{min-width:0}.row .toolbar{margin:0}.list{display:grid;gap:10px}.party-button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:14px;padding:13px}.party-name{font-weight:650}.spell p{white-space:pre-wrap;line-height:1.65;color:#d9dfe7;font-size:14px}.spell .toolbar{border-top:1px solid #435067;padding-top:12px}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.tabs button{padding:7px 10px}.counter{font-variant-numeric:tabular-nums}.result{padding:12px 14px;border:1px solid #647f6c;border-radius:8px;margin:10px 0;background:#14291f}.result.error{border-color:#916665;background:#2c2026}.pending-card{border:1px solid #aa8d55;background:#292719;padding:11px 14px;border-radius:8px;margin-bottom:12px}.reaction{border:1px solid var(--gold);background:#302a20;padding:14px;border-radius:10px;margin-bottom:13px}.reaction h3{font-size:19px}.order{border:1px solid #5a6273;border-radius:12px;padding:17px;background:#151f2f;margin:12px 0}.order .status{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#c4b389}.order h3{margin-top:3px}.outcome{font-size:13px;border-bottom:1px solid #384459;padding:7px 0}.quiet{opacity:.8}.empty-state{padding:35px 0;color:var(--muted)}select,input,textarea{width:100%;background:#101a28;color:var(--text);border:1px solid #59647a;border-radius:7px;padding:9px 11px}textarea{min-height:90px;resize:vertical}.field{display:block;margin:12px 0}.field>span{display:block;color:#cbd4e1;font-size:13px;margin-bottom:4px}.field small{display:block;color:var(--muted);font-size:11px;margin-top:4px}label.check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:13px}label.check input{width:auto;margin-top:5px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0 12px}.stat-button{width:100%;display:flex;justify-content:space-between;align-items:center}.danger-text{color:var(--danger)}.inline-note{font-size:12px;color:var(--muted)}dialog{border:1px solid #af9158;background:#1b283c;color:var(--text);border-radius:15px;max-width:min(760px,94vw);width:650px;max-height:86vh;padding:22px;box-shadow:0 22px 80px #0009}dialog::backdrop{background:#030914ba;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-heading h2{font-size:23px}.dialog-heading button{font-size:24px;padding:0 9px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;border-top:1px solid #48556a;padding-top:16px}#dialog-error{color:var(--danger);font-size:13px}.target-group{border:1px solid #4e5d73;border-radius:9px;margin:14px 0;padding:13px}.target-group h3{font-size:17px}.checkbox-list{max-height:350px;overflow:auto;padding-right:8px}.bar{height:6px;background:#394459;border-radius:4px;overflow:hidden;margin-top:9px}.bar span{display:block;height:100%;background:var(--primary)}#timeline{position:fixed;bottom:0;left:0;right:0;background:#101a28f5;border-top:1px solid #9b804b;z-index:5;padding:10px 20px 12px;box-shadow:0 -7px 30px #0006;backdrop-filter:blur(6px)}.timeline-header{display:flex;justify-content:space-between;align-items:center;max-width:1380px;margin:0 auto 7px;gap:12px}.timeline-header strong{color:var(--gold);font-family:Georgia,serif;font-size:16px}.timeline-strip{display:flex;gap:8px;overflow-x:auto;max-width:1380px;margin:auto;padding:3px 2px 5px;scrollbar-width:thin}.turn-card{display:flex;align-items:center;gap:9px;padding:8px 10px;background:#172237;border:1px solid #49556a;border-radius:10px;min-width:180px;max-width:240px;flex-shrink:0}.turn-card.current{border:2px solid var(--gold);background:#2e2c25}.turn-card.current.changed{animation:gold-flash 1.2s ease-out}.turn-portrait{width:43px;height:43px;border-radius:8px;object-fit:cover;background:#28364a;display:grid;place-items:center;color:var(--gold);flex-shrink:0;font-size:23px}.turn-name{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.turn-info{font-size:10px;color:var(--muted)}.turn-current{font-size:9px;color:var(--gold);letter-spacing:.07em;font-weight:700}.combatant-list .row{padding:10px 0}.combatant-main{display:flex;gap:10px;align-items:center}.combatant-main strong{display:block}.mobile-only{display:none}@keyframes gold-flash{0%{box-shadow:0 0 20px #d9b45f9c}100%{box-shadow:0 0 0 transparent}}@media(max-width:760px){header{padding:13px 16px}h1{font-size:19px}.subtitle{font-size:10px}.connection{font-size:11px}#shell{grid-template-columns:1fr;padding:12px 10px 180px;gap:12px}nav{flex-direction:row;overflow:auto}nav button{width:auto;white-space:nowrap}main{padding:17px;min-height:500px}h2{font-size:24px}.portrait{width:85px;height:85px}.party-button{align-items:flex-start;flex-direction:column;gap:3px}.row{flex-wrap:wrap}.timeline-header{font-size:11px}.turn-card{min-width:155px;max-width:185px}.turn-name{max-width:110px}.hero{gap:13px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.turn-details{display:flex;flex-direction:column;gap:2px;min-width:0}.hero{border-left:3px solid var(--primary);padding-left:15px;background:var(--dual,transparent);border-radius:10px}.hero:after{content:"";align-self:stretch;width:3px;background:var(--dual-accent,var(--accent));border-radius:4px}.tabs .active{border-color:var(--primary)}

:root{--bg:#100d14;--panel:#19141f;--line:#655043;--text:#f6f0df;--muted:#c1b7b2;--gold:#edc56d;--scene-image:none;--scene-fit:cover;}
body{background:#100d14;min-height:100dvh;isolation:isolate}
body::before{content:"";position:fixed;inset:0;z-index:-2;background-image:var(--scene-image);background-size:var(--scene-fit);background-position:center;background-repeat:no-repeat;opacity:.55;pointer-events:none}
body::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,#100b17dc,#100c1859 65%,#100b1799);pointer-events:none}
header{background:#100c19d9;border-color:#b4904a}#shell{max-width:1640px;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:18px 18px 180px}
nav{align-self:start;position:sticky;top:14px}nav button,button{background:#201928d9;border-color:#79613d;color:var(--text)}button:hover:not(:disabled){background:#443327;border-color:var(--gold)}button.active{background:#3b2c24e8}button.primary{background:#53401f;color:#fff4da}
main{position:relative;background:linear-gradient(125deg,#170f21d9,#100e18cb);border-radius:12px;padding:30px;min-height:calc(100dvh - 160px);border:1px solid #8d7448;box-shadow:0 15px 55px #0007}#notice{background:#261e29c4;border-left-color:var(--gold);color:#efe4d9}.card,.order,.turn-card{background:#1a1423c7;border-color:#685346}.card{backdrop-filter:blur(4px)}.row{border-color:#66554488}select,input,textarea{background:#130f1eea;border-color:#79664d;color:#fff7e6}dialog{background:#21182cf5;border-color:#d3ac61}.field>span{color:#e0d4c7}.pill{color:#dbd1c0;border-color:#7b6849}.heading p,.subtitle,.muted{color:var(--muted)}.spell p{color:#eee4d6}.spell .toolbar{border-top-color:#755f45}.portrait{background:#1d1727}.turn-portrait{background:#2f2239}
#timeline{background:#160f21f5}.turn-card.current{background:#3e2c25}.note-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.journal-entry{margin-top:14px}.compendium-entry::after{content:"";display:block;clear:both}.creature-portrait{width:110px;height:145px;object-fit:contain;float:left;margin:0 16px 12px 0;border:1px solid #84683e;border-radius:8px}
#view,.card,.row,.heading{overflow-wrap:anywhere}button,select{max-width:100%}.map-viewport{background:#080c11b3;max-height:70dvh}.world-map{object-fit:contain}.hq-art{object-fit:contain;max-height:430px}.scene-art{object-fit:contain}
@media(min-width:1500px){}
@media(max-width:900px){#shell{grid-template-columns:150px minmax(0,1fr);gap:10px;padding:14px 10px 180px}nav button{font-size:13px}header{padding:14px}}
@media(max-width:760px){#shell{grid-template-columns:minmax(0,1fr);padding:10px 7px 180px}nav{position:static;display:flex;flex-direction:row;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}nav button{width:auto;flex-shrink:0}header{gap:10px;align-items:flex-start}h1{font-size:18px}.connection{flex-wrap:wrap;justify-content:flex-end}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.value{font-size:21px}.hero{align-items:flex-start;flex-wrap:wrap}.card{padding:12px}.creature-portrait{width:90px;height:120px}.dialog-actions{flex-wrap:wrap}dialog{padding:15px}.more-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}
@media(max-width:420px){header h1{font-size:16px}.grid{grid-template-columns:minmax(0,1fr)}.toolbar button{flex:1 1 auto}.connection{max-width:115px}}


body.has-timeline{--timeline-space:156px}
#shell{padding-bottom:18px}
main{height:calc(100dvh - 126px - var(--timeline-space,0px));min-height:340px;display:flex;flex-direction:column}
#view{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;padding:2px 6px 3px 2px}
#notice{flex-shrink:0;margin-bottom:12px}#pending{flex-shrink:0;max-height:130px;overflow:auto}footer{flex-shrink:0;margin-top:12px}
@media(max-width:760px){main{height:calc(100dvh - 166px - var(--timeline-space,0px));min-height:300px}#shell{padding-bottom:10px}.connection{font-size:10px}footer{font-size:9px}#notice{padding:8px;font-size:12px}.map-viewport{max-height:50dvh}}



@media(max-width:760px){
  html,body{min-width:0;max-width:100%;overflow-x:hidden}
  header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  #shell{padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right))}
  nav{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  nav button{min-height:42px;touch-action:manipulation}
  main{height:auto;min-height:0;max-height:none}
  #view{overflow:visible;min-height:0}
  #timeline{padding-bottom:calc(12px + env(safe-area-inset-bottom));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .timeline-strip{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  dialog{max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto}
  .dialog-actions button{min-height:44px}
}
@media(max-width:420px){
  .form-grid,.more-grid{grid-template-columns:minmax(0,1fr)}
  .row .toolbar{display:flex;flex-wrap:wrap;max-width:100%}
}




@media(max-width:760px){
}
@media(max-width:420px){
}




:root{
  --squad-rgb:157,142,168;
  --squad-alpha:.29;
  --font-display:Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;
  --font-heading:Georgia,"Palatino Linotype",serif;
  --font-interface:"Trebuchet MS","Segoe UI",system-ui,sans-serif;
  --font-numeric:Consolas,"Liberation Mono",monospace;
}
body,button,input,select,textarea{font-family:var(--font-interface)}
h1,.heading h2{font-family:var(--font-display);font-weight:650;letter-spacing:.015em}
h2,h3,.section>h3,.dialog-heading h2{font-family:var(--font-heading)}
.value,.hp-label,.turn-info,.pill{font-variant-numeric:tabular-nums}
.turn-info,.roll-mode-value{font-family:var(--font-numeric)}
main.squad-window{
  
  border:1px solid rgba(var(--squad-rgb),.64);
  border-image:none;
  border-radius:14px;
  padding:clamp(14px,2vw,30px);
  background:
    linear-gradient(145deg,rgba(var(--squad-rgb),var(--squad-alpha)) 0%,rgba(var(--squad-rgb),.15) 48%,rgba(11,12,26,.89) 100%),
    #15121e;
  box-shadow:0 12px 42px #0007,inset 0 0 0 1px rgba(245,231,206,.055);
}
main.squad-window::before{content:none!important;background:none!important;border:0!important;border-image:none!important}
main.squad-window .card,main.squad-window .order{
  background:linear-gradient(130deg,rgba(var(--squad-rgb),.16),rgba(16,13,27,.90) 82%);
  border-color:rgba(var(--squad-rgb),.42);
}
main.squad-window .hero{background:rgba(var(--squad-rgb),.09)}
main.squad-window .heading h2{color:#f8f1e7;text-shadow:0 1px 2px #0005}
main.squad-window .section>h3{color:#f2d7a0}
main.squad-window #notice{background:rgba(var(--squad-rgb),.13);border-left-color:var(--primary)}
nav button.active{border-color:var(--primary);box-shadow:inset 3px 0 var(--primary);background:rgba(var(--squad-rgb),.24)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--primary)}
@media(max-width:760px){
  main.squad-window{padding:17px 14px;border-radius:12px}
  main.squad-window #view{overflow:visible;max-width:100%}
}
@media(max-width:420px){
  main.squad-window{padding:14px 12px}
}


:root{
 --font-display:"Trebuchet MS","Segoe UI",system-ui,sans-serif;
 --font-heading:"Segoe UI","Trebuchet MS",system-ui,sans-serif;
 --font-interface:"Segoe UI",system-ui,sans-serif;
 --font-numeric:"Consolas","Liberation Mono",monospace;
}
.heading h2{font-weight:750;letter-spacing:.02em}
.section>h3{font-weight:680;letter-spacing:.013em}


.atlas-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px;margin-bottom:14px}
.atlas-list-item{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:7px;border-bottom:1px solid rgba(var(--squad-rgb),.25)}
.atlas-list-item button{flex:1;min-width:0;overflow-wrap:anywhere}
.atlas-list-item>span{flex:1;min-width:0;overflow-wrap:anywhere}
.atlas-detail{margin-top:18px;min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.atlas-filters{grid-template-columns:minmax(0,1fr)}.atlas-list-item{flex-direction:column;align-items:stretch}}
.creature-artwork{float:left;width:140px;max-width:100%;margin:0 16px 12px 0}
.creature-artwork .creature-portrait{float:none;display:block;width:100%;height:160px;object-fit:contain;margin:0;border:0;background:transparent}
.creature-artwork .field{margin:8px 0 0}
.creature-token{object-fit:contain;padding:2px}
.creature-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:14px}
.artwork-card{min-width:0;overflow-wrap:anywhere}
.artwork-card .creature-artwork{float:none;width:100%;margin:0}
.gallery-creature{width:100%;height:210px;object-fit:contain;display:block}
.artwork-card h3{margin:12px 0 0;font-size:16px}
.atlas-resident{display:flex;align-items:center;gap:12px;min-width:0}
.atlas-creature{width:76px;height:76px;object-fit:contain;flex-shrink:0}
@media(max-width:600px){.creature-artwork{width:100px;margin-right:10px}.creature-artwork .creature-portrait{height:120px}.gallery-creature{height:190px}}


@font-face{font-family:BlackClover;src:url('/assets/campaign/black_clover.woff') format('woff');font-display:swap}
h1,h2,.heading h2{font-family:BlackClover,Georgia,serif;letter-spacing:.04em;font-weight:400}
main.squad-window{border:3px solid var(--screen-border,var(--accent));background:linear-gradient(rgba(var(--squad-rgb),.35),rgba(var(--squad-rgb),.22)),rgba(5,7,12,.80);box-shadow:0 0 0 1px #0008,inset 0 0 0 2px #ffffff0a,0 18px 50px #0005}
main.squad-window.dm-panel{background:rgba(0,0,0,.80);border:4px double #d4af52;box-shadow:0 0 0 1px #a6803680,inset 0 0 24px #d4af5208}
button{min-height:44px;min-width:144px;padding:10px 16px;border:2px solid color-mix(in srgb,var(--accent) 65%,#665437);border-radius:4px;background:linear-gradient(135deg,#ffffff0d 0 8%,transparent 8% 92%,#ffffff0d 92%),linear-gradient(#25232be8,#12121be8);box-shadow:inset 0 0 0 2px #0008;line-height:1.25}
button.small{min-height:40px;min-width:120px;padding:8px 12px}button:hover:not(:disabled){border-color:var(--accent);box-shadow:inset 0 0 0 2px #d4af5220,0 0 12px #d4af5220}button:disabled{opacity:.5}
.toolbar{align-items:stretch}.spirit-art{display:block;width:min(100%,420px);max-height:420px;object-fit:contain;margin:12px auto}
.difficulty-box{padding:16px;border:1px solid #d4af5270;border-radius:8px;background:#0005;margin:12px 0}.difficulty-track{height:18px;border:1px solid #f3dfb655;border-radius:10px;background:#ffffff12;overflow:hidden;margin-top:12px}.difficulty-fill{height:100%;transition:width .25s ease,background .25s ease}
@media(max-width:600px){button{min-width:120px;flex-grow:1}main.squad-window.dm-panel{border-width:3px}.difficulty-box{padding:12px}}
main.dm-panel .card,main.dm-panel .order{background:rgba(18,18,20,.85);border-color:#d4af5244}

.identity-chat{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.25fr);gap:18px;align-items:start;margin:18px 0}.identity-block .hero{margin:0 0 12px}.identity-block .hp-bars{margin:0}.shared-chat-header{display:flex;justify-content:flex-end;margin:18px 0}.shared-chat-header .roleplay-panel{width:min(100%,620px)}
.roleplay-panel{min-width:0;display:flex;flex-direction:column;height:310px;min-height:220px;max-height:650px;resize:vertical;overflow:hidden;background:rgba(5,7,12,.9);border:1px solid var(--accent);border-radius:8px}.chat-top{display:flex;align-items:center;gap:6px;padding:7px 10px;border-bottom:1px solid #ffffff25}.chat-top strong{flex:1;overflow:hidden;text-overflow:ellipsis}.chat-top button{min-width:58px;min-height:30px;padding:4px 8px}.chat-log{flex:1;min-height:80px;overflow:auto;padding:10px;overscroll-behavior:contain;scrollbar-gutter:stable}.chat-message{padding:5px 0;overflow-wrap:anywhere;font-size:.91rem;line-height:1.45}.chat-author{color:#c5b99d;font-size:.75rem}.chat-message em{color:#cbd4ec}.chat-line{min-height:1em}.chat-composer{display:flex;gap:8px;padding:8px;background:#0b0e16;border-top:1px solid #ffffff25;flex:none}.chat-composer textarea{resize:none;min-width:0;flex:1;background:#151a26;border:1px solid #8a7b5b;border-radius:5px;color:#f3eee4;padding:8px;font-family:inherit}.chat-composer button{min-width:70px;align-self:stretch}.chat-new{min-height:26px;margin:0 8px;background:#584426}.chat-attachment{display:block;color:#aac9ff}.slot-chip{display:inline-block;border:1px solid #b5a07066;padding:5px 9px;margin:3px;border-radius:5px;font-variant-numeric:tabular-nums}
.equipment-stage{position:relative;aspect-ratio:2/3;width:min(100%,420px);margin:20px auto;isolation:isolate;overflow:hidden;border:1px solid #baa56d55;border-radius:12px;background:radial-gradient(ellipse,#343a5f55,transparent 65%)}.equipment-form{position:absolute;width:100%;height:100%;object-fit:contain;inset:0;z-index:0}.equipment-label{position:absolute;max-width:33%;min-width:28%;padding:5px 7px;min-height:32px;font-size:.75rem;background:rgba(7,10,18,.88);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-50%);z-index:2}.equipment-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.stat-json{white-space:pre-wrap;overflow-wrap:anywhere;max-height:65vh;overflow:auto;font-size:.82rem}.art-viewer{overflow:auto;max-height:70vh;background:#080b1266}.full-art{display:block;width:100%;height:auto;object-fit:contain;max-width:none}.creature-artwork img[role=button],.identity-block img[role=button]{cursor:zoom-in}
.tactical-grid{--cell:1fr;display:grid;position:relative;gap:1px;width:min(100%,330px);aspect-ratio:4/3;background:#495363;border:2px solid #a99b72;margin:10px 0;isolation:isolate}.tactical-grid.expanded{width:min(100%,850px)}.map-cell{min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:#1e2732;position:relative;aspect-ratio:1;z-index:0}.map-cell:hover,.map-cell:focus-visible{outline:2px solid white;outline-offset:-2px;z-index:2}.map-cell.blocked{background:#0a0c12;box-shadow:inset 0 0 0 1px #8e8b7f}.map-cell.fog{background:#080b14!important}.map-cell.terrain-ice{background:repeating-linear-gradient(45deg,#a3d7e770 0 2px,transparent 2px 7px),#4b8baf}.map-cell.terrain-mud{background:radial-gradient(#d0a473 18%,transparent 22%) 0 0/8px 8px,#705037}.map-cell.terrain-water{background:repeating-radial-gradient(ellipse at 0 0,transparent 0 6px,#5b9ad4 7px 8px),#164978}.map-cell.terrain-vegetation{background:repeating-linear-gradient(130deg,#79ad6955 0 3px,transparent 3px 9px),#315e3a}.map-cell.terrain-rubble{background:linear-gradient(90deg,transparent 80%,#a3a3a388 80%),linear-gradient(0deg,transparent 80%,#a3a3a388 80%),#5c6268;background-size:9px 9px}.map-cell.terrain-fire{background:repeating-conic-gradient(from 15deg,#f0a24466 0 35deg,transparent 35deg 90deg),#a94024}.map-cell.terrain-arcane{background:repeating-conic-gradient(#b795e777 0 25%,transparent 0 50%) 0 0/10px 10px,#563b79}.map-cell.terrain-poison{background:repeating-linear-gradient(45deg,#253b1e 0 4px,#a9b751 4px 8px)}.map-cell[class*='terrain-']{box-shadow:inset 0 0 0 1px #ffffff33}
.map-token{position:relative;display:grid;place-items:center;pointer-events:none;z-index:3;min-width:0;min-height:0}.token-label{border-radius:50%;background:#0e1320;color:#fff;width:50%;height:50%;display:grid;place-items:center;font-size:clamp(7px,1.25vw,16px);font-weight:800;box-shadow:0 0 0 1px white}.map-token.current .token-label{background:#ad7e24}.token-rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.ring-overflow{position:absolute;right:0;bottom:0;background:#111;color:#fff;border:1px solid white;font-size:10px}.compact-combat{border:1px solid var(--accent);padding:12px;margin:10px 0;background:#080c16cc;border-radius:8px}.compact-combat.current{border-width:2px;box-shadow:0 0 12px #e6bd5a33}.compact-combat .section{margin:8px 0;padding:0;border:0}.compact-combat h3{margin-top:0}.private-reaction-alert{position:sticky;top:0;z-index:10;border:2px solid #6adbd2;background:#12313df5;padding:12px;border-radius:8px;box-shadow:0 6px 24px #0008}.path-preview{overflow-wrap:anywhere}.map-legend{display:flex;flex-wrap:wrap;gap:8px;font-size:.75rem}
@media(max-width:700px){.identity-chat{grid-template-columns:1fr}.roleplay-panel{height:235px;min-height:235px;max-height:235px;resize:none}.shared-chat-header .roleplay-panel{width:100%}.equipment-label{font-size:.65rem;min-height:30px}.equipment-stage{margin:10px auto}.compact-combat{padding:9px}.tactical-grid.expanded{width:100%}.slot-chip{font-size:.78rem}.chat-top button{min-width:50px}}


.chat-top{flex:none;min-height:40px}.chat-top strong{min-width:0;white-space:nowrap}.chat-top button.small{flex:0 0 auto;width:auto;min-width:54px;min-height:30px;padding:4px 7px}
.chat-log{min-height:0}.chat-composer{min-height:72px}.chat-composer textarea{min-height:54px;height:54px;width:0;flex:1 1 0}.chat-composer button{flex:0 0 66px;min-width:66px;width:66px;padding:5px;text-align:center}.chat-new{flex:0 0 28px;min-height:28px;padding:3px 8px}
@media(max-width:760px){.turn-card{max-height:145px}.turn-details{min-width:0}.turn-info{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:145px}.timeline-strip{max-height:155px}body.has-timeline #shell{padding-bottom:200px}}

.terrain-segment{position:absolute;top:0;height:100%;pointer-events:none;aspect-ratio:auto}.terrain-count{position:absolute;right:1px;top:1px;z-index:1;font-size:8px;line-height:1;background:#10131bdd;color:white;padding:1px;border-radius:2px;pointer-events:none}


.crafted-item-art{display:block;width:min(100%,260px);height:240px;object-fit:contain;margin:.5rem auto}.item-purpose{color:var(--text);font-weight:600}


.grimoire-mark{width:64px;height:64px;object-fit:contain;flex:none}
.breadcrumbs{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.9rem;font-size:.85rem}
.compact-identity{display:flex;align-items:center;gap:.7rem;margin:.5rem 0 1rem;flex-wrap:wrap}
.compact-identity .portrait{width:44px;height:44px;min-width:44px}
#nav button{min-height:42px;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-radius:5px;text-align:left;background:linear-gradient(115deg,#231c19,#151416);box-shadow:inset 0 0 0 2px #0004;transition:border-color .18s,box-shadow .18s,transform .1s}
#nav button:hover,#nav button.active{border-color:var(--accent);box-shadow:inset 0 0 12px #c8a45422,0 0 10px #c8a45416}
#nav button:active{transform:translateY(1px)}
button:focus-visible{outline:2px solid #f7dea0;outline-offset:3px}
.overview-navigation .more-button{min-height:56px}
.slot-dots{color:var(--accent);letter-spacing:.2em;font-size:1.15rem;white-space:nowrap}
.roleplay-panel{height:320px;min-height:260px;max-height:75vh;resize:vertical;overflow:hidden;display:flex;flex-direction:column}
.roleplay-panel .chat-log{flex:1;min-height:80px;height:auto;overflow:auto;overscroll-behavior:contain}
.chat-composer{flex:none;display:grid;grid-template-columns:1fr auto;gap:.4rem}
.chat-composer textarea,.chat-reply-preview{grid-column:1/-1}
.chat-character{display:block;color:var(--accent)}
.chat-author{display:block;font-size:.7rem;opacity:.75}
.chat-reply-preview{font-size:.75rem;opacity:.8;border-left:2px solid var(--accent);padding-left:.5rem;overflow-wrap:anywhere}
.chat-spoiler{background:#121018;color:var(--accent);min-height:24px;padding:1px 5px;font-size:inherit}
.chat-count{font-variant-numeric:tabular-nums;align-self:center}
@media(max-width:700px){.grimoire-mark{width:42px;height:42px}.roleplay-panel{height:320px;max-height:60vh;resize:none}#nav button{min-height:40px}}
@media(prefers-reduced-motion:reduce){#nav button{transition:none;animation:none}#nav button:active{transform:none}}


.chat-composer textarea{width:100%;min-width:0;min-height:64px;resize:vertical;flex:none}


body.button-navigation #shell{grid-template-columns:minmax(0,1fr);max-width:1460px}
body.button-navigation #nav{display:none}
.identity-chat.without-chat{grid-template-columns:minmax(0,1fr);gap:0;display:grid}
.character-identity{max-width:640px}
.character-identity .hero{gap:14px;margin:6px 0 10px;flex-wrap:nowrap}
.character-identity .portrait{width:84px;height:104px;min-width:84px;object-fit:cover}
.character-identity .hero h3{font-size:23px;margin-bottom:4px}
.character-identity .hero p{margin:2px 0;font-size:13px}
.compact-stat-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:6px;margin:10px 0;overflow:hidden}
.compact-stat{display:flex;flex-direction:column;align-items:center;padding:7px 4px;background:#0003;text-align:center}
.compact-stat+ .compact-stat{border-left:1px solid var(--line)}
.compact-stat span{font-size:11px;color:var(--muted)}
.compact-stat strong{font-size:19px;line-height:1.3;color:var(--text)}
.hp-line.temporary .hp-track{height:4px}
@media(max-width:700px){.character-identity .portrait{width:66px;height:84px;min-width:66px}.character-identity .hero h3{font-size:20px}.compact-stat span{font-size:10px}}


.spell-announcement{font-family:BlackClover,Georgia,serif;font-size:clamp(18px,2.2vw,25px);font-weight:700;line-height:1.5;-webkit-text-stroke:.55px #ffffff55;text-shadow:0 1px 1px #0008;color:#e9d7a4;background:var(--spell-gradient,linear-gradient(90deg,#e9d7a4,#fff1d0));background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:spell-sheen 6s linear infinite;animation-play-state:paused}
.spell-announcement.spell-visible{animation-play-state:running}
.spell-flame{--spell-gradient:linear-gradient(100deg,#ff5353,#a62525,#559dff,#203bac,#ff5353);animation-name:spell-flame;animation-duration:3.8s}
.spell-chalk{--spell-gradient:linear-gradient(90deg,#ffb3cc,#f9e898,#a8e6cd,#aad0ff,#dbb5ff,#ffb3cc);animation-duration:8s}
.spell-steel{--spell-gradient:linear-gradient(110deg,#aeb8c3,#ffffff,#5bba92,#c7d0d8,#ffffff,#aeb8c3);animation-duration:5.5s}
.spell-carapace{--spell-gradient:linear-gradient(100deg,#e7b95a,#fff0b2,#9edac3,#c3b1ed,#e7b95a);animation-duration:7s}
.spell-nebula{--spell-gradient:linear-gradient(100deg,#9ecbff,#bfa4ee,#f5a9d3,#f9ba83,#ffffff,#9ecbff);animation-duration:9s}
.spell-mineral{--spell-gradient:linear-gradient(100deg,#e7e1d0,#fff9e9,#e5c65a,#f3ebd7,#e7e1d0);animation-duration:7.5s}
.spell-gravity{--spell-gradient:linear-gradient(100deg,#b69be5,#765ca2,#d6c3f3,#494257,#b69be5);animation-duration:10s}
.spell-horizon{--spell-gradient:linear-gradient(100deg,#fff9e7,#f5d46e,#f3a268,#ffffff,#fff9e7);animation-duration:7s}
@keyframes spell-sheen{from{background-position:0% 50%}to{background-position:250% 50%}}
@keyframes spell-flame{0%,100%{background-position:0% 50%;filter:brightness(1)}45%{background-position:120% 50%;filter:brightness(1.08)}70%{filter:brightness(1.02)}}
@media(prefers-reduced-motion:reduce){.spell-announcement{animation:none!important;filter:none!important;background-position:35% 50%}}


#dialog .dialog-heading{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:10px;align-items:start}
#dialog .dialog-heading h2{grid-column:1;grid-row:1;min-width:0;overflow-wrap:anywhere}
#dialog-close{grid-column:2;grid-row:1;min-width:44px;width:44px;min-height:44px;flex-grow:0}
#dialog-npc-stop{grid-column:1/-1;grid-row:2;min-width:0;width:100%;min-height:44px;font-size:13px;padding:9px 12px;text-align:center}


.continent-map-stage{position:relative;width:100%;overflow:hidden;background:#18151b;border:0;outline:1px solid #90754f;border-radius:8px;isolation:isolate}.continent-map-image{display:block;width:100%;height:auto;margin:0}.continent-map-overlay{position:absolute;inset:0;pointer-events:none}.world-pin{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;width:44px;height:44px;padding:0;border:0;background:none;display:grid;place-items:center;pointer-events:auto;z-index:3}.world-pin:hover:not(:disabled){background:#0005;border-radius:50%}.world-pin:focus-visible{outline:2px solid white}.world-pin-dot{width:12px;height:12px;border:2px solid #15101c;border-radius:50%;background:var(--mission-color,#c8a7fb);box-shadow:0 0 0 1px #fff8}.registration-pin .world-pin-dot{width:6px;height:6px;background:#b6f3ff}.registration-pin.proposed .world-pin-dot{border-style:dashed;background:#f2c77d}.character-pin{z-index:4;transition:left .8s linear,top .8s linear}.character-pin .world-pin-dot{width:16px;height:16px;background:#fff1a9;border-color:#5b3109}.character-pin.travelling .world-pin-dot{animation:world-travel-pulse 2s ease-in-out infinite}.continent-route{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.continent-route polyline{fill:none;stroke:#fff3b8;stroke-width:.45;stroke-dasharray:1.4 .8;vector-effect:non-scaling-stroke}.personal-minimap{max-width:460px}.world-mission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:10px}.world-dm-registration{display:grid;gap:12px}.world-pin-dot{flex-shrink:0}@keyframes world-travel-pulse{50%{box-shadow:0 0 0 5px #fff3ad44}}@media(prefers-reduced-motion:reduce){.character-pin{transition:none}.character-pin.travelling .world-pin-dot{animation:none}}

.continent-map-viewport{overflow:auto;max-width:100%;max-height:65vh;min-width:0}.world-pin-uncertainty{position:absolute;transform:translate(-50%,-50%);border:1px dashed #ffdf8dbb;border-radius:50%;background:#dfb95418;pointer-events:none}
.world-pin,.world-pin:hover:not(:disabled){border-radius:50%;box-shadow:none}
.mission-pin{z-index:5}
.npc-artwork-pair{display:flex;flex-wrap:wrap;gap:16px;align-items:start}.npc-artwork-pair figure{margin:0;max-width:100%}.npc-headshot{width:120px;height:120px;object-fit:contain}.npc-full_body{max-width:min(100%,280px);max-height:440px;object-fit:contain}.npc-artwork-pair figcaption{font-size:12px;text-align:center}


.creature-image{position:relative}.creature-rank-badge{position:absolute;right:-8px;bottom:-5px;width:64px;height:64px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 3px #0009)}
img[role=button]{cursor:zoom-in}.art-viewer{cursor:grab;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.art-viewer:active{cursor:grabbing}.full-art{user-select:none;max-height:none}.private-inbox{margin:12px 0;padding:12px;border:1px solid #bd9b55;border-radius:8px;background:#121019ed}.private-notice{display:flex;align-items:center;gap:12px;justify-content:space-between}.private-notice p{white-space:pre-wrap;overflow-wrap:anywhere}

.map-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;max-height:65vh;overflow:auto;margin-top:16px;overscroll-behavior:contain}.map-area-card{position:relative;min-height:160px;padding:20px 14px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;isolation:isolate}.map-area-card .map-gallery-thumbnail{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.7}.map-area-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#080a10dd);z-index:-1}.map-area-card strong{font-size:1.1rem;text-shadow:0 2px 4px #000}.map-area-card span{font-size:.8rem}.map-variant{margin:0}.map-variant .map-gallery-thumbnail{width:100%;height:auto;aspect-ratio:5/3;object-fit:contain}.map-variant button{width:100%}

.creature-badge-row{position:absolute;right:-8px;bottom:-5px;display:flex;justify-content:flex-end;flex-wrap:wrap;max-width:100%;pointer-events:none}.creature-badge-row .creature-rank-badge{position:static;flex:none}.creature-badge-row:has(img:nth-child(2)) .creature-rank-badge{width:44px;height:44px}

.roleplay-panel .private-inbox{flex:0 0 auto;min-height:0;max-height:88px;overflow:auto;margin:0;padding:6px 10px;border-width:1px 0 0;border-radius:0;overscroll-behavior:contain}.roleplay-panel:has(.private-inbox:not([hidden])) .chat-log{min-height:40px}.roleplay-panel .private-inbox>strong{font-size:.8rem}.roleplay-panel .private-notice p{margin:5px 0;font-size:.82rem}

.tactical-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-1;pointer-events:none}.tactical-grid.has-battlemap .map-cell:not(.fog):not(.blocked):not([class*=terrain-]){background:transparent;box-shadow:inset 0 0 0 1px #ffffff22}

.inventory-item-art{width:88px;height:88px;object-fit:contain;flex:0 0 88px;border:1px solid #b69a5f77;border-radius:8px;background:#090b1280;cursor:zoom-in}.card>.inventory-item-art{float:right;margin:0 0 10px 12px}.card:has(>.inventory-item-art){display:flow-root}

.item-artwork{position:relative;display:inline-flex;flex:0 0 88px;flex-direction:column;align-items:center;width:88px;min-height:36px}.item-artwork .inventory-item-art{float:none;margin:0}.item-rank-badge{position:absolute;right:-7px;top:-8px;width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 1px 2px #000)}.item-rank-label{display:block;max-width:100%;text-align:center;font-size:.65rem;line-height:1.25;color:#ead8ac;margin-top:4px}.card>.item-artwork{float:right;margin:0 0 10px 12px}.card:has(>.item-artwork){display:flow-root}


header{gap:12px;min-width:0;padding:10px 18px;align-items:center}.product-title{min-width:0;flex:1}header h1{white-space:nowrap;font-size:clamp(19px,3.1vw,34px);overflow:hidden;text-overflow:ellipsis;line-height:1.2;margin:0}.grimoire-mark{width:46px;height:46px}.connection{flex-shrink:0;font-size:11px}
body.button-navigation #shell{max-width:1400px;padding:12px 14px 18px}main.squad-window{width:100%;margin-inline:auto;padding:16px 20px;border-width:2px;border-radius:9px}main.squad-window.dm-panel{border-width:3px}#view{padding:2px 4px;min-width:0}#view>.heading{margin:6px 0 14px}.heading h2{font-size:clamp(21px,2.5vw,29px);line-height:1.25}.heading p:empty{display:none}.breadcrumbs{gap:6px;margin-bottom:10px}.breadcrumbs button{min-height:34px;min-width:70px;padding:6px 10px;font-size:12px}.breadcrumbs>.pill{font-size:11px;padding:4px 7px}.breadcrumbs>span:not(.pill){flex:1;min-width:0}
.home-dashboard{display:grid;grid-template-columns:minmax(300px,1fr) minmax(310px,1.1fr);gap:18px;align-items:start;min-width:0}.home-primary,.home-conversation{min-width:0}.home-primary-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-primary-navigation .primary-destination{min-width:0;min-height:46px;padding:9px 12px;font-size:14px}.home-secondary-navigation{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.home-secondary-navigation button{flex:1 1 115px;min-width:0;min-height:34px;font-size:11px;padding:6px 8px}.home-dashboard .roleplay-panel{width:100%;height:clamp(400px,57vh,650px);min-height:350px;max-height:72vh;resize:vertical}.home-primary .section{padding:11px;margin:10px 0}.home-primary .section>h3{font-size:15px;margin:0 0 8px}.home-primary .personal-minimap{max-width:100%}.home-conversation>p{padding:12px;border:1px solid var(--line);border-radius:6px}.compact-identity{margin:2px 0 12px;flex-wrap:nowrap}.compact-identity>div{min-width:0}.compact-identity p{margin:4px 0}.compact-identity .portrait{width:54px;height:70px;min-width:54px;object-fit:contain}.dm-home-identity .dm-portrait{width:72px;height:96px;object-fit:contain;display:block}.identity-chat{margin:10px 0;gap:16px}.character-identity .portrait{object-fit:contain}.portrait,.roster-portrait,.full-portrait,.photobook-image,.bag-art{object-fit:contain;background:#080b134d;border:1px solid #a88b536e;border-radius:5px}.full-portrait{display:block;width:min(100%,320px);max-height:520px;height:auto;margin:10px auto}.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(185px,100%),1fr));gap:10px}.roster-card{min-width:0;display:flex;flex-direction:column;align-items:center;padding:12px;text-align:center;gap:6px}.roster-card p{margin:3px 0}.roster-card button{min-width:0;width:100%;margin-top:auto}.roster-portrait{display:block;width:94px;height:124px}.roster-groups .section{margin:12px 0;padding:12px}.diagnostic-fixtures{margin-top:14px;border:1px solid var(--line);padding:10px;border-radius:6px}.diagnostic-fixtures summary{cursor:pointer;color:var(--muted);font-size:12px}.diagnostic-fixtures .roster-grid{margin-top:10px}.character-reference{max-width:950px;margin:12px auto}.spell-reference{padding:9px 0;border-bottom:1px solid #ffffff20}.spell-reference summary{cursor:pointer}.spell-reference p{white-space:pre-wrap;font-size:14px;line-height:1.5}
.image-frame{position:relative;display:inline-block;max-width:100%;vertical-align:middle;flex-shrink:0;line-height:0}.image-frame>img{vertical-align:middle}.image-expand-corner{position:absolute!important;right:5px;top:5px;z-index:7;display:grid;place-items:center;min-width:30px!important;width:30px;min-height:30px!important;height:30px;padding:2px!important;line-height:1;font-size:20px;border:1px solid #d6bb7b!important;border-radius:5px!important;background:#10111ce8!important;box-shadow:0 1px 5px #0009!important;flex:none!important}.image-expand-corner:focus-visible{outline:3px solid white;outline-offset:2px}.merchant-image-controls{position:absolute;inset:0;pointer-events:none;z-index:6}.merchant-image-controls .image-expand-corner{pointer-events:auto}.photobook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:12px}.photobook-card{padding:12px;text-align:center;min-width:0}.photobook-card .image-frame{display:block;width:100%;margin-bottom:10px}.photobook-image{display:block;width:100%;height:220px}.character-reference>.image-frame{display:block;width:min(100%,320px);margin:10px auto}.inventory-bag{display:flow-root}.bag-art{width:88px;height:104px;float:right;margin:0 0 10px 12px}
.shop-stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:1100px;margin:12px auto}.shop-stock-grid .shop-stock-card{min-width:0;padding:12px;display:grid!important;grid-template-columns:70px minmax(0,1fr);gap:7px 10px;align-items:center}.shop-stock-card>.item-artwork{float:none!important;grid-column:1;grid-row:1/4;width:70px;flex-basis:70px;margin:0!important}.shop-stock-card .inventory-item-art{width:70px;height:70px}.shop-item-name{font-size:13px}.shop-item-price{margin:0;font-size:12px}.shop-stock-card>button{min-width:0;min-height:32px;padding:5px 9px;font-size:12px;justify-self:start}.merchant-sound-controls{display:inline-block;position:relative;margin-left:8px;vertical-align:middle}.merchant-sound-controls>summary{cursor:pointer;list-style:none;width:32px;height:32px;border:1px solid var(--line);border-radius:5px;display:grid;place-items:center;font-size:20px}.merchant-sound-controls>.merchant-audio-controls{position:absolute;z-index:12;right:0;width:260px;background:#121019f5;padding:12px;box-shadow:0 8px 20px #0009}.merchant-scene-header{min-height:clamp(125px,20vw,225px)!important}.merchant-scene{max-width:1180px;margin-inline:auto}
.camera-viewport{position:relative;overflow:hidden!important;touch-action:none;overscroll-behavior:contain;cursor:grab;outline:1px solid #b1925766;border-radius:7px}.camera-viewport:active{cursor:grabbing}.camera-content{will-change:transform;user-select:none;max-width:none!important}.camera-content img{user-select:none;-webkit-user-drag:none}.camera-control{min-width:34px!important;min-height:30px!important;height:30px;padding:4px 9px!important;font-size:12px;flex:none!important}.minimap-controls{display:flex;justify-content:flex-end;gap:5px;margin-top:6px}.personal-minimap{position:relative;max-width:460px;aspect-ratio:1280/853;max-height:260px}.personal-minimap .continent-map-stage{width:100%;max-width:none}.expanded-minimap{width:100%;height:min(60vh,560px)}.mission-map-viewport{max-height:60vh;aspect-ratio:1280/853}.art-viewer.camera-viewport{height:min(63vh,620px);max-height:70vh;width:100%;touch-action:none}.full-art.camera-content{width:100%;height:auto;max-width:none;user-select:none}.mission-tabs{display:flex;gap:6px;margin:10px 0 14px}.mission-tabs button{min-height:34px;font-size:13px}
@media(min-width:1000px){#view:not(:has(.home-dashboard))>.section,#view:not(:has(.home-dashboard))>.heading{max-width:1140px;margin-left:auto;margin-right:auto}}
@media(max-width:1050px){.shop-stock-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-dashboard{grid-template-columns:minmax(260px,1fr) minmax(280px,1fr);gap:12px}}
@media(max-width:740px){header{padding:9px 10px;gap:8px}.grimoire-mark{width:36px;height:36px}.connection{font-size:10px;max-width:118px}header h1{font-size:clamp(17px,4vw,25px)}body.button-navigation #shell{padding:8px}main.squad-window,main.squad-window.dm-panel{padding:12px;border-width:2px}.home-dashboard{grid-template-columns:minmax(0,1fr)}.home-dashboard .roleplay-panel{height:380px;min-height:280px;max-height:65vh;resize:none}.home-conversation{margin-top:4px}.home-primary-navigation .primary-destination{min-height:44px;font-size:13px}.home-secondary-navigation button{font-size:11px}.breadcrumbs{gap:5px;font-size:11px}.breadcrumbs button{font-size:11px;padding:5px 8px;min-width:55px}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-card{padding:9px}.roster-portrait{width:78px;height:105px}.image-expand-corner{width:34px;min-width:34px!important;height:34px;min-height:34px!important}.expanded-minimap{height:55vh}.photobook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photobook-image{height:180px}.photobook-card{padding:8px}.camera-viewport{touch-action:none}.identity-chat{margin:8px 0;gap:10px}}
@media(max-width:460px){.shop-stock-grid{grid-template-columns:minmax(0,1fr)}.shop-stock-grid .shop-stock-card{grid-template-columns:64px minmax(0,1fr)}.shop-stock-card>.item-artwork,.shop-stock-card .inventory-item-art{width:64px;height:64px}.photobook-image{height:145px}.roster-card button{font-size:11px}.breadcrumbs>span:not(.pill){display:none}header h1{font-size:clamp(16px,4.2vw,20px)}.connection{max-width:95px}.home-primary-navigation{gap:6px}}
@media(prefers-reduced-motion:reduce){.camera-content{will-change:auto}.world-pin,.camera-content{transition:none!important}}

.reference-grimoire{display:block;width:min(100%,320px);height:360px;object-fit:contain;margin:12px auto;border:1px solid #a88b536e;border-radius:5px;background:#080b134d}

.field-panel{min-width:0}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:.65rem}.field-card{min-width:0;margin:.6rem 0}.field-card h3{margin:.1rem 0 .4rem}.field-details{border:1px solid color-mix(in srgb,var(--accent,#d5b663) 50%,transparent);border-radius:8px;margin:.7rem 0;padding:.65rem}.field-details>summary{cursor:pointer;font-weight:700;line-height:1.4}.field-details[open]>summary{margin-bottom:.8rem}.field-art{max-width:160px;max-height:160px;object-fit:contain}.field-form .field{display:flex;flex-direction:column;gap:.3rem;margin:.6rem 0}.field-form input[type=checkbox],.field-panel input[type=checkbox]{width:1.1rem;height:1.1rem}.field-ingredient{border:1px solid #887a595c;margin:.65rem 0;padding:.6rem;border-radius:6px}.field-lot-row{display:grid;grid-template-columns:minmax(120px,1fr) 90px auto;gap:.5rem;align-items:end}.field-countdown{font-variant-numeric:tabular-nums}.field-level-preview{margin-top:.8rem}.meal-effect{padding:.6rem;border-left:3px solid var(--accent,#d5b663);background:#ffffff08}.field-panel button{margin:.25rem;min-height:38px}.field-results-host{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;pointer-events:none}.field-result{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:min(92vw,620px);padding:1rem 1.8rem;background:radial-gradient(ellipse,#09090cec 20%,#09090c90 65%,transparent 76%);filter:drop-shadow(0 2px 8px #000)}.field-result-word{font-family:Georgia,serif;font-size:clamp(2.8rem,8vw,5.2rem);letter-spacing:.08em;line-height:1.25;text-shadow:0 2px 2px #000}.field-success .field-result-word{color:#f1cd62}.field-failure .field-result-word{color:#fa6664}.field-result-discipline{font-size:.9rem;text-transform:uppercase;letter-spacing:.16em}.field-result p{max-width:48ch;margin:.4rem 0;color:#fff}.field-result-art{max-width:min(76vw,520px);max-height:140px;object-fit:contain}.field-result-art+.field-result-word{font-size:1.5rem}.field-results-host:empty{display:none}@media(max-width:560px){.field-lot-row{grid-template-columns:1fr 80px}.field-lot-row>button{grid-column:1/-1}.field-details{padding:.5rem}.field-result{padding:.75rem}.field-panel .field-grid{grid-template-columns:1fr}}


.compact-sheet-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:18px;align-items:start;max-width:1480px;margin:0 auto}
.compact-sheet-layout>*{min-width:0}.compact-sheet-main{min-width:0}.sheet-identity{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.sheet-portrait{width:94px;height:126px;object-fit:contain;border:1px solid var(--gold);border-radius:8px;background:#0b0b10;flex:0 0 auto}.sheet-identity-copy{min-width:0;flex:1}.sheet-identity h2{margin:0;font-size:24px}.sheet-magic{color:var(--gold)}.sheet-identity-copy p{margin:3px 0}.sheet-core-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sheet-core-stat{display:flex;flex-direction:column;min-width:70px;padding:4px 9px;border:1px solid #695b43;border-radius:6px;background:#090b1099}.sheet-core-stat>span{font-size:11px;color:var(--muted)}.sheet-core-stat>strong{font-size:17px}
.compact-sheet-body{display:grid;grid-template-columns:102px minmax(0,1fr);gap:14px;margin-top:12px}.sheet-abilities{display:flex;flex-direction:column;gap:8px}.sheet-ability{display:flex;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:8px;padding:8px;text-align:center;background:#080b1099}.sheet-ability>span{font-size:11px}.sheet-ability>strong{font-size:16px;white-space:nowrap}.sheet-ability button{font-size:11px;text-align:center;padding:3px;margin-top:3px;min-height:32px}.sheet-tabs-content{min-width:0}.sheet-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;position:sticky;top:0;background:#14121bf2;z-index:2;padding:3px 0}.sheet-tabs button{min-height:44px;padding:6px 3px;text-align:center;font-size:12px;border-radius:6px}.sheet-tab-panel{padding-top:10px;min-height:320px}.sheet-tab-panel .section{margin-top:12px}.sheet-tab-panel .grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.sheet-skills,.sheet-dm-controls,.sheet-description{margin:10px 0}.sheet-skills button{margin:3px}
.compact-action-row,.compact-spell-row{border-bottom:1px solid #695b435e;padding:9px 4px}.compact-action-row>strong{display:block}.compact-action-row summary,.compact-spell-row summary{cursor:pointer}.compact-action-row summary strong{display:block}.compact-action-row summary span{display:block}.compact-action-row p{margin:5px 0}.compact-spells>input{width:100%;margin:0 0 8px}.compact-spell-row summary{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;list-style-position:inside}.spell-row-meta{font-size:12px;color:var(--gold)}.spell-row-effect{font-size:12px;color:var(--muted)}.spell-inline-details p{white-space:pre-wrap;margin:9px 0;font-size:13px}.damage-components{display:flex;flex-wrap:wrap;gap:6px}.damage-component{display:inline-block;border:1px solid #80683e;border-radius:5px;padding:3px 7px;font-size:12px;margin:3px}.sheet-chat-drawer{min-width:0;position:sticky;top:0}.sheet-chat-drawer>summary{min-height:44px;cursor:pointer;color:var(--gold);font-weight:600}.sheet-chat-drawer .roleplay-panel{width:100%;max-width:none;margin:0}.sheet-chat-drawer .chat-log{max-height:55dvh;min-height:240px}.compact-sheet-main .slot-chip{font-size:12px}.compact-sheet-main>.section{margin:5px 0}

.equipment-external-layout{display:grid;grid-template-columns:minmax(105px,1fr) minmax(130px,210px) minmax(105px,1fr);column-gap:20px;align-items:center;max-width:700px;margin:14px auto}.equipment-slot-column{display:grid;gap:7px;align-content:center}.equipment-body{align-self:center;min-width:0;text-align:center}.equipment-body .equipment-form{position:static;display:block;width:100%;height:auto;max-height:650px;object-fit:contain;opacity:1}.equipment-slot{position:static;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;column-gap:7px;align-items:center;min-height:70px;padding:6px;width:100%;border:1px solid #9b8056;background:#101019e6;border-radius:8px;overflow:hidden}.equipment-slot-thumbnail{width:52px;height:52px;grid-row:1 / 3;display:flex;align-items:center;justify-content:center;overflow:hidden}.equipment-slot-thumbnail img{width:52px!important;height:52px!important;object-fit:contain;margin:0;float:none}.equipment-empty-symbol{font-size:24px;line-height:1;color:#c1ac7f}.equipment-slot-name{font-size:11px;color:var(--muted)}.equipment-slot-item{font-size:11px;line-height:1.25}.equipment-owned-row,.equipment-choice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid #695b435e}.equipment-owned-row img,.equipment-choice img,.equipment-comparison-art img{width:56px!important;height:56px!important;object-fit:contain;margin:0;float:none}.equipment-owned-row>strong{flex:1}.equipment-comparison-line{margin:7px 0}.equipment-displaced,.soulbind-warning{border:1px solid var(--gold);border-radius:8px;padding:12px;margin:12px 0}.soulbind-warning{background:#382a1688}.equipment-caps{margin:12px 0}.library-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1050px;margin:16px auto}.library-room button{margin:4px}.icon-control,.merchant-audio-speaker{min-width:44px;min-height:44px;text-align:center}.home-primary-navigation{max-width:760px;margin-left:auto;margin-right:auto}.shop-stock-grid{grid-template-columns:repeat(auto-fill,minmax(150px,220px));justify-content:center}.shop-stock-card{min-width:0}.shop-stock-card img{max-width:120px;max-height:120px;object-fit:contain}.merchant-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,220px));justify-content:center;gap:12px}.merchant-choice-grid button{min-height:70px}.merchant-choice-grid .active{outline:1px solid var(--gold)}
@media(max-width:1120px){.compact-sheet-layout{grid-template-columns:minmax(0,1fr)}.sheet-chat-drawer{position:static}.sheet-chat-drawer .chat-log{max-height:320px;min-height:170px}.equipment-external-layout{max-width:650px}.sheet-chat-drawer>summary{display:block}}
@media(max-width:650px){.compact-sheet-body{grid-template-columns:minmax(0,1fr)}.sheet-abilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.sheet-ability{padding:5px}.sheet-ability>strong{font-size:14px}.sheet-ability button{min-height:36px}.sheet-identity{gap:9px}.sheet-portrait{width:65px;height:96px}.sheet-identity h2{font-size:20px}.sheet-core-stat{min-width:56px;padding:3px 5px}.sheet-core-stat>strong{font-size:14px}.sheet-core-stat>span{font-size:10px}.sheet-tabs{grid-template-columns:repeat(3,minmax(0,1fr));position:static}.sheet-tabs button{font-size:12px}.equipment-external-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.equipment-body{grid-column:1/-1;grid-row:1}.equipment-body .equipment-form{height:230px;max-width:200px;margin:auto}.equipment-slot-column{display:contents}.equipment-slot{grid-template-columns:48px minmax(0,1fr);min-height:66px;padding:5px;column-gap:5px}.equipment-slot-thumbnail,.equipment-slot-thumbnail img{width:48px!important;height:48px!important}.library-rooms{grid-template-columns:minmax(0,1fr)}.compact-sheet-layout{gap:10px}.sheet-chat-drawer .roleplay-panel{min-width:0}.sheet-chat-drawer .chat-composer{min-width:0}.sheet-chat-drawer textarea{width:100%;min-width:0}.equipment-v1{min-width:0}.sheet-tab-panel{min-width:0}.sheet-core-stats{gap:5px}.merchant-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.compact-sheet-layout *{scroll-behavior:auto}}
.akg-audio-toggle{min-width:44px;min-height:44px;text-align:center;padding:7px;font-size:20px}.merchant-exit-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #786542;background:#100f16ed;padding:8px 12px;margin:8px 0;font-size:13px}.merchant-exit-caption p{margin:0}.ui-line-icon{width:22px;height:22px;object-fit:contain;vertical-align:middle;margin-right:5px}.damage-type-icon{width:16px;height:16px;object-fit:contain;margin-right:5px;vertical-align:middle}.equipment-slot-icon{width:24px!important;height:24px!important;object-fit:contain}.chat-channel-tabs{display:flex;flex-wrap:wrap;gap:4px}.chat-channel-tabs button{min-height:44px;flex:1 1 auto;display:flex;align-items:center;justify-content:center}.chat-sending-identity{color:var(--muted);display:block;margin:5px 0}.library-rooms{background-position:center!important;background-size:cover!important;padding:12px;border-radius:10px}.damage-component{display:inline-flex;align-items:center}

.magic-attribute-icon{width:18px;height:18px;object-fit:contain;vertical-align:middle;margin-left:6px}


.combat-pause-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;border:2px solid var(--gold);border-radius:8px;background:#291d0ff5;color:#fff2d2;padding:10px 12px;margin:8px 0;position:sticky;top:0;z-index:4}.combat-pause-banner strong{font-size:16px}.combat-pause-reason{flex:1;min-width:100px;font-size:12px}.combat-pause-banner button,.combat-pause-controls button{min-height:44px}.combat-pause-banner.compact{position:static;margin:0 0 7px;padding:6px 10px}.combat-pause-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:5px 0}.combat-pause-controls .muted{margin:0}.presence-lost>.turn-portrait,.turn-card.presence-lost .turn-portrait{filter:grayscale(1);opacity:.55}.map-token.presence-lost{filter:grayscale(1);opacity:.55}body.has-combat-pause-control.has-timeline{--timeline-space:208px}body.combat-paused.has-timeline{--timeline-space:226px}
@media(max-width:760px){body.has-combat-pause-control.has-timeline #shell{padding-bottom:250px}body.combat-paused.has-timeline #shell{padding-bottom:285px}.combat-pause-banner{gap:6px;padding:8px}.combat-pause-banner.compact .combat-pause-reason{flex-basis:55%;font-size:11px}.combat-pause-banner.compact strong{font-size:14px}}


.roleplay-panel{min-height:320px}
.roleplay-panel>*{min-width:0}
.roleplay-panel .chat-top{flex:0 0 auto;min-height:44px}
.roleplay-panel .chat-top strong{min-width:0;white-space:nowrap}
.roleplay-panel .chat-channel-tabs{flex:0 0 auto;display:flex;flex-wrap:nowrap;max-height:52px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;overscroll-behavior-x:contain;scrollbar-width:thin}
.roleplay-panel .chat-channel-tabs:empty{display:none}
.roleplay-panel .chat-channel-tabs button{flex:0 0 auto;min-width:0;max-width:none;min-height:44px;white-space:nowrap}
.roleplay-panel .chat-sending-identity{flex:0 0 auto;max-height:20px;line-height:20px;margin:3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roleplay-panel .chat-log,.sheet-chat-drawer .roleplay-panel .chat-log{flex:1 1 0;min-height:0;min-block-size:0;height:auto;max-height:none;overflow:auto}
.roleplay-panel .chat-new{flex:0 0 28px;height:28px;min-height:28px;max-height:28px}
.roleplay-panel .chat-composer{flex:0 0 auto;min-width:0;min-height:0;grid-template-columns:minmax(0,1fr) 66px;align-items:center}
.roleplay-panel .chat-composer textarea{width:100%;height:64px;min-height:54px;max-height:64px;resize:none}
.roleplay-panel .chat-composer>.chat-reply-preview{grid-column:1;max-height:20px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roleplay-panel .chat-composer>.chat-reply-preview:empty{display:none}
.roleplay-panel .chat-composer>.chat-reply-preview+button{grid-column:2;min-width:0;width:66px;min-height:44px}
.roleplay-panel .private-inbox{flex:0 0 auto;max-height:48px;overflow:auto}
.roleplay-panel:has(.chat-channel-tabs:not(:empty)){min-height:350px}
.roleplay-panel:has(.chat-composer>.chat-reply-preview:not(:empty)){min-height:400px}
.sheet-tabs button,.sheet-ability button{min-width:0;width:100%;max-width:100%}
.roleplay-panel:has(.private-inbox:not([hidden])) .chat-log{min-height:0;min-block-size:0}

.image-frame .image-expand-corner,.merchant-image-controls .image-expand-corner,.personal-minimap>.image-expand-corner{top:auto!important;right:0!important;bottom:0!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;font-size:18px!important;color:#fff;text-shadow:0 1px 3px #000,0 0 3px #000;border-radius:5px!important}
.image-expand-corner::before,.image-expand-corner::after{display:none!important}
.image-expand-corner:hover{background:#0003!important}.image-expand-corner:focus-visible{outline:2px solid #fff!important;outline-offset:-3px!important;background:#0003!important}
.creature-badge-row{right:auto!important;left:0!important;bottom:0!important;justify-content:flex-start!important;gap:1px}.creature-badge-row .creature-rank-badge,.creature-badge-row:has(img:nth-child(2)) .creature-rank-badge{width:30px!important;height:30px!important}.creature-image{min-width:44px}.creature-image .image-frame{display:block}
.roster-card>.roster-preview{width:auto!important;min-height:32px!important;margin:0!important;padding:3px 7px!important;font-size:11px!important;align-self:center;background:transparent!important;box-shadow:none!important;border-color:transparent!important}.roster-card>.roster-preview:hover{border-color:var(--accent)!important}
.character-editor-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}.inline-character-editor{padding:12px;border:1px solid var(--accent);border-radius:8px;background:#090910e8;min-width:0}.editor-fields,.editor-abilities{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:10px}.editor-abilities{margin:12px 0;border:1px solid var(--line);border-radius:6px}.editor-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:13px}.editor-field input,.editor-field textarea{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--text,#f3eee4);background:#161821;border:1px solid var(--line);border-radius:5px;padding:8px;font:inherit}.editor-field textarea{font-family:ui-monospace,monospace;font-size:12px;resize:vertical}.editor-section,.editor-derived,.editor-history{padding:8px;margin:7px 0;border:1px solid var(--line);border-radius:5px}.editor-section summary,.editor-derived summary,.editor-history summary{min-height:36px;cursor:pointer;line-height:36px}.editor-derived pre{max-width:100%;overflow:auto}.editor-error{color:#ffb7b7;background:#54191c;padding:10px;border-radius:5px;white-space:pre-wrap}
.chat-media{margin:7px 0;max-width:100%;min-width:0}.chat-media-content{display:block;max-width:100%;max-height:280px;object-fit:contain;border-radius:5px;background:#05070b}.chat-media img{cursor:zoom-in}.chat-media figcaption{overflow-wrap:anywhere}.chat-top .chat-expand{font-size:20px;width:40px!important;min-width:40px!important;min-height:40px!important;padding:2px!important;background:transparent;box-shadow:none}
.roleplay-panel.chat-expanded{min-height:0!important;resize:none!important;box-shadow:0 0 0 100vmax #000a,0 8px 50px #000b}.roleplay-panel.chat-expanded .chat-log{min-height:0!important}.roleplay-panel.chat-expanded .chat-media-content{max-height:55dvh}.chat-expanded-open{overflow:hidden}
@media(max-width:650px){.chat-top{gap:3px;padding:5px}.chat-top button.small{font-size:11px;min-width:44px!important;padding:4px}.inline-character-editor{padding:9px}.editor-fields,.editor-abilities{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-field{font-size:12px}.home-primary-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.home-secondary-navigation button{flex:0 1 auto}.roster-card .small:not(.roster-preview){min-height:44px}.chat-media-content{max-height:230px}#view,.compact-sheet-main,.sheet-tab-panel,.roster-card{overflow-wrap:anywhere;min-width:0}}
.editor-live-sync{margin:8px 0;padding:8px;border:1px solid var(--line);border-radius:6px}.editor-live-sync>summary{min-height:36px;cursor:pointer}.editor-sync-fields{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.editor-sync-fields>label{display:flex;align-items:center;gap:5px;min-height:36px;padding:3px 7px;border:1px solid var(--line);border-radius:4px;font-size:12px}.editor-sync-fields input{width:18px;min-width:18px;height:18px;min-height:18px}


:root{--activity-toolbar-height:48px;--panel-frame:url('/assets/ui-execution/akg_ui_panel_frame_v1.png');--portrait-frame:url('/assets/ui-execution/akg_ui_portrait_frame_v1.png');--item-frame:url('/assets/ui-execution/akg_ui_item_frame_v1.png');--notification-frame:url('/assets/ui-execution/akg_ui_notification_frame_v1.png');--tab-frame:url('/assets/ui-execution/akg_ui_tab_selected_v1.png')}
html,body{max-width:100%;overflow-x:clip}body{min-width:0}
body>header.activity-toolbar{height:var(--activity-toolbar-height);min-height:var(--activity-toolbar-height);padding:4px 10px;gap:8px;box-sizing:border-box;display:flex;align-items:center;flex-wrap:nowrap;border-bottom:1px solid #806c44;background:rgba(11,10,16,.94);position:relative;z-index:6}
.activity-toolbar .grimoire-mark{width:30px;height:30px;flex:0 0 30px;object-fit:contain}.activity-toolbar .product-title{display:none}.activity-toolbar .connection{font-size:10px;gap:4px;margin-left:auto;white-space:nowrap}.activity-toolbar #status{max-width:115px;overflow:hidden;text-overflow:ellipsis}.activity-toolbar #reconnect{padding:3px 6px;min-height:28px}
#activity-toolbar-controls{min-width:0;flex:1}.activity-toolbar .breadcrumbs{margin:0;padding:0;display:flex;align-items:center;gap:5px;flex-wrap:nowrap;min-height:34px;min-width:0}.activity-toolbar .breadcrumbs>span:not(.pill){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;min-width:28px;flex:1}.activity-toolbar button{min-height:32px;padding:4px 8px;white-space:nowrap;flex:0 0 auto}.activity-toolbar .pill{font-size:10px;padding:3px 5px}.activity-toolbar .toolbar-settings{min-width:32px;width:32px;padding:3px}.activity-toolbar .toolbar-ping{font-size:11px}.activity-toolbar .breadcrumbs .speaker-toggle{margin:0}
body.button-navigation #shell{width:100%;max-width:1680px;height:calc(100dvh - var(--activity-toolbar-height));min-height:0;box-sizing:border-box;margin:0 auto;padding:10px;display:grid;grid-template-columns:204px minmax(0,1fr) minmax(360px,400px);grid-template-areas:'identity content chat';align-items:stretch;gap:10px}
#nav[hidden]{display:none}#activity-identity{grid-area:identity;min-width:0;overflow-y:auto;scrollbar-width:thin;padding:5px 2px}#activity-chat{grid-area:chat;min-width:0;min-height:0;display:flex;flex-direction:column}#activity-chat[hidden]{display:none}#shell.without-activity-chat{grid-template-columns:204px minmax(0,1fr);grid-template-areas:'identity content'}
body.button-navigation #main-panel{grid-area:content;min-width:0;min-height:0;height:auto;max-height:none;display:flex;flex-direction:column;border:20px solid transparent;border-image-source:var(--panel-frame);border-image-slice:64;border-image-width:20px;border-image-repeat:stretch;border-radius:0;padding:0;background:linear-gradient(rgba(var(--squad-rgb),var(--squad-alpha)),rgba(var(--squad-rgb),.12)),rgba(11,10,16,.86);box-shadow:none;overflow:hidden;position:relative}
body.button-navigation #main-panel.dm-panel{background:rgba(0,0,0,.82)}#main-panel>footer{display:none}#notice{flex:0 0 auto;margin:0 0 5px;font-size:11px;line-height:1.3;padding:3px 5px}#notice:empty{display:none}#pending:empty{display:none}#main-panel #view{flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:0 4px 8px;scrollbar-width:thin}#view>.page-heading{margin-top:0}#view>h2:first-child{margin-top:0}#view .breadcrumbs{display:none}
#activity-identity .compact-identity{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin:0;padding:0;border:0;background:none;min-height:0;text-align:center}#activity-identity .compact-identity>div:last-child{min-width:0}#activity-identity .compact-identity strong{display:block;font-size:17px;line-height:1.25;overflow-wrap:anywhere}#activity-identity .compact-identity p{line-height:1.4;margin:5px 0;font-size:11px}#activity-identity .image-frame{display:block;width:180px;max-width:100%;height:252px;align-self:center;box-sizing:border-box;position:relative;border:12px solid transparent;border-image-source:var(--portrait-frame);border-image-slice:64;border-image-width:12px;border-image-repeat:stretch;background:linear-gradient(rgba(var(--squad-rgb),.2),rgba(15,12,20,.25));border-radius:0;overflow:visible}#activity-identity .portrait,#activity-identity .dm-portrait{display:block;width:100%;height:100%;max-width:none;max-height:none;min-width:0;object-fit:cover;object-position:var(--portrait-focus,50% 25%);transform:scale(var(--portrait-scale,1));border:0;border-radius:0;background:transparent}#activity-identity .compact-identity>img,#activity-identity .compact-identity>.empty{width:180px;height:252px;align-self:center;border:12px solid transparent;border-image-source:var(--portrait-frame);border-image-slice:64;border-image-width:12px;object-fit:cover}.portrait-crop-viewport{display:block;width:100%;height:100%;overflow:hidden}
#activity-identity .identity-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:10px}#activity-identity .identity-shortcuts button{min-width:0;padding:7px 3px;font-size:11px;overflow-wrap:anywhere}#activity-identity .roll-destination{font-size:10px;line-height:1.4;padding:6px;margin-top:8px;border-top:1px solid #a3864d55;color:#dfd3ba;text-align:center}
#activity-chat>.roleplay-panel{width:100%;height:100%;min-height:0;max-height:none;box-sizing:border-box;border:20px solid transparent;border-image-source:var(--panel-frame);border-image-slice:64;border-image-width:20px;border-image-repeat:stretch;border-radius:0;background:linear-gradient(rgba(var(--squad-rgb),.12),rgba(var(--squad-rgb),.06)),rgba(9,9,14,.92);box-shadow:none;padding:0;overflow:hidden}#activity-chat .roleplay-panel.chat-expanded{position:fixed!important;inset:calc(var(--activity-toolbar-height) + 8px) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;z-index:900;transform:none!important;width:auto!important;height:auto!important;max-width:none!important;max-height:none!important;min-height:0!important;margin:0!important;box-sizing:border-box;overflow:hidden}#activity-chat .chat-log{min-height:100px;flex:1 1 auto;scrollbar-width:thin}#activity-chat .chat-header{min-height:28px;gap:4px;padding:1px 3px;border:0}#activity-chat .chat-header strong{font-size:12px;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#activity-chat .chat-header button{min-height:28px;padding:2px 5px;font-size:12px}#activity-chat .chat-speaking-as{font-size:10px;padding:1px 4px;min-height:14px;line-height:1.3}#activity-chat .chat-channel-tabs{order:9;display:flex;flex-wrap:nowrap;overflow-x:auto;flex:0 0 auto;min-height:34px;max-height:42px;border:0;border-top:1px solid #ad92534d;padding:0;gap:1px;scrollbar-width:thin}#activity-chat .chat-channel-tabs button{font-size:10px;padding:3px 7px;min-width:44px;min-height:32px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto;border:0;border-radius:0;background:transparent}#activity-chat .chat-channel-tabs img{width:14px;height:14px;margin-right:3px}#activity-chat .chat-composer{margin:0;padding:4px 2px;gap:3px;grid-template-columns:minmax(0,1fr) 30px;flex:0 0 auto;border:0;border-top:1px solid #ad92534d;min-height:40px}#activity-chat .chat-composer textarea{grid-column:1;grid-row:auto;width:100%;min-height:32px;height:32px;max-height:96px;resize:none;padding:5px 6px;font-size:12px;line-height:20px;box-sizing:border-box}#activity-chat .chat-composer>button[type=submit]{grid-column:2;min-width:30px;min-height:32px;padding:1px;font-size:19px}#activity-chat .chat-composer .chat-count{font-size:9px;grid-column:1/-1;text-align:right;line-height:1;min-height:0}#activity-chat .chat-reply-preview{font-size:10px;grid-column:1/-1}#activity-chat .chat-reply-preview:empty{display:none}#activity-chat .chat-composer>.chat-reply-preview+button[hidden]{display:none}#activity-chat .chat-composer>button.ghost{grid-column:1/-1;justify-self:start;font-size:10px;padding:1px 4px;min-height:22px}#activity-chat .private-inbox{margin:2px;padding:5px;font-size:11px;max-height:90px;overflow:auto}
.home-dashboard{display:block;min-height:0}.home-primary-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.home-primary-navigation .primary-destination{min-height:62px;padding:9px;font-size:14px;line-height:1.3}.home-secondary-navigation{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.home-conversation{display:none}.home-primary{min-width:0}.home-primary>.compact-identity{display:none}.compact-sheet-layout{display:block}.compact-sheet-main{min-width:0}.compact-sheet .sheet-identity{display:none}.compact-sheet .sheet-body{grid-template-columns:82px minmax(0,1fr);gap:8px}.sheet-tabs{grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}.sheet-tabs button{min-width:0;padding:8px 2px;font-size:11px;border-radius:0;background:transparent}.sheet-content{min-width:0;overflow-wrap:anywhere}.sheet-tabs button[aria-selected=true],.chat-channel-tabs button[aria-selected=true]{position:relative;border-color:transparent;background:rgba(var(--squad-rgb),.22)}.sheet-tabs button[aria-selected=true]::after,.chat-channel-tabs button[aria-selected=true]::after{content:'';pointer-events:none;position:absolute;inset:auto 0 0;height:32px;box-sizing:border-box;border-left:8px solid transparent;border-right:8px solid transparent;border-image-source:var(--tab-frame);border-image-slice:0 32 fill;border-image-width:0 8px;border-image-repeat:stretch}
.ui-frame-panel{border:20px solid transparent;border-image:var(--panel-frame) 64 /20px stretch}.ui-frame-portrait{border:12px solid transparent;border-image:var(--portrait-frame) 64 /12px stretch}.ui-frame-item,.item-artwork>.image-frame,.equipment-slot>.image-frame{border:5px solid transparent;border-image:var(--item-frame) 32 /5px stretch;border-radius:0}.ui-frame-notification{border:8px solid transparent;border-image:var(--notification-frame) 32 /8px stretch}.artwork-viewer-frame.ui-frame-portrait{border:14px solid transparent;border-image:var(--portrait-frame) 64 /14px stretch}.artwork-viewer-frame.ui-frame-item{border:7px solid transparent;border-image:var(--item-frame) 32 /7px stretch}.artwork-viewer-frame.ui-frame-panel{border:14px solid transparent;border-image:var(--panel-frame) 64 /14px stretch}
.action-check,.action-damage-roll{min-width:0;max-width:100%;white-space:normal}.action-filter button{min-width:0}
.activity-toolbar .breadcrumbs>span:not(.pill){display:block}
.chat-media .chat-animation-play{min-width:32px;width:32px;min-height:32px;height:32px;padding:2px;font-size:16px}
.roster-card .image-frame{border:8px solid transparent;border-image:var(--portrait-frame) 64 /8px stretch;border-radius:0;overflow:visible}.roster-card .roster-portrait{object-fit:cover;object-position:var(--portrait-focus,50% 25%);border:0;border-radius:0}.image-frame{isolation:isolate}.image-expand-corner{z-index:3}.image-frame>.portrait-crop-viewport+.image-expand-corner{bottom:0;right:0}.creature-badge-row{z-index:3}.story-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:5px 0 10px}.story-controls .roll-destination{font-size:10px;overflow-wrap:anywhere}.mission-authoring{min-width:0}
@media(max-width:1160px){body.button-navigation #shell{grid-template-columns:170px minmax(0,1fr);grid-template-areas:'identity content' 'chat chat';height:auto;min-height:calc(100dvh - var(--activity-toolbar-height));align-items:start}#activity-identity .image-frame,#activity-identity .compact-identity>img,#activity-identity .compact-identity>.empty{width:156px;height:218px}body.button-navigation #main-panel{min-height:380px;max-height:calc(100dvh - var(--activity-toolbar-height) - 20px)}#activity-chat{height:390px;max-height:65dvh}#shell.without-activity-chat{grid-template-columns:170px minmax(0,1fr)}.activity-toolbar .toolbar-ping{display:none}}
@media(max-width:650px){:root{--activity-toolbar-height:44px}body>header.activity-toolbar{padding:3px 5px;gap:3px}.activity-toolbar .grimoire-mark{width:24px;height:24px;flex-basis:24px}.activity-toolbar .breadcrumbs{gap:2px}.activity-toolbar button{font-size:11px;min-height:32px;padding:3px 5px}.activity-toolbar .breadcrumbs>span:not(.pill){font-size:11px}.activity-toolbar .connection{position:absolute;right:6px;top:1px;pointer-events:none}.activity-toolbar .connection #status{display:none}.activity-toolbar .connection #reconnect:not([hidden]){pointer-events:auto;position:absolute;right:0;top:38px;background:#23192d}.activity-toolbar .pill{display:none}body.button-navigation #shell,#shell.without-activity-chat{display:flex;flex-direction:column;padding:7px;gap:7px;height:auto;min-height:calc(100dvh - var(--activity-toolbar-height));width:100%}#activity-identity{width:100%;overflow:visible;padding:0}#activity-identity .compact-identity{display:grid;grid-template-columns:108px minmax(0,1fr);gap:10px;align-items:center;text-align:left}#activity-identity .image-frame,#activity-identity .compact-identity>img,#activity-identity .compact-identity>.empty{width:108px;height:145px;border-width:8px;border-image-width:8px;justify-self:center}#activity-identity .compact-identity strong{font-size:16px}#activity-identity .compact-identity p{font-size:10px}#activity-identity .identity-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:5px;gap:4px}#activity-identity .identity-shortcuts button{padding:4px 1px;font-size:10px;min-height:30px}#activity-identity .roll-destination{text-align:left;position:relative;margin:3px 0 0;padding:3px 2px;font-size:9px}body.button-navigation #main-panel{width:100%;min-height:0;height:auto;max-height:none;border-width:12px;border-image-width:12px;overflow:visible;background:linear-gradient(rgba(var(--squad-rgb),var(--squad-alpha)),rgba(var(--squad-rgb),.15)),rgba(11,10,16,.87)}#main-panel #view{max-height:none;overflow:visible;padding:0 2px 6px}#notice{font-size:10px}#activity-chat{width:100%;height:430px;max-height:76dvh;min-height:310px}#activity-chat>.roleplay-panel{border-width:12px;border-image-width:12px}#activity-chat .roleplay-panel.chat-expanded{inset:calc(var(--activity-toolbar-height) + 5px) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))!important}.home-primary-navigation{gap:6px}.home-primary-navigation .primary-destination{min-height:48px;font-size:12px;padding:6px}.home-secondary-navigation{gap:4px;margin:8px 0}.home-secondary-navigation button{font-size:11px;padding:5px 7px}.compact-sheet .sheet-body{grid-template-columns:68px minmax(0,1fr);gap:5px}.sheet-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.sheet-tabs button{font-size:11px;padding:7px 2px}.sheet-abilities button{padding:5px 1px}.roster-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.sheet-content>.section{padding:6px}.toolbar{gap:5px}.toolbar button{min-width:0}.character-editor-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.portrait,.dm-portrait,.roster-portrait{transition:none}}
.compact-sheet-body{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px}.sheet-tabs-content,.sheet-tab-panel{min-width:0}.portrait-crop-controls{font-size:10px;margin:5px 2px}.portrait-crop-controls summary{cursor:pointer;color:#d9c697}.portrait-crop-controls .field{gap:1px;margin:4px 0}.portrait-crop-controls input{min-height:20px;padding:0}.chat-overflow{position:relative;flex:0 0 auto}.chat-overflow>summary{list-style:none;cursor:pointer;width:28px;height:28px;text-align:center;line-height:25px;font-size:20px}.chat-overflow>summary::-webkit-details-marker{display:none}.chat-overflow[open]{z-index:8}.chat-overflow[open]>button{display:block;position:absolute;right:0;width:90px;background:#18131d}.chat-overflow[open]>button:nth-child(2){top:28px}.chat-overflow[open]>button:nth-child(3){top:58px}.action-row-core{display:grid;grid-template-columns:minmax(80px,1.1fr) 62px 60px 64px minmax(110px,1.3fr);gap:5px;align-items:start}.action-name{text-align:left;white-space:normal;min-width:0;padding:3px 0;background:transparent;border:0;box-shadow:none;color:var(--accent)}.action-type,.action-range{font-size:10px;line-height:1.4;padding-top:6px}.action-check,.action-damage-roll{min-height:32px;padding:4px 6px;font-size:12px}.action-damage{min-width:0}.action-disabled-reason{font-size:9px;display:block;line-height:1.3;color:#bdb4b8}.action-row-notes{display:flex;flex-wrap:wrap;gap:3px 9px;font-size:10px;line-height:1.35;margin-top:4px}.action-inline-description{font-size:12px}.compact-action-row{border-bottom:1px solid #9d85563d;padding:8px 0}.action-filter{display:flex;flex-wrap:wrap;gap:3px;margin:6px 0}.action-filter button{font-size:10px;padding:3px 5px;min-height:28px}.public-roll-result{position:relative}.public-roll-breakdown{display:block;font-size:11px;padding:5px;background:#18121f;border:1px solid #ab8a4b}.public-roll-breakdown[hidden]{display:none}.damage-component{display:inline-flex;align-items:center;gap:3px;font-size:11px}.damage-component img{width:16px;height:16px}
@media(max-width:1366px) and (min-width:1161px){.action-row-core{grid-template-columns:minmax(80px,1fr) 54px 52px 54px minmax(100px,1.1fr);gap:3px}.action-check,.action-damage-roll{padding:4px}.sheet-tabs button{font-size:10px}}
@media(max-width:650px){.compact-sheet-body{grid-template-columns:64px minmax(0,1fr);gap:5px}.action-row-core{grid-template-columns:minmax(0,1fr) 54px;gap:3px}.action-name{grid-column:1;font-size:12px}.action-type{grid-column:2;grid-row:1;text-align:right}.action-range{grid-column:1;font-size:10px;padding-top:0}.action-check{grid-column:2;grid-row:2;align-self:start}.action-damage{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.action-damage-roll{max-width:100%;white-space:normal}.action-disabled-reason{max-width:100%}.action-row-notes{font-size:9px}.portrait-crop-controls{margin:1px 0}.portrait-crop-controls[open]{padding:5px;max-width:280px}.portrait-crop-controls .field{display:inline-flex;width:30%;margin:0 1%}.portrait-crop-controls input{max-width:100%}}
#activity-chat .chat-top{min-height:28px;padding:0 3px}#activity-chat .chat-top button.small,#activity-chat .chat-top .chat-expand{width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important;padding:1px!important}#activity-chat .chat-top .chat-expand{font-size:18px}.roster-card .image-frame{width:124px;height:168px;box-sizing:border-box}.roster-card .portrait-crop-viewport>.roster-portrait{width:100%;height:100%;max-width:none;max-height:none;transform:scale(var(--portrait-scale,1));object-fit:cover}
#activity-chat .chat-channel-tabs{display:block;overflow:visible;position:relative;min-height:34px;max-height:none}#activity-chat .compact-chat-tabs{display:flex;overflow-x:auto;overflow-y:hidden;gap:2px;scrollbar-width:thin;min-height:34px}#activity-chat .compact-chat-tab{display:flex;flex:0 0 auto;max-width:170px;align-items:center}#activity-chat .compact-chat-tab>button:first-child{max-width:145px}#activity-chat .compact-chat-tab>button+button{width:22px;min-width:22px;padding:1px}.compact-chat-picker{position:absolute;left:0;right:0;bottom:38px;max-height:220px;overflow:hidden;background:#17121f;border:1px solid #ac8b4a;padding:6px;display:flex;flex-direction:column;gap:4px;z-index:14}.compact-chat-picker input{min-width:0;min-height:32px;font-size:12px}.compact-chat-picker-results{display:flex;flex-direction:column;max-height:160px;overflow:auto}.compact-chat-picker-results button{width:100%;max-width:none!important;text-align:left}.compact-chat-error{display:block;position:absolute;bottom:35px;left:0;right:0;padding:4px;background:#351e29;font-size:11px}.compact-chat-tabs .unread{font-weight:bold;color:#f5d47e}.story-mode-status{font-size:11px;color:#cdbb8a}.identity-vitals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:7px 0;padding:6px 3px;border-block:1px solid #a1874b66;background:rgba(var(--squad-rgb),.16)}.identity-vitals div{display:flex;flex-direction:column;text-align:center;min-width:0}.identity-vitals small{font-size:10px;color:#bfb3bd}.identity-vitals strong{font-size:13px}.identity-magic{font-size:12px;color:var(--accent);text-align:center;margin:6px 0 2px}
@media(max-width:650px){.identity-vitals{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:3px 0;padding:3px}.identity-vitals div{min-width:40px}.identity-magic{font-size:11px;margin:3px}.identity-vitals small{font-size:9px}.identity-vitals strong{font-size:12px}}

@media(min-width:1161px){body.has-timeline.button-navigation #shell{height:calc(100dvh - var(--activity-toolbar-height) - var(--timeline-space,156px));padding-bottom:10px}}
@media(max-width:650px){body.has-timeline.button-navigation #shell{padding-bottom:calc(var(--timeline-space,156px) + 8px)}.activity-toolbar .breadcrumbs>button:first-child,.activity-toolbar .breadcrumbs>button:nth-child(2),.activity-toolbar .toolbar-mode,.activity-toolbar .toolbar-character{font-size:0;min-width:30px;width:30px;padding:2px}.activity-toolbar .breadcrumbs>button:first-child::before{content:'⌂';font-size:18px}.activity-toolbar .breadcrumbs>button:nth-child(2)::before{content:'←';font-size:18px}.activity-toolbar .toolbar-mode::before{content:'⇄';font-size:17px}.activity-toolbar .toolbar-character::before{content:'♙';font-size:18px}.activity-toolbar .breadcrumbs>button.danger{font-size:0;min-width:30px;width:30px}.activity-toolbar .breadcrumbs>button.danger::before{content:'■';font-size:16px}}

.chat-media-content[hidden]{display:none!important}.chat-media-error{font-size:11px;line-height:1.35;color:#ddc7a4;margin:3px 0}

.craft-profession-guide{margin-bottom:12px}.craft-profession.locked>summary{color:var(--muted)}.craft-profession>summary{cursor:pointer;min-height:36px;padding:6px}.craft-profession p{overflow-wrap:anywhere}

.primary-destination,.more-button{text-align:center;font-size:clamp(13px,1.15vw,16px)}.sheet-tabs{justify-content:center;margin:0 0 8px}.sheet-tabs button{font-size:clamp(12px,1vw,14px);text-align:center}

/* Reserve native host chrome even when Discord reports a desktop-sized viewport.
   Applied before first paint by index.html; narrow standalone views get the same buffer. */
:root{--discord-mobile-inset:0px}
html.discord-embedded{--discord-mobile-inset:calc(72px + env(safe-area-inset-top,0px))}
@media(max-width:650px),(pointer:coarse){
 :root{--discord-mobile-inset:calc(72px + env(safe-area-inset-top,0px))}
}
body{padding-top:var(--discord-mobile-inset)}
body>header.activity-toolbar{position:sticky;top:var(--discord-mobile-inset);z-index:30;padding-left:max(5px,env(safe-area-inset-left));padding-right:max(5px,env(safe-area-inset-right))}
html{scroll-padding-top:calc(var(--discord-mobile-inset) + var(--activity-toolbar-height))}
#activity-chat .roleplay-panel.chat-expanded{top:calc(var(--discord-mobile-inset) + var(--activity-toolbar-height) + 8px)!important}
body>.artwork-viewer-root{top:var(--discord-mobile-inset)}
dialog[open]{top:var(--discord-mobile-inset);max-height:calc(100dvh - var(--discord-mobile-inset) - 24px)}
@media(min-width:1161px){
 body.button-navigation #shell{height:calc(100dvh - var(--discord-mobile-inset) - var(--activity-toolbar-height))}
 body.has-timeline.button-navigation #shell{height:calc(100dvh - var(--discord-mobile-inset) - var(--activity-toolbar-height) - var(--timeline-space,156px))}
}
/* One navigation size, including Compendium, Photobook, Ranks and More. */
.home-primary-navigation,.home-secondary-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0;padding:0}
.home-primary-navigation .primary-destination,.home-secondary-navigation .primary-destination{width:100%;min-height:62px;padding:9px;font-size:14px;line-height:1.3;text-align:center;overflow-wrap:anywhere}
@media(max-width:650px){.home-primary-navigation .primary-destination,.home-secondary-navigation .primary-destination{min-height:62px;font-size:14px;padding:8px}}
@font-face{font-family:Valortha;src:url('/assets/campaign/valortha.woff') format('woff');font-display:swap}
h1,h2,h3,.heading h2,.section>h3,.dialog-heading h2,.compact-identity strong,.character-identity strong,.compact-sheet-name{font-family:Valortha,Georgia,serif;font-weight:400}


/* Keep the battlefield usable while the turn strip stays visible. */
body.has-timeline{--timeline-space:112px}
body.has-combat-pause-control.has-timeline{--timeline-space:156px}
body.combat-paused.has-timeline{--timeline-space:172px}
#timeline{padding:5px 12px calc(5px + env(safe-area-inset-bottom))}
#timeline .timeline-header{margin-bottom:2px}
#timeline .turn-card{padding:4px 8px;min-width:145px;max-width:220px;max-height:64px}
#timeline .turn-portrait{width:32px;height:32px}
#timeline .turn-details{display:flex;flex-direction:column;min-width:0}
#timeline .timeline-strip{max-height:72px;padding:2px}
.combat-resolution{border:1px solid var(--gold);border-radius:8px;padding:12px;margin:10px 0}
.combat-resolution .card{margin-bottom:6px}
@media(max-width:760px){body.has-timeline #shell,body.has-combat-pause-control.has-timeline #shell,body.combat-paused.has-timeline #shell{padding-bottom:calc(var(--timeline-space) + env(safe-area-inset-bottom) + 8px)}}
/* Encounter workspace: one primary pane at a time, including on phones. */
body.encounter-workspace #activity-identity{display:none!important}
body.encounter-workspace #shell{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:'main'!important;gap:8px!important}
body.encounter-workspace #main-panel{grid-area:main;min-width:0;width:100%;margin:0;min-height:0}
body.encounter-workspace #activity-chat{display:none!important}
body.encounter-workspace.encounter-chat-view #main-panel{display:none!important}
body.encounter-workspace.encounter-chat-view #activity-chat{display:flex!important;grid-area:main;min-width:0;width:100%;height:100%;max-height:none}
body.encounter-workspace.encounter-chat-view #activity-chat>.roleplay-panel{width:100%;height:100%;max-height:none}
body.encounter-workspace .activity-toolbar{height:auto;min-height:var(--activity-toolbar-height);flex-wrap:wrap}
body.encounter-workspace #activity-toolbar-controls{flex:1;min-width:0}
.encounter-tabs{display:flex;gap:6px;width:100%;padding:6px 0}
.encounter-tabs button{flex:1;min-height:44px;text-align:center;font-size:16px}
.encounter-tabs button.active{background:#584322;border-color:var(--gold);color:#fff4d4}
body.encounter-workspace{--activity-toolbar-height:108px}
.encounter-character{display:flex;align-items:center;gap:14px;margin:12px 0}
.encounter-character h3{margin:0;font-size:22px}
.encounter-portrait{width:72px;height:88px;object-fit:cover;border-radius:8px}
.encounter-vitals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:8px 0}
.encounter-vitals>div{display:flex;flex-direction:column;align-items:center;border:1px solid #8a754b;border-radius:6px;padding:6px;background:#13111bcc}
.encounter-vitals small{font-size:12px;color:var(--muted)}
.encounter-vitals strong{font-size:17px}
.encounter-roster{display:flex;overflow-x:auto;gap:6px;padding:6px 0;scrollbar-width:thin}
.encounter-roster button{flex-shrink:0;min-height:44px}
.encounter-common-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.encounter-common-actions button,.encounter-end-turn{min-height:44px}
.encounter-sheet-details,.encounter-items,.encounter-results{margin:12px 0;padding:10px;border:1px solid #67553c;border-radius:6px}
.encounter-sheet-details summary,.encounter-items summary,.encounter-results summary{cursor:pointer;min-height:30px}
body.encounter-workspace .tactical-grid{width:100%;max-width:none;max-height:none}
body.encounter-workspace #view>.heading{margin-bottom:8px}
body.encounter-workspace .compact-action-row{padding:10px 0}
body.encounter-workspace .action-row-core{grid-template-columns:minmax(100px,1fr) 65px 65px minmax(90px,auto);align-items:center}
body.encounter-workspace .action-row-core .action-type{display:none}
body.encounter-workspace .action-name{font-size:15px;text-align:left;min-height:44px}
body.encounter-workspace .action-check,body.encounter-workspace .action-damage-roll{min-height:44px}
@media(max-width:760px){
 body.encounter-workspace{--activity-toolbar-height:112px}
 body.encounter-workspace #main-panel{padding:10px!important}
 body.encounter-workspace #view{padding:0 2px}
 body.encounter-workspace .encounter-vitals{grid-template-columns:repeat(3,minmax(0,1fr))}
 body.encounter-workspace .action-row-core{grid-template-columns:minmax(90px,1fr) 48px 57px minmax(82px,1fr);gap:5px}
 body.encounter-workspace .action-name{font-size:14px;line-height:1.25}
 body.encounter-workspace .action-range{font-size:12px}
 body.encounter-workspace .action-damage-roll{padding:5px;font-size:13px}
 body.encounter-workspace .action-row-notes{font-size:12px}
 body.encounter-workspace .encounter-tabs{position:relative}
 body.encounter-workspace .product-title,body.encounter-workspace .grimoire-mark{display:none}
}

/* Active encounters own one viewport; the old fixed timeline must not cover it. */
body.encounter-workspace{height:100dvh;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column}
body.encounter-workspace>header.activity-toolbar{position:relative;top:0;flex:0 0 auto}
body.encounter-workspace #timeline{display:none!important}
body.encounter-workspace #shell{display:grid!important;flex:1 1 auto;height:auto!important;min-height:0!important;padding:6px!important;overflow:hidden}
body.encounter-workspace #main-panel{height:100%!important;max-height:100%!important;overflow:hidden!important;box-sizing:border-box}
body.encounter-workspace #main-panel #view{min-height:0;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain}
body.encounter-workspace #activity-chat{min-height:0!important;max-height:100%!important;overflow:hidden}

/* Token selection is reversible and does not roll or spend an action. */
button.map-token{pointer-events:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:crosshair}
button.map-token[aria-pressed="true"] .token-label{outline:3px solid var(--accent);outline-offset:3px}
button.map-token:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button.map-token:disabled{pointer-events:none}

/* PC: sheet over map on the left, persistent Discord chat on the right. */
body.map-workspace{height:100dvh;overflow:hidden;display:flex;flex-direction:column;--activity-toolbar-height:80px}
body.map-workspace>header.activity-toolbar{position:relative;flex:0 0 auto;min-height:0;height:auto;padding:4px 10px}
body.map-workspace #shell,body.map-workspace.encounter-workspace #shell{display:grid!important;grid-template-columns:minmax(0,2fr) minmax(285px,1fr)!important;grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:'main chat' 'map chat'!important;flex:1 1 auto;min-height:0!important;height:auto!important;max-width:none;padding:8px!important;gap:8px!important;overflow:hidden}
body.map-workspace #activity-identity,body.map-workspace #timeline{display:none!important}
body.map-workspace #main-panel{grid-area:main;min-width:0;width:100%;height:100%!important;min-height:0;max-height:100%;padding:8px!important;margin:0;overflow:hidden!important;box-sizing:border-box}
body.map-workspace #main-panel #view{min-height:0;overflow:auto!important;overscroll-behavior:contain}
body.map-workspace #activity-chat,body.map-workspace.encounter-workspace #activity-chat{display:flex!important;grid-area:chat;min-width:0;min-height:0!important;width:100%;height:100%;max-height:100%!important;overflow:hidden}
body.map-workspace #activity-chat>.roleplay-panel{width:100%;height:100%;max-height:100%;min-height:0;resize:none}
body.map-workspace #activity-chat .chat-log{min-height:0;max-height:none;flex:1;overscroll-behavior:contain}
#activity-map{grid-area:map;min-width:0;min-height:0;overflow:auto;border:1px solid var(--accent);border-radius:6px;background:#0c1014;overscroll-behavior:contain}
#activity-map[hidden]{display:none}
#activity-map>.section{box-sizing:border-box;margin:0;padding:8px;height:100%;min-height:0;display:flex;flex-direction:column;gap:5px}
#activity-map h2{font-size:17px;margin:0}
.tactical-map-panel>.toolbar{flex:0 0 auto;align-items:center;margin:0}
.tactical-map-panel>.toolbar .field{display:flex;align-items:center;gap:8px;margin:0}
.tactical-map-panel>.toolbar select{min-height:32px;padding:4px 9px}
.tactical-map-viewport{display:flex;align-items:center;justify-content:center;min-height:100px;height:45dvh;overflow:hidden;background:#080c11}
#activity-map .tactical-map-viewport{flex:1 1 auto;min-height:60px;height:0}
.tactical-map-viewport>.tactical-grid{flex:0 0 auto;margin:0;max-width:100%!important;max-height:100%!important;width:auto;box-sizing:border-box}
.map-cell.path-step{box-shadow:inset 0 0 0 2px #7ce4c5!important;background:#3aa18a88!important}
.map-cell.path-end{box-shadow:inset 0 0 0 3px #ffe28a!important;background:#b58c2caa!important}
.map-cell.measure-origin{box-shadow:inset 0 0 0 3px #b7d9ff!important}
.map-cell.fog:disabled{opacity:1}
.path-preview{flex:0 0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.path-preview p{margin:2px 0;font-size:12px;flex:1 1 160px}
.path-preview button{min-height:38px;padding:5px 10px}
.map-collapse{display:none}
.field-map-viewport{position:relative;flex:1;min-height:60px;overflow:hidden}
.field-map-viewport>.continent-map-stage{width:100%;max-height:100%;flex:none}.field-map-viewport .continent-map-image{width:100%;height:100%;object-fit:fill}
.field-workspace-tabs{display:flex;gap:6px;margin-bottom:8px}
body.map-workspace .encounter-character{margin:4px 0;gap:8px}
body.map-workspace .encounter-portrait{width:38px;height:48px}
body.map-workspace .encounter-character h3{font-size:18px}
body.map-workspace .encounter-tabs{padding:2px 0;gap:5px}
body.map-workspace .encounter-tabs button{min-height:34px;font-size:14px}
/* Mobile: sheet first; map opens as a full workspace and collapses explicitly. */
@media(max-width:900px){
 body.map-workspace #shell,body.map-workspace.encounter-workspace #shell{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;grid-template-areas:'main'!important;padding:5px!important;gap:0!important}
 body.map-workspace #activity-chat,body.map-workspace.encounter-workspace #activity-chat,body.map-workspace #activity-map{display:none!important}
 body.map-workspace.workspace-map-open #main-panel,body.map-workspace.workspace-chat-open #main-panel{display:none!important}
 body.map-workspace.workspace-map-open #activity-map{display:flex!important;grid-area:main;flex-direction:column;height:100%;max-height:100%;overflow:hidden}
 body.map-workspace.workspace-chat-open #activity-chat,body.map-workspace.encounter-workspace.workspace-chat-open #activity-chat{display:flex!important;grid-area:main}
 body.map-workspace #activity-map>.section{flex:1;min-height:0;height:0;overflow:auto}
 body.map-workspace .map-collapse{display:block;flex:0 0 auto;margin:5px;min-height:42px;text-align:center}
 body.map-workspace .encounter-tabs button{min-height:44px;font-size:14px}
 body.map-workspace #activity-chat>.roleplay-panel{max-height:100dvh!important;min-height:0!important}
 body.map-workspace .path-preview{padding-bottom:env(safe-area-inset-bottom)}
}

/* Keep the linked chat in view on small screens as well as desktop. */
@media(max-width:900px){
 body.persistent-chat{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
 body.persistent-chat #shell,body.persistent-chat.map-workspace #shell,body.persistent-chat.map-workspace.encounter-workspace #shell{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr) minmax(170px,32dvh)!important;grid-template-areas:'main' 'chat'!important;flex:1;min-height:0!important;overflow:hidden;padding:5px!important;gap:6px!important}
 body.persistent-chat #activity-identity,body.persistent-chat #timeline{display:none!important}
 body.persistent-chat #main-panel{grid-area:main;min-height:0!important;height:100%!important;overflow:hidden!important}
 body.persistent-chat #view{min-height:0;overflow:auto!important}
 body.persistent-chat #activity-chat,body.persistent-chat.map-workspace #activity-chat,body.persistent-chat.map-workspace.encounter-workspace #activity-chat{display:flex!important;grid-area:chat!important;width:100%;min-height:0!important;height:100%!important;max-height:100%!important;overflow:hidden}
 body.persistent-chat #activity-chat>.roleplay-panel{flex:1;min-height:0!important;height:100%;max-height:100%!important;resize:none}
 body.persistent-chat #activity-chat .chat-log{flex:1;min-height:35px;max-height:none;overflow:auto}
 body.persistent-chat.workspace-chat-open #shell{grid-template-rows:minmax(0,1fr)!important;grid-template-areas:'chat'!important}
 body.persistent-chat.workspace-chat-open #activity-map{display:none!important}
}

/* Reply is message chrome, separate from player/NPC text. */
.chat-message-controls{display:flex;justify-content:flex-end;gap:6px;margin-top:2px}
.chat-message-controls .chat-reply-control{background:none;border:0;box-shadow:none;min-width:44px;min-height:32px;padding:3px 6px;font:inherit;font-size:12px;line-height:1.2;color:var(--muted);opacity:.75}
.chat-message-controls .chat-reply-control:hover,.chat-message-controls .chat-reply-control:focus-visible{opacity:1;color:var(--accent)}
@media(pointer:coarse){.chat-message-controls .chat-reply-control{min-height:44px}}

/* The roster identity opens its sheet; only the corner magnifier expands art. */
.roster-card .roster-name{font:inherit;font-weight:700;text-align:center;border:0;background:none;box-shadow:none;padding:.35rem;min-height:44px;color:inherit;width:100%;}
.roster-card .roster-name:hover,.roster-card .roster-name:focus-visible{text-decoration:underline;}
.roster-portrait-slot{height:168px;width:124px;display:grid;place-items:center;flex:0 0 168px;}
.roster-portrait-slot>.image-frame{margin:0;}
.roster-card .roster-name{margin-top:0;min-height:54px;display:grid;place-items:center;}
.roster-card .partner-role{margin:0;line-height:1.4;}
.roster-card>.roster-preview{margin-top:auto!important;}
.roster-portrait[role="button"]{cursor:pointer;}

/* Merchant lists: artwork and price remain visible at every screen width. */
.shop-stock-list{display:flex;flex-direction:column;gap:8px;width:100%;max-width:1200px;margin:16px auto}
.shop-product-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #796744;border-radius:8px;background:rgba(12,12,17,.9)}
.shop-product-row>img,.shop-product-row>.field-art,.shop-product-row>.item-art,.shop-product-row>.image-wrap{width:64px;height:64px;object-fit:contain;margin:0;grid-column:1}
.shop-product-copy{min-width:0;display:flex;flex-direction:column;gap:4px;grid-column:2}
.shop-product-copy .shop-item-name{font-size:16px;line-height:1.35;word-break:normal;overflow-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shop-product-copy small{font-size:12px;line-height:1.4}.coin-price,.coin-amount{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:14px}.coin-price{gap:8px}.currency-coin{width:20px;height:20px;object-fit:contain}
.merchant-choice-grid{display:flex;position:static;flex-direction:row;flex-wrap:wrap;flex-shrink:0;gap:8px;margin-bottom:12px}.merchant-choice-grid button{flex:1 1 180px;width:auto;min-height:44px;text-align:center;font-size:15px}.merchant-choice-grid [aria-disabled=true]{opacity:.6}.merchant-choice-grid [aria-pressed=true]{border-color:#f0cf7c;background:#493b28}
@media(max-width:520px){.shop-product-row{grid-template-columns:48px minmax(0,1fr) auto;gap:8px;padding:8px}.shop-product-row>img,.shop-product-row>.field-art,.shop-product-row>.item-art,.shop-product-row>.image-wrap{width:48px;height:48px;grid-row:1 / 3}.shop-product-row .coin-price{grid-column:2;grid-row:2}.shop-product-row>button{grid-column:3;grid-row:1 / 3}.shop-product-copy .shop-item-name{font-size:15px}.merchant-choice-grid button{flex-basis:140px}}

/* One spell hierarchy, shared by Actions and Grimoire. */
.compact-action-row{padding:14px 0;border-bottom:1px solid #5b5140;font-size:14px;line-height:1.5}.compact-action-row .action-row-core{display:flex;align-items:center;justify-content:space-between;gap:12px}.action-row-core .action-name{font-family:inherit;font-size:16px;font-weight:600;line-height:1.4;padding:0;text-align:left;white-space:normal}.action-roll-controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.action-roll-controls button{min-width:52px;min-height:36px;font-size:14px}.compact-action-row .action-flavor{font-size:14px;line-height:1.5;margin:7px 0;white-space:normal;overflow-wrap:normal}.action-rules{font-size:13px;color:#c7c5c1}.action-rules summary{cursor:pointer;padding:4px 0}.action-rules p{font-size:13px;line-height:1.5;margin:6px 0}.action-roll-controls .action-damage-roll{margin:0}.compact-action-row .action-disabled-reason{font-size:13px}
.shop-product-row>.image-frame{width:64px;height:64px;min-width:0;max-width:64px;margin:0;grid-column:1;overflow:hidden;box-sizing:border-box}
.shop-product-row>.image-frame>img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;margin:0}
@media(max-width:520px){.shop-product-row>.image-frame{width:48px;height:48px;max-width:48px;grid-row:1 / 3}}

/* Owner: explained rows, compact copy controls, no wall of buttons. */
.destination-rows{display:grid;gap:10px}.destination-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr;align-items:center;gap:16px;padding:8px 0;border-bottom:1px solid #a58c5033}.destination-button{width:100%;min-height:48px;text-align:center}.destination-description{margin:0;font-size:1rem;line-height:1.45;color:#ddd6c6}.home-primary-navigation,.home-secondary-navigation{display:block}.command-copy-name{padding:0!important;min-height:0!important;border:0!important;background:none!important;text-align:left!important;font:inherit!important;font-weight:bold!important;box-shadow:none!important}.upcast-copy{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.upcast-copy button{min-width:36px}.merchant-scene .merchant-stock{margin-top:0}.merchant-choice-grid{display:flex;flex-wrap:wrap;gap:8px}.merchant-choice-grid button{flex:1 1 180px}.more-grid{display:block}@media(max-width:600px){.destination-row{grid-template-columns:1fr;gap:5px}.destination-description{padding:0 4px;font-size:.94rem}.merchant-choice-grid button{flex-basis:140px}}

/* Merchant cutouts stay frameless, including pointer hover and press. */
.merchant-scene button.merchant-portrait,
.merchant-scene button.merchant-portrait:hover,
.merchant-scene button.merchant-portrait:active{
  border:0;background:transparent;box-shadow:none;filter:none;cursor:zoom-in;
  -webkit-tap-highlight-color:transparent;
}
.merchant-scene button.merchant-portrait:focus:not(:focus-visible){outline:none}

/* Owner readability update: unobtrusive whole-row controls and contained art. */
@font-face{font-family:Vasirem;src:url('/assets/campaign/vasirem_trial.woff') format('woff');font-display:swap}
.destination-section>h3{font-family:var(--font-display);font-size:clamp(23px,2.7vw,30px)!important;margin:22px 0 10px;line-height:1.3}
button.destination-row,button.craft-profession-action{background:transparent!important;border:0!important;border-image:none!important;box-shadow:none!important;border-radius:0;filter:none;min-height:64px;width:100%;text-align:left}
button.destination-row{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr) 22px;gap:18px;padding:14px 8px;border-bottom:1px solid #a58c503d!important}
.destination-label,.craft-profession-name{font:400 clamp(21px,2.4vw,27px)/1.4 Vasirem,Georgia,serif;letter-spacing:.025em;color:#f3d894}
.destination-arrow{font:26px/1 Georgia,serif;color:#ceb475}.destination-description{font-size:15px;line-height:1.65;color:#ded8cc}
button.destination-row:hover .destination-label,button.craft-profession-action:hover .craft-profession-name{color:#fff3c9;text-decoration:underline;text-underline-offset:6px}
.shop-stock-list{gap:8px}.shop-stock-list .shop-product-row{display:grid;grid-template-columns:84px minmax(0,1fr) auto;grid-template-rows:auto;gap:16px;align-items:center;text-align:left;width:100%;padding:12px;background:rgba(12,12,17,.90)!important;border:0!important;border-bottom:1px solid #a78b4b66!important;border-image:none!important;box-shadow:none!important;border-radius:0;overflow:visible}
.shop-product-row>.item-artwork,.shop-product-row>.image-frame,.shop-product-row>.field-art{grid-column:1;grid-row:1 / 3;width:84px;max-width:84px;min-width:0;margin:0!important;float:none!important;flex-basis:auto}
.shop-product-row .inventory-item-art,.shop-product-row>.field-art,.shop-product-row .field-art{width:76px;height:76px;max-width:100%;object-fit:contain;border:0;background:transparent;margin:0;cursor:pointer}
.shop-product-row .item-artwork>.image-frame{width:76px;max-width:100%;border:0;border-image:none}.shop-product-row .item-rank-badge{right:0;top:-2px;width:30px;height:30px}.shop-product-row .item-rank-label{font-size:11px;line-height:1.4}
.shop-product-copy{grid-column:2;grid-row:1 / 3;min-width:0}.shop-product-copy .shop-item-name{font-size:17px;white-space:normal;text-overflow:clip;overflow:visible;overflow-wrap:break-word;word-break:normal;line-height:1.5}.shop-product-row .coin-price{grid-column:3;grid-row:1 / 3;justify-content:flex-end}
.shop-product-row .image-expand-corner{display:none!important}
.item-detail{display:flex;flex-direction:column;gap:18px;align-items:stretch}.item-detail-art{display:flex;justify-content:center;min-height:150px}.item-detail-art .item-artwork{width:100%;max-width:400px;float:none;margin:0!important}.item-detail-art .inventory-item-art,.item-detail-art .field-art{width:100%;height:clamp(180px,34vh,340px);max-width:400px;object-fit:contain;border:0;background:transparent;cursor:default}.item-detail-art .item-rank-badge{right:14px;top:8px;width:44px;height:44px}.item-detail-art .item-rank-label{font-size:13px}.item-detail-description{font:17px/1.8 Georgia,'Palatino Linotype',serif;max-width:62ch;margin:auto;color:#eee5d7;white-space:pre-line}.item-detail-description p{margin:0 0 12px}.item-detail .image-expand-corner{display:none!important}
.character-view-picker{width:fit-content;max-width:100%;margin:8px 0 14px}.character-view-picker>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.character-view-picker select{width:320px;max-width:100%;min-height:40px;padding:7px 10px;font-size:14px}
.craft-profession-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}.craft-profession{padding:8px 4px 12px;border-bottom:1px solid #ad995d44;min-width:0}.craft-profession-action{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:6px 0!important;min-height:48px!important}.craft-profession-name{font-size:22px}.craft-profession-verb{font-size:13px;color:#ead7a4;white-space:nowrap}.craft-profession summary{font-size:13px;color:var(--muted);cursor:pointer}.craft-profession.locked .craft-profession-name{color:#c1b9ad}.craft-profession details p{font-size:14px;margin:8px 0}.craft-profession-action.active .craft-profession-name{text-decoration:underline;text-underline-offset:6px}
.craft-progress-panel{margin:12px 0 24px}.craft-progress-title{font-size:15px;margin-bottom:7px;color:#eee0c3}.craft-progress-bar{height:36px;position:relative;overflow:hidden;border:1px solid #ab945e;border-radius:6px;background:#100e168c}.craft-progress-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#7c6438,#b69a52);transition:width .8s linear}.craft-progress-countdown{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 3px #000}.craft-daily-counts{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:8px;font-size:13px;color:#d8c9af}
.recognition-list{display:grid;gap:14px;margin:18px 0}.recognition-card{display:grid;grid-template-columns:100px minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px;border:1px solid var(--recognition-color);border-left:4px solid var(--recognition-color);border-radius:10px;background:linear-gradient(115deg,color-mix(in srgb,var(--recognition-color) 19%,#101017),#101017eb 72%);min-width:0}.recognition-crest{width:100px;height:110px;object-fit:contain;filter:drop-shadow(0 3px 8px #0007)}.recognition-identity h3{font-family:Vasirem,Georgia,serif;font-size:25px;line-height:1.4;color:var(--recognition-accent);margin:0 0 6px}.recognition-squad{font-size:14px;color:#ded8cc;margin:0}.recognition-totals{display:flex;gap:28px;text-align:center}.recognition-metric{display:flex;flex-direction:column;gap:5px}.recognition-metric strong{font-size:28px;font-variant-numeric:tabular-nums;color:#f8f1dc}.recognition-metric span{font-size:12px;color:#cec6b4}.recognition-history{grid-column:2 / -1;font-size:14px}.recognition-history summary{cursor:pointer;color:#d9c697}.squad-leadership{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.partner-squad>h3{font-size:25px!important}.partner-role{color:var(--gold);font-size:13px}
@media(max-width:650px){button.destination-row{grid-template-columns:minmax(0,1fr) 20px;gap:3px 12px;padding:12px 3px}.destination-label{grid-column:1}.destination-description{grid-column:1;font-size:14px}.destination-arrow{grid-column:2;grid-row:1 / 3}.craft-profession-guide{grid-template-columns:minmax(0,1fr)}.recognition-card{grid-template-columns:70px minmax(0,1fr);gap:12px;padding:12px}.recognition-crest{width:70px;height:86px}.recognition-identity h3{font-size:22px}.recognition-totals{grid-column:2;gap:28px;justify-content:flex-start;text-align:left}.recognition-metric strong{font-size:24px}.recognition-history{grid-column:1 / -1}.squad-leadership{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.shop-stock-list .shop-product-row{grid-template-columns:72px minmax(0,1fr);gap:5px 14px;padding:14px 6px}.shop-product-row>.item-artwork,.shop-product-row>.image-frame,.shop-product-row>.field-art{width:72px;max-width:72px;grid-row:1 / 3}.shop-product-row .inventory-item-art,.shop-product-row .item-artwork>.image-frame,.shop-product-row>.field-art{width:68px;height:68px}.shop-product-copy{grid-column:2;grid-row:1}.shop-product-copy .shop-item-name{font-size:16px;line-height:1.45}.shop-product-row .coin-price{grid-column:2;grid-row:2;justify-content:flex-start;font-size:14px}.item-detail-description{font-size:16px;line-height:1.75}.character-view-picker{width:100%}.character-view-picker select{width:100%}}
@media(prefers-reduced-motion:reduce){.craft-progress-fill{transition:none}}

/* v34: thumbnail flex bases must not constrain expanded item artwork. */
.item-detail-art .item-artwork{flex:0 1 400px;min-width:0}.item-detail-art .inventory-item-art,.shop-product-row .inventory-item-art{flex:none}

/* Nov 3: consistent game menus, quiet controls and progressive disclosure. */
@font-face{font-family:Runavess;src:url('/assets/campaign/runavess.woff') format('woff');font-display:swap}
@font-face{font-family:Societal;src:url('/assets/campaign/societal_diseases.woff') format('woff');font-display:swap}
.destination-section>h3{font-family:Societal,Georgia,serif!important;font-weight:400;font-size:clamp(26px,3vw,32px)!important;line-height:1.6;margin:24px 0 12px;padding:0 12px;color:#d8b875}
button.destination-row{grid-template-columns:32px minmax(180px,.75fr) minmax(0,1.25fr) 20px;gap:16px;padding:18px 12px;min-height:78px;align-items:center;overflow:visible}
.destination-label,.craft-profession-name{font:400 clamp(22px,2.3vw,28px)/1.6 Runavess,Georgia,serif;letter-spacing:.025em;color:#edcf8e;display:block;overflow:visible;padding:3px 0;white-space:normal;overflow-wrap:normal;word-break:normal}
.destination-icon{font:24px/1.4 Georgia,serif;text-align:center;color:#bba575}.destination-description{font:400 15px/1.7 var(--font-interface);color:#cfc9bc;white-space:normal;overflow-wrap:normal}
button.destination-row:hover .destination-label,button.craft-profession-action:hover .craft-profession-name{text-decoration:none;color:#fff1bf}
button.quiet-control,.story-controls button,button.feature-toggle{border:0!important;border-image:none!important;box-shadow:none!important;background:transparent!important;filter:none!important;padding:10px 12px;min-height:44px;font:400 21px/1.6 Runavess,Georgia,serif;color:#e8cf94}
button.quiet-control:hover,.story-controls button:hover{color:#fff1bf;text-decoration:none;background:transparent!important}
button:focus-visible{outline:2px solid #e4c477!important;outline-offset:4px!important}
.story-controls{display:flex;align-items:center;gap:16px;padding:0 12px}.story-controls small{font:14px/1.5 var(--font-interface);color:#bdb6a8}.story-controls .roll-destination{display:none}
.partner-kingdom>h3{font:400 32px/1.5 Societal,Georgia,serif;padding:16px 0;border-bottom:1px solid #c6a76566}.partner-squad>h3{font:400 25px/1.5 Runavess,Georgia,serif}
.reference-tile,.creature-card-control{display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;width:100%;padding:18px!important;border:0!important;border-image:none!important;box-shadow:none!important;background:transparent!important;filter:none!important;color:inherit;white-space:normal;text-align:center;overflow-wrap:normal}
.reference-name{font:400 23px/1.6 Runavess,Georgia,serif}.reference-tile .item-artwork{float:none;flex:none;width:120px;height:132px;margin:0}.reference-tile .inventory-item-art{max-width:110px;max-height:110px;object-fit:contain}
.reference-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.reference-catalog>.reference-tile,.compendium-entry{border:1px solid #a78a4938!important;border-radius:10px;background:#100e1580!important;min-width:0}.creature-card-control .creature-art{max-height:180px}
#dialog-content .reference-tile{flex-direction:row;justify-content:flex-start;text-align:left}.diagnostic-data{white-space:pre-wrap;word-break:break-word;font:13px/1.6 monospace}
.feature-switches{display:flex;flex-direction:column;margin-top:10px;gap:5px}.feature-toggle{text-align:left;font:14px/1.6 var(--font-interface)!important}.feature-toggle::before{content:'';display:inline-block;width:28px;height:14px;border-radius:10px;background:#6c686b;margin-right:9px;vertical-align:middle}.feature-toggle[aria-checked=true]::before{background:#bba568;box-shadow:inset -13px 0 #eee1b8!important}
.discovery-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:14px}.discovery-slot{min-height:170px;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;border:1px solid #b9a06a4d;border-radius:12px;background:#0e0b1680;color:#b5a481}.discovery-question{font:68px/1.2 Georgia,serif;opacity:.6}
.map-viewport.map-fit{height:auto;max-height:none;overflow:hidden;background:transparent}.world-map.world-map-fit{display:block;width:100%!important;max-width:100%;height:auto;max-height:calc(100dvh - 190px);min-height:0;object-fit:contain;margin:0 auto}
#notice:empty,#pending:empty{display:none}.pending-card{padding:5px 10px!important;min-height:0;font-size:13px;background:transparent!important;border:0!important}
@media(max-width:650px){button.destination-row{grid-template-columns:28px minmax(0,1fr) 18px;gap:2px 10px;padding:14px 8px}.destination-icon{grid-column:1;grid-row:1/3}.destination-label{grid-column:2;grid-row:1;font-size:24px}.destination-description{grid-column:2;grid-row:2;font-size:14px}.destination-arrow{grid-column:3;grid-row:1/3}.destination-section>h3{font-size:28px!important;margin:20px 0 8px}.reference-catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reference-tile{padding:10px!important}.reference-name{font-size:20px}.discovery-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.discovery-slot{min-height:140px}.world-map.world-map-fit{max-height:60dvh}}

/* Owner typography update: ornate controls, readable italic descriptions. */
:root{--font-display:Runavess,Georgia,serif;--font-heading:Runavess,Georgia,serif}
button,select,summary,.field>span,.equipment-slot-name,.identity-name,.roster-name,.recognition-identity h3{font-family:Runavess,Georgia,serif!important;font-weight:400;letter-spacing:.025em;line-height:1.5}
button{font-size:18px}button.small,.tabs button,.sheet-tabs button,.identity-actions button,.activity-toolbar button,.chat-tabs button{font-size:16px}
button.feature-toggle{font-family:Runavess,Georgia,serif!important;font-size:17px!important;line-height:1.5!important}
.heading h2,.section>h3,.dialog-heading h2,h1,h2,h3{font-family:Runavess,Georgia,serif}
.destination-section>h3,.partner-kingdom>h3{font-family:Societal,Georgia,serif!important}
p,.subtitle,.destination-description,.item-detail-description,.item-detail-description p,.spell-description,.field small{font-family:Georgia,'Palatino Linotype',serif!important;font-style:italic;font-weight:400;letter-spacing:normal;line-height:1.75}
input,textarea,pre,code,.diagnostic-data,.turn-info,.counter,.roll-mode-value{font-family:var(--font-interface)!important;font-style:normal;letter-spacing:normal}
.destination-icon,.destination-arrow,.image-expand-corner,#dialog-close,.equipment-empty-symbol,.discovery-question{font-family:Georgia,'Segoe UI Symbol',serif!important;font-style:normal}
body.player-themed{--text:var(--accent);--muted:var(--accent);--gold:var(--accent)}
body.player-themed :is(h1,h2,h3,h4,p,button,summary,label,select,input,textarea,th,td,dt,dd,small,strong,span,.value,.pill,.destination-description,.destination-label,.reference-name,.item-detail-description,.field-countdown){color:var(--accent)!important}
.player-name-theme :is(button,p,strong){color:var(--player-name-color)!important}
@media(max-width:650px){button{font-size:17px}.activity-toolbar button,.chat-tabs button{font-size:15px}.destination-label{font-size:24px}}

.character-unlocks{margin:10px 0 18px;padding:10px 14px;border:1px solid #a98d5044;border-radius:8px;background:#0b0b1160}.character-unlocks>summary{cursor:pointer;font-size:21px;color:var(--accent)}.character-unlocks .feature-switches{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.character-unlocks .feature-toggle{min-height:44px;padding:8px;text-align:left}

/* Kingdom shelves share the same title, button and spacing system. */
.lore-browser{display:grid;gap:1rem}.lore-kingdoms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.lore-kingdom,.lore-category{font-family:var(--font-fancy,Runavess),serif;color:inherit}.lore-kingdom{padding:1rem;border:1px solid color-mix(in srgb,currentColor 35%,transparent);background:rgba(12,12,19,.5);font-size:1.3rem;border-radius:7px}.lore-kingdom[aria-pressed=true],.lore-category[aria-pressed=true]{background:rgba(180,143,67,.2);box-shadow:inset 0 -2px currentColor}.lore-categories,.lore-tools{display:flex;flex-wrap:wrap;gap:.5rem}.lore-category{padding:.5rem .75rem;background:transparent;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:5px}.lore-tools input{flex:1 1 16rem;min-width:0}.lore-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.lore-entry{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.5rem;padding:1rem;background:rgba(10,10,16,.45);border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:8px;min-width:0;white-space:normal}.lore-entry strong{font-family:Runavess,serif;font-size:1.45rem;line-height:1.4}.lore-entry p{margin:0}.lore-summary,.lore-prose{font-family:Georgia,serif;font-style:italic;font-size:1rem;line-height:1.7;font-weight:normal;white-space:pre-line;overflow-wrap:anywhere}.lore-detail section{padding:.6rem 0;border-bottom:1px solid color-mix(in srgb,currentColor 18%,transparent)}.lore-visibility{font-family:system-ui,sans-serif;font-size:.75rem;opacity:.65}.lore-detail code{overflow-wrap:anywhere;font-size:.7rem}.issue-select{display:flex;align-items:center;gap:.5rem}.issue-select input{width:auto}.lore-empty{font-style:italic;grid-column:1/-1}
@media(max-width:600px){.lore-kingdoms{grid-template-columns:repeat(2,minmax(0,1fr))}.lore-results{grid-template-columns:1fr}.lore-kingdom{font-size:1.15rem;padding:.75rem}.lore-category{font-size:1rem}}

.lore-entry .lore-token{width:96px;height:96px;object-fit:contain;align-self:center}.lore-detail .lore-token{display:block;width:min(260px,85%);max-height:320px;object-fit:contain;margin:0 auto 1rem}.lore-categories{row-gap:.65rem}
/* Lore tabs live inside the scrolling content, never in the sticky app nav. */
.lore-browser>nav{position:static;inset:auto;align-self:stretch;overflow:visible;padding:0;min-width:0}
.lore-browser>.lore-categories{flex-direction:row;align-items:flex-start}
.lore-browser>.lore-categories>button{width:auto;flex:0 1 auto;white-space:normal}
.lore-browser>.lore-kingdoms>button{width:100%;min-width:0;white-space:normal}

.npc-level-stepper{display:inline-flex;flex-flow:row nowrap;align-items:center;gap:.75rem;flex-shrink:0}.npc-level-stepper .npc-level-step{min-width:44px;min-height:44px;padding:.25rem .65rem;font-size:1.5rem}.npc-level-value{min-width:5.5em;text-align:center;font-family:var(--font-heading,inherit);font-size:1.2rem}.npc-level-status{font-size:.85rem}.character-editor-bar{align-items:center;gap:.75rem;flex-wrap:wrap}

.world-pin.visited-pin .world-pin-dot{background:#dfb85d;border:2px solid #302514;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 0 2px #f5dfa2;width:12px;height:12px}.world-pin.visited-pin{z-index:2}.world-pin.character-pin{z-index:4}.map-pin-legend{font-size:.9rem;font-style:italic}.map-fit>.continent-map-stage{width:100%;max-width:100%;margin:auto}

.map-place-card{position:absolute;z-index:12;pointer-events:none;width:min(320px,85%);max-height:75%;overflow:auto;padding:1rem;border:1px solid var(--gold,#c9ad72);border-radius:12px;background:#171420;box-shadow:0 12px 35px #000b;color:var(--text,#f3e6ce)}.map-place-card[hidden]{display:none}.map-place-card h3{font-size:1.3rem;margin:.4rem 0}.map-place-card h4{font-size:1rem;margin:.8rem 0 .4rem}.map-place-image{width:100%;max-height:190px;object-fit:cover;border-radius:6px}.map-place-description{font-style:italic;line-height:1.55}.map-place-people{padding-left:1.2em;line-height:1.6}

/* Journal: consistent kingdom galleries and full-composition artwork. */
.journal-tabs{display:flex;gap:.65rem;margin:.75rem 0 1.3rem;flex-wrap:wrap;border-bottom:1px solid var(--border,#ad8a4d);padding-bottom:.8rem}
.journal-tabs [aria-selected="true"]{background:var(--squad,#342a20);box-shadow:inset 0 -3px var(--accent,#eac36a)}
.location-search-label{display:grid;gap:.5rem;width:min(100%,32rem)}
.location-kingdom{margin:1rem 0 1.5rem;border:1px solid var(--border,#655338);border-radius:8px;padding:1rem}
.location-kingdom>summary{cursor:pointer;font-size:1.45rem;margin-bottom:1rem}
.location-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.location-card{min-width:0;display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;padding:.75rem}
.location-image-button{display:block;padding:0!important;border:0!important;background:none!important;width:100%;min-height:0!important}
.location-cover{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:rgba(0,0,0,.3);border-radius:5px}
.location-title{max-width:100%;text-align:left;white-space:normal;font-size:1.2rem}
.location-gallery-image{margin:1rem 0 1.5rem}.location-full-image{display:block;width:100%;max-height:70vh;object-fit:contain}.location-gallery-image figcaption{margin-top:.5rem}.location-description{font-style:italic}
@media(max-width:900px){.location-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.location-card-grid{grid-template-columns:1fr}.location-kingdom{padding:.7rem}.journal-tabs>button{flex:1}}
.mission-parameters{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.mission-parameters>.field{margin:0;flex:0 0 auto;max-width:100%}
.mission-where{width:var(--mission-where-width,32ch)}
.mission-where select{width:100%;max-width:100%}
.mission-count-bar{display:grid;grid-template-columns:2.75rem 3.5rem 2.75rem;align-items:stretch;gap:0}
.mission-count-bar button{text-align:center;padding:.45rem;min-height:42px}
.mission-count-bar input{width:100%;min-width:0;text-align:center;appearance:textfield;border-radius:0;padding:.45rem}
.mission-count-bar input::-webkit-inner-spin-button,.mission-count-bar input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.mission-choices{display:grid;gap:.4rem;margin:.6rem 0 1rem}
.mission-choices .mission-person-choice{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;width:fit-content;max-width:100%;margin:0}
.mission-choices .mission-person-choice input[type=checkbox]{width:1.1rem;height:1.1rem;flex:0 0 1.1rem;margin:0}
.mission-authoring details{margin-block:.8rem}
.mission-authoring .actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-block:1rem}
.mission-continental-board,.mission-advanced{margin-top:1.25rem}
.mission-continental-board>summary,.mission-advanced>summary{padding-block:.4rem}
.mission-map-library{margin:1.25rem 0;padding:.8rem;border:1px solid var(--border);border-radius:.6rem}
.mission-map-library summary{padding:.45rem 0;cursor:pointer}
.mission-map-kingdom{margin:.75rem 0}
.mission-map-location{margin:.5rem 0 .5rem 1rem}
.mission-map-stack{display:flex;flex-direction:column;gap:1rem;padding:.75rem 0}
.mission-map-figure{margin:0;width:100%}
.mission-map-figure figcaption{font-family:var(--font-heading);margin-bottom:.5rem}
.mission-map-open{display:block;width:100%;padding:0;background:transparent;border:0}
.mission-map-open .map-gallery-thumbnail{display:block;width:100%;height:auto;max-height:none;object-fit:contain}

.merchant-play-toggle{position:absolute;left:1rem;top:1rem;z-index:2;min-width:5rem}

/* Affiliation artwork stays inside the lower-left of its portrait, without a tile. */
.portrait-token-strip{--portrait-token-size:34px;position:absolute;top:auto;right:auto;bottom:4px;left:4px;z-index:3;display:flex;align-items:flex-end;flex-direction:row;flex-wrap:wrap;gap:3px;max-width:calc(100% - 44px);pointer-events:none;line-height:1}
.portrait-affiliation-token{width:var(--portrait-token-size);height:calc(var(--portrait-token-size)*1.16);display:grid;place-items:center;flex:none;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.portrait-token-image{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;margin:0!important;padding:0;box-sizing:border-box}
.portrait-token-label{font:10px/1.1 var(--font-display,serif);text-align:center;overflow-wrap:anywhere;padding:2px;box-sizing:border-box;text-shadow:0 1px 2px #000,0 0 3px #000}
.image-frame:has(.turn-portrait) .portrait-token-strip,.image-frame:has(.portrait:not(.roster-portrait):not(.full-portrait)) .portrait-token-strip{--portrait-token-size:17px;top:auto;right:auto;bottom:1px;left:1px;gap:1px;max-width:70%}
.image-frame:has(.turn-portrait) .portrait-token-label{font-size:6px}
.artwork-viewer-stage .portrait-token-strip{--portrait-token-size:var(--artwork-portrait-token-size,56px);top:auto;right:auto;bottom:3%;left:3%;max-width:60%;gap:calc(var(--portrait-token-size)*.08)}
.artwork-viewer-stage .portrait-token-label{font-size:calc(var(--portrait-token-size)*.23)}
#activity-identity .image-frame .portrait-token-strip{--portrait-token-size:38px;top:auto;right:auto;bottom:4px;left:4px}
.portrait-token-strip:has(>:nth-child(3)){display:grid;grid-template-columns:repeat(3,calc(var(--portrait-token-size)*.55));gap:3px}
.portrait-token-strip:has(>:nth-child(3)) .portrait-affiliation-token{width:calc(var(--portrait-token-size)*.55);height:calc(var(--portrait-token-size)*.64)}
.journal-kingdom{margin:1rem 0;border:1px solid var(--line);border-radius:8px;padding:.85rem}
.journal-kingdom>summary{font-family:var(--font-heading);font-size:1.45rem;cursor:pointer;padding:.35rem}
.journal-faction{margin:.8rem 0 0;padding:.65rem;border-top:1px solid var(--line)}
.journal-faction>summary{font-family:var(--font-heading);font-size:1.2rem;cursor:pointer;padding:.35rem}
.journal-people-grid{grid-template-columns:repeat(auto-fill,minmax(min(155px,100%),1fr));gap:12px;margin-top:12px;align-items:stretch}
.journal-people-grid>.roster-card{padding:10px;gap:5px}
.journal-people-grid .roster-portrait-slot,.journal-people-grid .image-frame{max-width:100%}
.journal-person-status{font-family:var(--font-heading);color:var(--accent);font-size:.85rem;line-height:1.2}
@media(max-width:560px){.journal-kingdom{padding:.55rem}.journal-faction{padding:.45rem 0}.journal-people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.journal-people-grid>.roster-card{padding:7px 4px}}

.active-gathering{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px;margin:0 0 10px}
.active-gathering h3{margin:0}.active-gathering p{margin:0;flex:1 1 180px}.active-gathering button{min-height:40px}

/* Consistent, non-flashing unread markers use each player's requested contrast pairing. */
.notification-dot,.compact-chat-tabs .unread::before{display:inline-block;content:'';width:10px;height:10px;min-width:10px;flex:0 0 10px;vertical-align:middle;margin-left:.5em;border-radius:50%;background:var(--notification-color,#edc56d);box-shadow:0 0 0 2px #12121d;pointer-events:none}
.destination-row{position:relative}.destination-row>.notification-dot{position:absolute;right:28px;top:calc(50% - 5px)}
.compact-chat-tabs .unread::before{width:8px;height:8px;min-width:8px;margin:0 5px 0 0}
.journal-memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:1rem 0}
.journal-memory{min-width:0;display:flex;flex-direction:column;gap:10px}.journal-memory h3{margin:.25rem 0;font-size:1.45rem;line-height:1.5}.journal-memory-image{display:block;width:100%;height:300px;object-fit:contain;cursor:zoom-in}.journal-memory-caption{font-family:Georgia,serif;font-style:italic;line-height:1.6}
@media(max-width:560px){.journal-memory-grid{grid-template-columns:1fr}.journal-memory-image{height:auto;max-height:65dvh}}

/* The owner workspace never inherits the last inspected player's palette. */
body.dm-themed{--bg:#17152E;--panel:#201C3C;--text:#B8954B;--muted:#B8954B;--gold:#B8954B;--line:#766038;background:#17152E;color:#B8954B}
body.dm-themed::after{background:linear-gradient(90deg,#17152ee8,#17152e91 65%,#17152ed9)}
body.dm-themed :is(main,header,#activity-identity,.roleplay-panel,dialog){background-color:#201C3C;background-image:linear-gradient(125deg,#262044e8,#17152ee8)}
body.dm-themed :is(h1,h2,h3,h4,p,button,summary,label,select,input,textarea,th,td,dt,dd,small,strong,span,.value,.pill,.destination-description,.destination-label,.reference-name,.item-detail-description,.field-countdown){color:#B8954B!important}
body.dm-themed :is(button,input,select,textarea,.card){background-color:#211D3B;border-color:#766038}
body.dm-themed button:hover:not(:disabled){background-color:#30284C;border-color:#B8954B}
.daily-ai-cost{margin:0 0 20px;padding:14px;border:1px solid var(--line);border-radius:8px}
.daily-ai-cost>summary{cursor:pointer;margin-bottom:10px}
.daily-ai-cost select{max-width:240px}

/* Keep the DM canvas indigo even where older panel rules use an ID selector. */
body.dm-themed.button-navigation #main-panel.dm-panel{background:linear-gradient(125deg,#262044d9,#17152ed9)}
/* Translucent surfaces reveal the page artwork without dimming the text. */
body #activity-chat>.roleplay-panel,body .roleplay-panel{background:rgba(18,16,34,.58);backdrop-filter:blur(2px)}
body.dm-themed #activity-chat>.roleplay-panel,body.dm-themed .roleplay-panel{background:rgba(23,21,46,.58)}
body .roleplay-panel .chat-log,body .roleplay-panel .chat-message{background:transparent}
body .roleplay-panel .chat-composer{background:rgba(18,16,34,.35)}
body.dm-themed .roleplay-panel :is(em,a,.chat-line,.chat-author){color:#B8954B}

/* Partners share the royal card grid, including officers and recruits. */
.partners-roster .roster-grid{grid-template-columns:repeat(auto-fill,minmax(min(185px,100%),1fr));gap:10px}
.partners-roster .partner-card{display:grid;grid-template-rows:168px 58px 80px 32px;gap:6px;justify-items:center;align-items:center;padding:12px;box-sizing:border-box}
.partners-roster .partner-card>.roster-name{height:58px;min-height:0;margin:0;line-height:1.4}
.partner-card-details{width:100%;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:4px}
.partner-card-details>p{margin:0}
.partners-roster .partner-card>.roster-preview{margin:0!important}

/* Keep composition and Send on one row, including narrow chat panels. */
.roleplay-panel .chat-composer,#activity-chat .roleplay-panel .chat-composer{grid-template-columns:minmax(0,1fr) 44px;grid-template-areas:"reply cancel" "input send" "count count";align-items:center}
.roleplay-panel .chat-composer textarea,#activity-chat .roleplay-panel .chat-composer textarea{grid-area:input;min-width:0;width:100%;box-sizing:border-box}
.roleplay-panel .chat-composer .chat-send,#activity-chat .roleplay-panel .chat-composer .chat-send{grid-area:send;width:44px;min-height:44px;padding:0;font-family:system-ui,sans-serif;font-size:26px;line-height:1}
.roleplay-panel .chat-composer .chat-reply-preview,#activity-chat .roleplay-panel .chat-composer .chat-reply-preview{grid-area:reply}
.roleplay-panel .chat-composer .chat-reply-preview+button,#activity-chat .roleplay-panel .chat-composer .chat-reply-preview+button{grid-area:cancel;width:44px;padding:0}
.roleplay-panel .chat-composer .chat-count,#activity-chat .roleplay-panel .chat-composer .chat-count{grid-area:count}
.dm-guide-search{width:100%;max-width:36rem;box-sizing:border-box}
.dm-guide-section{margin:12px 0;padding:14px;border:1px solid var(--border,#806d38);border-radius:8px}
.dm-guide-section summary{cursor:pointer;font-size:1.2rem}
.dm-guide-section p{line-height:1.6}
.dm-guide-section .toolbar{gap:8px;margin-top:12px;flex-wrap:wrap}
.ai-directions-input{width:100%;min-height:170px;box-sizing:border-box}


/* Five persistent sections, outside the scrolling content. Keep the existing
   combat/gathering lock and reserve space rather than cover chat or actions. */
body.has-primary-navigation{--primary-navigation-space:calc(64px + env(safe-area-inset-bottom,0px))}
body.has-primary-navigation.button-navigation #nav:not([hidden]){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;top:auto;left:0;right:0;bottom:0;z-index:7;height:var(--primary-navigation-space);padding:5px max(6px,env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px));gap:4px;background:var(--panel);border-top:1px solid var(--line);box-sizing:border-box}
body.has-primary-navigation.has-timeline:not(.map-workspace):not(.encounter-workspace) #nav:not([hidden]){bottom:var(--timeline-space,156px)}
@media(max-width:900px){body.has-primary-navigation.has-timeline.persistent-chat:not(.map-workspace):not(.encounter-workspace) #nav:not([hidden]){bottom:0}}
body.has-primary-navigation.button-navigation #shell,body.has-primary-navigation.button-navigation:is(.persistent-chat,.map-workspace) #shell{padding-bottom:calc(var(--primary-navigation-space) + 8px)!important}
body.has-primary-navigation #nav .primary-section{position:relative;min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:3px;text-align:center;font-size:12px;line-height:1.2;touch-action:manipulation}
.primary-section-icon{font-size:19px;line-height:1}.primary-section-label{white-space:nowrap}
#nav .primary-section>.notification-dot{position:absolute;top:5px;right:6px}
@media(max-width:650px){
 body.has-primary-navigation .destination-row{min-height:56px}
 body.has-primary-navigation .activity-toolbar .toolbar-settings{display:none}
 body.has-primary-navigation :is(input,select,textarea){font-size:16px}
}

/* Expanded chat is a focused overlay: collapse it to return to navigation.
   display:none also removes covered buttons from keyboard/accessibility focus. */
body.has-primary-navigation.chat-expanded-open #nav:not([hidden]){display:none}


/* Compact section landing pages: decorative artwork stays, navigation reads
   at interface size instead of inheriting the display/cover typefaces. */
.section-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
#view button.section-action{display:flex;flex-direction:column;position:relative;align-items:flex-start;justify-content:center;gap:4px;width:100%;min-height:68px;padding:12px 14px;text-align:left;border:1px solid #a58c5066!important;border-image:none!important;border-radius:8px;background:rgba(20,18,36,.7)!important;box-shadow:none!important;font-family:var(--font-interface),sans-serif!important;font-size:15px;line-height:1.35;letter-spacing:normal}
.section-action-title{font:600 15px/1.35 var(--font-interface),sans-serif;color:var(--gold)}
.section-action-help{font:400 13px/1.4 var(--font-interface),sans-serif;color:#ddd6c6}
.section-action>.notification-dot{position:absolute;right:8px;top:8px}
#view .section-tools{margin:12px 0;border-top:1px solid #a58c5044;padding-top:4px}
#view .section-tools>summary{min-height:44px;box-sizing:border-box;padding:12px 4px;cursor:pointer;font:500 14px/1.4 var(--font-interface),sans-serif!important;letter-spacing:normal;color:var(--gold)}
#view .section-guidance,#view .play-status{font:400 13px/1.5 var(--font-interface),sans-serif!important;font-style:normal;color:#ddd6c6;margin:12px 0}
#view .focused-play .story-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font:400 13px/1.4 var(--font-interface),sans-serif}
#view .focused-play .story-controls button{min-height:44px;padding:8px 12px;font:500 14px/1.4 var(--font-interface),sans-serif!important}
#view:has(.focused-play)>.heading h2,#view:has(>.section-actions)>.heading h2{font-size:24px!important;line-height:1.3;margin:0 0 6px}
@media(max-width:650px){.section-actions{grid-template-columns:minmax(0,1fr);gap:8px}#view button.section-action{min-height:62px;padding:10px 12px}.section-action-help{font-size:12px}}
