/* Nemorax website. Colours, type and motion follow Nemorax-Brand-Guidelines.pdf. */
@font-face{font-family:Outfit;src:url(../fonts/outfit-var.woff2) format("woff2");font-weight:400 600;font-display:swap}
@font-face{font-family:Inter;src:url(../fonts/inter-var.woff2) format("woff2");font-weight:400 600;font-display:swap}

:root{
  --ink:#12160F;--salada:#8FD414;--white:#FFFFFF;--graphite:#2B3125;--slate:#5C6353;--stone:#F3F5EE;--lime:#D4F07E;
  --on-accent:#12160F;--on-accent-inv:#fff;--on-accent-line:rgba(18,22,15,.35);--on-accent-sweep:#2B3125;
  --grad:linear-gradient(121deg,var(--ink) 0%,var(--salada) 72%,var(--lime) 100%);
  --grad-light:linear-gradient(121deg,var(--salada),var(--lime));
  --pad:clamp(20px,5.2vw,84px);
  --head:72px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --wipe:cubic-bezier(.76,0,.18,1);
  --skew:-30.96deg; /* the slash of the logo */
}
[data-theme=dark]{--bg:var(--ink);--fg:#fff;--muted:rgba(255,255,255,.74);--line:rgba(255,255,255,.2);--ghost:rgba(255,255,255,.055);--logo-letters:#fff;--logo-slash:var(--salada)}
[data-theme=graphite]{--bg:var(--graphite);--fg:#fff;--muted:rgba(255,255,255,.78);--line:rgba(255,255,255,.22);--ghost:rgba(255,255,255,.07);--logo-letters:#fff;--logo-slash:var(--salada)}
[data-theme=light]{--bg:#fff;--fg:var(--ink);--muted:var(--slate);--line:rgba(18,22,15,.16);--ghost:rgba(18,22,15,.05);--logo-letters:var(--ink);--logo-slash:var(--salada)}
[data-theme=salada]{--bg:var(--salada);--fg:var(--on-accent);--muted:var(--on-accent);--line:var(--on-accent-line);--logo-letters:var(--on-accent);--logo-slash:var(--on-accent)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--ink)}
body{margin:0;background:var(--ink);color:#fff;font:400 1.0625rem/1.6 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
main{display:block;overflow-x:clip}
h1,h2,h3,p,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
svg{display:block}
em{font-style:normal}
:focus-visible{outline:2px solid var(--salada);outline-offset:3px}
[data-theme=salada] :focus-visible,.cta :focus-visible{outline-color:var(--on-accent)}
[data-theme=light] :focus-visible{outline-color:var(--ink)}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:#fff;color:var(--ink);padding:10px 16px;font-weight:500}
.skip:focus{top:12px}

/* ---------- type ---------- */
.eyebrow{font:500 clamp(.72rem,.42vw + .66rem,.86rem)/1.4 Outfit,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.h1{font:400 clamp(2.35rem,min(5.2vw,8.9svh),6.6rem)/1.04 Outfit,sans-serif;letter-spacing:-.022em;text-wrap:balance}
.key{color:var(--salada)}
.lede{font-size:clamp(1rem,.45vw + .92rem,1.25rem);line-height:1.55;color:rgba(255,255,255,.76);text-wrap:pretty}
.display{font:400 clamp(3rem,min(10.4vw,20svh),12rem)/.98 Outfit,sans-serif;letter-spacing:-.03em;text-wrap:balance}

/* ---------- logo and its one approved motion ---------- */
.logo{width:100%;height:auto;overflow:visible}
@keyframes nemorax-slash{
  0%{opacity:0}
  5.556%{opacity:1}
  83.333%{opacity:1}
  88.889%,100%{opacity:0}
}
.nemorax-slash{animation:nemorax-slash 1.8s linear -.1s infinite}
[data-theme=salada] .nemorax-slash,.paused .nemorax-slash,.logo--mark .nemorax-slash{animation:none;opacity:1}
@media (prefers-reduced-motion:reduce){.nemorax-slash{animation:none}}

/* ---------- buttons: a slash sweeps through ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;font:500 .84rem/1.1 Outfit,sans-serif;letter-spacing:.08em;text-transform:uppercase;overflow:hidden;isolation:isolate;border-radius:26px;transition:color .25s;white-space:nowrap}
.btn span{position:relative;z-index:2}
.btn::before{content:"";position:absolute;z-index:1;top:0;bottom:0;left:-45%;width:190%;transform:translateX(-102%) skewX(var(--skew));transition:transform .55s var(--wipe)}
.btn:hover::before,.btn:focus-visible::before{transform:translateX(0) skewX(var(--skew))}
.btn--solid{background:#fff;color:var(--ink)}
.btn--solid::before{background:var(--salada)}
.btn--solid:hover,.btn--solid:focus-visible{color:var(--on-accent)}
.btn--line{box-shadow:inset 0 0 0 1px var(--line);color:var(--fg,#fff)}
.btn--line::before{background:var(--fg,#fff)}
.btn--line:hover,.btn--line:focus-visible{color:var(--bg,var(--ink))}
.btn--ink{background:var(--on-accent);color:var(--on-accent-inv)}
.btn--ink::before{background:var(--on-accent-sweep)}
.btn--signal{background:var(--salada);color:var(--on-accent)}
.btn--signal::before{background:var(--lime)}

/* ---------- header ---------- */
.head{position:fixed;inset:0 0 auto 0;z-index:40;height:var(--head);display:flex;align-items:center;gap:clamp(16px,2.6vw,44px);padding:0 var(--pad);background:var(--bg);color:var(--fg);transition:background .3s,color .3s}
.head__logo{flex:none;width:148px;padding:10px 0}
.head__nav{display:flex;gap:clamp(20px,2.3vw,36px);font:500 .94rem/1 Outfit,sans-serif;margin-right:auto}
/* Selected link: the logo's slash at the end of the word, same shape and rise, instead of an underline. */
.head__nav a,.foot__nav a,.foot__info a,.menu__link{position:relative;display:inline-block;--base:calc(8px + .13em)}
.head__nav a,.foot__nav a{padding:8px 0}
.head__nav a{opacity:.72;transition:opacity .2s}
.head__nav a:hover,.head__nav a:focus-visible,.head__nav a[aria-current]{opacity:1}
.head__nav a::after,.foot__nav a::after,.foot__info a::after,.menu__link::after{content:"";position:absolute;left:100%;bottom:var(--base);margin-left:.14em;width:.79em;height:.966em;background:var(--logo-slash);clip-path:polygon(73.4% 0,100% 0,26.6% 100%,0 100%);transform:scale(.2);transform-origin:0 100%;opacity:0;transition:transform .32s var(--ease),opacity .16s;pointer-events:none}
.head__nav a:hover::after,.head__nav a:focus-visible::after,.head__nav a[aria-current]::after,
.foot__nav a:hover::after,.foot__nav a:focus-visible::after,
.foot__info a:hover::after,.foot__info a:focus-visible::after,
.menu__link:hover::after,.menu__link:focus-visible::after,.menu__link[aria-current]::after{transform:none;opacity:1}
.head__tools{display:flex;align-items:center;gap:clamp(10px,1.4vw,20px);margin-left:auto}
.head__cta{min-height:42px;padding:0 20px;font-size:.94rem}
.lang{display:flex;align-items:center;gap:6px;font:500 .88rem/1 Outfit,sans-serif}
.lang a{padding:8px 3px;opacity:.6;transition:opacity .2s}
.lang a:hover,.lang a[aria-current]{opacity:1}
.lang__slash{width:3px;height:15px;background:currentColor;transform:skewX(var(--skew))}
.pause{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);flex:none}
.pause svg{width:12px;height:12px;fill:currentColor}
.pause__play{display:none}
.paused .pause__bars{display:none}
.paused .pause__play{display:block}
.menu-btn{display:none;font:500 .94rem/1 Outfit,sans-serif;padding:10px 0}

/* ---------- full-screen sheets: a slash wipes them in ---------- */
.sheet{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:clamp(20px,4vw,56px) var(--pad);background:var(--ink);color:#fff;overflow:auto}
.sheet::backdrop{background:transparent}
.sheet[open]{animation:sheet-in .75s var(--wipe) both}
@keyframes sheet-in{
  from{clip-path:polygon(calc(100% + 60svh) 0,200% 0,200% 100%,100% 100%)}
  to{clip-path:polygon(0 0,200% 0,200% 100%,-60svh 100%)}
}
.sheet__close{position:absolute;right:var(--pad);top:clamp(16px,2.4vw,26px);font:500 .94rem/1 Outfit,sans-serif;padding:10px 0;z-index:2}
.menu{--logo-letters:#fff;--logo-slash:var(--salada)}
.menu__top{height:44px}
.menu__mark{display:block;width:34px}
.menu__nav{display:flex;flex-direction:column;gap:6px;margin:clamp(24px,6svh,60px) 0}
.menu__link{font:400 clamp(2rem,9vw,3.4rem)/1.18 Outfit,sans-serif;letter-spacing:-.02em}
.consult__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,110px);min-height:100%;align-items:center;max-width:1500px;margin:0 auto}
.consult__title{font:400 clamp(2.4rem,5vw,5.2rem)/1.02 Outfit,sans-serif;letter-spacing:-.022em;margin-bottom:24px;text-wrap:balance}
.form{display:grid;gap:22px}
.field{display:grid;gap:4px;font:500 .9rem/1.3 Outfit,sans-serif;color:rgba(255,255,255,.78)}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.34);color:#fff;font:400 1.06rem/1.5 Inter,sans-serif;padding:8px 0;border-radius:0;resize:vertical;transition:border-color .2s}
.field input:focus,.field textarea:focus{outline:0;border-bottom:2px solid var(--salada);padding-bottom:7px}
.hp{position:absolute;left:-9999px}
.form__foot{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:8px}
.form__status{min-height:1.5em;font-size:.98rem}

/* ---------- static layout: no script, reduced motion, tiny viewports ---------- */
.opening{background:var(--ink)}
.opening__stage{position:relative}
.opening__copy{padding:calc(var(--head) + 7svh) var(--pad) 8svh;max-width:1100px;position:relative;z-index:2}
.opening__copy .eyebrow{margin-bottom:22px;color:rgba(255,255,255,.86)}
.opening__copy .lede{margin-top:22px;max-width:44em}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.band{background:var(--grad)}
/* Only seen without WebGL: the hero slash stays dark below, as the shader draws it. */
.opening__band{background:linear-gradient(to top,var(--ink) 14%,var(--salada) 78%,var(--lime) 100%)}
@media (max-aspect-ratio:3/2){.opening__band{background:linear-gradient(to top,var(--ink) 58%,var(--salada) 88%,var(--lime) 100%)}}
.band canvas{display:block;width:100%;height:100%}
html:not(.motion) .band{display:none}
.opening__sliver{display:none}
.cue{display:none}
.opening__wipe{background:#fff;color:var(--ink);padding:9svh var(--pad) 6svh}

.options{background:#fff;color:var(--ink)}
.shutters{display:grid;gap:8px;padding:0 var(--pad) 8svh}
.shutter{position:relative;display:block;background:var(--ink);color:#fff;padding:26px 24px 30px;clip-path:polygon(0 0,100% 0,100% calc(100% - 36px),calc(100% - 22px) 100%,0 100%)}
.shutter__fill{position:absolute;inset:0;background:var(--grad-light);opacity:0;transition:opacity .35s}
.shutter__in{position:relative;display:block}
.shutter__n{display:block;font:500 .9rem/1 Outfit,sans-serif;opacity:.7;margin-bottom:12px}
.shutter__title{font:500 clamp(1.3rem,4.8vw,1.7rem)/1.1 Outfit,sans-serif;letter-spacing:.01em;margin-bottom:14px;transition:color .25s}
.shutter__list li{font-size:1rem;line-height:1.7;color:rgba(255,255,255,.8);transition:color .25s}
.shutter:hover .shutter__fill,.shutter:focus-visible .shutter__fill{opacity:1}
.shutter:hover,.shutter:focus-visible{color:var(--on-accent)}
.shutter:hover .shutter__list li,.shutter:focus-visible .shutter__list li{color:var(--on-accent)}
.sh-l,.sh-r,.shutter__ghost{display:none}

/* Draft v2: the three pillars as a plain white section with ordinary scrolling. */
.pillars{background:#fff;color:var(--ink);overflow:hidden;overflow:clip}
.chap{position:relative;display:grid;gap:clamp(30px,5svh,52px) clamp(48px,7vw,128px);padding:clamp(64px,12svh,132px) var(--pad);scroll-margin-top:var(--head)}
.chap + .chap::before{content:"";position:absolute;top:0;left:var(--pad);right:var(--pad);height:1px;background:var(--line)}
.chap__slash{position:absolute;top:0;right:calc(var(--pad) * .4);width:clamp(84px,10vw,176px);height:min(100%,clamp(240px,50svh,500px));background:linear-gradient(180deg,var(--lime),rgba(255,255,255,0));opacity:.42;transform:skewX(var(--skew));transform-origin:top;pointer-events:none}
.chap__intro,.chap__svcs{position:relative;z-index:1;min-width:0}
.chap__tag{margin-bottom:clamp(14px,2.4svh,24px);color:var(--muted)}
.chap__tag span{color:var(--ink)}
.chap__tag span::after{content:"";display:inline-block;width:2px;height:1em;margin:0 .55em 0 .7em;vertical-align:-.12em;background:var(--salada);transform:skewX(var(--skew))}
.chap__title{font:400 clamp(2rem,3.5vw,3.5rem)/1.08 Outfit,sans-serif;letter-spacing:-.02em;max-width:15ch;text-wrap:balance}
.chap__quote{font:400 clamp(1.08rem,1.4vw,1.34rem)/1.45 Outfit,sans-serif;color:var(--muted);max-width:30em;margin-top:clamp(16px,2.6svh,26px);text-wrap:balance}
.svc{padding:clamp(20px,3svh,30px) 0;border-top:1px solid var(--line)}
.svc:first-child{padding-top:0;border-top:0}
.svc:last-child{padding-bottom:0}
.svc__title{font:500 clamp(1.18rem,1.6vw,1.55rem)/1.2 Outfit,sans-serif;letter-spacing:-.01em;margin-bottom:10px;text-wrap:balance}
.svc__text{color:var(--muted);max-width:42em;text-wrap:pretty}
@media (min-width:1000px){
  .chap{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
}

.rise{background:var(--ink);padding:10svh var(--pad)}
.rise__title{font:400 clamp(1.5rem,2.5vw,2.6rem)/1.1 Outfit,sans-serif;letter-spacing:-.015em;margin-bottom:32px}
.rise__world{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.step__n{display:block;font:400 clamp(4rem,10vw,8rem)/1 Outfit,sans-serif;background:var(--grad-light);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:10px}
.step__title{font:400 clamp(2rem,3.4vw,3.2rem)/1.08 Outfit,sans-serif;letter-spacing:-.02em;margin-bottom:8px}
.step__text{color:rgba(255,255,255,.76);font-size:clamp(1rem,1.1vw,1.2rem);max-width:22em}
.rise__dots{display:none}

.cta{background:var(--salada);color:var(--on-accent);padding:clamp(72px,15svh,160px) var(--pad)}
.cta__title{max-width:12ch;margin-bottom:clamp(28px,6svh,56px)}
.cta__title{font-size:clamp(3rem,min(9.4vw,18svh),11rem)}
.cta__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px}
.cta__sub{max-width:38em;font-size:clamp(1.05rem,.5vw + .95rem,1.35rem);line-height:1.5;text-wrap:pretty}
.caret{display:inline-block;width:.17em;height:.82em;margin-left:.12em;background:currentColor;transform:skewX(var(--skew));vertical-align:-.04em;animation:nemorax-slash 1.8s linear -.1s infinite}
.paused .caret{animation:none}
@media (prefers-reduced-motion:reduce){.caret{animation:none}}

.foot{background:var(--ink);color:#fff;padding:clamp(56px,9svh,110px) var(--pad) clamp(28px,5svh,44px);display:grid;gap:clamp(36px,6svh,64px);grid-template-columns:1fr auto;align-items:end}
.foot__logo{display:block;grid-column:1/-1;width:min(100%,1180px);padding:20px 0}
.foot__info{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px clamp(24px,4vw,64px);padding-top:clamp(16px,3svh,26px);border-top:1px solid var(--line);font-size:.92rem;line-height:1.5;color:var(--muted)}
.foot__info[hidden]{display:none}
.foot__contact,.foot__legal{display:flex;flex-wrap:wrap;gap:6px clamp(20px,2.4vw,36px)}
.foot__info a{--base:.39em;color:#fff}
.menu__link{--base:.22em;width:fit-content}
html.wait body{visibility:hidden}
.foot__nav{display:flex;flex-wrap:wrap;gap:8px clamp(22px,2.4vw,36px);font:500 1rem/1 Outfit,sans-serif}
html:not(.js) .consult{display:block;position:static;height:auto}
html:not(.js) .consult .sheet__close,html:not(.js) .menu-btn,html:not(.js) .pause{display:none}

/* ---------- pinned scenes ---------- */
.motion .opening__stage,.motion .rise__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;overflow:clip}
.motion .opening__stage{background:var(--ink)}
.motion .band{position:absolute;inset:0;will-change:clip-path}
.motion .opening__band{clip-path:polygon(81% 0,96% 0,63% 100%,47% 100%)}
.motion .opening__copy{position:absolute;left:var(--pad);bottom:clamp(30px,8svh,84px);width:min(60vw,1080px);padding:0;will-change:transform,opacity}
.motion .h1{animation:rise-in 1s var(--ease) both .08s}
.motion .opening__copy .lede{max-width:min(42vw,36em);animation:rise-in 1s var(--ease) both .22s}
.motion .cta-row{animation:rise-in 1s var(--ease) both .34s}
@keyframes rise-in{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.cursor-char{opacity:0}
.motion .cue{display:flex;align-items:center;gap:6px;position:absolute;right:var(--pad);bottom:clamp(30px,8svh,84px);font:500 .84rem/1 Outfit,sans-serif;z-index:2;color:#fff;will-change:opacity}
.cue span{margin-right:8px}
.cue i{width:3px;height:15px;background:currentColor;transform:skewX(var(--skew));animation:cue 1.8s linear infinite}
.cue i:nth-of-type(2){animation-delay:.18s}
.cue i:nth-of-type(3){animation-delay:.36s}
@keyframes cue{0%,60%,100%{opacity:.25}20%{opacity:1}}
.paused .cue i{animation:none;opacity:.7}
.motion .opening__sliver{display:block;position:absolute;inset:0;background:var(--salada);z-index:3;clip-path:polygon(200% 0,200% 0,200% 100%,200% 100%)}
.motion .opening__wipe{position:absolute;inset:0;z-index:4;padding:calc(var(--head) + 4svh) var(--pad) clamp(30px,6svh,64px);display:flex;align-items:flex-end;clip-path:polygon(200% 0,200% 0,200% 100%,200% 100%)}
.motion .opening__wipe .display{max-width:11ch}


.motion .rise{padding:0}
.motion .rise__stage{background:var(--ink);--cx:50vw;--cy:calc(50svh + var(--head) * .35);--tw:clamp(70px,8.4vw,150px);--clear:calc(var(--tw) + clamp(60px,8vw,150px));--block:min(34vw,560px)}
.motion .rise__title{position:absolute;left:var(--pad);top:calc(var(--head) + 3svh);margin:0;z-index:3}
.motion .rise__world{display:block;position:absolute;left:var(--cx);top:var(--cy);width:0;height:0;z-index:2;will-change:transform}
.motion .step{position:absolute;left:0;top:0;transform:translate(calc(var(--n) * var(--sx)),calc(var(--n) * var(--sy) * -1))}
.motion .step__in{position:absolute;width:var(--block);transform:translateY(-50%);transition:opacity .45s var(--ease);opacity:.26}
.motion .step.on .step__in{opacity:1}
.motion .step--l .step__in{right:var(--clear);text-align:right}
.motion .step--r .step__in{left:var(--clear)}
.motion .step__n{font-size:clamp(5rem,min(12vw,22svh),13rem);margin-bottom:.06em}
.motion .step__title{font-size:clamp(2.2rem,min(5vw,9svh),5.6rem)}
.motion .step__text{font-size:clamp(1rem,1.35vw,1.4rem);max-width:none}
.motion .step--l .step__text{margin-left:auto}
.motion .rise__dots{display:flex;gap:18px;position:absolute;left:var(--pad);bottom:clamp(18px,3.4svh,34px);z-index:3;font:500 .84rem/1 Outfit,sans-serif;color:#fff}
.rise__dot{opacity:.36;transition:opacity .3s;padding-bottom:6px;border-bottom:2px solid transparent}
.rise__dot.on{opacity:1;border-bottom-color:currentColor}
.motion .rise.filled .rise__title,.motion .rise.filled .rise__dots,.motion .rise.filled .rise__world{opacity:0;transition:opacity .2s}
.motion .rise.filled .rise__band{background:var(--salada)}
.motion .rise.filled .rise__band canvas{visibility:hidden}

.motion .cta__title,.motion .cta__row{transition:transform .9s var(--ease),opacity .9s var(--ease)}
.motion .cta:not(.in) .cta__title{transform:translateY(40px);opacity:0}
.motion .cta:not(.in) .cta__row{transform:translateY(40px);opacity:0}

/* ---------- wide: the three pillars as one slanted band ---------- */
@media (min-width:1000px){
  .shutters{--h:clamp(360px,min(54svh,38vw),600px);--off:calc(var(--h) * .6);--gap:10px;--pt:clamp(26px,5svh,48px);--m:clamp(22px,2.8vw,48px);display:flex;gap:0;height:var(--h);padding:0;margin:0 calc(var(--off) * -1)}
  .shutter{flex:1 1 0;min-width:0;padding:0;margin-left:calc(var(--off) * -1 + var(--gap));clip-path:polygon(var(--off) 0,100% 0,calc(100% - var(--off)) 100%,0 100%);transition:flex-grow .7s var(--ease);color:#fff}
  .shutter:first-child{margin-left:0}
  .shutter:last-child{flex-grow:1.22}
  .shutter:last-child:hover,.shutter:last-child:focus-visible{flex-grow:1.5}
  .shutter:hover,.shutter:focus-visible{flex-grow:1.28}
  .shutter__in{position:absolute;inset:0;padding:var(--pt) 0}
  .sh-l,.sh-r{display:block;width:calc(var(--off) + var(--m));height:var(--h);margin-top:calc(var(--pt) * -1)}
  .sh-l{float:left;shape-outside:polygon(0 0,100% 0,var(--m) 100%,0 100%)}
  .sh-r{float:right;shape-outside:polygon(var(--off) 0,100% 0,100% 100%,0 100%)}
  .shutter__n{font-size:.95rem;margin-bottom:clamp(10px,2svh,20px)}
  .shutter__title{font-size:clamp(1.4rem,min(2.2vw,4.4svh),2.5rem);margin-bottom:clamp(14px,3svh,34px)}
  .shutter__list li{font-size:clamp(1rem,1.24vw,1.32rem);line-height:1.5;margin-bottom:.4em}
  /* The first and last pieces run off the screen, so their text keeps to the page margin. */
  .shutter:first-child .sh-l{width:calc(var(--off) + var(--pad));shape-outside:none}
  .shutter:last-child .sh-r{width:calc(var(--off) + var(--pad));shape-outside:none}
  .shutter__ghost{display:block;position:absolute;bottom:clamp(14px,3svh,30px);left:calc(var(--m) + 3.4vw);font:400 clamp(4rem,min(8vw,15svh),9rem)/.8 Outfit,sans-serif;letter-spacing:-.03em;color:rgba(255,255,255,.09);transition:color .3s}
  .shutter:first-child .shutter__ghost{left:calc(var(--off) + var(--pad))}
  .shutter:hover .shutter__ghost,.shutter:focus-visible .shutter__ghost{color:rgba(18,22,15,.16)}
}
html:not(.motion) .options{padding-top:0}

/* ---------- narrow ---------- */
@media (max-width:1180px){
  .head__nav{display:none}
  .menu-btn{display:block}
}
@media (max-width:640px){
  :root{--head:60px}
  .head__logo{width:124px}
  .head__cta{display:none}
  .pause{width:30px;height:30px}
  .btn{min-height:50px;padding:0 24px;white-space:normal;text-align:center}
  .consult__grid{grid-template-columns:1fr;align-items:start;padding-top:44px}
  .foot{grid-template-columns:1fr}
}
@media (max-width:760px){
  .motion .opening__copy{width:auto;right:var(--pad);bottom:clamp(20px,4svh,44px)}
  .motion .cue{display:none}
  .h1{font-size:clamp(2.1rem,9.6vw,3.4rem)}
  .motion .opening__copy .lede{font-size:.98rem;max-width:none}
  .motion .rise__stage{--cx:74vw;--cy:64svh;--tw:clamp(34px,10vw,64px);--block:calc(var(--cx) + var(--tw))}
  .motion .step--l .step__in,.motion .step--r .step__in{left:calc(var(--pad) - var(--cx));right:auto;text-align:left;width:calc(100vw - var(--pad) * 2 - 30px);transform:none;bottom:clamp(36px,8svh,70px)}
  .motion .step--l .step__text{margin-left:0}
  .motion .step__text{max-width:15em}
  .motion .step__n{font-size:clamp(4.6rem,24vw,7rem)}
  .motion .step__title{font-size:clamp(2.1rem,10.4vw,3.2rem)}
  .cta__title{max-width:none}
}
@media (max-aspect-ratio:1/1){
  .motion .opening__copy{width:auto;right:var(--pad)}
  .motion .opening__copy .lede{max-width:40em}
  .motion .cue{display:none}
}
@media (max-aspect-ratio:1/1) and (min-width:761px){
  .h1{font-size:clamp(2.35rem,7.4vw,6rem)}
}
@media print{.head,.cue{display:none}}
