/* The existing palette and type remain the frame for every spatial detail. */
.start .landscape.house-scene{background:#91a7ad;overflow:hidden;isolation:isolate;pointer-events:auto;--draw:0;--built:0}
.scene-surface{position:absolute;overflow:hidden}
.scene-photo,.scene-blueprint{position:absolute;inset:0;width:100%;height:100%;display:block}
.scene-photo{object-fit:fill;clip-path:inset(calc((1 - var(--built))*100%) 0 0);transition:opacity 1.5s ease}
.scene-day{opacity:1}.scene-evening{opacity:0}
.is-evening .scene-day{opacity:0}.is-evening .scene-evening{opacity:1}
.house-scene .scene-blueprint{opacity:calc(1 - var(--built));overflow:hidden;pointer-events:none}
.scene-blueprint path{stroke-dasharray:var(--length);stroke-dashoffset:calc(var(--length)*(1 - var(--draw)))}
.scene-toggle{position:absolute;bottom:16px;right:16px;z-index:4;padding:10px 14px;min-height:44px;border:1px solid #f4f0e8a0;color:#f4f0e8;background:#281c23c9;font-size:10px;pointer-events:auto;opacity:0;visibility:hidden;transition:opacity .4s}
.is-built .scene-toggle{opacity:1;visibility:visible}
.sunbeam{position:absolute;inset:-35%;background:linear-gradient(116deg,transparent 32%,#fff0c500 40%,#fff0c536 46%,#fff6df54 49%,#fff0c50c 57%,transparent 62%);mix-blend-mode:soft-light;pointer-events:none;opacity:0;z-index:2;translate:calc(var(--pointer-x,0)*22px) calc(var(--pointer-y,0)*12px)}
.has-presence .sunbeam{animation:franz-sun-pass 7s ease-in-out both}
.intro-pending .sunbeam,.intro-entering .sunbeam{animation:none}
.about .portrait-halo{position:absolute;inset:12% 5% 3% 45%;background:radial-gradient(ellipse,#d9c49972,transparent 65%);pointer-events:none;translate:calc(var(--pointer-x,0)*-18px) calc(var(--pointer-y,0)*-12px)}
.about .shadow-name{translate:calc(var(--pointer-x,0)*-15px) calc(var(--pointer-y,0)*-8px)}
.about .face-content{translate:calc(var(--pointer-x,0)*-4px) calc(var(--pointer-y,0)*-3px)}
.about .portrait{filter:brightness(0) drop-shadow(calc(14px + var(--pointer-x,0)*-8px) calc(18px + var(--pointer-y,0)*-5px) 18px #54253220)}
.about.has-presence .portrait{animation:franz-rimlight 2.5s ease-out}
.franz-surprise{position:fixed;z-index:24;left:var(--pad);top:84px;max-width:calc(100vw - 48px);margin:0;padding:14px 18px;background:var(--wine);color:var(--chalk);border:1px solid #b29b6f;font:400 23px/1.2 Newsreader,serif;opacity:0;visibility:hidden;translate:0 -8px;transition:opacity .25s,translate .25s,visibility .25s;pointer-events:none}
.franz-surprise.is-visible{opacity:1;visibility:visible;translate:0 0}
@keyframes franz-sun-pass{0%{transform:translateX(-24%);opacity:0}25%{opacity:.8}80%{opacity:.65}100%{transform:translateX(25%);opacity:0}}
@keyframes franz-rimlight{0%,100%{filter:brightness(0) drop-shadow(14px 18px 18px #54253220)}35%{filter:brightness(0) drop-shadow(-2px -1px 2px #b29b6f70) drop-shadow(14px 18px 18px #54253220)}}
@media(max-width:760px){.start .landscape.house-scene{top:max(56%,calc(16% + 164px + clamp(27px,7.4vw,42px)*3.81))}.scene-toggle{bottom:10px;right:10px;font-size:9px;padding:8px 11px}.about .portrait-halo{inset:40% 0 10% 20%}.franz-surprise{top:70px;font-size:20px}}
.no-animation .sunbeam,.no-animation .portrait-halo{display:none}.no-animation .portrait,.no-animation .sunbeam{animation:none!important}.no-animation .about .shadow-name,.no-animation .about .face-content{translate:none}.no-animation .scene-photo,.no-animation .franz-surprise{transition:none}
.no-js .start .landscape.house-scene{--built:1;--draw:1}.no-js .scene-surface{inset:0;width:100%;height:100%}.no-js .scene-photo{object-fit:cover;object-position:70% center}.no-js .scene-toggle,.no-js .scene-blueprint{display:none}
@media(prefers-reduced-motion:reduce){.sunbeam,.portrait-halo{display:none}.about .portrait{animation:none!important}.scene-photo,.scene-toggle,.franz-surprise{transition:none}.about .shadow-name,.about .face-content{translate:none}}
