/* Stable geometry and one duration for page departure. */
#viewport .page,#viewport .page.words{transform:none!important;filter:none;transition:opacity 1600ms cubic-bezier(.45,0,.55,1)}#viewport .page.active{filter:none;transform:none!important;opacity:1;transition:opacity 1600ms cubic-bezier(.45,0,.55,1)}#viewport .page.active.departing{filter:none;opacity:0;transform:none!important;transition:opacity 1600ms cubic-bezier(.45,0,.55,1)}
#viewport{isolation:isolate}#viewport:before{content:'';position:absolute;inset:0;z-index:-1;background:#080604;pointer-events:none}#camera{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:flat}
@media(orientation:portrait){#viewport:before{background:linear-gradient(#080604bd,#080604e8),url('assets/room-portrait.webp') center/cover no-repeat;filter:blur(18px) brightness(.28);transform:scale(1.05)}}
/* About opens as a complete portrait composition, including its caption. */
#viewport #story .review-top{padding:42px 0 16px;border:0;position:relative}#viewport #story .review-top:before{content:'';position:absolute;inset:0 12% -30px;background:radial-gradient(ellipse,#bd934626,transparent 72%);pointer-events:none}#viewport #story .review-brand{width:min(86%,340px);transform:none;position:relative;z-index:1}#viewport #story .about-layout{padding-top:12px}#viewport #story .portrait{position:relative;isolation:isolate}#viewport #story .portrait:before{content:'';position:absolute;inset:-30px -35px 25px;z-index:-1;background:radial-gradient(ellipse at 50% 42%,#b08b4530,transparent 68%);filter:blur(16px);pointer-events:none}#viewport #story .portrait .portrait-raster{filter:brightness(.46);opacity:1;object-fit:contain;object-position:center bottom;mask-image:linear-gradient(#000 74%,transparent 100%);-webkit-mask-image:linear-gradient(#000 74%,transparent 100%)}#viewport #story .portrait figcaption{padding:12px 0 10px;min-height:58px;line-height:1.45}#viewport #story .portrait strong{font-size:13px;letter-spacing:.17em}#viewport #story .portrait span{font-size:12px;margin-top:6px}
@media(orientation:portrait){#viewport #story .review-top{padding:35px 0 12px}#viewport #story .review-content{padding:0 6%}#viewport #story .review-brand{width:min(94%,330px)}#viewport #story .about-layout{display:flex;flex-direction:column;align-items:stretch;padding-top:4px;gap:30px}#viewport #story .portrait{width:100%;max-width:340px;margin:0 auto}#viewport #story .portrait .portrait-raster{height:clamp(160px,calc(100svh - 290px),420px);max-height:none;width:100%}#viewport #story .portrait figcaption{height:64px;padding:12px 0 10px}#viewport #story .portrait strong{font-size:12px}#viewport #story .portrait span{font-size:11px}#viewport #story .review-content h1{font-size:30px}}
@media(orientation:landscape) and (max-height:600px){#viewport #story .review-top{padding:26px 0 10px}#viewport #story .review-brand{width:220px}#viewport #story .about-layout{grid-template-columns:minmax(0,.75fr) minmax(0,1.2fr);gap:6%;padding-top:10px}#viewport #story .portrait{position:sticky;top:12px}#viewport #story .portrait .portrait-raster{height:calc(100svh - 210px);max-height:320px;width:100%}#viewport #story .portrait figcaption{min-height:53px;padding:8px 0}#viewport #story .portrait strong{font-size:11px}#viewport #story .portrait span{font-size:10px}}
@media(prefers-reduced-motion:reduce){#viewport .page,#viewport .page.active,#viewport .page.active.departing{transition-duration:1ms!important}}

/* The home artworks are the navigation. Keep the shared dock inside rooms only. */
body[data-page=home] #room-navigation{display:none!important}body[data-page=home] #viewport{bottom:0}
