.villa-replay{--villa-bg:#1e1a16;--villa-surface:#2d2520;--villa-surface-raised:#37302a;--villa-text:#faf8f5;--villa-text-muted:#faf8f5ad;--villa-accent:#8b6914;--villa-accent-soft:#b08a2e;--villa-border:#faf8f524;--villa-chip-bg:#8b69142e;--villa-fluid:clamp(1rem, .92rem + .4vw, 1.125rem);--villa-time-max:70ch;background:var(--villa-bg);color:var(--villa-text);font-size:var(--villa-fluid);padding:var(--space-7) 0 var(--space-8)}.villa-content{max-width:calc(var(--villa-time-max) + 2.5rem);padding:0 var(--space-4);margin:0 auto}.villa-kicker{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--villa-text-muted);margin-bottom:var(--space-2);font-size:.78rem}.villa-replay h1{color:var(--villa-text);margin-bottom:var(--space-2);font-weight:300}.villa-subtitle{color:var(--villa-text-muted);margin-bottom:0}.villa-day-nav{z-index:40;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);margin:var(--space-4) 0 var(--space-5);border-top:1px solid var(--villa-border);border-bottom:1px solid var(--villa-border);background:#1e1a16f7;display:flex;position:sticky;top:82px}@media (width>=1024px){.villa-day-nav{top:73px}}.villa-day-link{min-width:44px;min-height:44px;padding:0 var(--space-2);font-family:var(--font-mono);color:var(--villa-text-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;font-size:.85rem;display:inline-flex}.villa-day-link span{font-size:.72rem}.villa-day-link strong{color:var(--villa-text);font-weight:500}.villa-day-link:hover,.villa-day-link:focus-visible{color:var(--villa-accent-soft);border-bottom-color:var(--villa-accent)}.villa-day-link:hover strong,.villa-day-link:focus-visible strong{color:var(--villa-accent-soft)}.villa-day{margin-top:var(--space-6);border-top:1px solid var(--villa-border);padding-top:var(--space-4);scroll-margin-top:144px}@media (width>=1024px){.villa-day{scroll-margin-top:135px}}.villa-day-heading{align-items:baseline;gap:0 var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.villa-day-heading h2{color:var(--villa-text);margin-bottom:0;font-weight:300;display:block}.villa-day-dates{color:var(--villa-accent-soft);font-size:.9rem;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.villa-scene{max-width:var(--villa-time-max);margin-bottom:var(--space-3);background:var(--villa-surface);border:1px solid var(--villa-border);border-left:3px solid var(--villa-accent);border-radius:4px}.villa-scene[open]{border-left-color:var(--villa-accent-soft);background:var(--villa-surface-raised)}.villa-scene summary{min-height:48px;padding:var(--space-2) var(--space-3);cursor:pointer;list-style:none}.villa-scene summary::-webkit-details-marker,.villa-scene summary::marker{content:"";display:none}.villa-scene summary:focus-visible{outline:2px solid var(--villa-accent-soft);outline-offset:-2px}.villa-scene[open] summary{border-bottom:1px solid var(--villa-border)}.villa-scene-summary-row{align-items:baseline;gap:var(--space-3);width:100%;display:flex}.villa-scene-summary-marker{flex-shrink:0;margin-left:auto}.villa-marker{color:var(--villa-accent-soft)}.villa-marker.on{display:none}.villa-scene[open] .villa-marker.on{display:inline}.villa-scene[open] .villa-marker.off{display:none}.villa-scene-time{color:var(--villa-accent-soft);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}.villa-scene-title{color:var(--villa-text);flex:1;margin-bottom:0;font-size:1.08rem;line-height:1.3}.villa-scene-people{margin-top:var(--space-1);color:var(--villa-text-muted);margin-bottom:0;font-size:.9rem;display:block}.villa-scene-body{padding:var(--space-3)}.villa-scene-text{max-width:var(--villa-time-max);color:var(--villa-text);margin-bottom:var(--space-3)}.villa-mood{font-family:var(--font-mono);color:var(--villa-text-muted);margin-bottom:var(--space-3);font-size:.82rem}.villa-chips{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.villa-chip{background:var(--villa-chip-bg);color:#d9c7a0;font-family:var(--font-mono);padding:.2rem .6rem;font-size:.78rem}.villa-quotes{gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.villa-quote{max-width:var(--villa-time-max);padding-left:var(--space-3);border-left:2px solid #b08a2e8c;margin-bottom:0}.villa-quote p{margin-bottom:var(--space-1);color:var(--villa-text);font-style:italic}.villa-quote-attr{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--villa-accent-soft);font-size:.72rem}.villa-journal-title{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--villa-text-muted);margin-bottom:var(--space-2);font-size:.72rem}.villa-journal{max-width:var(--villa-time-max);margin-bottom:var(--space-2);padding-left:var(--space-3);border-left:2px solid #b08a2e8c}.villa-journal p{color:var(--villa-text-muted);margin:0;font-size:.95rem}.villa-journal strong{color:var(--villa-text)}.villa-note-block{margin-top:var(--space-6);color:var(--villa-text-muted);font-size:.88rem;line-height:1.8}.villa-note-block p{margin:0}.villa-season-badge{letter-spacing:.06em;color:#d9a441;vertical-align:middle;white-space:nowrap;background:#1e1a16;border:1px solid #d9a44173;border-radius:999px;margin-left:.5rem;padding:.15rem .6rem;font-size:.78rem;display:inline-block}.villa-enter{min-height:100dvh}.villa-enter-card{max-width:var(--villa-time-max);margin-top:var(--space-5);padding:var(--space-4) var(--space-3);background:var(--villa-surface);border:1px solid var(--villa-border);border-left:3px solid var(--villa-accent);border-radius:4px}.villa-enter-card h2{color:var(--villa-text);margin-bottom:var(--space-2);font-weight:300}.villa-enter-card p{color:var(--villa-text-muted)}.villa-enter-actions{gap:var(--space-2);margin:var(--space-3) 0;flex-direction:column;display:flex}.villa-enter-button{width:100%;min-height:44px;padding:0 var(--space-3);font-family:var(--font-mono);color:var(--villa-text);background:var(--villa-surface-raised);border:1px solid var(--villa-border);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.villa-enter-button:hover,.villa-enter-button:focus-visible{border-color:var(--villa-accent-soft);color:var(--villa-accent-soft);outline:none}.villa-enter-error{border-left-color:#a4553e}.villa-enter-season-copy{font-family:var(--font-mono);color:var(--villa-accent-soft);font-size:.82rem}.villa-enter-backlink{font-size:.9rem}.villa-enter-unconfigured code{font-family:var(--font-mono);color:var(--villa-accent-soft);background:var(--villa-chip-bg);border-radius:3px;padding:.1rem .35rem;font-size:.85em}.villa-member-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.villa-member-header h2{margin-bottom:var(--space-1)}.villa-member-sub{font-family:var(--font-mono);margin-bottom:0;font-size:.78rem}.villa-enter-signout{min-height:44px;padding:0 var(--space-2);font-family:var(--font-mono);color:var(--villa-text-muted);border:1px solid var(--villa-border);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;font-size:.78rem}.villa-enter-signout:hover,.villa-enter-signout:focus-visible{color:var(--villa-accent-soft);border-color:var(--villa-accent-soft);outline:none}.villa-enter-roster{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:1fr;display:grid}@media (width>=480px){.villa-enter-roster{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.villa-enter-roster{grid-template-columns:repeat(3,minmax(0,1fr))}}.villa-persona-card{min-height:44px;padding:var(--space-2) var(--space-3);text-align:left;background:var(--villa-surface-raised);border:1px solid var(--villa-border);border-left:3px solid var(--villa-border);cursor:pointer;border-radius:4px;flex-direction:column;justify-content:center;align-items:flex-start;gap:.1rem;display:flex}.villa-persona-card strong{color:var(--villa-text);font-size:1rem;font-weight:500}.villa-persona-card span{color:var(--villa-text-muted);font-size:.82rem}.villa-persona-card:hover,.villa-persona-card:focus-visible{border-color:var(--villa-accent-soft);outline:none}.villa-persona-card.is-active{border-color:var(--villa-accent-soft);border-left-color:var(--villa-accent-soft);background:var(--villa-chip-bg)}.villa-enter-thread{margin-top:var(--space-2);flex-direction:column;display:flex}.villa-chat-log{gap:var(--space-2);max-height:min(60dvh,560px);padding:var(--space-2);margin-bottom:var(--space-2);border:1px solid var(--villa-border);scroll-behavior:smooth;background:#1e1a1699;border-radius:4px;flex-direction:column;display:flex;overflow-y:auto}.villa-chat-bubble{max-width:85%;padding:var(--space-2) var(--space-3);border-radius:4px;font-size:.98rem;line-height:1.55}.villa-chat-bubble p{margin:0 0 var(--space-1)}.villa-chat-bubble p:last-of-type{margin-bottom:0}.villa-chat-bubble--character{background:var(--villa-surface-raised);border:1px solid var(--villa-border);border-left:3px solid var(--villa-accent-soft);align-self:flex-start}.villa-chat-bubble--member{background:var(--villa-chip-bg);border:1px solid var(--villa-border);color:var(--villa-text);align-self:flex-end}.villa-chat-name{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--villa-accent-soft);margin-bottom:var(--space-1);font-size:.72rem;display:block}.villa-chat-pause{text-align:center;font-family:var(--font-mono);color:var(--villa-text-muted);font-size:.72rem;display:block}.villa-chat-emotion{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--villa-text-muted);font-size:.72rem;display:block}.villa-composer{z-index:20;margin:0 calc(-1 * var(--space-3));padding:var(--space-2) var(--space-3);padding-bottom:max(env(safe-area-inset-bottom), var(--space-2));border-top:1px solid var(--villa-border);background:#2d2520fa;position:sticky;bottom:0}.villa-composer-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--villa-text-muted);margin-bottom:var(--space-1);font-size:.72rem;display:block}.villa-composer-row{align-items:flex-end;gap:var(--space-2);display:flex}.villa-composer-input{min-height:44px;max-height:160px;padding:.55rem var(--space-2);color:var(--villa-text);background:var(--villa-surface-raised);border:1px solid var(--villa-border);resize:none;border-radius:4px;flex:1;font-family:inherit;font-size:1rem}.villa-composer-input:focus-visible{border-color:var(--villa-accent-soft);outline:none}.villa-composer-send{min-width:44px;min-height:44px;padding:0 var(--space-3);font-family:var(--font-mono);color:#1e1a16;background:var(--villa-accent-soft);border:1px solid var(--villa-accent);cursor:pointer;border-radius:4px;flex-shrink:0;font-size:.85rem}.villa-composer-send:disabled{opacity:.45;cursor:default}.villa-composer-send:not(:disabled):hover,.villa-composer-send:not(:disabled):focus-visible{background:var(--villa-accent);color:var(--villa-text);outline:none}.villa-chat-status{margin:var(--space-1) 0 0;font-family:var(--font-mono);color:var(--villa-accent-soft);font-size:.78rem}.villa-chat-status:empty{display:none}.villa-enter-locked{margin-top:var(--space-3);padding:var(--space-3);border:1px dashed var(--villa-border);text-align:center;border-radius:4px}.villa-enter-locked p{margin-bottom:0}.villa-enter-muted{color:var(--villa-text-muted);font-size:.85rem}.villa-enter-link{font-family:var(--font-mono);color:var(--villa-accent-soft);border-bottom:1px solid #b08a2e8c;font-size:.9rem}
