/* The window is the day/night switch, with the same room geometry in both modes. */
.theme-window{padding:0;cursor:pointer;appearance:none;-webkit-appearance:none}
.theme-window>*{pointer-events:none}
.theme-window:hover,.theme-window:focus-visible{outline:2px solid #ffffff88;outline-offset:-1px}
.window-stars{position:absolute;inset:0;opacity:0;background:radial-gradient(circle at 62% 18%,#c7d9c4 0 1px,transparent 1.6px),radial-gradient(circle at 81% 24%,#c7d9c4 0 1px,transparent 1.6px),radial-gradient(circle at 72% 49%,#c7d9c4 0 1px,transparent 1.6px),radial-gradient(circle at 87% 57%,#c7d9c4 0 1px,transparent 1.6px),radial-gradient(circle at 56% 65%,#c7d9c4 0 .8px,transparent 1.5px),radial-gradient(circle at 15% 69%,#c7d9c4 0 1px,transparent 1.6px),radial-gradient(circle at 31% 58%,#c7d9c4 0 .8px,transparent 1.5px);transition:opacity .25s ease}
.room.is-model-zoomed .theme-window{pointer-events:none}
html[data-theme=night]{color-scheme:dark;--paper:#202322;--ink:#ded4b5;--muted:#b3b5a5;--sage:#9db7a4;--orange:#c0a181;--wood:#211c27}
html[data-theme=night] header,html[data-theme=night] .project-detail{border-color:#454a44}
html[data-theme=night] .wordmark,html[data-theme=night] nav{color:#ded4b5}
html[data-theme=night] .eyebrow{color:#aac1ae}
html[data-theme=night] .location{color:#c4c0a9}
html[data-theme=night] .location i{background:#a3c5ad;box-shadow:0 0 10px #a3c5ad77}
html[data-theme=night] .back-wall{background:#343844;border-color:#343844}
html[data-theme=night] .back-wall:before,html[data-theme=night] .back-wall:after{background:#343844}
html[data-theme=night] .room-floor{background:#151923;border-top-color:#1b1f27}
html[data-theme=night] .window{background:#07191f;border-color:#202c31}
html[data-theme=night] .window:after{border-color:#202c31}
html[data-theme=night] .window-sill{background:#202c31}
html[data-theme=night] .window-stars{opacity:1}
html[data-theme=night] .hills{background:#3a4c46}
html[data-theme=night] .bookshelf{background:#29282f}
html[data-theme=night] .bookcase-base{background:#1e1a23}
html[data-theme=night] .shelf-row::before{background:#d8e0cc09;box-shadow:inset 0 0 0 1.5px #d8e0cc66,inset 0 0 13px #d8e0cc22,0 0 7px #d8e0cc11}
html[data-theme=night] .shelf-wall-label{color:#e5d8b4;text-shadow:none}
html[data-theme=night] .shelf-project svg,html[data-theme=night] .room-object svg{opacity:.78}
html[data-theme=night] .desk{background:#292a32;border-color:#30333b}
html[data-theme=night] .desk-edge{background:#20222a}
html[data-theme=night] .mat{background:#3a4e46;border-color:#41574c}
html[data-theme=night] .desk-decoration svg{opacity:.7}
html[data-theme=night] .botanical-poster{opacity:.62}
html[data-theme=night] .bed-scene [fill="#b6a17e"]{fill:#4a3438}
html[data-theme=night] .bed-scene [fill="#9f8464"]{fill:#39292f}
html[data-theme=night] .bed-scene [fill="#96a47f"]{fill:#526b5d;stroke:#526b5d}
html[data-theme=night] .bed-scene [fill="#afbb97"]{fill:#758a7c}
html[data-theme=night] .bed-scene [fill="#f7efdf"]{fill:#c0b4aa;stroke:#aca39b}
html[data-theme=night] .bed-scene [fill="#eee6d4"]{fill:#9e9d90}
html[data-theme=night] .room>.model-render-layer{filter:brightness(.82) saturate(.85)}
html[data-theme=night] .viewer-tools #reset{background:#393b2d88;border-color:#8a826244;color:#ded4b5}
html[data-theme=night] .viewer-tools #reset:hover{background:#464a39}
html[data-theme=night] .room-item-tooltip{background:#354735;color:#e7dbaf;border-color:#829174;box-shadow:0 3px 10px #0002}
html[data-theme=night] .text-link,html[data-theme=night] .contact-email{color:#b8cbb3}
html[data-theme=night] dialog{border-color:#596353}
html[data-theme=night] dialog::backdrop{background:#090d13aa}
html[data-theme=night] .resume-actions a{border-color:#71725d}

/* Pin the divider to both edges: buttons otherwise give an auto top position. */
.theme-window::after{top:0;bottom:0;height:auto;z-index:4;pointer-events:none}
.window-sill{z-index:5;bottom:-8px;left:-8px;right:-8px;height:13px}
/* The sill overlaps the full border; the hover outline hugs the frame without a wall-colored gap. */
html[data-theme=night] .theme-window{box-shadow:none;background-clip:border-box}
.celestial-wheel{position:absolute;inset:0;transform-origin:50% 140%;transform:rotate(var(--sky-turn,0deg));transition:transform 1s cubic-bezier(.65,-.08,.25,1);z-index:1}
html[data-theme=night] .celestial-wheel{--sky-turn:180deg}
.celestial-wheel .sun{background:#dab66c;box-shadow:0 0 15px #dab66c22}
.moon{position:absolute;left:calc(78% - 30px);top:calc(280% - 58px);width:30px;height:30px;border-radius:50%;transform:rotate(180deg);background:#eadbb0;box-shadow:0 0 20px #eadbb02b}
.moon::after{content:'';position:absolute;width:26px;height:26px;left:11px;top:-5px;border-radius:50%;background:#07191f}
.hills{z-index:2}
/* Theme changes begin just after the wheel starts to turn. */
html.theme-transition body,html.theme-transition header,html.theme-transition nav,html.theme-transition .wordmark,html.theme-transition .location,html.theme-transition .eyebrow,html.theme-transition .project-detail,html.theme-transition .back-wall,html.theme-transition .back-wall::before,html.theme-transition .back-wall::after,html.theme-transition .room-floor,html.theme-transition .window,html.theme-transition .window::after,html.theme-transition .window-sill,html.theme-transition .hills,html.theme-transition .bookshelf,html.theme-transition .bookcase-base,html.theme-transition .desk,html.theme-transition .desk-edge,html.theme-transition .mat,html.theme-transition dialog,html.theme-transition .text-link,html.theme-transition .contact-email,html.theme-transition #reset{transition:background-color .8s ease,color .8s ease,border-color .8s ease,box-shadow .8s ease}
html.theme-transition .bed-scene [fill]{transition:fill .8s ease,stroke .8s ease}
html.theme-transition .shelf-project svg,html.theme-transition .room-object svg,html.theme-transition .desk-decoration svg,html.theme-transition .botanical-poster{transition:opacity .8s ease}
html.theme-transition .model-render-layer{transition:filter .8s ease}
.window-stars{transition:opacity .8s ease}
@media(prefers-reduced-motion:reduce){.celestial-wheel{transition:none}html.theme-transition *,html.theme-transition *::before,html.theme-transition *::after{transition:none!important}}

/* Restore the original slim sill; flatten the bottom of the landscape into it. */
html[data-theme=night] .theme-window .window-sill{bottom:-8px;left:-8px;right:-8px;height:13px;background:#202c31;z-index:5}
.window-landscape-base{position:absolute;bottom:0;left:0;right:0;height:6px;z-index:3;background:#9da985}
html[data-theme=night] .window-landscape-base{background:#202c31}
html.theme-transition .window-landscape-base{transition:background-color .8s ease}
