@import url('./opening-brand.css?v=20261028-rc4-opening3');
/* One optional opening; palette and layout tokens stay outside the animation code. */
:root{--opening-planet-deep:.065 .025 .16;--opening-planet-lit:.38 .095 .56;--opening-cloud:.74 .37 .69;--opening-atmosphere:.35 .57 1}
.portfolio-opening{display:none;position:fixed;inset:0;z-index:8;pointer-events:none;color:var(--space-ink);font-family:Archivo,Arial,sans-serif}
html[data-portfolio-opening=pending] .portfolio-opening,html[data-portfolio-opening=active] .portfolio-opening{display:block}
html[data-portfolio-opening=pending] .hero :is(h1,.intro),html[data-portfolio-opening=active] .hero :is(h1,.intro){opacity:0}
.portfolio-opening-backdrop,.portfolio-opening-scene{position:absolute;inset:0}
.portfolio-opening-backdrop{background:var(--space)}
.portfolio-opening-scene canvas{display:block;width:100%;height:100%}
/* Keep symbol and name hidden together until the timeline's first reveal. */
.portfolio-opening-signature{opacity:0;position:absolute;top:50%;left:0;right:0;text-align:center;font-size:clamp(20px,2.3vw,36px);font-weight:480;letter-spacing:-.025em}
.portfolio-opening-logo{display:grid;place-items:center;gap:12px;width:clamp(180px,22vw,280px);min-height:80px;margin:auto;transform:translateY(-50%)}
.portfolio-opening-name{font-size:clamp(16px,1.6vw,22px);font-weight:550;line-height:1.2;letter-spacing:-.02em;white-space:nowrap}
.portfolio-opening-logo img{display:block;max-width:100%;max-height:280px;width:100%;height:auto;object-fit:contain}
.portfolio-opening-skip{position:absolute;right:var(--gutter);bottom:max(24px,env(safe-area-inset-bottom));pointer-events:auto;min-width:44px;min-height:44px;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer;padding:8px 0}
.portfolio-opening-skip:focus-visible{outline:2px solid var(--ice);outline-offset:5px}
@media(prefers-reduced-motion:reduce){.portfolio-opening{display:none!important}html[data-portfolio-opening] .hero :is(h1,.intro){opacity:1!important}}
