/* Available on every portfolio route; campaign landing pages opt out. */
.entrance:not(.portfolio-intro){display:none}
.entrance.portfolio-intro{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:48px;background:var(--bg,#fffdf8);color:var(--ink,#22211f);font:500 clamp(28px,4.5vw,65px)/1.35 Ranade,Satoshi,sans-serif;letter-spacing:-2px;opacity:1;transform:none;transition:transform .6s cubic-bezier(.76,0,.24,1),opacity .55s}
.entrance.portfolio-intro:before{content:'a.';position:absolute;top:35px;left:40px;font:700 50px/1 Satoshi,sans-serif;letter-spacing:-4px}
.entrance.portfolio-intro .intro-line{display:block;width:min(100%,950px);min-height:2.7em}
.entrance.portfolio-intro .typing-cursor{color:var(--accent,#967759)}
.entrance.portfolio-intro #skip-intro{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);min-height:44px;border:0;background:none;color:var(--ink,#22211f);font:500 12px/1.4 Satoshi,sans-serif;letter-spacing:0;padding:12px 18px;cursor:pointer}
.entrance.portfolio-intro #skip-intro:focus-visible{outline:2px dashed var(--accent,#967759);outline-offset:3px}
.entrance.portfolio-intro.done{transform:translateY(-100%);opacity:0;pointer-events:none}
.intro-accessible{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.intro-active{overflow:hidden}
body.intro-active main{filter:blur(5px)}
@media(max-width:760px){.entrance.portfolio-intro{padding:28px;font-size:32px;letter-spacing:-1px}.entrance.portfolio-intro:before{left:25px;top:25px}}
@media(prefers-reduced-motion:reduce){.entrance.portfolio-intro{display:none}body.intro-active main{filter:none}}
