/* AFTER HOURS · illustrated game interface. Geometry lives in character-art. */
:root { --canvas:#f2f0ff; --line:#e0e3f2; --r-xl:32px; --sh-2:0 15px 40px -24px #34326966; }
body { background:radial-gradient(ellipse at 0 0,#ffe7f0,transparent 44%),radial-gradient(ellipse at 100% 25%,#d9eeff,transparent 48%),#f3f1fb; }
body::before { content:''; position:fixed; inset:0; z-index:-1; background-image:radial-gradient(#606da019 .8px,transparent .8px); background-size:18px 18px; pointer-events:none; }
.topbar { background:#172139f2; color:#fff; border-bottom:1px solid #ffffff30; box-shadow:0 8px 30px #17213918; padding-block:14px; gap:24px; }
.brand-mark { color:#163148; background:linear-gradient(135deg,#89f0d4,#b7daff); border-radius:12px 3px 12px 3px; transform:rotate(-8deg); }
.brand-text i { color:#c2cce7; font-size:10px; letter-spacing:.2em; margin-top:5px; }
.tabs button { color:#bbc6df; border-radius:10px; }
.tabs button.active { color:white; background:linear-gradient(125deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#e69bec)); box-shadow:0 4px 16px #0003; }
.tabs button:hover { background:#ffffff18; color:white; }
.topbar-side .icon-btn,.topbar-side .ghost-btn { background:#ffffff0d; color:#e6edff; border-color:#ffffff22; }
.now-chip { background:#ffffff10; border-color:#ffffff22; }
.now-chip b { color:#a2eddf; }.now-chip span { color:#d0d9ed; }
.page { max-width:1500px; width:100%; padding:30px clamp(18px,3vw,44px) 60px; }
.page-title { margin:3px 0 22px; }
.page-title h1 { font-size:clamp(28px,3vw,38px); font-weight:850; color:#253356; }
.page-title h1::before { content:'AFTER HOURS / '; display:block; font-size:10px; letter-spacing:.27em; color:var(--accent); font-weight:800; margin-bottom:9px; }
.page-title p { color:#778099; font-size:13px; }
.page-title h2 { font-size:23px; }.page-title h2::before { content:'✦';color:var(--accent);margin-right:9px; }
button { -webkit-tap-highlight-color:transparent; }
button:focus-visible,[role=button]:focus-visible { outline:3px solid var(--accent);outline-offset:4px; }
button.primary { background:linear-gradient(125deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#af8de1)); box-shadow:0 6px 16px -8px var(--accent);border:0; }
button:active { translate:0 1px; }
.panel { border-color:#ffffff; background:#ffffffd9; box-shadow:var(--sh-2); }
.hero { min-height:440px; border:1px solid #ffffff; border-radius:32px 8px 32px 8px; box-shadow:0 22px 45px -26px #262a6b88; }
.hero::after { content:''; position:absolute; inset:10px; border:1px solid #ffffff30; border-radius:24px 4px 24px 4px; z-index:2;pointer-events:none; }
.hero .illustration>img { transform:translate(var(--px,0),var(--py,0)) scale(1.05); transition:transform 1s ease-out; }
.hero:hover .illustration>img { transform:translate(var(--px,0),var(--py,0)) scale(1.05); }
.hero-veil { background:linear-gradient(90deg,#15223be8 0%,#15223bcc 32%,#15223b44 66%,#15223b18),linear-gradient(0deg,#172139b3,transparent 65%); }
.hero-eyebrow { position:absolute; top:30px; left:36px; z-index:4; color:#adf7e6; letter-spacing:.22em; font-size:10px; font-weight:800; }
.hero-inner { max-width:50%; padding:72px 36px 34px; gap:16px; }
.hero-title { font-size:clamp(29px,3.6vw,47px); font-weight:850; line-height:1.25; max-width:11em; }
.hero-text { color:#eff2ffdb; font-size:14px; max-width:32em; }
.hero-meta .chip { color:#dce5ff; background:#ffffff10; border:1px solid #ffffff44; font-size:11px; backdrop-filter:none; }
.hero-actions { margin-top:10px; }.hero-actions button { padding:12px 21px; border-radius:12px 3px 12px 3px; }
.hero-cast,.hero-cast-live { left:50%;right:2%;top:10%;bottom:6%;height:auto; z-index:2; mask-image:none;-webkit-mask-image:none; }
.hero-cast .char-body { filter:drop-shadow(0 14px 12px #070b194d); }
.hero-figure-btn > span { opacity:1;font-size:10px;padding:2px 9px;background:#172139b3;color:#fff;border:1px solid #ffffff44; }
.hero-more { display:none; }
.home-row { grid-template-columns:1fr 1.15fr; gap:20px; margin-top:24px; }
.focus-panel { min-height:340px; border-radius:24px;border:1px solid white; background:linear-gradient(120deg,var(--accent-soft),#fff 85%); }
.focus-panel::before { content:'ON YOUR MIND'; position:absolute; left:24px; top:22px; color:var(--accent); font-size:10px;letter-spacing:.18em;font-weight:800; }
.focus-top { padding:60px 24px 0;max-width:54%; }.focus-top h3 { font-size:28px; }.focus-top .where { display:block; margin-top:12px; }
.focus-figure { width:50%; height:auto; top:20px; bottom:16px;right:4px;padding:0; }
.focus-actions { padding:0 24px 24px;max-width:56%; }.focus-actions button { font-size:12px;padding:9px 13px; }
.agenda { border-radius:24px;padding:24px; }.agenda h3 { font-size:18px; }
.agenda-row { padding:9px 8px; }.agenda-row b{font-size:12px;}.agenda-row .where{font-size:11px;}
.agenda-list{gap:0}.agenda-foot{padding-top:8px;}.agenda .avatar-row img{width:23px;height:23px;}
.group-wall { margin-top:32px; }.unit-gallery { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.unit-cover { position:relative; height:248px; padding:0; border:1px solid white; border-radius:22px 6px 22px 6px; overflow:hidden; isolation:isolate;cursor:pointer;text-align:left;background:var(--accent-soft); box-shadow:var(--sh-2);transition:translate .3s,box-shadow .3s; }
.unit-cover>.illustration{position:absolute;inset:0;opacity:.68;}.unit-cover::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(0deg,color-mix(in srgb,var(--accent-ink) 90%,#10182e),transparent 70%);}
.unit-cover:hover{translate:0 -5px;box-shadow:0 20px 40px -22px var(--accent);}
.unit-cover-cast{position:absolute;left:5%;right:5%;top:6%;bottom:33%;z-index:1;}
.unit-cover-copy{position:absolute;left:20px;right:18px;bottom:27px;color:white;z-index:3;pointer-events:none;}
.unit-cover-copy small{font-size:8px;letter-spacing:.16em;opacity:.72;}.unit-cover-copy h3{font-size:18px;margin-top:3px;}.unit-cover-copy p{font-size:11px;opacity:.8;margin-top:3px;}.cover-link{position:absolute;right:16px;bottom:9px;color:#fff9;font-size:9px;z-index:4;}
.places{margin-top:34px;}.place-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}.place-tile{border-color:white;border-radius:20px 6px 20px 6px;}.place-tile .tile-body{padding:14px 16px;}.place-tile .illustration{aspect-ratio:16/10;}.tile-body h4{font-size:16px;}.tile-tag.here{box-shadow:0 3px 14px #18223844;}
.cast-toolbar { background:#ffffffb8; padding:16px; border:1px solid white; border-radius:22px;box-shadow:var(--sh-1); }
.cast-tools .search-field { max-width:none;flex:1; }.cast-tools select{min-width:125px;}.unit-chip { padding:8px 14px; }.unit-chip.active{box-shadow:0 6px 14px -8px var(--accent);}
.cast-banner{position:relative;isolation:isolate;overflow:hidden;color:white;border-radius:24px 6px;padding:30px;margin-bottom:24px;min-height:160px;display:flex;flex-direction:column;justify-content:center;}.cast-banner>.illustration{position:absolute;inset:0;z-index:-2;}.cast-banner::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--accent-ink),#17213922);}.cast-banner small{letter-spacing:.2em;font-size:10px;}.cast-banner h2{font-size:30px;margin:6px 0;}.cast-banner p{font-size:13px;opacity:.8;}
.cast-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;}.cast-card{aspect-ratio:auto;height:395px;border-radius:24px 6px 24px 6px;border:1px solid white;background:linear-gradient(155deg,var(--accent-soft),#fff 80%);box-shadow:0 10px 30px -22px var(--accent-ink);}
.cast-card::before{content:'';position:absolute;inset:0;background:var(--unit-background) center/cover;opacity:.12;mask-image:linear-gradient(black,transparent 85%);pointer-events:none;}
.cast-card::after{content:'';position:absolute;left:12px;right:12px;top:12px;bottom:100px;border:1px solid #ffffff88;border-radius:16px 2px;pointer-events:none;}
.cast-figure{padding:35px 8px 8px;flex:none;height:306px;}.cast-card[data-wide=true]{grid-column:span 2;}
.cast-unit-label{position:absolute;left:17px;top:17px;font-size:8px;letter-spacing:.06em;color:var(--accent-ink);font-weight:800;max-width:70%;}
.cast-name{padding:8px 17px 10px;background:transparent;}.cast-name b{font-size:18px;}.cast-name small{font-size:10px;margin-top:2px;}.cast-card .cast-star{opacity:1;top:10px;right:10px;background:#fff9;}.cast-here{top:auto;bottom:8px;left:auto;right:12px;font-size:8px;padding:2px 7px;}
.cast-quick{position:static;transform:none;opacity:1;padding:0 16px 13px;background:transparent;gap:6px;}.cast-quick button{border-radius:8px 2px;padding:5px 9px;background:#fff8;font-size:10px;}.cast-card:hover .char-figure{transform:none;}.cast-card:hover .char-body{filter:brightness(1.03) drop-shadow(0 0 12px #fff9);}
dialog.sheet.profile-mode{width:min(1120px,calc(100vw - 40px));border-radius:28px 8px;}.profile{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);min-height:680px;}
.profile-side{isolation:isolate;}.profile-side>.illustration{position:absolute;inset:0;z-index:-2;opacity:.42;}.profile-side::before{inset:0;background:linear-gradient(0deg,var(--accent-soft),#ffffff1a 70%),linear-gradient(90deg,#ffffff88,transparent);z-index:-1;}.profile-eyebrow{position:absolute;top:24px;left:24px;font-size:9px;font-weight:800;letter-spacing:.18em;color:var(--accent-ink);z-index:3;max-width:75%;}
.profile-art{inset:55px 18px 118px;}.profile-id{padding:20px 28px;background:linear-gradient(0deg,#fffffff0 60%,#ffffff00);}.profile-id h2{font-size:32px;}.profile-id .tag{border:1px solid color-mix(in srgb,var(--accent) 40%,white);background:#fff9;color:var(--accent-ink);}.profile-close{border-radius:10px;}.profile-main{background:#fffc;}.profile-actions{padding:26px 26px 12px;}.profile-stats{padding:15px 26px;gap:16px;}.stat{padding:12px;background:var(--accent-wash);border-radius:14px;border:1px solid var(--accent-soft);}.stat-top{flex-wrap:wrap;gap:4px;}.stat-top b{font-size:20px;color:var(--accent-ink);}.profile-tabs{margin-top:0;padding-top:8px;}.profile-tabs button.active{background:var(--accent-wash);border-radius:12px 12px 0 0;}.fact dt{font-size:11px;flex-basis:60px;}.fact dd{font-size:12px;}.fact-grid{gap:8px 14px;}.rel-card{background:var(--accent-wash);}
.scene>.illustration{position:absolute;inset:0;z-index:0;}.scene>.illustration>img{width:100%;height:100%;object-fit:cover;animation:scene-reveal .65s ease-out;}
.scene-top{padding:22px 28px;}.scene-top h2{font-size:27px;}.scene-cast{inset:14% 4% 20%;height:auto;}.scene-bar{padding:22px max(24px,calc((100vw - 1120px)/2));min-height:140px;background:linear-gradient(0deg,#121e36f5,#121e36c7 60%,#121e3600);}.scene-actions button{border-radius:12px 3px;padding:10px 18px;}.scene-desc{font-size:13px;}.scene-actor>span{font-size:11px;padding:4px 12px;border:1px solid #ffffff77;background:#17213999;color:white;backdrop-filter:blur(8px);}.scene-actor:hover{transform:none;}.scene-actor:hover>span{background:#fff;color:#26324d;}
.scene-roster{display:flex;gap:6px;align-items:center;}.scene-roster small{font-size:11px;color:#fff9;}.scene-roster button{background:#ffffff22;color:white;border:1px solid #ffffff40;border-radius:8px;padding:4px 12px;cursor:pointer;font-size:11px;}
.novel-cast{inset:13% 4% 33%;}.novel-top{padding:24px 28px;}.novel-textbox{bottom:24px;max-height:43%;overflow:auto;border-radius:24px 4px 24px 4px;border:1px solid #fff9;border-top:3px solid var(--accent);padding:20px 26px 14px;background:linear-gradient(130deg,#fff,var(--accent-wash));box-shadow:0 25px 70px #080c2866;}.novel-name{border-radius:10px 2px;position:relative;top:-8px;margin-top:0;margin-bottom:0;}.novel-name b{border-radius:8px 2px;}.novel-reading{padding:4px 2px 14px;}.novel-ja{font-size:18px;}.novel-toolbar{gap:8px;}.novel-actor.speaking{filter:none;}.novel-actor>span{color:#fff;background:#172139b3;border:1px solid #ffffff40;opacity:1;font-size:11px;}.novel-actor.speaking>span{opacity:1;background:var(--accent);}.novel-choices{padding:14px;}.novel-stage::before{content:'◇ AFTER HOURS / STORY';position:absolute;right:28px;top:84px;color:#fff7;font-size:9px;letter-spacing:.2em;z-index:6;}
.gchat-cast{inset:14% 4% 38%;}.gchat-caption{border-radius:20px 4px 20px 4px;border-top:3px solid var(--accent);background:linear-gradient(130deg,#fff,var(--accent-wash));}.gchat-name{border-radius:8px 2px;background:var(--accent);}.gchat-form textarea{border-radius:12px 3px;}.gchat-form button.primary{border-radius:12px 3px;}.gchat-actor.speaking{transform:none;}.gchat-actor>span{font-size:11px;}.gchat-actor.focus>span{box-shadow:0 0 0 2px var(--accent);}.gchat-actor.speaking>span{background:var(--accent);color:white;}.gchat-dock{max-height:52%;overflow:auto;}.gchat-status{font-size:11px;}
.chat-dialog-layout{grid-template-columns:minmax(0,1fr) 30%;gap:24px;}.chat-visual{height:min(62vh,600px);background:linear-gradient(0deg,var(--accent-soft),#ffffff44),var(--unit-background) center/cover;border-radius:20px 4px;border:1px solid var(--accent-soft);padding:20px 8px;}.chat-log{background:linear-gradient(135deg,#f6f7ff,#fff);border:1px solid var(--line);border-radius:18px;}.chat-form textarea{border-radius:12px 3px;}.bubble{box-shadow:0 4px 15px #1e35500a;}.bubble.mine{background:var(--accent-soft);}.msg-layout{gap:22px;}.msg-list,.msg-side{border-radius:22px;}.group-room{border-radius:12px 3px;background:linear-gradient(120deg,var(--accent-wash),white);}.room-art{border-radius:24px 6px;}
.sheet[open],.novel-dialog[open]{animation:window-arrive .3s var(--ease);}.sheet::backdrop{background:#17213977;backdrop-filter:blur(10px);}
#page>*{animation:page-arrive .38s ease-out both;}#page>*:nth-child(2){animation-delay:.04s;}#page>*:nth-child(3){animation-delay:.08s;}.profile-body>*{animation:page-arrive .25s ease-out;}
@keyframes page-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes window-arrive{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@keyframes scene-reveal{from{opacity:.4;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(min-width:1600px){.hero{min-height:490px;}.cast-card{height:440px;}.cast-figure{height:350px;}}
@media(max-width:1180px){.topbar{gap:14px;padding-inline:18px;}.tabs{gap:1px;margin:0;}.tabs button{padding:8px 11px;font-size:13px;}.topbar-side .ghost-btn{display:none;}.brand-text{display:none;}.cast-grid{grid-template-columns:repeat(4,minmax(0,1fr));}.unit-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}.home-row{grid-template-columns:1fr 1.1fr;}.agenda-row .avatar-row{display:none;}.place-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.hero-inner{max-width:53%;}}
@media(max-width:860px){
 .topbar{padding:11px 16px;gap:12px;}.brand-text{display:flex;}.brand-text b{font-size:14px;}.brand-text i{font-size:8px;}.topbar-side{gap:5px;}.now-chip{padding:6px 9px;}.now-chip span{display:none;}.topbar-side .icon-btn{width:32px;height:32px;}.tabs{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:50;background:#172139f2;border:1px solid #ffffff33;border-radius:18px;padding:6px;box-shadow:0 8px 30px #12244455;display:flex;justify-content:space-around;backdrop-filter:blur(12px);}.tabs button{flex:1;flex-direction:column;gap:0;padding:5px 1px;font-size:10px;}.tabs button i{font-size:17px;line-height:1.5;}.page{padding:22px 16px 110px;}.page-title{margin-bottom:18px;}.page-title h1{font-size:30px;}.page-title h2{font-size:19px;}.page-title p{font-size:11px;}.page-title h1::before{font-size:8px;}.hero{min-height:510px;border-radius:25px 6px;}.hero-eyebrow{left:22px;top:22px;font-size:8px;}.hero-inner{max-width:100%;padding:48px 22px 25px;justify-content:flex-end;gap:9px;}.hero-veil{background:linear-gradient(0deg,#15223bf5 0%,#15223bd6 38%,#15223b05 70%);}.hero-title{font-size:29px;max-width:100%;}.hero-text{font-size:12px;line-height:1.7;}.hero-meta .chip{font-size:9px;padding:2px 8px;}.hero-actions{gap:8px;margin-top:6px;}.hero-actions button{padding:9px 14px;font-size:12px;}.hero-cast,.hero-cast-live,.story-hero .hero-cast{display:block;left:8%;right:8%;top:8%;bottom:49%;height:auto;opacity:1;mask-image:none;-webkit-mask-image:none;}.story-hero .hero-cast .hero-figure:nth-child(n+3){display:flex;}.story-hero{min-height:565px;}.story-hero .hero-cast{bottom:51%;}.story-hero .hero-inner{max-width:100%;}.hero-figure-btn>span{font-size:8px;padding:1px 5px;}.hero-figure>span{max-width:92%;white-space:nowrap;}.home-row{grid-template-columns:1fr;gap:16px;margin-top:18px;}.focus-panel{min-height:300px;}.focus-top h3{font-size:26px;}.focus-figure{width:49%;height:auto;top:16px;bottom:16px;}.focus-actions{max-width:56%;gap:6px;}.focus-actions button{font-size:11px;padding:8px 11px;}.agenda{padding:20px;}.agenda-row .avatar-row{display:flex;}.agenda-row{grid-template-columns:8px 1fr auto;gap:8px;}.agenda-row .where{display:none;}.agenda-foot button{font-size:11px;}.group-wall,.places{margin-top:24px;}.unit-gallery{gap:10px;}.unit-cover{height:210px;border-radius:18px 4px;}.unit-cover-copy{left:12px;bottom:27px;}.unit-cover-copy h3{font-size:13px;}.unit-cover-copy p{font-size:9px;}.unit-cover-copy small{font-size:6px;}.unit-cover-cast{left:2%;right:2%;top:8%;bottom:31%;}.cover-link{font-size:8px;}.place-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}.place-tile .tile-body{padding:10px;}.tile-body h4{font-size:13px;}.tile-foot .avatar-row img{width:20px;height:20px;}.place-tile .tile-foot small{font-size:9px;}.place-tile .tile-tag{font-size:9px;padding:2px 7px;left:7px;top:7px;}
 .cast-toolbar{padding:12px;margin-bottom:16px;}.unit-chips{gap:6px;}.unit-chip{padding:6px 10px;font-size:11px;}.cast-tools{gap:6px;}.cast-tools .search-field{min-width:0;flex-basis:100%;}.cast-tools select{flex:1;min-width:0;font-size:12px;}.cast-tools>button{font-size:12px;}.cast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.cast-card{height:335px;border-radius:20px 5px;}.cast-figure{height:240px;padding:30px 7px 4px;}.cast-unit-label{font-size:7px;left:12px;top:13px;}.cast-name{padding:7px 13px;}.cast-name b{font-size:16px;}.cast-name small{font-size:8px;}.cast-quick{padding:0 12px 10px;}.cast-quick button{padding:6px 8px;font-size:9px;}.cast-here{display:none;}.cast-banner{min-height:130px;padding:22px;}.cast-banner h2{font-size:24px;}.cast-banner small{font-size:8px;}.cast-banner p{font-size:11px;}
 dialog.sheet.profile-mode{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:22px 6px;}.profile{display:block;min-height:0;}.profile-side{min-height:410px;}.profile-art{position:absolute;height:auto;inset:42px 12px 100px;}.profile-id{padding:10px 20px 15px;}.profile-id h2{font-size:26px;}.profile-eyebrow{top:20px;left:20px;font-size:8px;}.profile-id .tag{font-size:10px;margin-bottom:4px;}.profile-id p{font-size:10px;}.profile-actions{padding:18px 16px 6px;gap:6px;}.profile-actions button{font-size:11px;padding:8px 11px;}.profile-stats{padding:12px 16px;gap:8px;}.stat{padding:9px;}.stat-top span{font-size:10px;}.stat-top b{font-size:18px;}.profile-tabs{padding:4px 14px 0;}.profile-tabs button{font-size:12px;padding:9px 12px;}.profile-body{padding:16px;}.fact-grid{grid-template-columns:1fr;}
 .scene-top,.novel-top{padding:18px 16px;}.scene-top h2{font-size:23px;}.scene-cast{inset:19% 3% 28%;min-height:0;}.scene-bar{padding:18px 16px max(20px,env(safe-area-inset-bottom));max-height:28%;overflow:auto;gap:9px;}.scene-desc{font-size:11px;}.scene-actions{gap:7px;}.scene-actions button{font-size:11px;padding:8px 12px;}.scene-actor>span{font-size:9px;padding:3px 7px;}.novel-cast{inset:16% 3% 44%;}.novel-top h2{font-size:17px;}.novel-stage::before{right:16px;top:85px;font-size:7px;}.novel-textbox{width:calc(100% - 20px);bottom:max(12px,env(safe-area-inset-bottom));padding:14px 16px;max-height:44%;border-radius:20px 4px;}.novel-name b{font-size:12px;}.novel-ja{font-size:15px;}.novel-zh{font-size:12px;}.novel-toolbar{gap:5px;}.novel-toolbar button{font-size:10px;padding:6px 9px;}.novel-actor>span{font-size:9px;padding:3px 7px;}.gchat-cast{inset:17% 3% 46%;}.gchat-dock{max-height:45%;gap:7px;padding:10px 12px max(14px,env(safe-area-inset-bottom));}.gchat-actor>span{font-size:9px;padding:3px 7px;}.gchat-form{gap:7px;}.gchat-form button.primary{padding:0 16px;font-size:12px;}.gchat-caption{padding:9px 12px;}.gchat-name{font-size:11px;}.gchat-ja{font-size:13px;}.gchat-zh{font-size:11px;}.gchat-act{font-size:10px;}
 .chat-dialog-layout{display:flex;flex-direction:column-reverse;gap:14px;}.chat-visual{height:220px;width:100%;padding:8px;background-position:center 42%;}.chat-shell{width:100%;}.chat-options{gap:6px;}.chat-options button,.chat-options select,.chat-options label{font-size:11px;}.chat-form textarea{font-size:13px;}.chat-dialog-layout[data-mode=simple] .chat-visual{display:none;}
}
@media(max-height:550px) and (min-width:700px){.scene-cast{inset:20% 5% 32%;}.novel-cast{inset:22% 6% 45%;}.gchat-cast{inset:22% 6% 42%;}.scene-bar{padding:10px 24px;min-height:0;}.novel-textbox{max-height:42%;padding:10px 18px;}.novel-ja{font-size:14px;}.gchat-dock{max-height:42%;}.profile{min-height:540px;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.hero .illustration>img{transform:none!important;}}
.low-effects *, .low-effects *::before,.low-effects *::after{animation:none!important;transition:none!important;backdrop-filter:none!important;}.low-effects .hero .illustration>img{transform:none!important;}

/* Fixed vertical budget: actions never get clipped below a full-height portrait. */
.cast-figure { height:calc(100% - 106px); }
.cast-name { height:60px; flex:none; }
.cast-quick { height:46px; flex:none; align-items:center; }
.cast-here { top:38px; bottom:auto; left:17px; right:auto; }
.cast-figure::after { content:var(--unit-emblem,'✦'); position:absolute; right:12px; bottom:5px; font-size:74px; line-height:1; opacity:.06; color:var(--accent-ink); pointer-events:none; }
[data-unit=ln] { --unit-emblem:'✦'; }
[data-unit=mmj] { --unit-emblem:'♧'; }
[data-unit=vbs] { --unit-emblem:'↗'; }
[data-unit=wxs] { --unit-emblem:'★'; }
[data-unit=n25] { --unit-emblem:'☾'; }
[data-unit=vs] { --unit-emblem:'♪'; }
[data-unit=n25].unit-cover { border-radius:6px 22px 6px 22px; }
[data-unit=wxs].unit-cover { border-color:#ffe2a1; }
[data-unit=mmj].cast-card { border-radius:26px; }
[data-unit=vbs].cast-card { border-radius:5px 24px 5px 24px; }
[data-unit=n25].cast-card { border-color:#dfd4ed; }
@media(max-width:860px){.cast-here{display:none}.cast-figure{height:calc(100% - 106px)}.cast-name{height:56px}.cast-quick{height:50px}.cast-quick button{font-size:10px}.scene-roster{flex-wrap:wrap}.scene-roster button{white-space:normal;text-align:left;}}

/* Scene metadata selects the ground line; 32px is the shared nameplate rail. */
.scene-cast { bottom:calc(100% - var(--scene-floor,.77)*100% - 32px); }
@media(max-width:860px){.scene-cast{bottom:calc(100% - var(--scene-mobile-floor,.67)*100% - 32px);}}

/* Immersive stages reserve only the actual header and dialogue height. */
.scene-cast,.gchat-cast { left:3%;right:3%; }
.novel-cast { left:12%;right:12%; }
.novel-actor.speaking .char-body { filter:drop-shadow(0 16px 18px #15203c44); }
.character-stage[data-layout=grid] .character-slot > span { font-size:10px; }
@media(max-width:860px){.scene-cast,.gchat-cast{left:4%;right:4%}.novel-cast{left:6%;right:6%}.novel-textbox{max-height:43%}.character-stage[data-layout=grid] .char-body{filter:drop-shadow(0 8px 7px #15203c44)}}

/* Keep short landscape viewports operable; the text rail can scroll on its own. */
@media(max-height:550px) and (min-width:700px){.gchat-caption{padding:6px 12px}.gchat-ja{font-size:12px}.gchat-zh,.gchat-act{font-size:10px}.gchat-dock{gap:5px;padding-block:8px}.gchat-status{min-height:12px}.gchat-form textarea,.gchat-form button.primary{min-height:34px;height:34px}.novel-textbox{max-height:46%}.scene-top h2{font-size:20px}}
