/* The Living House Director: continuity, adaptive support, and authored room moments. */
.director-toggle{position:relative}.director-toggle b{min-width:20px;padding:2px 6px;border-radius:999px;background:#79ddcc1a;color:#9aeee0;font-size:.62rem;text-align:center}.director-toggle.has-unread::after{content:"";position:absolute;right:5px;top:5px;width:7px;height:7px;border-radius:50%;background:#f3bd65;box-shadow:0 0 12px #f3bd65}
.director-dialog{width:min(700px,calc(100vw - 24px));max-height:min(780px,calc(100dvh - 24px));padding:0;border:1px solid #79ddcc45;border-radius:24px;color:#edf3f2;background:linear-gradient(155deg,#101a25 0%,#070b12 68%);box-shadow:0 35px 110px #000e;overflow:auto}.director-dialog::backdrop{background:#02060dcc;backdrop-filter:blur(9px)}.director-dialog-header{position:sticky;z-index:2;top:0;padding:28px 62px 20px 28px;border-bottom:1px solid #ffffff12;background:#0b121ceb;backdrop-filter:blur(14px)}.director-dialog-header small,.director-moment small{display:block;color:#80dfd2;font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.director-dialog h2{margin:6px 0 5px;color:#f7f0e3;font:600 clamp(1.8rem,5vw,3rem)/1 Georgia,serif}.director-dialog-header p{margin:0;color:#9eabb8;font-size:.82rem}.director-close{position:absolute;right:20px;top:20px;width:38px;height:38px;border:1px solid #ffffff18;border-radius:50%;background:#ffffff08;color:#dbe5e7;font-size:1.3rem;cursor:pointer}.director-current{display:grid;grid-template-columns:auto 1fr;gap:14px;margin:22px 28px;padding:17px;border:1px solid #f1bd6252;border-radius:17px;background:linear-gradient(135deg,#f1bd6212,transparent)}.director-current>i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f1bd6218;color:#f4c975;font-style:normal}.director-current small,.director-current strong,.director-current span{display:block}.director-current small{color:#e7bd72;font-size:.58rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.director-current strong{margin-top:4px;font:600 1.05rem Georgia,serif}.director-current span{margin-top:3px;color:#a9b4c0;font-size:.76rem;line-height:1.45}.director-sections{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;padding:0 28px 28px}.director-section{padding:17px;border:1px solid #ffffff12;border-radius:17px;background:#ffffff05}.director-section h3{margin:0 0 12px;color:#eaf1f0;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.director-thread-list,.director-memory-list{display:grid;gap:8px}.director-thread{display:grid;grid-template-columns:10px 1fr;gap:9px;align-items:start}.director-thread i{width:7px;height:7px;margin-top:5px;border-radius:50%;background:#7fdfd0;box-shadow:0 0 9px #7fdfd0}.director-thread b,.director-thread span{display:block}.director-thread b{font-size:.76rem}.director-thread span{margin-top:2px;color:#8997a7;font-size:.68rem;line-height:1.4}.director-thread.is-resolved{opacity:.52}.director-thread.is-resolved i{background:#d2ac67;box-shadow:none}.director-memory{padding-bottom:8px;border-bottom:1px solid #ffffff0d}.director-memory:last-child{padding:0;border:0}.director-memory b{display:block;color:#d8e1e1;font-size:.72rem}.director-memory span{display:block;margin-top:2px;color:#8392a2;font-size:.67rem;line-height:1.4}.director-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.director-stats span{padding:8px;border-radius:10px;background:#ffffff06;color:#7f8d9d;font-size:.57rem;text-align:center}.director-stats b{display:block;color:#eef4f3;font-size:.9rem}
.director-moment{position:fixed;z-index:850;right:clamp(12px,2.4vw,36px);top:calc(var(--header-height,76px) + 18px);width:min(390px,calc(100vw - 24px));padding:14px 48px 14px 16px;border:1px solid color-mix(in srgb,var(--director-color,#7fdfd0) 42%,transparent);border-radius:16px;background:linear-gradient(140deg,#0c1520f5,#060a11f5);box-shadow:0 18px 55px #000b,0 0 30px color-mix(in srgb,var(--director-color,#7fdfd0) 9%,transparent);opacity:0;transform:translateY(-12px);pointer-events:none;transition:.3s ease}.director-moment.is-visible{opacity:1;transform:none;pointer-events:auto}.director-moment strong{display:block;margin-top:4px;color:#f4eee2;font:600 1rem Georgia,serif}.director-moment p{margin:4px 0 0;color:#acb8c5;font-size:.75rem;line-height:1.42}.director-moment button{position:absolute;right:9px;top:9px;width:30px;height:30px;border:1px solid #ffffff17;border-radius:9px;background:#ffffff08;color:#cbd5dc;cursor:pointer}
body:has(.director-moment.is-visible) .house-caption{opacity:0!important;pointer-events:none!important}
.view.is-active::before{transition:opacity 1.2s ease}.view.is-active[data-director-mood="curious"]::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:radial-gradient(circle at 67% 36%,#6fded014,transparent 25%);opacity:1}.view.is-active[data-director-mood="warm"]::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 62%,#f3bd6817,transparent 36%);opacity:1}.view.is-active[data-director-mood="mischief"]::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:radial-gradient(circle at 76% 28%,#aa78ec17,transparent 30%);opacity:1}.view.is-active[data-director-mood="hushed"]::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;background:linear-gradient(#03081218,#03081242);opacity:1}
body[data-house-support="2"] .room-hint:not([hidden]),body[data-house-support="2"] .puzzle-hint:not([hidden]){border-color:#e6bd7066;box-shadow:0 0 0 4px #e6bd700a,0 0 20px #e6bd7010}body[data-house-support="3"] .room-hint:not([hidden]),body[data-house-support="3"] .puzzle-hint:not([hidden]){border-color:#82ded0;box-shadow:0 0 0 5px #82ded010,0 0 24px #82ded022;animation:director-help 1.8s ease-in-out infinite}@keyframes director-help{50%{transform:translateY(-2px)}}
@media(max-width:1000px){.house-status{display:none}.director-toggle>span:nth-child(2){display:none}.director-toggle{min-width:42px;padding-inline:9px}}
@media(max-width:760px){.director-dialog-header{padding:22px 52px 16px 18px}.director-current{margin:14px 16px}.director-sections{grid-template-columns:1fr;padding:0 16px 18px}.director-moment{top:calc(var(--header-height,68px) + 8px);right:10px;left:10px;width:auto;padding:11px 44px 11px 13px}.director-moment p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}}
@media(prefers-reduced-motion:reduce){.director-moment{transition:none}body[data-house-support="3"] .room-hint,body[data-house-support="3"] .puzzle-hint{animation:none}}
