:root{
  --wine-900:#2A0812;--wine-500:#8C1D3F;--paper:#F6F2F2;--ink:#171013;
  --mark-1:#E0A3AF;--mark-2:#C25C74;--mark-3:#8C1D3F;
  --font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,"Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",monospace;
  --container:1280px;--gutter:clamp(20px,4vw,56px);--col-gap:24px;--band-y:clamp(80px,10vw,160px);
  --fg-1:#171013;--fg-2:#6E6165;--accent:#8C1D3F;--focus:#8C1D3F;--rule:#8C1D3F;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-snap:cubic-bezier(.2,.8,.2,1);
  --dur:160ms;--d-color:160ms;--d-hover:320ms;--d-reveal:560ms;--d-align:720ms;
  --d-word:800ms;--d-mark:900ms;--d-draw:900ms;--rise:12px;
  --d-base-mark:300ms;--d-eyebrow:400ms;--d-step:480ms;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--wine-900);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--fg-1);font-family:var(--font-sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
:lang(ko){word-break:keep-all;overflow-wrap:break-word;line-break:strict}
:lang(ko) body{line-height:1.75}
h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
svg,img{display:block}
img{max-width:100%;height:auto}
figure{margin:0;min-width:0}
figcaption{overflow-wrap:anywhere}
p{max-width:34em;text-wrap:pretty}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.wrap{max-width:calc(var(--container) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
.grid>*{min-width:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.band{overflow-x:clip;padding-block:var(--band-y)}
.band--paper{background:#F6F2F2;color:#171013;color-scheme:light;--fg-1:#171013;--fg-2:#6E6165;--accent:#8C1D3F;--focus:#8C1D3F;--rule:#8C1D3F}
.band--deep{background:#2A0812;color:#F3E8EA;color-scheme:dark;--fg-1:#F3E8EA;--fg-2:#A98D93;--accent:#F6F2F2;--focus:#F6F2F2;--rule:#F6F2F2}
.display-xl,.display-l,.statement__title,.work__name,.chapter{font-weight:700;text-wrap:balance}
.display-xl{font-size:clamp(34px,5.6vw,88px);line-height:1.04;letter-spacing:-.035em}
:lang(ko) .display-xl{font-size:clamp(38px,7vw,108px);line-height:1.14;letter-spacing:-.025em}
.display-l{font-size:clamp(36px,6vw,92px);line-height:1.06;letter-spacing:-.035em}
:lang(ko) .display-l{line-height:1.16;letter-spacing:-.025em}
.chapter{font-size:clamp(30px,4.4vw,64px);line-height:1.1;letter-spacing:-.03em}
:lang(ko) .chapter{line-height:1.24;letter-spacing:-.02em}
.title-m{font-size:clamp(22px,2vw,30px);font-weight:700;line-height:1.25;letter-spacing:-.015em}
:lang(ko) .title-m{line-height:1.4}
.lead,.work__summary{font-size:clamp(18px,.5vw + 15px,22px);line-height:1.5;letter-spacing:-.005em}
:lang(ko) .lead,:lang(ko) .work__summary{line-height:1.7;letter-spacing:0}
.label{font-family:var(--font-mono);font-size:12px;font-weight:500;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}
:lang(ko) .label{font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.04em}
.num{font-family:var(--font-mono);font-size:13px;font-weight:500;line-height:1.2;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.words .w{display:inline-block}
.link{color:var(--fg-1);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.24em;transition:color var(--dur) var(--ease-out),text-decoration-color var(--dur) var(--ease-out)}
.link:hover,.link:focus-visible{color:var(--accent);text-decoration-thickness:2px}
.link--solo{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:600}
.status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;line-height:1.2;color:var(--fg-2)}
.status::before{content:"";flex:none;width:8px;height:8px;background:transparent;border:1.5px solid var(--fg-2)}

/* Company chrome owns its tokens on every product surface. */
.er-bar,.er-foot{
  --er-bg:#2A0812;--er-fg-1:#F3E8EA;--er-fg-2:#A98D93;--er-accent:#F6F2F2;--er-focus:#F6F2F2;
  --er-logo-1:#F6F2F2;--er-logo-2:#F6F2F2;--er-logo-3:#F6F2F2;
  --er-font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Helvetica Neue",Arial,sans-serif;
  --er-font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,"Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",monospace;
  --er-container:1280px;--er-gutter:clamp(20px,4vw,56px);--er-col-gap:24px;--er-dur:160ms;
  background:var(--er-bg);color:var(--er-fg-1);color-scheme:dark;
  font-family:var(--er-font-sans);font-size:15px;font-weight:400;line-height:1.6;letter-spacing:0;text-transform:none;
}
.er-wrap{max-width:calc(var(--er-container) + 2 * var(--er-gutter));margin-inline:auto;padding-inline:var(--er-gutter)}
.er-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.er-mono{font-family:var(--er-font-mono);font-weight:500;letter-spacing:.02em}
.er-num{font-variant-numeric:tabular-nums}
.er-bar{position:relative;font-weight:500;line-height:1.2}
.er-bar__in{display:flex;align-items:center;gap:24px;height:56px;flex-wrap:nowrap}
.er-bar__home{display:inline-flex;align-items:center;min-height:44px;flex:none;text-decoration:none}
.er-bar__home svg{height:18px;width:auto}
.er-bar__nav{margin-left:auto;flex:none}
.er-lang{display:flex;gap:16px;margin-left:auto;flex:none}
.er-bar__nav+.er-lang{margin-left:0}
.er-navlink{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;color:var(--er-fg-1);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:8px;transition:text-decoration-color var(--er-dur) var(--ease-out)}
.er-navlink:hover{ text-decoration-color:var(--er-accent)}
.er-navlink[aria-current]{text-decoration-color:var(--er-accent);text-decoration-thickness:2px;font-weight:700}
.er-bar a:focus-visible,.er-foot a:focus-visible{outline:2px solid var(--er-focus);outline-offset:2px}
.er-skip{position:absolute;left:32px;top:-200px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:12px 16px;background:#F6F2F2;color:#171013;font-family:var(--font-sans);font-size:15px;font-weight:600;line-height:1.2;text-decoration:none}
.er-skip:focus{top:8px;outline:2px solid #F6F2F2;outline-offset:2px}
.er-foot{padding-block:64px 48px}
.er-foot__rule{display:block;width:64px;height:2px;background:var(--er-accent);margin-bottom:32px}
.er-foot__logo{grid-column:1 / span 3;align-self:start;display:inline-flex;align-items:center;justify-self:start;min-height:44px}
.er-foot__logo svg{height:16px;width:auto}
.er-foot__legal{grid-column:5 / -1;display:flex;flex-wrap:wrap;gap:12px 40px;align-self:center;font-size:13px;line-height:1.55}
.er-foot__field{display:flex;gap:12px}
.er-foot__legal dt{color:var(--er-fg-2)}
.er-foot__legal dd{color:var(--er-fg-1)}

/* Editorial layout. */
.hero{padding:0}
.hero__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;min-height:calc(77svh - 56px);padding-block:48px clamp(56px,7vw,96px);align-content:end;align-items:end;align-items:last baseline}
.hero h1{grid-column:1 / span 9}
.hero__mark{grid-column:10 / span 3;justify-self:end;align-self:end}
.hero__mark svg{width:clamp(96px,20vw,300px);height:auto;overflow:visible}
.hero__mark rect{transform-box:fill-box}
.work{padding-top:48px}
.work__label{margin-bottom:32px}
.work__row{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-block:48px}
.work__num{grid-column:1;color:var(--fg-2);transition:color var(--d-color) var(--ease-out)}
.work__text{grid-column:2 / span 6;min-width:0}
.work__kind{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.work__name{font-size:clamp(36px,5.6vw,84px);line-height:1.02;letter-spacing:-.035em}
:lang(ko) .work__name{line-height:1.12;letter-spacing:-.025em}
.work__name a{color:inherit;text-decoration:none}
.work__name a::after{content:"";position:absolute;inset:0;z-index:1}
.work__name a>span{display:inline-block;position:relative;transition:transform var(--d-hover) var(--ease-snap)}
.work__name a>span::before{content:"";position:absolute;left:0;right:0;bottom:-.12em;height:2px;background:var(--rule);transform:scaleX(0);transform-origin:left;transition:transform var(--d-hover) var(--ease-snap)}
.work__name a:focus-visible>span{transform:translateX(12px)}
.work__name a:focus-visible>span::before{transform:scaleX(1)}
.work__row:has(a:focus-visible){outline:2px solid var(--focus);outline-offset:8px}
.work__summary{margin-top:20px;max-width:30em}
.work__media,.work__visual{grid-column:8 / span 5;align-self:end;min-width:0}
.work__media--docs{font-size:clamp(22px,2.2vw,32px);font-weight:600;line-height:1.5;letter-spacing:-.01em}
.work__media--docs>span{display:block}
.work__media--photos,.work__media--screens{display:flex;align-items:end;gap:16px}
.work__media--photos img{height:clamp(180px,19vw,280px);width:auto;min-width:0}
.work__media--screens img{height:clamp(220px,24vw,340px);width:auto;min-width:0;border:1px solid #E2D9DA}
.work__note{margin-top:12px;font-size:13px;line-height:1.55;color:var(--fg-2)}
.work__media>*{transition:opacity var(--d-hover) var(--ease-out),transform var(--d-align) var(--ease-out)}
.work__media>:nth-child(2){transition-delay:90ms}
.work__media>:nth-child(3){transition-delay:180ms}
.work__media>:nth-child(4){transition-delay:270ms}
.work__media>:nth-child(5){transition-delay:360ms}
.work__media--docs>:nth-child(1){--dx:40px}
.work__media--docs>:nth-child(3){--dx:64px}
.work__media--docs>:nth-child(4){--dx:16px}
.work__media--docs>:nth-child(5){--dx:88px}
.work__media--photos>:nth-child(1){--dy:24px}
.work__media--photos>:nth-child(2){--dy:48px}
.work__media--photos>:nth-child(3){--dy:12px}
.work__media--screens>:nth-child(1){--dy:48px}
.work__media--screens>:nth-child(2){--dy:16px}
.work__media--screens>:nth-child(3){--dy:32px}
.work__row.is-active .work__num,.work__row:focus-within .work__num{color:#8C1D3F}
.statement{--p:1}
.statement__stage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 24px}
.statement__title{grid-column:1 / span 10;font-size:clamp(32px,5.6vw,84px);line-height:1.08;letter-spacing:-.03em}
:lang(ko) .statement__title{line-height:1.2;letter-spacing:-.02em}
.statement__body{grid-column:1 / span 7}
.contact{padding-block:calc(var(--band-y) * 1.25)}
.contact__content>.label{margin-bottom:24px}
.contact__body{margin-top:16px;color:var(--fg-2)}
.contact__mail{display:inline-block;position:relative;margin-top:40px;min-height:44px;font-size:clamp(28px,7.4vw,96px);font-weight:700;line-height:1.1;letter-spacing:-.03em;overflow-wrap:anywhere;max-width:100%;color:var(--fg-1);text-decoration:none}
.contact__mail::after{content:"";position:absolute;left:0;right:0;bottom:-.12em;height:3px;background:var(--rule);transform-origin:left}
.contact__mail:hover,.contact__mail:focus-visible{color:var(--accent)}
.fde-hero{padding-block:96px}
.fde-hero__eyebrow{grid-column:1 / -1;margin-bottom:24px;color:var(--accent)}
.fde-hero h1{grid-column:1 / span 10}
.fde-hero__body{grid-column:6 / span 6;margin-top:56px}
.chapter-head{max-width:calc((100% - 11 * 24px) / 12 * 10 + 9 * 24px)}
.chapter__rule{display:block;width:64px;height:2px;background:var(--rule);margin-bottom:24px;transform-origin:left}
.chapter__label{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px}
.chapter__body{margin-top:24px;max-width:34em}
.chapter__body--offset{grid-column:6 / span 6;margin-top:40px}
.process{margin-top:64px;align-items:start;--row-h:80px}
.process__tracker{grid-column:1 / span 4;position:sticky;top:96px;padding-left:56px}
.process__word{font-size:clamp(30px,3.6vw,56px);font-weight:700;line-height:1.15;letter-spacing:-.02em;height:var(--row-h);display:flex;align-items:center;color:var(--fg-1)}
.process__bar{display:none;position:absolute;left:0;top:37px;width:40px;height:6px;background:var(--rule)}
.process__list{grid-column:6 / span 7}
.process__step{min-height:48svh;padding-block:40px}
.process__step h3{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.process__step p{font-size:clamp(20px,1.6vw,26px);line-height:1.65}
.examples{margin-top:160px}
.examples h2{font-size:clamp(26px,2.8vw,40px);line-height:1.3;font-weight:700}
.examples__flow{margin-top:32px;font-size:clamp(22px,2.4vw,36px);line-height:1.45;letter-spacing:-.01em;font-weight:500;max-width:calc((100% - 11 * 24px) / 12 * 11 + 10 * 24px)}
.examples__flow li{display:inline;margin-inline-end:.9em}
.examples__dept{color:var(--accent);font-weight:700}
.examples__body{margin-top:48px;max-width:34em;color:var(--fg-2)}
.result-list{margin-top:64px;display:grid;gap:40px}
.result-list h3{grid-column:1 / span 4}
.result-list p{grid-column:6 / span 7}
.start__body{margin-top:32px}
#start .display-l{max-width:calc((100% - 11 * 24px) / 12 * 10 + 9 * 24px)}
.fde-contact{margin-top:120px;padding:0}
.error-page{min-height:55vh;padding-block:96px}
.error-page h1{margin-block:24px}

/* Product body conventions stay with each product. */
.product-main{--focus:var(--product-focus)}
.product-wrap{max-width:1144px;padding:80px 32px 64px;margin-inline:auto}
.product-hero{max-width:860px}
.product-brand{display:flex;align-items:center;gap:24px;margin-bottom:32px}
.app-icon{width:88px;height:88px;flex:none}
.product-name{font-size:24px}
.product-main h1{font-size:clamp(32px,5vw,56px);line-height:1.25;letter-spacing:-.03em;margin-top:24px;text-wrap:balance}
.product-main h2{font-size:clamp(26px,4vw,36px);line-height:1.35;margin-block:16px 24px;letter-spacing:-.02em}
.product-lead{font-size:19px;line-height:1.7;max-width:34em;margin-block:24px 32px}
.product-section{margin-top:80px;padding-top:32px;border-top:1px solid var(--line)}
.product-section>p:not(.product-label){max-width:34em}
.product-label{font-size:13px;font-weight:600;letter-spacing:.08em}
.product-button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:14px 23px;text-decoration:none;font-size:15px;font-weight:600;line-height:1.5;margin-top:24px}
.product-hero .product-button{margin-top:0}
.product-link{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-underline-offset:.24em;overflow-wrap:anywhere}
.product-operator{margin-top:64px;padding-top:24px;border-top:1px solid var(--line);font-size:15px}
.product-main .status{line-height:1.6;flex-wrap:wrap}

@media (hover:hover) and (pointer:fine){
  .work__row:hover .work__name a>span{transform:translateX(12px)}
  .work__row:hover .work__name a>span::before{transform:scaleX(1)}
}
@media (max-width:1023px){
  .hero__grid{min-height:calc(80svh - 56px);padding-block:72px 64px;gap:40px 24px}
  .hero h1{grid-column:1 / -1}
  .hero__mark{grid-column:1 / -1;grid-row:1;justify-self:start}
  .hero__mark svg{width:140px}
  .work__row{grid-template-columns:32px minmax(0,1fr);gap:0 16px}
  .work__num{grid-column:1;grid-row:1;padding-top:2px}
  .work__text{grid-column:2;display:contents}
  .work__kind{grid-column:2;grid-row:1}
  .work__name,.work__summary{grid-column:1 / -1}
  .work__media,.work__visual{grid-column:1 / -1;margin-top:24px}
  .work__visual .work__media{margin-top:0}
  .work__media--docs{font-size:26px}
  .work__media--photos img{height:240px}
  .work__media--screens img{height:300px}
  .fde-hero__body{grid-column:1 / span 10}
  .process{display:block;position:relative;padding-left:26px}
  .process__tracker{display:none}
  .process__list::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--rule);transform-origin:top}
  .process__step{min-height:0;padding:0}
  .process__step+.process__step{margin-top:32px}
  .process__step h3{position:static;width:auto;height:auto;clip-path:none;margin:0 0 16px;overflow:visible;white-space:normal;font-size:32px;line-height:1.15;letter-spacing:-.02em}
  .process__step p{font-size:17px}
  .er-foot__logo,.er-foot__legal{grid-column:1 / -1}
  .er-foot .er-grid{row-gap:24px}
}
@media (max-width:767px){
  body{font-size:16px}
  .grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .grid>*{grid-column:1 / -1}
  .er-bar__in{gap:24px;height:56px;flex-wrap:nowrap}
  .er-bar__home svg{height:16px}
  .er-bar__nav{order:initial;flex:0 0 auto;margin-left:auto}
  .er-lang{order:initial}
  .er-skip{left:20px}
  .er-foot__legal{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px}
  .er-foot__field{display:contents}
  .er-foot__legal dd{min-width:0;overflow-wrap:anywhere}
  .hero__grid{min-height:0;padding-block:40px 48px;grid-template-columns:minmax(0,1fr);gap:32px}
  .hero__mark svg{width:88px}
  :lang(ko) .display-xl{font-size:40px}
  .work__row{padding-block:32px}
  .work__summary{font-size:16px}
  .work__media--docs{font-size:20px}
  .work__media--photos{gap:8px}
  .work__media--photos img{height:172px}
  .work__media--screens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .work__media--screens img{width:100%;height:auto}
  .work__media--docs>:nth-child(1){--dx:20px}
  .work__media--docs>:nth-child(3){--dx:32px}
  .work__media--docs>:nth-child(4){--dx:8px}
  .work__media--docs>:nth-child(5){--dx:44px}
  .work__media--photos>:nth-child(1){--dy:12px}
  .work__media--photos>:nth-child(2){--dy:24px}
  .work__media--photos>:nth-child(3){--dy:6px}
  .work__media--screens>:nth-child(1){--dy:24px}
  .work__media--screens>:nth-child(2){--dy:8px}
  .work__media--screens>:nth-child(3){--dy:16px}
  .statement__stage{grid-template-columns:minmax(0,1fr)}
  .statement__title,.statement__body{grid-column:1 / -1}
  .contact__mail{font-size:28px}
  .fde-hero{padding-block:64px}
  .fde-hero .grid{gap:0}
  .fde-hero__body{font-size:17px;margin-top:40px}
  .chapter-head,#start .display-l,.examples__flow{max-width:100%}
  .examples{margin-top:96px}
  .examples__flow{font-size:20px;line-height:1.5}
  .result-list .grid{gap:16px}
  .fde-contact{margin-top:120px}
  .product-wrap{padding:48px 20px}
  .product-section{margin-top:64px}
  .product-brand{gap:16px;align-items:flex-start}
  .product-lead{font-size:17px}
  .product-button{width:100%}
  .product-main .product-name{font-size:19px}
}
@media (max-width:399px){.er-bar__back{display:none}:lang(en) .er-bar__in{gap:16px}}

/* Only initialized JS with motion allowed may hide content. */
@media (prefers-reduced-motion:no-preference){
  html.js:not(.is-ready) [data-hero] .w,html.js:not(.is-ready) .hero__mark rect,html.js:not(.is-ready) .fde-hero__eyebrow,html.js:not(.is-ready) .fde-hero__body{opacity:0}
  html.js.is-ready .hero .w{animation:word-rise var(--d-word) var(--ease-out) both;animation-delay:calc(180ms + (var(--i) - 1) * 45ms)}
  html.js.is-ready .hero__mark .b3{animation:mark-fade var(--d-base-mark) linear both}
  html.js.is-ready .hero__mark .b2{animation:mark-in-l var(--d-mark) var(--ease-out) 120ms both}
  html.js.is-ready .hero__mark .b1{animation:mark-in-r var(--d-mark) var(--ease-out) 220ms both}
  html.js.is-ready .fde-hero__eyebrow{animation:mark-fade var(--d-eyebrow) var(--ease-out) both}
  html.js.is-ready .fde-hero .w{animation:word-rise var(--d-word) var(--ease-out) both;animation-delay:calc(80ms + (var(--i) - 1) * 45ms)}
  html.js.is-ready .fde-hero__body{animation:reveal-rise var(--d-reveal) var(--ease-out) 520ms both}
  html.js [data-reveal],html.js [data-reveal-group]:not([data-reveal-group="fade"])>*{transition:opacity var(--d-reveal) var(--ease-out),transform var(--d-reveal) var(--ease-out)}
  html.js [data-reveal]:not(.is-in),html.js [data-reveal-group]:not([data-reveal-group="fade"]):not(.is-in)>*{opacity:0;transform:translateY(var(--rise))}
  html.js [data-reveal-group="fade"]>*{transition:opacity var(--d-reveal) var(--ease-out)}
  html.js [data-reveal-group="fade"]:not(.is-in)>*{opacity:0}
  html.js [data-reveal-group]>:nth-child(2){transition-delay:70ms}
  html.js [data-reveal-group]>:nth-child(3){transition-delay:140ms}
  html.js [data-reveal-group]>:nth-child(4){transition-delay:210ms}
  html.js [data-reveal-group]>:nth-child(n+5){transition-delay:280ms}
  html.js [data-reveal-group="fade"]>:nth-child(6){transition-delay:350ms}
  html.js [data-reveal-group="fade"]>:nth-child(n+7){transition-delay:420ms}
  html.js .chapter-head .chapter__rule{transition:transform var(--d-reveal) var(--ease-out);opacity:1}
  html.js .chapter-head:not(.is-in) .chapter__rule{transform:scaleX(0)}
  html.js .chapter-head h2{transition-delay:140ms}
  html.js .work__row:not(.is-active):not(:focus-within) .work__media>*{opacity:0;transform:translate(var(--dx,0px),var(--dy,0px))}
  html.js [data-reveal-words] .w{transition:opacity var(--d-word) var(--ease-out),transform var(--d-word) var(--ease-out);transition-delay:calc((var(--i) - 1) * 40ms)}
  html.js [data-reveal-words]:not(.is-in) .w{opacity:0;transform:translateY(.3em)}
  html.js .contact__mail::after{transform:scaleX(0)}
  html.js .is-in>.contact__mail::after{animation:rule-draw var(--d-draw) var(--ease-out) 420ms both}
  html.js .contact__mail{transition:color var(--d-color) var(--ease-out),opacity var(--d-reveal) var(--ease-out),transform var(--d-reveal) var(--ease-out)}
  html.js .process__word{color:var(--fg-2);transition:color var(--d-color) var(--ease-out)}
  html.js .process__bar{display:block;transform:translateY(calc(var(--step,0) * var(--row-h)));transition:transform var(--d-step) var(--ease-out)}
  [data-step="0"]{--step:0}[data-step="1"]{--step:1}[data-step="2"]{--step:2}[data-step="3"]{--step:3}
  html.js [data-step="0"] .process__word:nth-of-type(1),html.js [data-step="1"] .process__word:nth-of-type(2),html.js [data-step="2"] .process__word:nth-of-type(3),html.js [data-step="3"] .process__word:nth-of-type(4){color:var(--fg-1)}
  @media (min-width:768px) and (min-height:600px){
    html.js .statement.is-scrubbing{height:180vh;padding-block:0}
    html.js .is-scrubbing .statement__stage{position:sticky;top:0;height:100svh;align-content:center}
    html.js .is-scrubbing .statement__title .w{transition:none;transform:none;opacity:clamp(.4,calc(var(--p) * var(--n) * 1.2 - var(--i) + 1),1)}
    html.js .is-scrubbing .statement__body{transition:opacity var(--d-reveal) var(--ease-out),transform var(--d-reveal) var(--ease-out);opacity:1;transform:none}
    html.js .is-scrubbing:not(.is-lit) .statement__body{opacity:0;transform:translateY(var(--rise))}
  }
  @media (max-width:1023px){
    html.js .process__list::before{transition:transform var(--d-draw) var(--ease-out)}
    html.js .process:not(.is-in) .process__list::before{transform:scaleY(0)}
    html.js .process__step{--step-delay:0ms}
    html.js .process__step:nth-child(2){--step-delay:180ms}
    html.js .process__step:nth-child(3){--step-delay:360ms}
    html.js .process__step:nth-child(4){--step-delay:540ms}
    html.js .process__step h3,html.js .process__step p{transition:opacity var(--d-reveal) var(--ease-out),transform var(--d-reveal) var(--ease-out);transition-delay:var(--step-delay)}
    html.js .process__step p{transition-delay:calc(var(--step-delay) + 60ms)}
    html.js .process:not(.is-in) .process__step h3,html.js .process:not(.is-in) .process__step p{opacity:0;transform:translateY(var(--rise))}
  }
}
/* Focus reveals immediately, including nested groups. Fade keeps product transforms. */
html.js [data-reveal]:focus-within,html.js [data-reveal-group]:not([data-reveal-group="fade"]):focus-within>*{opacity:1;transform:none;transition:none}
html.js [data-reveal-group="fade"]:focus-within>*{opacity:1;transition:none}
html.js .contact__content:focus-within .contact__mail::after{animation:none;transform:scaleX(1)}
html.js .contact__content:focus-within .contact__mail{opacity:1;transform:none;transition:none}
@keyframes word-rise{from{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:none}}
@keyframes reveal-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes mark-fade{from{opacity:0}to{opacity:1}}
@keyframes mark-in-l{from{opacity:0;transform:translateX(-34%)}40%{opacity:1}to{opacity:1;transform:none}}
@keyframes mark-in-r{from{opacity:0;transform:translateX(38%)}40%{opacity:1}to{opacity:1;transform:none}}
@keyframes rule-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .statement.is-scrubbing{height:auto;padding-block:var(--band-y)}
  .statement__stage{position:static;height:auto}
  .process__word{color:var(--fg-1)}
  .process__bar{display:none}
}
@media (forced-colors:active){.status::before{border-color:CanvasText}.chapter__rule,.er-foot__rule,.process__bar,.process__list::before,.contact__mail::after,.work__name a>span::before{background:CanvasText}}
.i1{--i:1}.n1{--n:1}
.i2{--i:2}.n2{--n:2}
.i3{--i:3}.n3{--n:3}
.i4{--i:4}.n4{--n:4}
.i5{--i:5}.n5{--n:5}
.i6{--i:6}.n6{--n:6}
.i7{--i:7}.n7{--n:7}
.i8{--i:8}.n8{--n:8}
.i9{--i:9}.n9{--n:9}
.i10{--i:10}.n10{--n:10}
.i11{--i:11}.n11{--n:11}
.i12{--i:12}.n12{--n:12}
.i13{--i:13}.n13{--n:13}
.i14{--i:14}.n14{--n:14}
.i15{--i:15}.n15{--n:15}
.i16{--i:16}.n16{--n:16}
.i17{--i:17}.n17{--n:17}
.i18{--i:18}.n18{--n:18}
.i19{--i:19}.n19{--n:19}
.i20{--i:20}.n20{--n:20}
.i21{--i:21}.n21{--n:21}
.i22{--i:22}.n22{--n:22}
.i23{--i:23}.n23{--n:23}
.i24{--i:24}.n24{--n:24}
