.hero-enter { --enter-fill:color-mix(in srgb, var(--ink) 62%, var(--bg)); position:relative; isolation:isolate; display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:0 16px; border:0; border-radius:2px; background:transparent; color:var(--bg); font:500 13px 'JetBrains Mono',monospace; white-space:nowrap; cursor:pointer; }
/* A slim visible fill inside a comfortable pointer/touch target. */
.hero-enter::before { content:''; position:absolute; inset:8px 0; z-index:-1; border-radius:2px; background:var(--enter-fill); pointer-events:none; transition:background 160ms ease; }
.hero-enter:not(:disabled):hover, .hero-enter:focus-visible { --enter-fill:var(--ink); }
.hero-enter:focus-visible { outline-offset:3px; }
.hero-command-bracket { color:inherit; }
.hero-enter svg { flex-shrink:0; transition:transform 160ms ease; }
.hero-enter:hover svg { transform:translateX(2px); }
.hero-enter:disabled { opacity:.45; cursor:wait; }
html:has(body[data-swallow='running']), html:has(body[data-swallow='complete']) { overflow:hidden; }
body[data-swallow='running'] .portrait-scene { position:fixed; inset:0; z-index:30; }
body[data-swallow='running'] .hero-stage { isolation:auto; overflow:visible; }
body[data-swallow='running'] .hero-enter { pointer-events:none; }
body[data-swallow='running'] .hero-essentials,
body[data-swallow='running'] .name-backdrop,
body[data-swallow='running'] .site-header,
body[data-swallow='running'] .portfolio-body,
body[data-swallow='running'] .skip-link,
body[data-swallow='running'] #hero-gaze,
body[data-swallow='running'] #hero-scan { visibility:hidden; }
body[data-swallow='running'] #pointer-tether { visibility:hidden!important; }
.swallow-cover { position:fixed; inset:0; background:var(--bg); z-index:40; pointer-events:none; opacity:0; }
.swallow-end { position:fixed; inset:0; z-index:41; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px; padding:24px; text-align:center; background:var(--bg); }
.swallow-end h2 { margin:0; color:var(--ink); font-size:clamp(28px,5vw,64px); letter-spacing:-.055em; font-weight:400; }
.swallow-actions { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; }
.swallow-actions button { min-height:44px; padding:10px 18px; border:1px solid #343d34; background:transparent; color:var(--accent); cursor:pointer; font:12px 'JetBrains Mono',monospace; }
.swallow-actions button:hover { border-color:var(--accent); }
.swallow-skip { position:fixed; top:24px; right:var(--frame-edge); z-index:42; min-height:44px; padding:8px 14px; color:var(--ink); background:var(--bg); border:1px solid #343d34; cursor:pointer; font:11px 'JetBrains Mono',monospace; }
/* Keep the short entrance skippable for assistive tech without showing UI. */
body[data-swallow='running'] .swallow-skip { width:1px; height:1px; min-height:0; padding:0; border:0; overflow:hidden; clip-path:inset(50%); }
@media(max-width:700px) { .hero-enter { gap:6px; padding:0 4px; font-size:11px; } .hero-enter svg { width:13px; height:13px; } }
@media(prefers-reduced-motion:reduce) { .swallow-end * { animation:none!important; } }
