body,#roomImg,#shelfLayer,#projectView,#profileView,.project-info,.album-side,.divider,.arrow{
  transition-property:background-color,color,border-color,filter;
  transition-duration:.85s;
}
.theme-toggle{
  position:fixed;right:24px;bottom:24px;z-index:81;width:42px;height:42px;
  display:grid;place-items:center;border:1px solid #bbb;border-radius:50%;
  background:rgba(255,255,255,.8);color:#222;cursor:pointer;font:24px/1 serif;
  transition:background .5s,color .5s,transform .3s;
}
.theme-toggle:hover{transform:rotate(-15deg)}
body footer{right:84px}
body:has(#intro) .theme-toggle{display:none}
#roomBack::after{content:'';position:absolute;inset:0;background:#090909;opacity:0;transition:opacity .85s}
#roomNight{
  position:fixed;z-index:2;pointer-events:none;opacity:0;transition:opacity 1.2s;
  mask-image:linear-gradient(to bottom,transparent,#000 22%);
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%);
}
body.night{--ink:#f1efea;--ink-soft:#b9b5ad;--ink-faint:#96918a;background:#090909;color:var(--ink);color-scheme:dark}
body.night #roomBack::after,body.night #roomNight{opacity:1}
body.night #roomImg{opacity:0}
#roomImg{transition:opacity 1.2s}
body #shelfLayer{background:transparent;filter:none}
body.night #shelfLayer .spine{filter:brightness(.9)}
body.night .divider{background:#252525;border-color:#555;color:#e8e8e8}
body.night .divider span{color:#f3f3f3;font-weight:500}
body.night .divider.active{background:#eeeeec;border-color:#eeeeec;color:#191919}
body.night .divider.active span{color:#191919;font-weight:500}
body.night .spine.is-project{background:#161616!important}
body.night .arrow,body.night .project-close{background:rgba(25,24,22,.85);border-color:#5f5c56;color:#efede8}
body.night .arrow:hover,body.night .project-close:hover{background:#efede8;color:#141414}
body.night .sound-toggle,body.night .theme-toggle{background:#1c1b19;border-color:#6a6257;color:#f0d3ab}
body.night .sound-toggle.on{background:#efc38e;color:#191510}
body.night .sound-toggle.on::after{border-color:#a17d52}
body.night #projectView,body.night #profileView{background:#101010;color:var(--ink)}
body.night .project-info{background:#191919}
body.night .album-side{background:#24211e}
body.night .project-deck,body.night .project-copy,body.night .case-description p,
body.night .profile-lead,body.night .profile-value,body.night .profile-tags,
body.night .project-meta dd{color:#cbc6bd}
body.night .project-meta{border-color:#44413b}
body.night .project-kicker,body.night .case-description-label{color:#dca86e}
body.night .profile-label,body.night .project-meta dt,body.night .project-grid figcaption{color:#a9a298}
body.night .profile-tags span{border-color:#514b43}
body.night .campaign-carousel-controls button{border-color:#bcb6ac;color:#ede7dd}
body.night .campaign-carousel-controls button:hover{background:#292621}
body.night .line-listener{color:#d0b390}
@keyframes nightSwitch{0%{opacity:0}40%{opacity:.14}100%{opacity:0}}
body.theme-switching::before{content:'';position:fixed;inset:0;z-index:90;pointer-events:none;background:#eab378;animation:nightSwitch .85s ease-out both}
@media(max-width:600px){.theme-toggle{right:14px;bottom:14px;width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){
  body,#roomImg,#roomNight,#shelfLayer,#projectView,#profileView,.project-info,.album-side,.divider,.arrow,#roomBack::after,.theme-toggle{transition:none}
  body.theme-switching::before{display:none}
}
