/* Full-bleed environment: no fixed-width green gutters at 2K/4K. */
.site-scene{background:#e7e2da}
.room-art{width:100%;mask-image:none}
.room-art>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.room-art>video[hidden]{display:none}
.comet-trail{position:fixed;inset:0;pointer-events:none;z-index:11;opacity:.75}
:is(.header nav a,.filters button,.history-view-switch button,.actions button,.library-toolbar>button){position:relative;transition:transform 180ms ease;transform-origin:center}
:is(.header nav a,.filters button,.history-view-switch button,.actions button,.library-toolbar>button)::after{content:'';position:absolute;left:15%;right:15%;bottom:-3px;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,#b6a0d9, #ead8b3,transparent);box-shadow:0 2px 6px #b6a0d94d;opacity:0;transform:scaleX(.5);transition:opacity 180ms,transform 180ms}
@media(hover:hover){:is(.header nav a,.filters button,.history-view-switch button,.actions button,.library-toolbar>button):hover{transform:translateY(-2px) scale(1.035)}:is(.header nav a,.filters button,.history-view-switch button,.actions button,.library-toolbar>button):hover::after{opacity:.8;transform:scaleX(1)}}
:is(.header nav a,.filters button,.history-view-switch button,.actions button,.library-toolbar>button):focus-visible::after{opacity:.8;transform:scaleX(1)}
.document-orbit{margin:12px 0 26px;background:none;border:0;box-shadow:none}
.document-orbit[hidden]{display:none}
.orbit-stage{position:relative;height:290px;perspective:850px;overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none}
.orbit-stage:active{cursor:grabbing}
.orbit-document{position:absolute;left:50%;top:28px;width:185px;height:225px;margin-left:-92.5px;padding:21px 18px;text-align:left;border:1px solid #b7aec780;border-radius:2px 9px 9px 2px;color:var(--ink);background:var(--glass-bg);box-shadow:0 12px 24px #40375418;transform:translateX(var(--orbit-x)) translateZ(var(--orbit-depth)) rotateY(var(--orbit-turn));overflow:hidden;cursor:pointer;backdrop-filter:blur(12px)}
.orbit-document:after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,#b9a1de,transparent);box-shadow:0 0 12px #b9a1de80}
.orbit-document small{display:block;font-size:10px;letter-spacing:.14em;color:var(--muted)}
.orbit-document strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:600 18px/1.5 var(--serif);margin:12px 0;overflow-wrap:anywhere}
.orbit-document p{font-size:11px;line-height:1.8;opacity:.75;overflow-wrap:anywhere}
.orbit-document strong,.orbit-document p,.orbit-document small{position:relative;z-index:1;backface-visibility:visible}
.orbit-stage{isolation:isolate}
.settings-panel{margin-bottom:24px}.settings-panel label,.character-workspace>label,.character-workspace form label,#character-conversation>label{display:flex;flex-direction:column;gap:8px;margin:18px 0;max-width:680px}.settings-panel p,.chat-context,#character-source-note{font-size:13px;line-height:1.8}.settings-panel input,.settings-panel select,.character-workspace select,.character-workspace textarea{max-width:100%;padding:11px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--paper);font:inherit}.character-workspace textarea{width:100%;box-sizing:border-box}.character-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:18px;margin:20px 0}.character-list article{padding:18px;border-bottom:1px solid var(--line)}.character-list button[aria-pressed=true]{outline:2px solid var(--ink)}.character-list p,.character-list blockquote{font-size:13px;line-height:1.8}.character-list blockquote{margin:12px 0;padding-left:12px;border-left:2px solid #aa94c0}.chat-speaker{display:flex;align-items:center;gap:14px}.chat-speaker img{width:70px;height:90px;object-fit:contain}.chat-message{max-width:85%;padding:16px 20px;margin:14px 0;border-radius:8px;background:var(--pale);overflow-wrap:anywhere}.chat-message.user{margin-left:auto;background:var(--paper);border:1px solid var(--line)}.chat-message p{white-space:pre-wrap;font-size:var(--reading-size,16px);line-height:1.85}.chat-message small{color:var(--muted)}.prose,.quote-context{font-size:var(--reading-size,16px);max-width:var(--reading-width,70ch);line-height:1.9}.header nav{flex-wrap:wrap;row-gap:9px}
html[data-motion=quiet] .comet-trail,html[data-motion=quiet] .room-weather,html[data-motion=quiet] .room-sleep,html[data-motion=quiet] .living-art,html[data-motion=quiet] .literary-opening{display:none!important}html[data-motion=quiet] *,html[data-motion=quiet] *::before,html[data-motion=quiet] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.orbit-document{backdrop-filter:none;background:var(--paper)}
.literary-opening{position:fixed;inset:0;z-index:100;background:#eeece5f5;display:grid;place-items:center;color:#36483e;animation:opening-out .35s 1.1s both;pointer-events:none}
.opening-mark{width:240px;text-align:center;animation:opening-page .8s cubic-bezier(.2,.8,.2,1) both}
.opening-mark svg{width:240px;height:140px;filter:drop-shadow(0 0 5px #bcafd24d)}
.opening-ink{stroke-dasharray:650;stroke-dashoffset:650;animation:opening-write .8s ease-out forwards}
.opening-mark span{display:block;font:36px var(--serif);letter-spacing:.3em;padding-left:.3em}.opening-mark small{display:block;margin-top:15px;font:12px var(--serif);letter-spacing:.2em}
.literary-opening>button{position:absolute;bottom:28px;right:28px;pointer-events:auto;background:transparent;border:1px solid #36483e40;color:inherit;border-radius:20px;padding:8px 16px}
html[data-scene-theme=night] .literary-opening{background:#17242cf5;color:#e2dfd2}
@keyframes opening-write{to{stroke-dashoffset:0}}
@keyframes opening-page{from{opacity:0;transform:perspective(700px) rotateX(18deg) scale(.94)}to{opacity:1;transform:perspective(700px) rotateX(0) scale(1)}}
@keyframes opening-out{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:no-preference){.orbit-document:focus-visible{outline:2px solid #a28cbd;outline-offset:4px}.draft-preview{animation:reading-arrival .22s ease-out both}@keyframes reading-arrival{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}
.orbit-controls{display:flex;justify-content:center;align-items:center;gap:18px;font-size:12px;color:var(--ink)}
.orbit-controls button{background:var(--glass-bg);border:1px solid var(--line);border-radius:50%;width:36px;height:36px;color:inherit}
@media(max-width:760px){.room-art>video{object-position:65% center}.orbit-document{width:155px;margin-left:-77.5px;height:210px}.orbit-controls{gap:10px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.comet-trail{display:none}:is(.header nav a,.filters button,.history-view-switch button,.actions button,.library-toolbar>button){transform:none!important;transition:none}.orbit-document{transform:translateX(var(--orbit-x)) scale(.85)}.orbit-document:not([tabindex="0"]){visibility:hidden}}
@media print{.comet-trail,.document-orbit{display:none}}

/* Readable night surfaces and a letter-like conversation. */
html[data-scene-theme=night]{--glass-bg:rgba(23,39,46,.96);--muted:#bdcdc5}
html[data-scene-theme=night] #app :is(.panel,.feature,.author,.book-card,.editor-card,.side-note,.workspace-preview,.history-card,.data-card){background:#1c3037;color:#e8eee7}
html[data-scene-theme=night] #app :is(h1,h2,h3,h4,label,blockquote,summary){color:#e8eee7}
html[data-scene-theme=night] #app :is(.panel,.feature,.editor-card,.page-top) :is(p,small,li){color:#cbd9d2}
html[data-scene-theme=night] #app button:not(.primary){background:#30483f;color:#edf1e8;border-color:#6d877b}
html[data-scene-theme=night] #app :is(.draft-preview,.report-section,.result,.dimension,.sample,.method-card){background:#1c3037;color:#e8eee7}
html[data-scene-theme=night] #app .reading-document:not(.reading-night) :is(h1,h2,h3,p,small,li,blockquote){color:#303b38}
html[data-scene-theme=night] dialog{background:#1c3037;color:#e8eee7}
html[data-scene-theme=night] dialog :is(h1,h2,h3,p,small,blockquote){color:inherit}
.room-art>.living-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.chat-prompts{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.chat-prompts button{font:13px var(--serif);padding:9px 13px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:3px 12px 12px 3px}
#chat-status{min-height:1.8em;color:var(--ink);font-size:14px}#character-form{position:relative;border-top:1px solid var(--line);padding-top:10px}#character-form[aria-busy=true]::before{content:'✧';position:absolute;right:10px;top:12px;color:var(--ink);animation:letter-wait 1.8s ease-in-out infinite}
.chat-message.assistant{border-left:3px solid #ac987a;border-radius:2px 12px 12px 2px}.chat-message small{font-family:var(--serif);letter-spacing:.12em}.chat-message{animation:letter-arrival .35s ease-out both}
.companion-person{perspective:600px}.companion-person:hover img,.companion-person:focus-visible img{transform:translateY(-7px) rotate(-3deg);transition:transform .35s cubic-bezier(.2,.8,.2,1)}.companion-person:active img{transform:translateY(-10px) rotate(4deg)}
@keyframes letter-arrival{from{opacity:0;transform:translateY(12px) rotateX(-6deg)}to{opacity:1;transform:none}}@keyframes letter-wait{50%{opacity:.35;transform:rotate(90deg)}}
@media(prefers-reduced-motion:reduce){.chat-message,#character-form::before{animation:none}.companion-person:hover img,.companion-person:focus-visible img{transform:none}}

html[data-scene-theme=night] #app>.panel :is(input:not([type=checkbox]):not([type=range]),select,textarea){background:#13242a;color:#edf3ee;border-color:#6d877b}
html[data-scene-theme=night] #app :is(.scoring-settings,.version-comparison,.self-status){background:#263d42;color:#e8eee7}
html[data-scene-theme=night] #app .self-hero>div{background:linear-gradient(90deg,#17242cf5,#17242cda,transparent);color:#e8eee7}
html[data-scene-theme=night] #app .self-hero :is(h1,p){color:#e8eee7}
#character-messages{max-height:62vh;overflow-y:auto;overscroll-behavior:contain;padding:4px 8px;scrollbar-color:#8a9c93 transparent}#character-conversation{scroll-margin-top:24px}
.companion-person:hover .living-art,.companion-person:focus-visible .living-art{transform:translateY(-7px) rotate(-3deg);transition:transform .35s cubic-bezier(.2,.8,.2,1)}.companion-person:active .living-art{transform:translateY(-10px) rotate(4deg)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){html:not([data-motion=quiet]) :is(.hero-art,.book-card,.reading-shelf-item){transform:perspective(1000px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .24s ease-out}html:not([data-motion=quiet]) .book-card:hover{box-shadow:-5px 7px 0 -2px var(--paper),-5px 7px 0 -1px var(--line),0 18px 34px #17242c25}}
