.archive-filter{margin:16px 0}.archived-card{filter:grayscale(1);margin-bottom:0}.archived-card h2{margin:0}.archived-card .portrait{width:48px;height:48px}.archived-card p{overflow-wrap:anywhere}.archive-data{max-height:50dvh;overflow:auto;overflow-wrap:anywhere}
.online-person{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:14px 0}.online-person>div{flex:1;min-width:120px;overflow-wrap:anywhere}.online-dot{display:inline-block;width:9px;height:9px;background:var(--green);border-radius:50%;margin-right:8px}
.spectator-order{list-style-position:inside;max-height:380px;overflow:auto;padding:0}.spectator-order li{display:flex;gap:10px;align-items:center;padding:12px;flex-wrap:wrap}.spectator-order .portrait{width:42px;height:42px}.spectator-order strong{overflow-wrap:anywhere}.public-events{max-height:65dvh;overflow:auto;overscroll-behavior:contain}
.death-confirmed{border-color:#918787;text-align:center}.dead-character .portrait{filter:grayscale(1)}.dead-character input:disabled,.dead-character button:disabled{filter:grayscale(1)}.death-dialog{border:2px solid #b56565;background:#19151a}.death-dialog h2{font-family:Montserrat,Arial,sans-serif;font-size:1.65rem}.death-dialog .portrait{margin:auto;display:block}
.death-farewell{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center;background:radial-gradient(ellipse,#29212beF,#050509fc);animation:farewell-enter .7s ease-out;color:#e5d9c6}.death-farewell .portrait{filter:grayscale(1);box-shadow:0 0 70px #aa879844}.death-farewell h2{font:clamp(1.6rem,5vw,2.7rem) Montserrat,Arial,sans-serif;margin:0}.death-farewell p{margin:0}.death-farewell button{min-height:48px}
@keyframes farewell-enter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.death-farewell{animation:none}}
@media(max-width:600px){.online-person{align-items:stretch}.online-person>div{width:100%;flex-basis:100%}.online-person button{flex:1}.archived-card .row button{width:100%}.spectator-order{max-height:38dvh}.public-events{max-height:50dvh}.role-select{grid-template-columns:1fr}.death-dialog{padding:18px}}
:root{--panel:#1a202a;--panel2:#242d3a;--line:#333e4e;--gold:#e4ba70}
html{scrollbar-gutter:stable}body{background:radial-gradient(ellipse at 70% 0,#20263155,transparent 65%),var(--bg)}
.brand{display:flex;align-items:center;gap:10px}.spiral-mark{width:28px;height:28px;flex-shrink:0;color:var(--gold)}
button,.button{border-radius:9px;transition:background-color .15s,border-color .15s,box-shadow .15s;line-height:1.4;font-weight:500}button:hover,.button:hover{background-color:#303a48}button.primary:hover{background:#f0c983;color:#211b12}button.danger{background:#9b444415;border-color:#a15c5c55;color:#f3a7a7}button.danger:hover{background:#9b444433}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
input,select,textarea{border-radius:9px;background:#111720;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--gold);outline:2px solid #e4ba7020;outline-offset:1px}label{gap:8px}.check{padding:8px 0;gap:10px;line-height:1.5}label+label{margin-top:8px}.grid>label+label{margin-top:0}
.panel{box-shadow:0 4px 18px #0000000c}.panel-title{margin-bottom:16px}.panel-title h2{line-height:1.4}.pill{border-radius:6px;font-weight:500}.grid:has(>.lore-card){align-items:start}.lore-card{align-self:start}.ability-detail summary{padding:6px 0;min-height:44px;line-height:1.7}
.role-select{grid-template-columns:repeat(3,minmax(0,1fr));padding:5px;gap:5px;background:#10151c;border:1px solid var(--line);border-radius:12px}.role-select button{padding:10px 8px;min-height:46px;background:transparent;border-color:transparent}.role-select .active{background:#e4ba7014;border-color:#e4ba7080;color:var(--gold)}.login .panel{margin-top:20px}.entry-top{margin-bottom:24px}.entry-top .brand{margin-bottom:0}
.grid:has(>.player-card){margin-bottom:24px;align-items:stretch}.player-card{height:auto;min-height:290px;padding:20px;gap:10px}.player-card .card-identity{min-height:76px}.player-card .card-conditions{height:auto;min-height:24px;max-height:48px}.player-card .npc-badge+p{max-height:48px}.player-card .bar{margin:6px 0}.player-card:hover{background:#202834}.player-card .card-name{font-size:1.2rem}
.portrait-settings{margin:0;background:#141b24}.portrait-settings>summary{min-height:60px}.panel:has(>.portrait-settings)>.panel-title{display:none}.panel:has(>.portrait-settings){padding:12px}.portrait-settings[open]>.photo-layout{padding:6px}
dialog{box-shadow:0 24px 80px #0009;border-color:#526073;padding:24px}dialog::backdrop{background:#070b12c9;backdrop-filter:blur(3px)}dialog form{gap:18px}dialog form>.row.end{padding-top:16px;border-top:1px solid var(--line)}dialog summary{cursor:pointer}.archive-modal{width:min(800px,calc(100% - 24px))}.archive-section{border-top:1px solid var(--line);padding:12px 0}.archive-section>summary{font-size:1rem;font-weight:600;min-height:44px;display:flex;align-items:center;gap:12px}.archive-section>summary:after{content:'＋';margin-left:auto;color:var(--gold)}.archive-section[open]>summary:after{content:'−'}.archive-facts{margin:8px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.archive-facts>div{padding:10px 0;border-bottom:1px solid #ffffff0b;min-width:0}.archive-facts dt{font-size:.8rem;color:var(--muted);margin-bottom:5px}.archive-facts dd{margin:0;overflow-wrap:anywhere}.preserved-heading{display:flex;align-items:center;gap:14px}.preserved-heading h2,.preserved-heading p{margin:4px 0}.preserved-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
.dead-character{background:linear-gradient(#14141999,#14141999);border-radius:12px}.dead-character>.stats,.dead-character>.page-head,.dead-character>.quick-controls,.dead-character>.tabs,.dead-character #tab-content,.dead-character #notices{filter:grayscale(1) brightness(.72)}.death-confirmed{background:#17171d;border-color:#514952;box-shadow:inset 0 1px #ffffff08}.death-confirmed [data-action="archive-character"]{background:var(--gold);color:#211b12;border-color:var(--gold);min-height:50px;padding:12px 24px;font-weight:700}.death-farewell .portrait.placeholder,.death-dialog .portrait.placeholder{display:flex;align-items:center;justify-content:center;width:150px;height:150px;flex-shrink:0;font:3rem Montserrat,Arial,sans-serif;border-radius:20px}.death-dialog .portrait.placeholder{margin:0 auto}.death-farewell .portrait{flex-shrink:0}.death-confirmed button:not([data-action="archive-character"]){background:transparent;color:var(--muted)}
@media(min-width:901px){
 body:has(.shell){overflow:hidden}.shell{height:100dvh;min-height:0;overflow:hidden;grid-template-columns:226px minmax(0,1fr)}
 .sidebar{position:relative;top:auto;height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;padding:24px 16px 46px;overflow:hidden;align-self:stretch}
 .sidebar nav{overflow-y:auto;min-height:0;align-content:start;scrollbar-gutter:stable;padding-right:3px;gap:5px}.sidebar nav button{padding:10px 12px;text-align:left;justify-content:flex-start;min-height:44px}.sidebar .account{margin:0;gap:6px}.sidebar .account .identity{padding:4px 0}
 .content{height:100%;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;padding:28px 32px 48px}.content #page{min-height:calc(100% - 80px)}
 body:has(.shell)>.site-version{position:fixed;left:max(0px,calc((100vw - 1480px)/2));bottom:0;width:225px;padding:10px 8px;height:36px;background:#151920;border-right:1px solid var(--line);z-index:10;font-size:.75rem}
}
@media(min-width:901px) and (max-width:1050px){.shell{grid-template-columns:200px minmax(0,1fr)}body:has(.shell)>.site-version{width:199px}.content{padding:24px 20px}}
@media(max-width:900px){.content{padding:18px 14px 32px}.sidebar{border-bottom-color:#465060}.site-version{position:static}.page-head{gap:16px}.panel{padding:16px}.player-card{height:auto;min-height:285px}.archive-facts{grid-template-columns:1fr}.role-select{grid-template-columns:repeat(3,minmax(0,1fr))}.role-select button{font-size:.85rem;padding:10px 4px}.grid:has(>.player-card){gap:16px;margin-bottom:24px}.preserved-heading{align-items:flex-start}dialog{padding:18px}.archive-modal{width:calc(100% - 20px)}.archive-section>summary{min-height:48px}.death-confirmed [data-action="archive-character"]{width:100%}}
@media(prefers-reduced-motion:reduce){button,.button{transition:none}}

/* 1.5: typography and quiet, progressively enhanced motion. */
@font-face{font-family:Montserrat;src:url('/fonts/Montserrat.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:Montserrat,Arial,sans-serif;--motion-fast:160ms;--motion-ease:cubic-bezier(.2,.7,.3,1)}
body :is(h1,h2,h3,.brand,.brand-mark,.card-name,.portrait.placeholder,.guide-heading),body .campaign-block>summary strong,body .session-card strong,body .turn-order li:before,body .evolution-summary>div>strong,body .help>button{font-family:Montserrat,Arial,sans-serif}
h1{font-weight:600;line-height:1.2;letter-spacing:-.025em}.brand{font-weight:600;letter-spacing:-.025em}.card-name{font-weight:600}.login h1{font-size:clamp(1.8rem,6vw,2.4rem)}
button,.button,input,select,textarea{transition:background-color 180ms,border-color 180ms,color 180ms,box-shadow 180ms}
.role-select button{position:relative;isolation:isolate;overflow:hidden}
.role-select button:before{content:'';position:absolute;inset:0;background:#e4ba7020;transform:scaleX(0);transform-origin:left;z-index:-1;pointer-events:none;transition:transform 220ms var(--motion-ease)}
.role-select button.active{background:transparent}
.role-select button.active:before{transform:scaleX(1);animation:gold-fill 220ms var(--motion-ease)}
@keyframes gold-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.sidebar nav button.session-on{animation:session-breathe 3.8s ease-in-out infinite}
@keyframes session-breathe{0%,100%{box-shadow:inset 0 0 0 1px #ed777700;background-color:#a632321f}50%{box-shadow:inset 0 0 0 1px #ed777735;background-color:#a6323238}}
.player-card,.choice-card,.session-card{transition:border-color 180ms,background-color 180ms,box-shadow 180ms}
.bar span{transition:width 200ms var(--motion-ease)}
.quick-body,.help-text{display:grid;gap:12px;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(5px);transition:opacity 150ms,transform 150ms var(--motion-ease),visibility 0s 150ms}
.quick.open .quick-body,.help:hover .help-text,.help:focus-within .help-text,.help.open .help-text{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.help-text{display:block}
#toast,#toast.show{display:block;transition:opacity 180ms,transform 180ms var(--motion-ease),visibility 0s 180ms}
#toast{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px)}
#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
/* Discrete transitions keep native focus management and closing behavior. */
dialog{opacity:0;transform:translate3d(0,5px,0);transition:opacity 200ms,transform 200ms var(--motion-ease),display 200ms allow-discrete,overlay 200ms allow-discrete}
dialog[open]{opacity:1;transform:translate3d(0,0,0)}
dialog::backdrop{opacity:0;transition:opacity 160ms,display 160ms allow-discrete,overlay 160ms allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;transform:translate3d(0,5px,0)}dialog[open]::backdrop{opacity:0}}
details[open]>:not(summary){animation:panel-reveal 180ms var(--motion-ease)}
@keyframes panel-reveal{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@supports (interpolate-size:allow-keywords){
 details::details-content{opacity:0;transition:opacity 180ms,content-visibility 180ms allow-discrete}
 details[open]::details-content{opacity:1}
 details[open]>:not(summary){animation:none}
}
/* Compact session controls; avoid animating layout or backdrop blur. */
dialog::backdrop{backdrop-filter:none}
.session-quick .live-columns{align-items:start;gap:20px}
.session-quick .resource-stack{grid-template-columns:minmax(0,1fr);gap:12px}
.session-quick .resource-control{flex-direction:row;align-items:center;flex-wrap:wrap;gap:12px}
.session-quick .resource-control>span{flex:1;min-width:100px}
.resource-buttons{gap:10px}
[data-action="live-conditions"]{margin-top:14px}
.row{gap:12px}
.death-confirmed{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.death-confirmed>h2,.death-confirmed>p{flex-basis:100%;margin-bottom:0}
.panel>button+button,.photo-layout>div>button+button{margin-inline-start:12px}
.death-confirmed>button+button{margin-inline-start:0}
.quick-body,.help-text{transition:opacity 200ms,transform 200ms var(--motion-ease),visibility 0s 200ms;transform:translate3d(0,4px,0)}
.quick.open .quick-body,.help:hover .help-text,.help:focus-within .help-text,.help.open .help-text{transform:translate3d(0,0,0);transition-delay:0s}
@media(max-width:900px){input,select,textarea{font-size:1rem}.role-select button{font-size:clamp(.7rem,2.8vw,.85rem)}.brand{font-size:1.35rem}}
@media(max-width:700px){.quick .quick-body,.quick:last-child .quick-body{position:fixed;top:auto;bottom:max(16px,env(safe-area-inset-bottom));left:16px;right:16px;width:auto;margin:0;max-height:65dvh;overflow:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}details::details-content{transition:none!important}}

/* Reading on narrow screens: prose reflows; only data tables scroll sideways. */
.reading-search{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:20px 0 10px}
.reading-search>label{flex:1;min-width:min(100%,240px)}
.reading-search>button{flex-shrink:0}.reading-count{margin:18px 0;color:var(--muted);font-size:.875rem}
.reading-page{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:0;margin:12px 0;overflow:hidden}
.reading-page>summary{cursor:pointer;padding:18px;min-height:48px;display:flex;align-items:flex-start;flex-direction:column;gap:9px;position:relative;padding-right:48px;overflow-wrap:anywhere}
.reading-page>summary:after{content:'+';position:absolute;right:20px;top:18px;color:var(--gold);font-size:1.3rem}
.reading-page[open]>summary:after{content:'−'}.reading-page[open]>summary{border-bottom:1px solid var(--line)}
.reading-page>summary small{color:var(--muted)}.reading-excerpt{font-size:.9rem;line-height:1.65;color:var(--muted)}
.reading-prose{padding:20px;max-width:100%;line-height:1.8;overflow-wrap:anywhere}
.reading-prose p{max-width:76ch;line-height:1.8;margin-bottom:18px}.reading-prose h3{margin:26px 0 12px;font-size:1.1rem;line-height:1.5}
.reading-prose .notice{max-width:none}.reading-table{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:18px 0;border:1px solid var(--line);border-radius:8px}
.reading-table table{width:100%;border-collapse:collapse;min-width:460px;font-size:.875rem;line-height:1.6}
.reading-table th,.reading-table td{text-align:left;vertical-align:top;padding:12px;border-bottom:1px solid var(--line);min-width:100px}
.reading-table th{background:var(--panel2);color:var(--gold)}.reading-table tr:nth-child(even){background:#ffffff04}
mark{background:#e4ba7030;color:#ffe1a8;border-radius:3px;padding:0 2px}.guide-card small{color:var(--gold)}
.guide-article{overflow-wrap:anywhere}.guide-article footer .row{gap:12px}
@media(max-width:900px){
 .sidebar>div:first-child>.brand{padding-right:0;min-height:44px}.sidebar .account{position:static;display:flex;flex-direction:row;max-width:none;gap:12px;flex-wrap:wrap;margin-top:4px}
 .sidebar .account button{flex:1;min-width:120px}.sidebar .account .identity{display:none}
 .sidebar.menu-open nav{gap:10px}.sidebar nav button{line-height:1.5}
 dialog{max-height:calc(100dvh - 24px);overflow-y:auto;overflow-x:hidden;scroll-padding:16px}
 dialog :is(input,select,textarea){max-width:100%;min-width:0}dialog .grid>.span2{grid-column:auto}
 dialog .row.end{gap:12px;align-items:stretch}dialog .row.end>button{flex:1;min-width:110px}
 .reading-search{align-items:stretch}.reading-search>label{flex-basis:100%;min-width:0}.reading-search>button{width:100%}
 .reading-prose{padding:16px}.reading-page>summary{padding:16px 42px 16px 16px}
 .guide-article{padding:16px}.guide-heading{font-size:1.55rem}.guide-article footer .row>button{flex:1;min-width:110px}
 .tabs{gap:10px}.tabs button{padding:12px;min-height:48px}.session-quick .resource-buttons{gap:12px}
 .combat-toolbar button,.actor-controls button{min-height:48px}.row>button{max-width:100%}
 .field-caption{flex-wrap:wrap}.photo-layout .row{gap:12px}
}
@media(max-width:480px){.grid.two,.grid.three,.grid.four{grid-template-columns:minmax(0,1fr)}.grid>.span2{grid-column:auto}.reading-table th,.reading-table td{padding:10px}.login-wrap{padding:18px 12px}.login .panel{padding:20px}.page-head .button{width:100%}}
.health-alert{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;padding:12px 14px;border-left:3px solid #e4ba70;background:#e4ba700b;border-radius:8px;margin:10px 0;line-height:1.6}.health-alert span{padding:4px 8px;border:1px solid #665336;border-radius:6px}.health-alert strong{flex-basis:100%;color:#f0b49c}.batch-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;max-height:260px;overflow:auto;padding:8px 0;margin-bottom:16px}.batch-options label{min-height:44px;overflow-wrap:anywhere}.visual-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.visual-options img{width:100%;height:140px;object-fit:contain}.visual-options .panel{margin:0;min-width:0}.visual-options strong{display:block;overflow-wrap:anywhere;margin:10px 0}.visual-options .row{gap:10px}@media(max-width:520px){.batch-options{grid-template-columns:1fr}.health-alert{font-size:.9rem}.visual-options{grid-template-columns:1fr}.visual-options .row button{flex:1}}
.npc-select-card{position:relative;min-width:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel,#1c222b);display:flex;flex-direction:column}.npc-select-card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.npc-checkbox{padding:12px 16px;margin:0;min-height:48px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.npc-select-card>.player-card,.npc-select-card>.archived-card{width:100%;border:0;margin:0;border-radius:0;flex:1}.npc-batch-toolbar{margin:16px 0;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}.npc-batch-toolbar .row{gap:10px}.portrait-trigger{padding:0;border:0;flex-shrink:0}.portrait-trigger .portrait{margin:0}.health-reference{margin-top:18px}.health-reference summary{min-height:44px;cursor:pointer;display:flex;align-items:center}.sequela-row{padding:12px 0;border-bottom:1px solid var(--line)}.session-health{margin-top:0}.session-shortcuts{gap:10px;margin:12px 0}.quick-body>label{margin-top:12px}.quick-body>.button,.quick-body>button{margin:8px 0}.quick-body .row{gap:10px}.session-quick .live-columns{margin-bottom:18px}.session-quick .live-columns>.panel{margin:0}
@media(max-width:700px){.npc-batch-toolbar .row{width:100%}.npc-batch-toolbar button{flex:1 1 150px;min-height:46px}.quick-body .row button{flex:1}.session-health .row{gap:12px}.session-health .row button{flex:1 1 180px}}
/* 1.13: consistent spacing and in-flow portrait expansion. */
[hidden]{display:none!important}
.portrait-expanded{width:100%;min-width:0;margin:0 0 20px}.portrait-expanded>.row{margin-bottom:16px}.portrait-expanded h2{margin:0}.portrait-expanded .portrait-settings{border:0;padding:0;background:transparent}.portrait-expanded .photo-layout{padding:0;margin:0;align-items:start;gap:24px}.portrait-expanded .full-photo{margin:0;min-width:0}.portrait-expanded .full-photo img{max-width:100%;max-height:360px;object-fit:contain}.portrait-expanded .visual-options{margin:16px 0}.portrait-trigger.expanded .portrait{width:100px;height:100px}.portrait-trigger{align-self:start;border-radius:12px}.portrait-trigger:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.page-head{gap:20px;align-items:flex-start}.page-head>div{min-width:0}.card-identity>div{min-width:0}.card-name,h1,h2,h3{overflow-wrap:anywhere}.panel-title{gap:12px;flex-wrap:wrap}.panel>.row{gap:12px}.panel>label{margin-top:14px}.grid>*,.combat-layout>*,.live-columns>*{min-width:0}.row{row-gap:12px;column-gap:12px}.quick-body{max-height:min(660px,75dvh);overflow-y:auto;overscroll-behavior:contain}.quick-body h3{margin:0}.quick-body>small{display:block;margin-top:12px;line-height:1.6}.quick-body .row.between{margin-bottom:14px}.health-alert{align-items:center}.health-alert span{line-height:1.65}.npc-checkbox input{flex-shrink:0}.tabs{row-gap:8px}input,select,textarea{min-width:0;max-width:100%}
@media(max-width:700px){.page-head{gap:16px}.page-head>.row{width:100%;flex-wrap:wrap}.page-head>.row>button{flex:1 1 130px;min-height:44px}.portrait-expanded{padding:16px}.portrait-expanded .photo-layout{display:flex;flex-direction:column;gap:20px}.portrait-expanded .photo-layout>div,.portrait-expanded figure{width:100%}.portrait-expanded .photo-layout .row{flex-wrap:wrap}.portrait-expanded .full-photo img{width:100%;max-height:280px}.portrait-trigger.expanded .portrait{width:80px;height:80px}.quick-controls{gap:10px;flex-wrap:wrap}.quick-controls>.quick>button{min-height:44px}.quick-body{padding:16px;max-height:70dvh}.health-alert{padding:10px;gap:8px}.combat-toolbar .row{width:100%}.combat-toolbar button{min-height:44px}.panel-title h2{margin-bottom:6px}}
@media(prefers-reduced-motion:reduce){.portrait-trigger,.quick-body{transition:none!important;animation:none!important}}
.portrait-trigger .portrait{transition:width 240ms cubic-bezier(.22,.65,.3,1),height 240ms cubic-bezier(.22,.65,.3,1)}
@media(prefers-reduced-motion:reduce){.portrait-trigger .portrait{transition:none}}
/* Keep back navigation separate from the portrait at all widths. */
.page-head>div>[data-action="back-table"]{display:inline-flex;align-items:center;margin:0 0 16px;min-height:44px}
.page-head>div>.card-identity{align-items:center;gap:14px}
.category-books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin:18px 0}.category-book{margin:0}.category-guide summary,.category-skill summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px;min-height:48px;cursor:pointer}.category-guide li{margin:10px 0;line-height:1.7}.category-definitions>div{padding:12px 0;border-bottom:1px solid var(--line)}.category-definitions dt{font-weight:650;color:var(--gold)}.category-definitions dd{margin:6px 0 0;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.category-table{overflow-x:auto;max-width:100%;margin:16px 0;overscroll-behavior:contain}.category-table table{width:100%;border-collapse:collapse;min-width:330px}.category-table th,.category-table td{padding:12px;text-align:left;border-bottom:1px solid var(--line);line-height:1.5}.category-example{padding:18px 0;border-bottom:1px solid var(--line)}.category-example .row{margin-top:14px}.category-guide details>summary{font-weight:650}.category-skill{margin:16px 0}.category-skill>summary>strong{font-size:1.15rem}.category-skill>summary>span{font-size:.85rem}.category-skill p{white-space:pre-wrap;overflow-wrap:anywhere}.category-editor fieldset{margin:14px 0;padding:16px;border:1px solid var(--line);border-radius:12px;min-width:0}.category-editor legend{color:var(--gold);padding:0 6px}.category-editor fieldset>button{margin:8px 10px 0 0}.category-editor details{margin:18px 0}.category-editor details>summary{min-height:44px;font-weight:650}.category-editor textarea{min-height:85px}.category-editor .notice{margin:18px 0}.category-editor .grid{gap:16px}.category-skill .row{margin-top:16px}
@media(max-width:700px){.category-books{grid-template-columns:minmax(0,1fr)}.category-book{padding:16px}.category-editor .grid{grid-template-columns:1fr}.category-editor fieldset{padding:12px}.category-guide .row>.button,.category-guide .row>button,.category-skill .row>button{flex:1 1 140px;min-height:44px}.category-skill>summary{align-items:flex-start;flex-direction:column}.category-table th,.category-table td{padding:10px}}
/* Category editor: touch-friendly controls and an unmistakable primary line. */
.category-editor .principal-line{border:2px solid var(--gold);background:#e4ba7009}.category-editor .principal-line legend{font-weight:750}.skill-guided-toggle{display:flex;align-items:center;gap:12px;min-height:48px;margin:18px 0}.skill-guided-toggle input{width:20px;height:20px}.category-editor .skill-help{border:1px solid var(--line);border-radius:10px;padding:12px}.category-book{box-sizing:border-box}.category-books{grid-template-columns:minmax(0,1fr)}.category-book>summary{min-height:48px}.category-editor fieldset>button{min-height:44px}.category-editor [name=custom_cost]{max-width:280px}
/* Stable expansion: no height measurement or animation callbacks survive navigation. */
.category-book-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;text-align:left;background:transparent;border:0;padding:8px;color:inherit}.category-book-toggle:after{content:'+';color:var(--gold)}.category-book.expanded>.category-book-toggle:after{content:'−'}.category-book-expand{display:grid;grid-template-rows:0fr;transition:grid-template-rows 180ms ease-out}.category-book-expand>div{min-height:0;overflow:hidden}.category-book.expanded>.category-book-expand{grid-template-rows:1fr}.category-book.expanded{border-color:var(--gold)}.skill-help-scroll{max-height:340px;overflow:auto;overscroll-behavior:contain;padding:0 8px;line-height:1.6}.skill-help-scroll h4{margin:16px 0 8px}.skill-help-scroll details{margin:8px 0}.first-lines{padding:14px;border:1px solid var(--line);border-radius:12px;margin:18px 0}.first-line input[type=number]{max-width:120px}.category-editor .first-line{background:#ffffff03}.category-editor .first-line textarea{min-height:60px}
@media(prefers-reduced-motion:reduce){.category-book-expand{transition:none}}
@media(max-width:700px){.skill-help-scroll{max-height:45dvh}.category-book-toggle{flex-wrap:wrap}.first-lines{padding:10px}}
.technique-card{margin:16px 0}.technique-card>summary{display:flex;gap:12px;flex-wrap:wrap;align-items:center;cursor:pointer;min-height:48px}.technique-card p,.technique-card small{white-space:pre-wrap;overflow-wrap:anywhere}.technique-line-reading{padding:12px;border-bottom:1px solid var(--line)}.technique-line-reading.principal-line{border-left:3px solid var(--gold);background:#e4ba7008}.technique-proficiencies{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.technique-editor section{margin:20px 0}.technique-editor .technique-first{background:#ffffff03}.technique-editor .check{display:flex;align-items:center;gap:12px;min-height:44px}.technique-editor .check input{flex-shrink:0}.technique-editor .tech-reference{line-height:1.65}.technique-editor .skill-help{margin:16px 0}.technique-editor fieldset p{overflow-wrap:anywhere}
@media(max-width:700px){.technique-card>summary{align-items:flex-start;flex-direction:column}.technique-editor .row>button{flex:1 1 130px;min-height:44px}.technique-card .pill{white-space:normal}.technique-editor input[type=number]{font-size:16px}}
