/* ============================================================
   Immerse — Stage Clear
   Rooms are stages. Scroll/hold charges a gate. Crossing it is a
   beat-cut (fanfare), not a fade.
   ============================================================ */

html.im-html, html.im-html body{
  background:var(--bg);
  overflow:hidden;
  height:100%;
  height:100dvh;
  overscroll-behavior:none;
  --im-accent:var(--accent);
  --im-hue:218;
  --im-cursor-hot:oklch(0.86 0.24 calc(var(--im-hue) + 180));
  --im-content-max:min(1180px, 100%);
  --im-content-narrow:min(920px, 100%);
}
@media (min-width:1280px){
  html.im-html{
    --im-content-max:min(94vw, 1360px);
    --im-content-narrow:min(84vw, 1080px);
  }
}
@media (min-width:1600px){
  html.im-html{
    --im-content-max:min(92vw, 1560px);
    --im-content-narrow:min(80vw, 1220px);
  }
}
@media (min-width:1920px){
  html.im-html{
    --im-content-max:min(90vw, 1720px);
    --im-content-narrow:min(76vw, 1320px);
  }
}
@media (min-width:2560px){
  html.im-html{
    --im-content-max:min(88vw, 1920px);
    --im-content-narrow:min(72vw, 1480px);
  }
}
html.im-html #root{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0;
  overflow:hidden;
  padding-top:env(safe-area-inset-top, 0px);
  padding-bottom:env(safe-area-inset-bottom, 0px);
}
html.im-html[data-im-room="0"]{--im-hue:218;--im-accent:oklch(0.82 0.125 218)}
html.im-html[data-im-room="1"]{--im-hue:40;--im-accent:oklch(0.84 0.14 40)}
html.im-html[data-im-room="2"]{--im-hue:250;--im-accent:oklch(0.78 0.08 250)}
html.im-html[data-im-room="3"]{--im-hue:200;--im-accent:oklch(0.80 0.11 200)}
html.im-html[data-im-room="4"]{--im-hue:150;--im-accent:oklch(0.84 0.15 150)}
html.im-html[data-im-room="5"],
html.im-html[data-im-arcade="1"]{--im-hue:218;--im-accent:var(--accent)}
html.im-html[data-im-room="6"]{--im-hue:218;--im-accent:oklch(0.82 0.125 218)}
.im-boot{
  min-height:100svh;display:grid;place-content:center;gap:8px;text-align:center;
  font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;
}
.im-boot__k{color:var(--accent);font-size:.72rem}
.im-boot__t{color:var(--muted);font-size:.8rem}
@property --xp {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
.im-bar{
  position:relative;flex:0 0 auto;z-index:260;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"brand dots end";
  align-items:center;gap:6px 12px;
  padding:6px 14px;
  background:color-mix(in oklab,var(--bg) 72%,transparent);
  border-bottom:1px solid color-mix(in oklab,var(--line) 70%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  container-type:inline-size;
  container-name:im-bar;
}
.im-bar__brand{grid-area:brand;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-bar__dots{grid-area:dots;display:flex;justify-content:center;gap:4px;flex-wrap:nowrap;min-width:0}
.im-bar__end{grid-area:end;display:flex;align-items:center;gap:10px;justify-self:end;flex-wrap:nowrap;min-width:0}
.im-bar__k{color:var(--accent)}
.im-bar__sub{color:var(--muted);letter-spacing:.08em;font-weight:500}
.im-bar a{color:var(--text)}
.im-bar a:hover{color:var(--accent)}
.im-bar__links{display:flex;gap:8px;flex-wrap:nowrap;justify-content:flex-end;align-items:center}

.im-stage{
  position:relative;flex:1 1 auto;min-height:0;width:100%;
  --im-hue:218;
  --accent:oklch(0.82 0.125 var(--im-hue));
  --im-accent:var(--accent);
  --charge:0;
  --rewind:0;
  --crush:0;
  --advance:0;
  background:var(--bg);
  isolation:isolate;
}
.im-stage[data-room="1"]{--im-hue:40;--accent:oklch(0.84 0.14 40)}
.im-stage[data-room="2"]{--im-hue:250;--accent:oklch(0.78 0.08 250)}
.im-stage[data-room="3"]{--im-hue:200;--accent:oklch(0.80 0.11 200)}
.im-stage[data-room="4"]{--im-hue:150;--accent:oklch(0.84 0.15 150)}
.im-stage[data-stage="arcade"]{
  --im-hue:218;
  --accent:inherit;
  --im-accent:var(--accent);
}
.im-stage[data-room="6"]{--im-hue:218;--accent:oklch(0.82 0.125 218)}
.im-stage[data-stage="arcade"] .im-stars,
.im-stage[data-stage="arcade"] .im-vignette,
.im-stage[data-stage="arcade"] .im-grain,
.im-stage[data-stage="arcade"] .im-chroma{opacity:0;pointer-events:none}
.im-stars{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}
.im-vignette{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse 78% 72% at 50% 46%, transparent 0%, color-mix(in oklab,var(--bg) 18%,transparent) 58%, var(--bg) 100%),
    linear-gradient(180deg, color-mix(in oklab,var(--bg) 40%,transparent) 0%, transparent 16%, transparent 84%, color-mix(in oklab,var(--bg) 70%,transparent) 100%);
}
.im-grain{
  position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>");
}

/* Charge already starts the crush — anticipation before the hit */
.im-stage::before, .im-stage::after{
  content:"";
  position:absolute;left:0;right:0;z-index:6;pointer-events:none;
  height:calc(var(--charge) * 12vh);
  background:var(--bg);
  transition:none;
}
.im-stage::before{top:0}
.im-stage::after{
  bottom:0;
  -webkit-mask-image:linear-gradient(to top, transparent 0, transparent 80px, #000 80px);
  mask-image:linear-gradient(to top, transparent 0, transparent 80px, #000 80px);
}
.im-stage[data-phase="clearing"]::before,
.im-stage[data-phase="clearing"]::after{
  height:18vh;
}

.im-chroma{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  opacity:calc(var(--charge) * .55);
  mix-blend-mode:screen;
  background:
    linear-gradient(90deg, color-mix(in oklab,var(--im-accent) 35%,transparent), transparent 40%, transparent 60%, color-mix(in oklab,#f07178 40%,transparent));
}

.im-room{
  position:absolute;inset:0;z-index:2;
  display:none;
  flex-direction:column;
  align-items:stretch;
  padding:0;
  opacity:0;
  pointer-events:none;
}
.im-stage[data-phase="charging"] .im-room.is-on{
  transform:none;
  filter:none;
}
.im-stage[data-phase="charging"] .im-room.is-on .im-room__body{
  transform:scale(calc(1 - var(--charge) * .03));
  filter:saturate(calc(1 - var(--charge) * .35));
  transform-origin:50% 42%;
}
.im-room.is-on, .im-room.is-crush{
  display:flex;
}
.im-room.is-on{
  opacity:1;
  pointer-events:auto;
}
.im-room__scroll{
  flex:1;min-height:0;
  overflow-y:auto;overflow-x:hidden;
  overscroll-behavior:contain;
  touch-action:pan-y;
  display:flex;
  flex-direction:column;
  padding:20px 20px 28px;
  container-type:size;
  container-name:im-room;
}
.im-room:not(.im-room--hero) .im-room__scroll{
  padding-top:20px;
}
.im-room--fit .im-room__scroll{
  overflow-y:auto;
  justify-content:flex-start;
}
.im-room__body{
  flex:1 0 auto;
  width:100%;
  min-width:0;
}
.im-room--hero .im-room__body,
.im-room--fit .im-room__body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  flex:1 1 auto;
  min-height:0;
}
@container im-room (min-height:820px){
  .im-room--hero .im-room__body,
  .im-room--fit .im-room__body{
    justify-content:flex-start;
    padding-top:clamp(12px, 3.5vh, 56px);
    padding-bottom:clamp(8px, 2vh, 28px);
  }
}
.im-room.is-crush{
  opacity:.35;
  filter:blur(7px) brightness(.45);
  transform:scale(.91);
  pointer-events:none;
}
.im-room.is-land{
  animation:im-land .72s cubic-bezier(.16,1,.3,1) both;
}
@keyframes im-land{
  0%{transform:scale(1.1) translateY(4vh);filter:brightness(1.55) saturate(1.2);opacity:1}
  38%{transform:scale(.975);filter:brightness(1.05)}
  100%{transform:none;filter:none;opacity:1}
}

.im-kicker{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--im-accent,#6cc7e8);
}
.im-name{
  margin:14px 0 0;
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(2.1rem,6vw,4.2rem);letter-spacing:-.035em;line-height:.98;
}
.im-role{margin-top:8px;font-family:var(--font-mono);color:var(--muted);font-size:clamp(1rem,2vw,1.35rem)}
.im-role em{font-style:normal;color:var(--im-accent,#6cc7e8)}
.im-tag{
  margin-top:22px;font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.15rem,2.4vw,1.55rem);line-height:1.28;max-width:28ch;
}
.im-intro{margin-top:14px;color:var(--muted);max-width:48ch}
.im-cta{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.im-whisper{
  margin-top:22px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
}

.im-spawn{
  width:100%;
  max-width:var(--im-content-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
  gap:clamp(20px,4vw,64px);
  align-items:center;
}
@media (min-width:1600px){
  .im-spawn{
    grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);
    gap:clamp(32px,5vw,88px);
  }
  .im-tag{max-width:36ch}
  .im-intro{max-width:58ch}
  .im-lede{max-width:60ch}
}
.im-spawn__main{min-width:0}
.im-spawn__aside{min-width:0;width:100%}
.im-spawn__aside .inspector{width:100%;max-width:100%}
html.im-html .btn--text{
  background:transparent;
  font:inherit;
}
.im-room--hero .im-room__scroll{
  justify-content:flex-start;
}
.im-room-title{font-size:clamp(1.8rem,4vw,3rem);margin-top:8px}
.im-lede{margin:12px 0 28px;color:var(--muted);max-width:52ch}
.im-copy{
  width:var(--im-content-max);
  max-width:100%;
  margin:0 auto;
}
html.im-html .certs{
  align-items:flex-start;
  min-width:0;
}
html.im-html .certs__list{
  flex:1 1 12rem;
  min-width:0;
  max-width:100%;
}
html.im-html .certs .chip{
  white-space:normal;
  max-width:100%;
  height:auto;
  line-height:1.35;
  overflow-wrap:anywhere;
  text-wrap:pretty;
}
.im-copy .kpis{margin-top:8px}
.im-copy .section, .im-room .section{padding:0 0 32px}
.im-room .section--lab{border:0;background:transparent}
.im-room .wrap{max-width:100%;padding:0}
.im-room .sechead__title{font-size:clamp(1.6rem,3.4vw,2.6rem)}

.im-arcade{
  position:relative;
  width:100%;
  flex:1 1 auto;
  min-height:0;
}
.im-room--fit .im-spawn{
  flex:0 1 auto;
  min-height:0;
  width:100%;
}
.im-arcade__copy{display:none}

/* Strike focus fades #root children on the live site. Nested canvas would vanish — beat that rule, then hide our chrome. */
html.im-html[data-cursor="on"],
html.im-html[data-cursor="on"] *{
  cursor:none !important;
}
html.im-html .cursor{
  z-index:400;
}
html.im-html .cursor,
html.im-html .cursor *{
  pointer-events:none !important;
}
html.im-html .cursor.is-hover:not(.is-down) .cursor__ring{
  width:56px;
  height:56px;
  border-width:2.5px;
  border-color:color-mix(in oklab,var(--im-cursor-hot) 70%,white);
  background:color-mix(in oklab,var(--im-cursor-hot) 28%,transparent);
  box-shadow:
    0 0 0 1px color-mix(in oklab,var(--im-cursor-hot) 80%,white),
    0 0 10px var(--im-cursor-hot),
    0 0 28px var(--im-cursor-hot);
  filter:drop-shadow(0 0 8px color-mix(in oklab,var(--im-cursor-hot) 75%,white));
}
html.im-html .cursor.is-hover:not(.is-down) .cursor__ring::after{
  opacity:1;
  transform:scale(1.22);
  border-color:color-mix(in oklab,var(--im-cursor-hot) 55%,white);
}
html.im-html .cursor.is-hover:not(.is-down) .cursor__dot{
  width:8px;
  height:8px;
  background:color-mix(in oklab,var(--im-cursor-hot) 55%,white);
  box-shadow:0 0 18px var(--im-cursor-hot),0 0 6px white;
}
html.im-html .cursor.is-down .cursor__ring{
  width:20px;
  height:20px;
  border-width:1.5px;
  border-color:var(--accent);
  background:transparent;
  box-shadow:none;
  filter:none;
}
html.im-html .cursor.is-down .cursor__ring::after{
  opacity:1;
  transform:scale(1.35);
  border-color:color-mix(in oklab,var(--accent) 45%,transparent);
}
html.im-html .cursor.is-down .cursor__dot{
  width:7px;
  height:7px;
  background:var(--accent);
  box-shadow:0 0 10px 2px color-mix(in oklab,var(--accent) 40%,transparent);
}
html.im-html .cursor__spark{
  position:fixed;
  z-index:301;
  width:4px;height:4px;
  margin:-2px 0 0 -2px;
  border-radius:50%;
  background:color-mix(in oklab,var(--im-accent,var(--accent)) 55%,white);
  box-shadow:0 0 8px color-mix(in oklab,var(--im-accent,var(--accent)) 80%,white);
  pointer-events:none;
  font-style:normal;
  animation:im-cursor-spark .38s ease-out forwards;
}
html.im-html .cursor__spark:nth-child(odd){
  width:3px;height:3px;margin:-1.5px 0 0 -1.5px;
}
@keyframes im-cursor-spark{
  0%{opacity:1;transform:translate(0,0) scale(1)}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.15)}
}
html.im-html[data-strike-focus="1"] #root > :not(.scroll-strike-wrap):not(.scroll-strike-panel):not(.scroll-strike-arcade-cta):not(.cursor){
  opacity:1!important;
  filter:none!important;
  pointer-events:auto!important;
}
html.im-html[data-strike-focus="1"] #root > .im-bar:not(.scroll-strike-wrap):not(.scroll-strike-panel):not(.scroll-strike-arcade-cta):not(.cursor){
  opacity:1!important;
  pointer-events:none!important;
  filter:none!important;
  background:transparent!important;
  border:0!important;
  backdrop-filter:none!important;
}
html.im-html[data-strike-focus="1"] .im-bar__brand,
html.im-html[data-strike-focus="1"] .im-bar__dots,
html.im-html[data-strike-focus="1"] .im-bar__links{
  opacity:0!important;
  pointer-events:none!important;
}
html.im-html[data-strike-focus="1"] .im-fuse,
html.im-html[data-strike-focus="1"] .im-chroma,
html.im-html[data-strike-focus="1"] .im-vignette,
html.im-html[data-strike-focus="1"] .im-grain,
html.im-html[data-strike-focus="1"] .im-stars{
  opacity:0!important;
  pointer-events:none!important;
  filter:none!important;
}
html.im-html[data-strike-focus="1"] .im-stage::before,
html.im-html[data-strike-focus="1"] .im-stage::after{
  height:0!important;
}
html.im-html[data-strike-focus="1"] .im-room{
  transform:none!important;
  filter:none!important;
  opacity:1!important;
}
html.im-html[data-strike-focus="1"] .scroll-strike-wrap{
  opacity:1!important;
  filter:none!important;
  z-index:2;
}
html.im-html[data-strike-focus="1"] .scroll-strike-cheat{
  opacity:1!important;
  pointer-events:auto!important;
  filter:none!important;
}
html.im-html[data-im-arcade="1"] .im-bar{
  background:color-mix(in oklab,var(--bg) 72%,transparent);
  border-bottom:1px solid color-mix(in oklab,var(--line) 70%,transparent);
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"dots end";
  gap:6px 10px;
}
html.im-html[data-im-arcade="1"] .im-bar__brand{display:none}
html.im-html[data-im-arcade="1"] .im-bar__links{display:none}
html.im-html[data-im-arcade="1"] .im-xp{
  display:flex !important;
  opacity:1 !important;
}
html.im-html[data-im-arcade="1"] .im-bar__dots{
  justify-content:center;
  flex-wrap:nowrap;
  overflow-x:auto;
  scrollbar-width:none;
}
html.im-html[data-im-arcade="1"] .im-bar__dots::-webkit-scrollbar{display:none}
html.im-html[data-im-arcade="1"] .im-room--fit .im-room__scroll{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0 12px 10px;
}
html.im-html[data-im-arcade="1"] .im-arcade{
  flex:1 1 auto;
  min-height:0;
}
html.im-html[data-im-arcade="1"][data-strike-game="on"] .im-bar{
  position:absolute;
  inset:0 0 auto 0;
  height:0;
  min-height:0;
  padding:0;
  border:0;
  overflow:hidden;
  opacity:0!important;
  pointer-events:none!important;
}
html.im-html[data-im-arcade="1"][data-strike-game="on"] .im-fuse{
  display:none!important;
}
html.im-html[data-im-arcade="1"][data-strike-game="on"] .im-room__scroll,
html.im-html[data-im-arcade="1"][data-strike-game="on"] .im-room--fit .im-room__scroll{
  padding:0!important;
  overflow:hidden;
}
html.im-html[data-im-arcade="1"][data-strike-game="on"] .im-room__body,
html.im-html[data-im-arcade="1"][data-strike-game="on"] .im-arcade{
  flex:1 1 auto;
  min-height:100%;
  height:100%;
  justify-content:stretch;
}
html.im-html .scroll-strike-wrap{
  position:absolute !important;
  inset:0 !important;
  z-index:0;
}
html.im-html[data-im-arcade="1"][data-strike-game="on"] .scroll-strike-wrap{
  position:fixed !important;
  inset:0 !important;
  z-index:2;
}
html.im-html[data-im-arcade="1"][data-strike-game="on"] .scroll-strike-arcade-cta{
  position:fixed;
  z-index:76;
}
html.im-html .scroll-strike-arcade-cta{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:76;
  max-height:calc(100% - 16px);
  overflow:auto;
}
@media (max-width:720px), (pointer:coarse){
  html.im-html .scroll-strike-arcade-cta{
    width:calc(100% - 10px);
    max-width:calc(100% - 10px);
    left:50%;
    right:auto;
    padding:clamp(20px, 4vw, 28px) clamp(12px, 3vw, 16px);
  }
}
html.im-html .scroll-strike-panel{
  position:absolute;
  left:14px;
  right:auto;
  top:auto;
  bottom:12px;
  align-items:flex-start;
}
html.im-html[data-im-arcade="1"][data-strike-game="off"] .scroll-strike-panel{
  display:none;
}
html.im-html[data-strike-focus="1"] .scroll-strike-panel{
  opacity:0!important;
  pointer-events:none!important;
}

.im-modal-media{position:relative;background:var(--media)}
.im-modal-media img, .im-modal-media video{
  width:100%;aspect-ratio:16/9;object-fit:cover;display:block;
}
.im-modal-media__nav{
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding:8px 12px;
  font-family:var(--font-mono);font-size:.72rem;color:var(--muted);
}
.im-modal-media__nav button{
  border:1px solid var(--line);background:var(--bg-2);color:var(--text);
  width:36px;height:36px;border-radius:8px;
}

html.im-html .modal{
  z-index:320;
  padding:max(12px, env(safe-area-inset-top, 0px)) 12px max(12px, env(safe-area-inset-bottom, 0px));
  place-items:center;
}
html.im-html .modal__panel{
  max-height:min(88dvh, calc(100dvh - 24px));
  width:min(880px,100%);
}
html.im-html .modal__bar{
  position:sticky;
  top:0;
  z-index:2;
  flex:0 0 auto;
}
html.im-html .iconbtn--close{
  position:relative;
  z-index:3;
  min-width:44px;
  min-height:44px;
}

.im-work{
  width:100%;
  max-width:var(--im-content-max);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.im-work__head .im-lede{margin:8px 0 0;max-width:46ch}
.im-feat{
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:color-mix(in oklab,var(--bg-2) 82%,transparent);
  min-height:0;
  display:flex;flex-direction:column;
}
.im-feat__media{
  position:relative;aspect-ratio:16/9;background:var(--media);overflow:hidden;
}
.im-feat__media img, .im-feat__media video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.im-feat__still{opacity:1;transition:opacity .5s var(--ease-out)}
.im-feat.is-live .im-feat__still{opacity:0}
.im-feat__peek{opacity:0}
.im-feat.is-live .im-feat__peek{opacity:1}
.im-feat__body{padding:16px 18px 18px}
.im-feat__studio{font-family:var(--font-mono);font-size:.68rem;color:var(--faint);letter-spacing:.14em}
.im-feat__title{margin-top:6px;font-size:clamp(1.3rem,2.2vw,1.8rem)}
.im-feat__pitch{margin-top:8px;color:var(--muted)}
.im-feat__open{
  margin-top:12px;border:0;background:none;padding:0;color:var(--im-accent);
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
}
.im-work--map .im-feat{
  display:grid;
  grid-template-columns:1.15fr .85fr;
}
.im-map{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  padding:28px 4px 36px;
}
.im-map::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:52%;
  height:2px;
  background:repeating-linear-gradient(90deg, color-mix(in oklab,var(--im-accent) 45%,var(--line)) 0 10px, transparent 8px 16px);
  opacity:.45;
  pointer-events:none;
}
.im-map__step{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
}
.im-map__step:nth-child(odd) .im-map__node{transform:translateY(-22px)}
.im-map__step:nth-child(even) .im-map__node{transform:translateY(22px)}
.im-map__step:nth-child(odd) .im-map__node.is-on{transform:translateY(-22px) scale(1.08)}
.im-map__step:nth-child(even) .im-map__node.is-on{transform:translateY(22px) scale(1.08)}
.im-map__path{
  width:clamp(22px,3.5vw,48px);
  height:2px;
  background:linear-gradient(90deg, var(--line), color-mix(in oklab,var(--im-accent) 55%,var(--line)));
  opacity:.7;
}
.im-map__node{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  width:96px;padding:0;border:0;background:none;color:inherit;cursor:pointer;
}
.im-map__pad{
  position:relative;
  width:72px;height:72px;border-radius:50%;overflow:hidden;
  border:2px solid var(--line);
  background:var(--bg-2);
  display:grid;place-items:center;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.im-map__pad img{width:100%;height:100%;object-fit:cover}
.im-map__num{
  position:absolute;left:50%;bottom:6px;
  transform:translateX(-50%);
  font-family:var(--font-mono);font-size:.58rem;letter-spacing:.08em;
  color:#fff;
  text-shadow:0 1px 4px #000;
  background:color-mix(in oklab,#000 45%,transparent);
  padding:1px 5px;border-radius:4px;
}
.im-map__node.is-on .im-map__pad{
  border-color:var(--im-accent);
  box-shadow:0 0 0 4px color-mix(in oklab,var(--im-accent) 28%,transparent);
}
.im-map__name{
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;
  text-align:center;line-height:1.25;color:var(--muted);
  max-width:16ch;
}
.im-map__node.is-on .im-map__name{color:var(--im-accent)}
html.im-html .section--lab .sechead__idx{font-size:0}
html.im-html .section--lab .sechead__idx::after{
  content:"05";
  font-size:.8rem;
  letter-spacing:.12em;
}

.im-path{
  width:var(--im-content-narrow);
  max-width:100%;
  margin:0 auto;
}
.im-path h2{font-size:clamp(1.8rem,4vw,3rem);margin-top:8px}
.im-path__list{
  margin-top:22px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 28px;
}
.im-job{
  display:grid;grid-template-columns:1fr auto;gap:4px 16px;
  padding:10px 0;
  border-top:1px solid var(--line);
}
.im-room.is-land .im-job{
  animation:im-job .5s var(--ease-out) both;
  animation-delay:calc(var(--i) * 70ms + 80ms);
}
@keyframes im-job{
  from{opacity:0;transform:translateX(-16px)}
  to{opacity:1;transform:none}
}
.im-job__co{font-family:var(--font-display);font-weight:700}
.im-job__when{font-family:var(--font-mono);font-size:.72rem;color:var(--faint)}
.im-job__role{grid-column:1/-1;color:var(--muted);font-size:.92rem}

/* ---- CLEAR overlay ---- */
.im-clear{
  position:absolute;inset:0;z-index:200;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  pointer-events:none;
  color:var(--text);
}
.im-clear.is-end,
.im-clear.is-await{pointer-events:auto}
.im-clear::before{
  content:"";
  position:absolute;inset:0;z-index:0;
  background:color-mix(in oklab,var(--bg) 78%,transparent);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  opacity:0;
  transition:opacity .35s ease;
}
.im-clear.is-await::before,
.im-clear[data-beat="stamp"]::before,
.im-clear[data-beat="xp"]::before,
.im-clear[data-beat="end"]::before{
  opacity:1;
}
.im-clear__flash{
  position:absolute;inset:0;
  background:color-mix(in oklab,var(--im-accent) 55%,white);
  opacity:0;
  mix-blend-mode:screen;
}
.im-clear[data-beat="flash"] .im-clear__flash{animation:im-flash .12s linear}
@keyframes im-flash{0%{opacity:1}100%{opacity:0}}

.im-clear__stamp{
  position:relative;z-index:2;text-align:center;
  transform:scale(1.8) rotate(-6deg);
  opacity:0;
  filter:blur(8px);
}
.im-clear[data-beat="stamp"] .im-clear__stamp{
  animation:im-stamp .38s cubic-bezier(.15,1.4,.3,1) both;
}
.im-clear.is-full[data-beat="xp"] .im-clear__stamp,
.im-clear.is-full[data-beat="await"] .im-clear__stamp,
.im-clear.is-full[data-beat="end"] .im-clear__stamp{
  animation:none;
  opacity:1;
  filter:none;
  transform:scale(1) rotate(-2deg);
}
.im-clear.is-full.is-await .im-clear__stamp{
  transition:transform .7s cubic-bezier(.16,1,.3,1), opacity .7s ease;
  transform:scale(.78) rotate(-2deg);
  opacity:.5;
}
.im-clear.is-end.is-full.is-await .im-clear__stamp{
  transform:scale(1) rotate(-2deg);
  opacity:1;
}
.im-clear.is-end[data-beat="flash"] .im-clear__flash{
  background:color-mix(in oklab,#f0c14b 55%,white);
}
.im-clear.is-end .im-clear__word{
  text-shadow:
    -4px 0 color-mix(in oklab,#f0c14b 75%,transparent),
    4px 0 color-mix(in oklab,var(--im-accent) 90%,transparent);
}
.im-clear.is-end .im-clear__word.is-long{
  font-size:clamp(2.6rem,9vw,5.4rem);
}
.im-clear.is-end.is-await{cursor:pointer}
@keyframes im-stamp{
  0%{transform:scale(2.1) rotate(-8deg);opacity:0;filter:blur(10px)}
  55%{transform:scale(.94) rotate(-1deg);opacity:1;filter:none}
  100%{transform:scale(1) rotate(-2deg);opacity:1;filter:none}
}
.im-clear__rank{
  display:block;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.28em;
  color:var(--im-accent);
}
.im-clear__word{
  margin:6px 0 0;
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(4.2rem,14vw,8.5rem);letter-spacing:-.06em;line-height:.85;
  text-shadow:
    -4px 0 color-mix(in oklab,#f07178 80%,transparent),
    4px 0 color-mix(in oklab,var(--im-accent) 90%,transparent);
}
.im-clear__word.is-long{font-size:clamp(2.2rem,8vw,4.4rem);letter-spacing:-.04em}
.im-clear__loot{
  position:relative;z-index:2;
  display:flex;gap:10px;flex-wrap:wrap;justify-content:center;
  margin-top:22px;
  opacity:0;
}
.im-clear[data-beat="loot"] .im-clear__loot,
.im-clear[data-beat="next"] .im-clear__loot,
.im-clear[data-beat="end"] .im-clear__loot,
.im-clear[data-beat="exit"] .im-clear__loot{
  animation:im-loot .35s var(--ease-out) both;
}
@keyframes im-loot{
  from{opacity:0;transform:translateY(16px) scale(.9)}
  to{opacity:1;transform:none}
}
.im-chip{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  padding:8px 12px;
  border:1px solid var(--im-accent);
  color:var(--im-accent);
  background:color-mix(in oklab,var(--bg) 70%,transparent);
}
.im-clear__next{
  position:relative;z-index:2;
  margin-top:28px;text-align:center;
  opacity:0;
  transform:translateY(22px);
  pointer-events:none;
}
.im-clear.is-next .im-clear__next{
  animation:im-next-in .75s cubic-bezier(.16,1,.3,1) both;
}
@keyframes im-next-in{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}
.im-xp{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:8px;
  pointer-events:none;
  padding:4px 8px 4px 7px;
  border:1px solid color-mix(in oklab,var(--line) 80%,transparent);
  border-radius:999px;
  background:color-mix(in oklab,var(--bg) 78%,transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:border-color .3s ease, box-shadow .3s ease;
  min-width:0;
  max-width:100%;
  white-space:nowrap;
  --xp:0;
}
.im-xp.is-gain{
  border-color:var(--im-accent);
  box-shadow:0 0 22px color-mix(in oklab,var(--im-accent) 45%,transparent);
  animation:im-xp-pop .55s cubic-bezier(.16,1.4,.3,1);
}
@keyframes im-xp-pop{
  0%{transform:scale(1)}
  40%{transform:scale(1.08)}
  100%{transform:scale(1)}
}
.im-xp__k{
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--im-accent);
  flex:0 0 auto;
}
.im-xp__rail{
  flex:1 1 auto;
  width:clamp(28px,18vw,160px);
  min-width:28px;
  max-width:160px;
  height:6px;border-radius:999px;
  background:var(--line);overflow:hidden;position:relative;
}
.im-xp__fill{
  display:block;height:100%;
  width:calc(var(--xp, 0) * 100%);
  min-width:0;
  transform:none;
  background:linear-gradient(90deg, var(--im-accent, oklch(0.82 0.125 218)), color-mix(in oklab,var(--im-accent, oklch(0.82 0.125 218)) 40%,white));
  box-shadow:0 0 12px color-mix(in oklab,var(--im-accent) 70%,transparent);
}
.im-xp.is-gain .im-xp__fill{
  box-shadow:0 0 18px var(--im-accent);
}
.im-xp__n{
  font-family:var(--font-mono);font-size:.72rem;
  min-width:calc(var(--im-xp-digits, 3) * 1ch);
  text-align:right;
  flex:0 0 auto;
  color:var(--text);font-variant-numeric:tabular-nums;
}
.im-xp.is-gain .im-xp__n{color:var(--im-accent)}
.im-orb{
  position:fixed;z-index:270;left:0;top:0;
  width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;
  background:var(--im-accent);
  box-shadow:0 0 16px var(--im-accent);
  pointer-events:none;
  animation:im-orb var(--im-orb-ms, .9s) cubic-bezier(.15,.75,.2,1) forwards;
  animation-delay:var(--d);
}
@keyframes im-orb{
  0%{transform:translate(var(--x0),var(--y0)) scale(.2);opacity:1}
  24%{transform:translate(calc(var(--x0) + var(--jx)),calc(var(--y0) + var(--jy))) scale(1.25);opacity:1}
  100%{transform:translate(var(--x1),var(--y1)) scale(.25);opacity:0}
}
.im-gate{
  margin-top:22px;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  opacity:0;
  transform:translateY(16px);
}
.im-clear.is-next .im-gate{
  animation:im-gate-in .7s cubic-bezier(.16,1,.3,1) .22s both;
}
@keyframes im-gate-in{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}
.im-gate__shaft{
  width:4px;height:52px;border-radius:999px;
  background:var(--line);position:relative;overflow:hidden;
}
.im-gate__fill{
  position:absolute;left:0;right:0;top:0;bottom:0;
  height:100%;
  background:var(--im-accent);
  box-shadow:0 0 12px var(--im-accent);
  transform:scaleY(var(--advance, 0));
  transform-origin:top center;
  will-change:transform;
}
.im-gate__head{
  width:42px;height:20px;color:var(--im-accent);
  opacity:.4;
  transform:translateY(-4px);
}
.im-gate__head path{
  stroke-dasharray:80;
  stroke-dashoffset:calc(80 * (1 - var(--advance, 0)));
  transition:stroke-dashoffset .08s linear;
}
.im-clear.is-await .im-gate__head{
  opacity:calc(.35 + var(--advance, 0) * .65);
}
.im-gate__hint{
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);
}

.im-clear__next small{
  display:block;font-family:var(--font-mono);letter-spacing:.22em;font-size:.68rem;color:var(--faint);
}
.im-clear__next b{
  display:block;margin-top:4px;
  font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2.2rem);font-weight:800;
}
.im-clear[data-beat="exit"]{
  animation:im-shut .22s linear forwards;
}
@keyframes im-shut{
  to{background:var(--bg);opacity:1}
}
.im-clear[data-beat="exit"] .im-clear__stamp,
.im-clear[data-beat="exit"] .im-clear__loot,
.im-clear[data-beat="exit"] .im-clear__next{opacity:0}

.im-clear__endcta{
  display:inline-block;
  margin-top:18px;
  padding:8px 14px;
  border:1px solid color-mix(in oklab,var(--im-accent) 40%,var(--line));
  border-radius:999px;
  pointer-events:none;
}
.im-clear.is-end .im-clear__next .im-clear__endcta{
  color:var(--im-accent);
}
.im-clear__go{
  appearance:none;
  pointer-events:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:18px 0 4px;
  padding:12px 28px;
  border-radius:999px;
  border:1px solid color-mix(in oklab, var(--im-accent) 48%, var(--line));
  background:color-mix(in oklab, var(--im-accent) 12%, transparent);
  color:var(--im-accent);
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
}
.im-clear.is-next .im-clear__go{pointer-events:auto}
.im-clear__go:hover,
.im-clear__go:focus-visible{
  outline:none;
  border-color:var(--im-accent);
  background:color-mix(in oklab, var(--im-accent) 20%, transparent);
}
.im-clear.is-next .im-gate{margin-top:10px}

/* Fuse — readable next-stage control at the end of the section */
.im-fuse{
  position:relative;
  z-index:8;
  width:min(420px,100%);
  margin:28px auto 0;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:14px 16px 12px;
  cursor:pointer;
  color:inherit;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  flex:0 0 auto;
  --fuse:max(var(--charge), var(--rewind, 0));
  border:1px solid color-mix(in oklab, var(--im-accent) 24%, var(--line));
  border-radius:18px;
  background:color-mix(in oklab, var(--bg) 82%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 32px color-mix(in oklab, var(--bg) 45%, transparent);
}
.im-room--fit .im-fuse{margin-top:12px}
.im-fuse[hidden]{display:none}
.im-fuse__cta{
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.im-fuse__label{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);
}
.im-fuse__label--fwd{
  color:var(--im-accent);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
}
.im-fuse__hint{
  font-family:var(--font-mono);
  font-size:.58rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--faint);
}
.im-fuse__chev{
  display:flex;color:var(--im-accent);opacity:.8;
  animation:im-fuse-bob 1.5s ease-in-out infinite;
}
@keyframes im-fuse-bob{
  0%,100%{transform:translateY(0);opacity:.65}
  50%{transform:translateY(4px);opacity:1}
}
.im-fuse.is-nudge{
  animation:im-fuse-nudge 2.2s ease-in-out infinite;
}
@keyframes im-fuse-nudge{
  0%,100%{
    border-color:color-mix(in oklab, var(--im-accent) 24%, var(--line));
    box-shadow:0 10px 32px color-mix(in oklab, var(--bg) 45%, transparent);
  }
  50%{
    border-color:var(--im-accent);
    box-shadow:0 0 0 1px color-mix(in oklab, var(--im-accent) 35%, transparent),
      0 0 30px color-mix(in oklab, var(--im-accent) 30%, transparent);
  }
}
.im-fuse__label--back{display:none}
.im-stage[data-rewind="1"] .im-fuse__cta,
.im-stage[data-rewind="1"] .im-fuse__hint{display:none}
.im-stage[data-rewind="1"] .im-fuse__label--back{display:block}
.im-stage[data-phase="charging"] .im-fuse,
.im-stage[data-rewind="1"] .im-fuse{animation:none}
.im-stage[data-phase="charging"] .im-fuse__chev,
.im-stage[data-rewind="1"] .im-fuse__chev{animation:none}
.im-fuse:hover,
.im-fuse:focus-visible{
  outline:none;
  border-color:var(--im-accent);
}
.im-stage[data-phase="charging"] .im-fuse__label,
.im-stage[data-rewind="1"] .im-fuse__label,
.im-fuse:hover .im-fuse__label{color:var(--im-accent)}
.im-fuse__rail{
  width:100%;height:14px;position:relative;
  display:flex;align-items:center;
  padding:0 10px;
  border:1px solid color-mix(in oklab,var(--line) 80%,transparent);
  border-radius:999px;
  background:color-mix(in oklab,var(--bg) 70%,transparent);
  box-sizing:border-box;
  overflow:visible;
}
.im-fuse__rail::before{
  content:"";
  position:absolute;left:10px;right:10px;top:50%;
  height:3px;border-radius:999px;
  background:var(--line);
  transform:translateY(-50%);
  pointer-events:none;
}
.im-fuse__fill{
  position:absolute;z-index:1;
  left:10px;top:50%;
  height:3px;width:calc(100% - 20px);
  border-radius:999px;
  background:var(--im-accent);
  transform:translateY(-50%) scaleX(var(--fuse));
  transform-origin:0 50%;
  box-shadow:0 0 16px color-mix(in oklab,var(--im-accent) 70%,transparent);
  will-change:transform;
}
.im-fuse__knob{
  position:absolute;top:50%;
  left:calc(10px + var(--fuse) * (100% - 20px));
  width:9px;height:9px;border-radius:50%;
  background:var(--im-accent);
  transform:translate(-50%,-50%);
  box-shadow:0 0 12px var(--im-accent);
  z-index:2;
}

/* Persistent HUD loot */
.im-hud{
  position:absolute;top:56px;left:18px;z-index:7;
  display:flex;flex-wrap:wrap;gap:6px;
  pointer-events:none;
  max-width:42vw;
}
.im-hud .im-chip{
  opacity:.9;
  animation:im-loot .4s var(--ease-out) both;
}

.im-dot{
  width:26px;height:26px;border:1px solid var(--line);background:transparent;color:var(--faint);
  font-family:var(--font-mono);font-size:.62rem;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  flex:0 0 auto;
  padding:0;
}
.im-dot.is-on{
  border-color:var(--im-accent);color:var(--im-accent);
  width:auto;min-width:26px;padding:0 9px;
}
.im-dot.is-open{color:var(--text);cursor:pointer}
.im-dot:disabled{opacity:.4;cursor:not-allowed}
.im-dot__name{
  display:none;
  font-size:.58rem;letter-spacing:.16em;font-weight:600;
  white-space:nowrap;
}
@container im-bar (min-width: 920px){
  .im-dot.is-on .im-dot__name{display:inline}
}

.im-mute{
  border:1px solid var(--line);background:transparent;color:var(--muted);
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  padding:4px 8px;
}

@media (max-width:860px){
  html.im-html[data-im-arcade="1"] .im-bar{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"dots end";
  }
  html.im-html[data-im-arcade="1"] .im-bar__dots{
    justify-content:center;
    overflow:visible;
  }
  .im-bar{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"dots end";
    padding:6px 10px;
    gap:6px 8px;
  }
  .im-bar__brand{display:none}
  .im-bar__sub{display:none}
  .im-bar__dots{justify-content:center;flex-wrap:nowrap;overflow:visible;min-width:0}
  .im-bar__end{justify-self:end;min-width:0}
  .im-bar__links{display:none}
  .im-mute--theme{display:none}
  .im-xp{gap:6px}
  .im-xp__rail{width:clamp(24px,8vw,48px);min-width:24px;max-width:56px}
  .im-xp__n{min-width:calc(var(--im-xp-digits, 3) * 1ch)}
  .im-dot{width:24px;height:24px;flex:0 0 auto;padding:0}
  .im-dot.is-on{width:24px;min-width:24px;padding:0}
  .im-dot__name{display:none !important}
  .im-spawn{grid-template-columns:1fr}
  .im-spawn__aside{display:none}
  .im-spawn__main{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .im-spawn .im-tag,
  .im-spawn .im-intro{margin-left:auto;margin-right:auto}
  .im-spawn .im-cta{justify-content:center;width:100%}
  .im-spawn .im-whisper{text-align:center;width:100%}
  .im-work{grid-template-columns:1fr;align-content:center;height:auto}
  .im-work--map .im-feat{grid-template-columns:1fr}
  .im-map__step:nth-child(odd) .im-map__node,
  .im-map__step:nth-child(even) .im-map__node{transform:none}
  .im-map__step:nth-child(odd) .im-map__node.is-on,
  .im-map__step:nth-child(even) .im-map__node.is-on{transform:scale(1.06)}
  .im-path__list{grid-template-columns:1fr}
  .im-room--fit .im-room__scroll{
    overflow-y:auto;
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .im-room:not(.im-room--hero) .im-room__scroll{
    padding-top:16px;
  }
  .im-hud{max-width:70vw;top:auto;bottom:78px;left:12px}
  .im-copy .kpis{grid-template-columns:repeat(2,1fr)}
  .im-copy .skillgrid,.im-copy .principles{grid-template-columns:1fr}
  html.im-html .certs{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  html.im-html .certs__list{flex:none;width:100%}
}

html.im-html .im-room:has(.contact__wrap) .im-room__body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:100%;
}
html.im-html .contact__wrap{
  flex:1 1 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto 1fr;
  align-items:start;
  gap:clamp(24px,4vw,56px);
  min-height:100%;
  width:var(--im-content-max);
  max-width:100%;
  margin:0 auto;
}
html.im-html .contact__form-wrap{
  display:flex;
  flex-direction:column;
  min-width:0;
}
html.im-html .contact__form-wrap > .magnetic{
  align-self:flex-start;
}
html.im-html .contact__back{
  align-self:flex-start;
  margin-top:28px;
  background:var(--im-accent);
  color:var(--on-accent,#041018);
  border:1px solid color-mix(in oklab,var(--im-accent) 70%,white);
  box-shadow:0 8px 22px -12px color-mix(in oklab,var(--im-accent) 70%,transparent);
}
html.im-html .contact__back:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
}
html.im-html .contact__board{
  grid-column:1 / -1;
  align-self:end;
  width:100%;
  margin-top:auto;
  padding-top:28px;
  border-top:1px solid color-mix(in oklab,var(--line) 80%,transparent);
}
html.im-html .contact__board-head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 14px;
  margin-bottom:16px;
}
html.im-html .contact__board-title{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.15rem,2.2vw,1.55rem);
  letter-spacing:-.03em;
}
html.im-html .contact__slots{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
html.im-html .contact__slot{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px 12px;
  align-items:center;
  padding:16px 16px 14px;
  border:1px solid color-mix(in oklab,var(--line) 85%,transparent);
  border-radius:14px;
  background:color-mix(in oklab,var(--bg-2) 82%,transparent);
}
html.im-html .contact__slot-num{
  font-family:var(--font-mono);
  font-size:.68rem;
  letter-spacing:.16em;
  color:var(--faint);
}
html.im-html .contact__slot-code{
  display:block;
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.14em;
  color:var(--im-accent);
}
html.im-html .contact__slot-line{
  margin:4px 0 0;
  font-size:.88rem;
  line-height:1.4;
  color:var(--muted);
}
html.im-html .contact__slot-flag{
  font-family:var(--font-mono);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.16em;
  padding:4px 8px;
  border-radius:999px;
  color:var(--im-accent);
  border:1px solid color-mix(in oklab,var(--im-accent) 45%,transparent);
  background:color-mix(in oklab,var(--im-accent) 12%,transparent);
}
html.im-html .contact__dock{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 16px;
  margin-top:16px;
}
html.im-html .contact__dock-meta{
  margin:0;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  color:var(--faint);
}

@media (prefers-reduced-motion:reduce){
  .im-room, .im-clear__stamp, .im-job, .im-feat__still, .im-feat__peek, .im-clear__next, .im-gate, .im-xp{
    animation:none!important;filter:none!important;
  }
  .im-clear.is-next .im-clear__next, .im-clear.is-next .im-gate{opacity:1;transform:none}
  .im-orb{animation:none!important;opacity:0}
  .im-enter__btn{animation:none}
  .im-enter__btn-glow{animation:none;opacity:.55}
  .im-fuse, .im-fuse__chev{animation:none!important}
  .im-punch, .im-punch__glow, .im-punch__sparks i, .im-xpchip{
    animation:none!important;
  }
  .im-punch__sparks{opacity:.35}
}

html.im-html[data-im-clear="1"] .scroll-strike-arcade-cta,
html.im-html[data-im-clear="1"] .scroll-strike-panel,
html.im-html[data-im-clear="1"] .scroll-strike-wrap{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

html.im-html .im-room:has(.workpin) .im-room__scroll{
  padding:8px 12px 118px;
}
html.im-html .im-room:has(.workpin) .im-fuse{
  position:absolute;
  left:50%;
  bottom:10px;
  transform:translateX(-50%);
  margin:0;
  z-index:8;
  width:min(420px, calc(100% - 24px));
}
html.im-html .workpin{
  width:100%;
  flex:0 0 auto;
}
html.im-html .workpin__sticky{
  position:sticky !important;
  top:0 !important;
  height:100cqh;
  max-height:none;
  overflow:hidden;
  display:flex !important;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  padding:8px 0 78px;
  box-sizing:border-box;
}
html.im-html .workpin__frame{
  flex:0 1 auto;
  min-height:0;
  max-height:calc(100% - 100px);
  display:flex;
  flex-direction:column;
  gap:8px;
}
html.im-html .workpin__head{
  flex:0 0 auto;
  position:relative;
  padding:0;
  display:flex;
  justify-content:center;
}
html.im-html .workpin__head .sechead{
  pointer-events:auto;
}
html.im-html .workpin__track{
  flex:0 1 auto;
  min-height:0;
  height:min(46vh, 440px);
  flex-direction:row !important;
  align-items:stretch;
}
html.im-html .workcard__idx{
  position:static !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  margin:0 0 8px;
  display:block;
}
html.im-html .workpin__hud{
  position:relative;
  left:auto;
  bottom:auto;
  transform:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  z-index:6;
  flex:0 0 auto;
  width:max-content;
  max-width:calc(100% - 16px);
  margin:10px auto 0;
}
html.im-html .workpin__progress{
  position:static !important;
  left:auto;
  right:auto;
  bottom:auto;
  transform:none !important;
  margin:0 !important;
  display:flex !important;
  width:max-content;
  max-width:100%;
  justify-content:center;
  box-sizing:border-box;
}
html.im-html .workpin__track-line{
  overflow:hidden;
  flex:1 1 auto;
  min-width:72px;
  width:min(220px,42vw);
}
html.im-html .workpin__nav{
  display:flex !important;
  position:static !important;
  left:auto;
  right:auto;
  bottom:auto;
  transform:none !important;
  margin:0;
}
html.im-html .workcard{
  flex:0 0 min(88vw,1120px);
  width:min(88vw,1120px);
  max-width:none;
  height:100%;
  max-height:100%;
}
html.im-html .workcard__btn{
  height:100%;
}
@media (max-width:920px){
  html.im-html .im-room:has(.workpin) .im-room__scroll{
    padding:8px 12px 16px;
  }
  html.im-html .im-room:has(.workpin) .im-fuse{
    position:relative;
    left:auto;
    bottom:auto;
    transform:none;
    margin:20px auto 8px;
    width:min(420px,100%);
  }
  html.im-html .workpin__hud{
    display:none !important;
  }
  html.im-html .contact__wrap{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  html.im-html .contact__slots{
    grid-template-columns:1fr;
  }
  html.im-html .contact__back{
    align-self:stretch;
    justify-content:center;
  }
  html.im-html .workpin{
    height:auto !important;
  }
  html.im-html .workpin__sticky{
    position:relative !important;
    height:auto !important;
    overflow:visible !important;
    padding:0;
    justify-content:flex-start;
  }
  html.im-html .workpin__frame{
    flex:none;
    max-height:none;
  }
  html.im-html .workpin__track{
    flex:none;
    height:auto;
    flex-direction:column !important;
    transform:none !important;
    padding:0;
    gap:16px;
    will-change:auto;
  }
  html.im-html .workcard{
    flex:0 0 auto !important;
    width:100% !important;
    height:auto !important;
    max-height:none;
  }
  html.im-html .workcard__btn{
    grid-template-columns:1fr !important;
    height:auto;
  }
  html.im-html .workcard__media{
    width:100%;
    height:auto;
    aspect-ratio:16/9;
  }
  html.im-html .workcard__media .media-reveal{
    position:relative !important;
    inset:auto;
    width:100%;
    height:auto;
    aspect-ratio:16/9;
  }
  html.im-html .workcard__media .media,
  html.im-html .workcard__media .media img,
  html.im-html .workcard__media .media video{
    position:relative;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  html.im-html .workcard__ghost{display:none}
}

html.im-html[data-im-boot="gate"] .im-bar,
html.im-html:has(.im-enter) .im-bar{
  display:none !important;
}
html.im-html[data-im-boot="gate"] .im-xp,
html.im-html[data-im-boot="gate"] .im-fuse,
html.im-html[data-im-boot="gate"] .im-room,
html.im-html:has(.im-enter) .im-xp,
html.im-html:has(.im-enter) .im-fuse,
html.im-html:has(.im-enter) .im-room{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.im-enter{
  position:absolute;inset:0;z-index:220;
  display:grid;place-items:center;
  pointer-events:auto;
  overflow:visible;
  background:
    radial-gradient(ellipse 70% 55% at 50% 58%, color-mix(in oklab,var(--im-accent) 16%,transparent), transparent 70%),
    color-mix(in oklab,var(--bg) 55%,transparent);
}
.im-enter__sparks{
  position:absolute;inset:0;width:100%;height:100%;pointer-events:none;
}
.im-enter__panel{
  position:relative;z-index:1;
  width:min(640px,90vw);
  text-align:center;
  padding:12px;
  overflow:visible;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.im-enter__kicker{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--im-accent);
  margin:0 0 10px;
}
.im-enter__title{
  margin:0;
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(4rem,14vw,8.5rem);letter-spacing:-.07em;line-height:.85;
  text-shadow:
    -5px 0 color-mix(in oklab,#f07178 75%,transparent),
    5px 0 color-mix(in oklab,var(--im-accent) 85%,transparent);
}
.im-enter__sub{
  margin:18px auto 0;
  max-width:32ch;
  color:var(--muted);
  font-size:clamp(1.05rem,2.1vw,1.28rem);
  line-height:1.45;
  text-wrap:pretty;
}
.im-enter__cta{
  position:relative;
  display:inline-grid;
  place-items:center;
  margin-top:36px;
}
.im-enter__btn{
  position:relative;
  z-index:1;
  border:0;
  cursor:pointer;
  color:var(--bg);
  background:var(--im-accent);
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(1.15rem,2.4vw,1.55rem);
  letter-spacing:.04em;text-transform:uppercase;
  padding:22px 48px;
  border-radius:999px;
  transform:scale(1);
  animation:im-enter-pulse 1.7s ease-in-out infinite;
  box-shadow:
    0 0 0 1px color-mix(in oklab,var(--im-accent) 40%,white),
    0 18px 50px color-mix(in oklab,var(--im-accent) 45%,transparent);
}
.im-enter__btn-glow{
  position:absolute;
  inset:-36px -52px;
  z-index:0;
  border-radius:999px;
  background:radial-gradient(ellipse 62% 70% at 50% 50%,
    color-mix(in oklab,var(--im-accent) 80%,white),
    color-mix(in oklab,var(--im-accent) 45%,transparent) 38%,
    transparent 72%);
  filter:blur(22px);
  animation:im-enter-glow 1.7s ease-in-out infinite;
  pointer-events:none;
}
.im-enter__btn-label{position:relative;z-index:1}
.im-enter__btn:hover{
  animation:none;
  transform:scale(1.08);
  filter:brightness(1.08);
}
.im-enter__btn:active{transform:scale(.96)}
.im-punch--enter-play{
  display:inline-block;
  margin-top:18px;
}
.im-punch--enter-play .im-enter__play{margin-top:0}
.im-enter__play{
  appearance:none;
  margin-top:18px;
  padding:12px 22px;
  border-radius:999px;
  border:1px solid color-mix(in oklab, var(--im-accent) 42%, var(--line));
  background:transparent;
  color:var(--im-accent);
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
}
.im-enter__play:hover{
  border-color:var(--im-accent);
  background:color-mix(in oklab, var(--im-accent) 10%, transparent);
}
.im-enter__cv{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:18px;
  padding:6px 4px;
  border:0;
  background:none;
  cursor:pointer;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--faint);
}
.im-enter__cv:hover{color:var(--im-accent)}
.im-enter__classic{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:10px;
  padding:6px 4px;
  border:0;
  background:none;
  text-decoration:none;
  cursor:pointer;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--faint);
}
.im-enter__classic:hover{color:var(--im-accent)}
.im-punch--enter-classic .im-enter__classic{margin-top:0}
.im-punch--enter-classic{margin-top:10px;display:inline-flex}
.im-enter__boot{
  margin:8px 0 22px;
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(2rem,6vw,3.4rem);letter-spacing:-.04em;
}
.im-enter__rail{
  width:min(420px,80vw);height:8px;margin:0 auto;
  border-radius:999px;background:var(--line);overflow:hidden;
}
.im-enter__fill{
  display:block;height:100%;
  background:linear-gradient(90deg,var(--im-accent),color-mix(in oklab,var(--im-accent) 40%,white));
  box-shadow:0 0 16px var(--im-accent);
  transition:width .08s linear;
}
.im-enter__stages{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;
  list-style:none;margin:22px 0 0;padding:0;
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;
  color:var(--faint);
}
.im-enter__stages li.is-on{color:var(--im-accent)}
.im-enter.is-load{
  background:color-mix(in oklab,var(--bg) 72%,transparent);
}
@keyframes im-enter-pulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.055)}
}
@keyframes im-enter-glow{
  0%,100%{opacity:.42;transform:scale(.94)}
  50%{opacity:.95;transform:scale(1.12)}
}

html.im-html .cform__xp{
  margin:16px 18px 0;
  padding:10px 12px;
  border:1px dashed color-mix(in oklab,var(--im-accent) 50%,var(--line));
  border-radius:9px;
  background:color-mix(in oklab,var(--im-accent) 10%,transparent);
  color:var(--im-accent);
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.08em;
  line-height:1.45;
}
html.im-html .cform--form{overflow:visible}
html.im-html .cform .im-punch--hot{
  display:block;
  width:calc(100% - 36px);
  margin:18px;
}
html.im-html .cform .magnetic--fill{
  display:block;
  width:calc(100% - 36px);
  margin:18px;
}
html.im-html .cform .magnetic--fill .im-punch--hot,
html.im-html .cform .magnetic--fill .cform__submit{
  width:100%;
  margin:0;
}
html.im-html .cform .im-punch--hot .cform__submit{
  width:100%;
  margin:0;
}
html.im-html .cform__submit.is-level{
  gap:.55em;
  box-shadow:
    0 0 0 1px color-mix(in oklab,var(--im-accent) 45%,transparent),
    0 10px 32px color-mix(in oklab,var(--im-accent) 36%,transparent);
}
html.im-html .cform__xp + .cform__submit,
html.im-html .cform__xp + .im-punch{
  margin-top:12px;
}
html.im-html .cform__note--level{
  color:var(--text);
}

.im-xpchip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 8px 3px 7px;
  border-radius:999px;
  font-family:var(--font-mono);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  line-height:1;
  background:color-mix(in oklab,var(--bg) 88%,black);
  color:var(--im-accent);
  box-shadow:0 0 10px color-mix(in oklab,var(--im-accent) 40%,transparent);
  animation:im-xpchip-pulse 1.6s ease-in-out infinite;
}
.im-xpchip::before{
  content:"";
  width:5px;height:5px;
  transform:rotate(45deg);
  background:currentColor;
  box-shadow:0 0 6px currentColor;
  flex:0 0 auto;
}
@keyframes im-xpchip-pulse{
  0%,100%{transform:scale(1);filter:brightness(1)}
  50%{transform:scale(1.06);filter:brightness(1.15)}
}

.im-punch{
  position:relative;
  display:inline-flex;
  vertical-align:middle;
  isolation:isolate;
}
.im-punch__glow,
.im-punch__sparks,
.im-punch__sparks i{
  pointer-events:none;
}
.im-punch__glow{
  position:absolute;
  inset:-18px -22px;
  z-index:0;
  border-radius:999px;
  background:radial-gradient(ellipse 70% 80% at 50% 50%,
    color-mix(in oklab,var(--im-accent) 70%,white),
    color-mix(in oklab,var(--im-accent) 28%,transparent) 42%,
    transparent 74%);
  filter:blur(16px);
  opacity:.7;
}
.im-punch > :not(.im-punch__glow):not(.im-punch__sparks){
  position:relative;
  z-index:1;
}
.im-punch__sparks{
  position:absolute;
  inset:0;
  z-index:2;
  overflow:visible;
}
.im-punch__sparks i{
  position:absolute;
  left:calc(50% + (var(--x) * var(--rx, 48%)));
  top:calc(50% + (var(--y) * var(--ry, 28px)));
  width:5px;height:5px;
  margin:-2.5px 0 0 -2.5px;
  border-radius:50%;
  background:color-mix(in oklab,var(--im-accent) 55%,white);
  box-shadow:0 0 8px color-mix(in oklab,var(--im-accent) 80%,white);
  font-style:normal;
  animation:im-spark-bob 1.7s ease-in-out infinite;
  animation-delay:calc(var(--i) * -.16s);
}
.im-punch__sparks i:nth-child(odd){
  width:3px;height:3px;margin:-1.5px 0 0 -1.5px;
  animation-duration:2.15s;
}
@keyframes im-spark-bob{
  0%,100%{
    opacity:.2;
    transform:scale(.4);
  }
  50%{
    opacity:1;
    transform:translate(calc(var(--x) * 5px), calc(var(--y) * 6px)) scale(1.25);
  }
}

.im-punch--hot{
  --rx:47%;
  --ry:32px;
  animation:im-punch-hot 2s cubic-bezier(.16,1.45,.3,1) infinite;
}
.im-punch--hot .im-punch__glow{
  animation:im-punch-glow 2s ease-in-out infinite;
}
@keyframes im-punch-hot{
  0%,68%,100%{transform:scale(1)}
  76%{transform:scale(1.065)}
  83%{transform:scale(.975)}
  90%{transform:scale(1.03)}
}
@keyframes im-punch-glow{
  0%,68%,100%{opacity:.55;transform:scale(.96)}
  76%{opacity:1;transform:scale(1.08)}
  90%{opacity:.8;transform:scale(1.02)}
}
.im-punch--hot:hover{
  animation:none;
  transform:scale(1.04);
}
.im-punch--hot:hover .im-punch__glow{opacity:1;animation:none}
.im-punch--hot:active{transform:scale(.97)}

.im-punch--soft{
  --rx:56%;
  --ry:28px;
  animation:im-punch-soft 2.6s ease-in-out infinite;
}
.im-punch--soft .im-punch__glow{
  inset:-12px -16px;
  opacity:.38;
  filter:blur(14px);
  animation:im-punch-glow-soft 2.6s ease-in-out infinite;
}
.im-punch--soft .im-punch__sparks i{
  width:3px;height:3px;margin:-1.5px 0 0 -1.5px;
  opacity:.7;
  animation-duration:2.4s;
}
@keyframes im-punch-soft{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.028)}
}
@keyframes im-punch-glow-soft{
  0%,100%{opacity:.28;transform:scale(.98)}
  50%{opacity:.52;transform:scale(1.04)}
}
.im-punch--soft:hover{
  animation:none;
  transform:scale(1.03);
}
.im-punch--soft:hover .im-punch__glow{opacity:.6;animation:none}
.im-punch--soft:active{transform:scale(.98)}

.im-punch--ghost{
  --rx:70%;
  --ry:14px;
  animation:im-punch-ghost 3s ease-in-out infinite;
}
.im-punch--ghost .im-punch__glow{
  inset:-8px -18px;
  opacity:.22;
  filter:blur(10px);
}
.im-punch--ghost .im-punch__sparks i{
  width:2px;height:2px;margin:-1px 0 0 -1px;
  animation-duration:2.8s;
  box-shadow:0 0 5px var(--im-accent);
}
@keyframes im-punch-ghost{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.04)}
}
.im-punch--ghost:hover{
  animation:none;
  transform:scale(1.05);
}
.im-punch--enter-cv{
  display:inline-flex;
  margin-top:18px;
}
.im-punch--enter-cv .im-enter__cv{margin-top:0}

.im-punch--arcade-btn{
  display:inline-flex;
  margin-top:6px;
  width:100%;
  max-width:100%;
  justify-content:center;
}
.im-punch--arcade-btn .scroll-strike-arcade-cta__btn{
  margin-top:0;
}
@media (max-width:720px), (pointer:coarse){
  .im-punch--arcade-btn{
    width:100%;
  }
}

.im-punch:has(:disabled),
.im-punch.is-off{
  animation:none;
  transform:none;
}
.im-punch:has(:disabled) .im-punch__sparks,
.im-punch:has(:disabled) .im-punch__glow,
.im-punch.is-off .im-punch__sparks,
.im-punch.is-off .im-punch__glow{
  display:none;
}
