/* Reading-first play surface. Native adaptation of scene-first VTT layouts. */
.story-workspace>.topbar{min-height:74px;padding:12px 26px;background:var(--surface)}
.story-workspace>.topbar h1{font-size:23px}
.story-workspace .game-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 24px;padding:12px 26px;background:var(--surface)}
.story-workspace .game-tools>.row{grid-column:2;grid-row:1;gap:12px}
.story-workspace .game-tools>.row strong{font:14px var(--sans);font-weight:600}
.story-workspace .game-tools>.row>span small{display:block;font-size:var(--text-10)}
.story-workspace .scene-controls{grid-column:1;grid-row:1;margin:0;align-items:center}
.story-workspace .scene-controls label{font-size:var(--text-9);letter-spacing:.5px;max-width:260px}
.story-workspace .scene-controls select{font-size:var(--text-13);min-height:34px;border-radius:10px}
.story-workspace .game-tools>.field-note{grid-column:1/-1;margin:0;font-size:var(--text-10)}
.story-workspace .game-layout{grid-template-columns:minmax(0,1fr) 268px;min-height:0}
.story-workspace .story{min-width:0;background:var(--paper)}
.story-workspace .story-toolbar{padding:12px 24px;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper);flex:none}
.story-workspace .tabs{min-width:230px;border-radius:30px;background:var(--soft)}
.story-workspace .tabs button,.story-workspace .ui-tab-indicator{border-radius:24px}
.story-view-actions{display:flex;gap:4px;align-items:center}
.story-view-actions .btn{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:6px 10px;font-size:var(--text-11)}
.story-view-actions .ui-icon{width:15px;height:15px}
.story-party-toggle{display:none!important}
.story-workspace .timeline{padding:24px clamp(18px,3vw,48px) 30px;scroll-padding:24px;overscroll-behavior:contain}
.story-workspace .timeline>.message,.story-workspace .timeline>.preparation,.story-workspace .timeline>.chapter-rule{max-width:780px;margin-left:auto;margin-right:auto}
.story-workspace .chapter-rule{letter-spacing:1.8px;margin-top:14px;margin-bottom:26px}
.story-workspace .message{margin-bottom:24px}
.story-workspace .message.narrator{background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--gold);border-radius:4px 4px 18px 18px;padding:24px 28px;box-shadow:0 6px 24px #00000004}
.story-workspace .message-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--text-11);margin-bottom:18px}
.story-workspace .message-head time{margin-left:auto;font-size:var(--text-10)}
.story-workspace .message-head>.avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0}
.story-master-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--gold)}
.story-workspace .message-text{font:17px/1.9 var(--serif);letter-spacing:.05px;overflow-wrap:anywhere}
.story-workspace .message.action,.story-workspace .message.chat{padding:17px 20px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 60%,var(--paper));max-width:720px}
.story-workspace .message.action.is-own{border-left:3px solid var(--green);background:var(--soft)}
.story-workspace .message.action .message-text,.story-workspace .message.chat .message-text{padding-left:0;font:14px/1.8 var(--sans)}
.story-workspace .message.action .message-head,.story-workspace .message.chat .message-head{margin-bottom:10px}
.story-workspace .message.system{border:0;background:none;padding:8px 16px;color:var(--muted);font-size:var(--text-11)}
.story-workspace .message.system summary{cursor:pointer}
.story-workspace .scene-illustration img{border-radius:12px;max-height:440px}
.story-workspace .compose{padding:14px 24px 16px;border-top:1px solid var(--line);background:var(--surface);box-shadow:0 -8px 30px #00000003}
.story-workspace .compose>*{max-width:780px;margin-left:auto;margin-right:auto}
.story-workspace .turn-line{font-size:var(--text-10);margin-bottom:9px}
.story-workspace .composer-box{padding:12px 14px;border-radius:16px;background:var(--paper);border:1px solid var(--line);box-shadow:none;transition:border-color .2s}
.story-workspace .composer-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 8%,transparent)}
.story-workspace .composer-box textarea{min-height:48px;max-height:120px;resize:none;font:14px/1.6 var(--sans)}
.story-workspace .composer-actions{gap:8px;align-items:center}
.story-workspace .composer-hint{font-size:var(--text-10)}
.story-workspace .generation{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px}
.story-workspace .generation p{max-width:360px;font-size:var(--text-10);margin:0}
.story-workspace .generation .btn{font-size:var(--text-11);min-height:38px;border-radius:12px}
.story-workspace .right-panel{background:var(--surface);padding:22px 16px;border-left:1px solid var(--line)}
.story-companion-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.story-companion-heading h2{font:23px var(--serif);margin:4px 0 0}
.story-party-list .character-row{width:100%;text-align:left;padding:10px 8px;margin-bottom:4px}
.story-party-list .character-row>span:nth-child(2){min-width:0;flex:1}
.story-party-list .character-row strong,.story-party-list .character-row small{overflow-wrap:anywhere}
.story-party-list .character-row strong small{display:inline;font-size:var(--text-9)}
.story-party-list .character-row small{font-size:var(--text-10)}
.story-ready{width:7px;height:7px;border-radius:50%;background:var(--line);flex:none}
.story-ready.is-ready{background:var(--green);box-shadow:0 0 0 3px var(--soft)}
.story-hero-summary{border:1px solid var(--line);border-radius:16px;padding:12px;margin:18px 0 22px;background:var(--paper)}
.story-hero-link{display:flex;gap:12px;padding:0;border:0;background:none;width:100%;text-align:left;align-items:center}
.story-hero-link .profile-hero{height:82px;width:62px;flex-shrink:0;border-radius:10px;margin:0;aspect-ratio:auto}
.story-hero-link .profile-art{font-size:28px}.story-hero-link>span{min-width:0;display:flex;flex-direction:column;gap:5px}
.story-hero-link strong{font:21px/1.2 var(--serif);overflow-wrap:anywhere}.story-hero-link small{font-size:var(--text-10);color:var(--muted);overflow-wrap:anywhere}.story-hero-link .eyebrow{font-size:var(--text-8);letter-spacing:.5px}
.story-hero-status{font-size:var(--text-10);color:var(--muted);margin:10px 0;overflow-wrap:anywhere}
.story-hero-summary .ability-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:10px 0}
.story-hero-summary .ability-summary>div{padding:6px 2px;display:flex;flex-direction:column;gap:2px;flex-wrap:nowrap;background:var(--surface)}
.story-hero-summary .ability-summary small{font-size:var(--text-7);letter-spacing:-.15px}.story-hero-summary .ability-summary strong{font:20px var(--serif)}.story-hero-summary .ability-summary span{font-size:var(--text-9)}
.story-workspace .section-label .btn{font-size:var(--text-9);padding:5px}.story-context-links{display:flex;gap:8px;margin-top:20px}.story-context-links .btn{flex:1;display:flex;gap:6px;justify-content:center;align-items:center;font-size:var(--text-11)}
.story-workspace.story-reading .game-layout{grid-template-columns:minmax(0,1fr)}.story-workspace.story-reading .right-panel{display:none}.story-reading-toggle[aria-pressed=true]{background:var(--soft)}
@media(max-width:1200px){.story-workspace .game-layout{grid-template-columns:minmax(0,1fr)}.story-workspace .right-panel{display:none}.story-party-toggle{display:inline-flex!important}.story-reading-toggle{display:none!important}}
@media(max-width:640px){.story-workspace>.topbar{min-height:60px;padding:9px 14px}.story-workspace>.topbar h1{font-size:19px}.story-workspace .game-tools{padding:8px 12px;gap:5px 8px;grid-template-columns:minmax(0,1fr) auto}.story-workspace .scene-controls{gap:5px}.story-workspace .scene-controls label{font-size:var(--text-8);min-width:0}.story-workspace .scene-controls select{max-width:100%;font-size:var(--text-12);min-height:32px}.story-workspace .scene-controls>.btn{display:none}.story-workspace .game-tools>.row{gap:2px;flex-direction:column;align-items:end}.story-workspace .game-tools>.row>span{display:flex;gap:5px;align-items:center}.story-workspace .game-tools>.row strong{font-size:var(--text-11)}.story-workspace .game-tools>.row>span small{font-size:var(--text-8)}.story-workspace .game-tools>.row>.btn{font-size:var(--text-9);min-height:30px;padding:5px 8px}.story-workspace .game-tools>.field-note{display:none}.story-workspace .story-toolbar{padding:7px 12px;gap:6px}.story-workspace .tabs{min-width:0;flex:1;max-width:260px}.story-workspace .tabs button{font-size:var(--text-10);padding:6px 9px;min-height:30px}.story-view-actions{gap:0}.story-view-actions .btn{padding:6px;min-width:30px}.story-view-actions .story-party-toggle span{display:none}.story-workspace .timeline{padding:16px 12px}.story-workspace .message.narrator{padding:18px 16px}.story-workspace .message-text{font-size:var(--text-17);line-height:1.85}.story-workspace .message.action,.story-workspace .message.chat{padding:13px}.story-workspace .message-head{gap:6px;margin-bottom:12px}.story-workspace .message-head .badge{font-size:var(--text-8)}.story-workspace .compose{padding:9px 12px 10px}.story-workspace .composer-box{padding:8px 10px;border-radius:12px}.story-workspace .composer-box textarea{font-size:var(--text-16);min-height:40px;max-height:88px}.story-workspace .composer-hint{font-size:var(--text-9);min-width:65px}.story-workspace .composer-actions .btn{font-size:var(--text-10);padding:6px 8px;min-height:34px}.story-workspace .generation{gap:8px;margin-top:8px}.story-workspace .generation p{font-size:var(--text-9)}.story-workspace .generation .btn{font-size:var(--text-10);max-width:65%;min-height:36px;padding:7px 9px}.story-workspace .turn-line{font-size:var(--text-9);margin-bottom:6px}.story-mobile-party .scene-controls{flex-wrap:wrap}.story-mobile-party .scene-controls label{max-width:none}}
@media(prefers-reduced-motion:reduce){.story-workspace .composer-box{transition:none}}
