/* Knautia: grid-cell editorial layout. Fonts: Inter Tight, Geist Mono (OFL). */
@font-face{font-family:"Inter Tight";src:url(../fonts/inter-tight-latin.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter Tight";src:url(../fonts/inter-tight-latin-ext.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist Mono";src:url(../fonts/geist-mono-latin.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist Mono";src:url(../fonts/geist-mono-latin-ext.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --black:#232323;--white:#fff;--grey:#d9d9d9;--mint:#a1ffcb;--line-dark:#3d3d3d;
  --bg:#fff;--fg:#232323;--cell:#232323;--cell-fg:#fff;--soft:#d9d9d9;--muted:#6b6b6b;--muted-d:#a8a8a8;
  --hh:60px;--pad:20px;
  --row:max(360px,calc((100svh - var(--hh)) / 2));
  --ease:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.87,0,.13,1);
  --sans:"Inter Tight","Helvetica Neue",Arial,system-ui,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  /* fluid type, slope = (100vw - 375px) / 1225px */
  --h50:clamp(52px,calc(52px + (100vw - 375px) * .120816),200px);
  --h40:clamp(52px,calc(52px + (100vw - 375px) * .0488),110px);
  --claim:clamp(64px,calc(64px + (100vw - 375px) * .0535),140px);
  --d30:clamp(80px,calc(80px + (100vw - 375px) * .04898),140px);
  --d20:clamp(64px,calc(64px + (100vw - 375px) * .045714),120px);
  --h10:clamp(24px,calc(24px + (100vw - 375px) * .013061),40px);
  --b30:clamp(24px,calc(24px + (100vw - 375px) * .006531),32px);
}
:root[data-theme=dark]{--bg:#232323;--fg:#fff;--cell:#fff;--cell-fg:#232323;--soft:#3a3a3a;--muted:#a8a8a8;--muted-d:#6b6b6b;--line-dark:#d0d0d0}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--hh)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.3;font-weight:450;letter-spacing:-.04em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
h1,h2,h3,p,ul,dl,dd{margin:0;padding:0;font-weight:inherit}
ul{list-style:none}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
img{height:auto}
button{font:inherit;color:inherit;letter-spacing:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid #2f6bff;outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:8px;top:-60px;z-index:200;background:var(--mint);color:var(--black);padding:10px 14px;font-family:var(--mono);font-size:12px;text-transform:uppercase}
.skip:focus{top:8px}

/* type */
.h50{font-size:var(--h50);line-height:1;letter-spacing:-.04em}
.h40{font-size:var(--h40);line-height:1;letter-spacing:-.04em;text-transform:uppercase}
.h10{font-size:var(--h10);line-height:1.1;letter-spacing:-.04em}
.b30{font-size:var(--b30);line-height:1.1;letter-spacing:-.02em}
.b20{font-size:24px;line-height:1.1;letter-spacing:-.02em}
.mono,.label{font-family:var(--mono);font-size:12px;line-height:1.1;letter-spacing:-.04em;text-transform:uppercase;font-weight:400}
.label{display:flex;align-items:center;gap:12px}
.label::before{content:"";width:8px;height:8px;background:currentColor;flex:none}
.muted{color:var(--muted)}
.ico{flex:none}

/* buttons: mono, 36px, fill slides in on hover */
.btn{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;height:36px;padding:0 12px;font-family:var(--mono);font-size:12px;letter-spacing:-.04em;text-transform:uppercase;overflow:hidden;isolation:isolate;transition:color .8s var(--ease)}
.btn .fill,.hdr-contact .fill,.co-link .fill{position:absolute;inset:0;background:var(--mint);transform:translateY(101%);transition:transform .8s var(--ease);z-index:-1}
.btn:hover .fill,.btn:focus-visible .fill,.hdr-contact:hover .fill,.hdr-contact:focus-visible .fill,.co-link:hover .fill,.co-link:focus-visible .fill{transform:none}
.btn:hover,.btn:focus-visible{color:var(--black)}
.btn-dark{background:var(--black);color:#fff}
.btn-light{background:#fff;color:var(--black)}
.btn-mint{background:var(--mint);color:var(--black)}
.btn-mint:hover{background:#fff}

/* header */
.hdr{position:fixed;inset:0 0 auto;height:var(--hh);z-index:50;display:grid;grid-template-columns:var(--hh) 1fr 1fr;align-items:stretch;background:var(--bg);border-bottom:1px solid var(--fg);transition:background .6s var(--ease)}
.hdr-mark{display:grid;place-items:center;background:var(--black);color:#fff;perspective:200px}
.hdr-mark-svg{width:34px;height:34px;animation:coin 7s var(--ease) 2.4s infinite}
@keyframes coin{0%{transform:rotateY(0)}18%,100%{transform:rotateY(-360deg)}}
.hdr-clock{display:flex;align-items:center;padding-left:80px;font-size:14px;line-height:1;white-space:nowrap;overflow:hidden}
.clock-city{text-transform:uppercase}
.hdr-nav{grid-column:3;grid-row:1;display:flex;align-items:center;padding-left:var(--pad);border-left:1px solid var(--fg)}
.hdr-nav ul{display:flex;gap:2px}
.hdr-nav a{display:block;padding:4px 4px;transition:color .6s var(--ease),background-color .6s var(--ease)}
.hdr-nav a:hover,.hdr-nav a:focus-visible{background:var(--fg);color:var(--bg)}
.hdr-theme{grid-column:3;grid-row:1;justify-self:end;margin-right:220px;align-self:center;padding:8px;transition:transform .2s var(--ease)}
.theme-toggle:active{transform:scale(.94)}
.theme-toggle svg{transition:transform .45s var(--ease)}
[data-theme=dark] .theme-toggle svg{transform:rotate(180deg)}
.hdr-contact{grid-column:3;grid-row:1;justify-self:end;position:relative;isolation:isolate;overflow:hidden;width:200px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);background:var(--black);color:#fff;transition:color .8s var(--ease)}
.hdr-contact:hover,.hdr-contact:focus-visible{color:var(--black)}
.hdr-menu{display:none}
.menu{display:none}

/* preloader (only with JS) */
.preloader{display:none}
.js .preloader{display:grid;place-items:center;position:fixed;inset:0;z-index:100;background:var(--black);color:var(--grey)}
.preloader-mark{width:min(34vw,300px);height:auto;opacity:.15;transform:scale(.3)}
.is-ready .preloader{pointer-events:none}

/* halftone layer */
.ht{position:absolute;inset:0;overflow:hidden;background:#fff}
html:not(.js) .ht{background:#fff var(--ht) center/cover no-repeat;filter:grayscale(1) contrast(1.1)}
.ht canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.ht-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15)}

/* hero */
main{display:block;position:relative;z-index:1;background:var(--bg)}
.hero{position:relative;margin-top:var(--hh)}
.hero-bg{position:absolute;inset:0}
.hero-bg-in{position:sticky;top:var(--hh);height:calc(100svh - var(--hh));overflow:hidden}
.hero-flat{position:absolute;inset:0;background:#dedede;opacity:0;display:grid;place-items:center;overflow:hidden}
.hero-flat-mark{position:absolute;width:46vw;max-width:none;left:74%;top:30%;transform:translate(-50%,-50%);color:#e8e8e8}
.hero-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:var(--row) var(--row) var(--row) minmax(var(--row),586px)}
.hc{padding:var(--pad);position:relative}
.hc-name{grid-column:1/3;grid-row:1/3;padding:0}
.hc-name-in{position:sticky;top:var(--hh);height:var(--row);background:var(--bg);display:flex;align-items:flex-end;padding:var(--pad);border-bottom:1px solid var(--fg)}
.hc-name h1{margin-left:-.04em;transform:translateY(.06em)}
.hc-intro{grid-column:3;grid-row:2;background:var(--cell);color:var(--cell-fg);display:flex;flex-direction:column;justify-content:space-between}
.hc-intro .btn-dark{background:var(--cell);color:var(--cell-fg)}
.hc-intro .btn-dark:hover{color:var(--black)}
.hc-mint{grid-column:4;grid-row:2;background:var(--mint);color:var(--black);display:flex;flex-direction:column;overflow:hidden}
.hc-mint-sub{margin-top:1.1em}
.mq{margin-top:auto;margin-left:calc(var(--pad) * -1);margin-right:calc(var(--pad) * -1);display:flex;overflow:hidden;white-space:nowrap}
.mq-track{display:flex;flex:none;animation:mq 26s linear infinite}
.mq-item{display:inline-flex;align-items:center;gap:8px;padding:0 14px;font-size:18px;font-weight:550;letter-spacing:-.03em}
.mq-mark{width:16px;height:16px}
@keyframes mq{to{transform:translateX(-100%)}}
.hc-word{grid-column:3/5;grid-row:3;background:var(--soft);display:flex;align-items:flex-end}
.hc-word .h50{line-height:.8}
.hc-claim{grid-column:1/3;grid-row:4;background:var(--cell);color:var(--cell-fg)}
.claim{font-size:var(--claim);line-height:.96;letter-spacing:-.04em;text-transform:uppercase}
.hc-claim-sub,.hc-claim .btn{display:none}

/* about */
.about{position:relative;z-index:1;background:var(--bg);border-top:1px solid var(--fg)}
.about::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid var(--fg);pointer-events:none}
.about-top{display:grid;grid-template-columns:repeat(4,1fr);min-height:980px}
.about-top .label{grid-column:1;padding:var(--pad);align-self:start}
.about-text{grid-column:3/5;padding:var(--pad)}
.about-text p+p{margin-top:1.1em}
.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:200px 400px 400px}
.stat{padding:var(--pad);display:flex;flex-direction:column;justify-content:space-between;position:relative;z-index:1}
.digits{font-size:80px;line-height:1;letter-spacing:-.04em;white-space:nowrap;overflow:hidden}
.stat-a{grid-column:3;grid-row:1;background:var(--cell);color:var(--cell-fg)}
.stat-b{grid-column:1/3;grid-row:2/4;background:var(--mint);color:var(--black)}
.stat-b .digits{font-size:var(--d20)}
.stat-b p:last-child{text-align:right}
.stat-c{grid-column:4;grid-row:2;background:var(--soft)}
.stat-c .digits{font-size:var(--d20)}
.rd{display:inline-block;height:1em;overflow:hidden;vertical-align:top}
.rd-col{display:block}
.rd-col span{display:block;height:1em}

/* services */
.services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--fg)}
.svc-side{position:relative}
.svc-side-in{position:sticky;top:var(--hh);height:calc(100svh - var(--hh));min-height:640px;background:var(--soft);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr}
.svc-title{grid-column:1/3;padding:var(--pad);display:flex;flex-direction:column;font-size:var(--h40)}
.svc-title .r{align-self:flex-end}
.svc-side-text{grid-column:2;align-self:end;padding:var(--pad);display:flex;flex-direction:column;gap:36px}
.svc-side-text .btn{width:100px;min-width:180px;align-self:flex-start}
.svc-list{background:var(--black);color:#fff}
.svc{display:grid;grid-template-columns:37px 1fr 290px;column-gap:20px;min-height:var(--row);padding:var(--pad) 40px var(--pad) 40px;border-bottom:1px solid var(--line-dark)}
.svc:last-child{border-bottom:0}
.svc-no{font-size:14px;color:#9a9a9a;padding-top:4px}
.svc-head{display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.art{width:180px;height:180px;color:#cfcfcf}
.art .spin{transform-origin:100px 100px;animation:spin 40s linear infinite}
.svc:nth-child(2n) .art .spin{animation-duration:60s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.svc-body{display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.ticks{font-family:var(--mono);font-size:14px;line-height:1;text-transform:uppercase;letter-spacing:-.04em;display:grid;gap:6px}
.ticks li{display:flex;gap:8px;align-items:center;min-height:14px}
.ticks li::before{content:"";width:6px;height:6px;background:var(--mint);flex:none}
.tw-cursor{display:inline-block;width:.55em;height:1em;background:var(--mint);vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{0%,44%{opacity:1}56%,100%{opacity:0}}

/* approach (list section) */
.approach{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:586px var(--row) auto;border-top:1px solid var(--fg);position:relative;z-index:1;background:var(--bg)}
.big-word{padding:var(--pad);line-height:.8}
.approach .big-word{grid-column:1/3;grid-row:1}
.ap-ht{grid-column:3/5;grid-row:1;position:relative;border-left:1px solid var(--fg)}
.ap-label{grid-column:1;grid-row:2;padding:var(--pad);display:flex;flex-direction:column;justify-content:space-between;border-top:1px solid var(--fg)}
.ap-active{display:flex;justify-content:space-between;gap:8px}
.ap-tile{grid-column:1;grid-row:3;min-height:var(--row);background:var(--tile);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:background-color .6s var(--ease)}
.ap-tile-mark{width:64px;height:64px}
.ap-tile-name{font-size:24px;letter-spacing:-.02em}
.ap-text{grid-column:2;grid-row:2/4;padding:var(--pad);border-left:1px solid var(--fg);border-right:1px solid var(--fg);border-top:1px solid var(--fg);display:flex;flex-direction:column;gap:36px}
.ap-text .btn{width:180px}
.ap-rows{grid-column:3/5;grid-row:2/4;border-top:1px solid var(--fg)}
.row{display:grid;grid-template-columns:1fr 1fr;align-items:end;height:121px;padding:0 12px 16px;border-bottom:1px solid var(--fg);cursor:default;transition:background-color .6s var(--ease),color .6s var(--ease)}
.row .mono{padding-left:10px;padding-bottom:6px;color:var(--muted)}
.row.is-active{background:var(--fg);color:var(--bg)}
.row.is-active .mono{color:var(--muted-d)}

/* process (slider) */
.process{touch-action:pan-y;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:var(--row) var(--row);border-top:1px solid var(--fg);position:relative;z-index:1;background:var(--bg)}
.pr-top{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:space-between}
.pr-top .label{padding:var(--pad)}
.pr-arrows{position:relative;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--fg)}
.pr-arrows button{height:60px;display:grid;place-items:center;transition:background-color .6s var(--ease),color .6s var(--ease)}
.pr-arrows button+button{border-left:1px solid var(--fg)}
.pr-arrows button:hover{background:var(--fg);color:var(--bg)}
.pr-bar{position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--fg);transform-origin:left;transform:scaleX(0)}
.slides{display:contents}
.slide{display:contents}
.slide-img{grid-column:1;grid-row:2;position:relative;overflow:hidden;border-top:1px solid var(--fg)}
.slide-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide-quote{grid-column:2/4;grid-row:1/3;padding:var(--pad);border-left:1px solid var(--fg);border-right:1px solid var(--fg);display:flex;flex-direction:column}
.slide-no{font-size:14px;margin-bottom:20px}
.slide-meta{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end}
.slide-meta p+p{margin-top:6px}
.slide-info{grid-column:4;grid-row:1;background:var(--cell);color:var(--cell-fg);padding:var(--pad);display:flex;flex-direction:column;gap:22px;font-size:14px}
.slide-info .mono{margin-top:6px;color:var(--muted-d)}
.pr-ht{grid-column:4;grid-row:2;position:relative;border-top:1px solid var(--fg)}
/* without JS every step is shown; with JS one at a time */
html:not(.js) .slides{display:block;grid-column:2/4;grid-row:1/3}
html:not(.js) .slide{display:grid;grid-template-columns:1fr 1fr}
html:not(.js) .slide-quote{grid-column:1/3;min-height:auto;border:0}
html:not(.js) .slide-img,html:not(.js) .slide-info{display:none}
.js .slide:not(.is-active){display:none}

/* company + stage */
.company{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:var(--row) 60px auto;border-top:1px solid var(--fg);position:relative;z-index:1;background:var(--bg)}
.company .big-word{grid-column:1/3;grid-row:1;border-right:1px solid var(--fg)}
.co-claim{grid-column:3/5;grid-row:1;align-self:end;padding:var(--pad)}
.co-label{grid-column:1;grid-row:2;padding:var(--pad);border-top:1px solid var(--fg)}
.co-link{grid-column:2;grid-row:2;position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);border:1px solid var(--fg);border-bottom:0;transition:color .8s var(--ease)}
.co-link:hover,.co-link:focus-visible{color:var(--black)}
.co-text{grid-column:3/5;grid-row:2/4;padding:var(--pad);border-top:1px solid var(--fg);max-width:720px;padding-bottom:120px}
.stage{position:relative;z-index:1;min-height:1300px;padding-bottom:160px;overflow:hidden;border-top:1px solid var(--fg)}
.stage-bg{position:absolute;inset:0}
.stage-flat{position:absolute;left:0;right:0;bottom:0;height:calc(160px + clamp(34px,7.5vw,150px) * .9);background:#dedede;overflow:hidden}
.stage-flat-mark{position:absolute;left:50%;top:0;width:min(40vw,560px);max-width:none;transform:translate(-50%,-50%);color:#d9d9d9}
.cards{position:relative;display:grid;grid-template-columns:repeat(4,1fr);align-items:start;padding-top:110px}
.card{position:relative;display:flex;flex-direction:column;color:var(--black)}
.card-1{margin-top:158px}.card-2{margin-top:68px}.card-3{margin-top:226px}
.card-tag{align-self:flex-end;height:34px;display:flex;align-items:center;padding:0 10px;background:#fff;border:1px solid var(--black);border-bottom:0}
.card-img{display:block;position:relative;aspect-ratio:5/4;overflow:hidden;background:#cfcfcf}
.card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.card:hover .card-img img{transform:scale(1.04)}
.card-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;height:125px;padding:var(--pad);background:var(--mint);font-size:24px;line-height:1.1;letter-spacing:-.02em;border-bottom:1px solid var(--black)}
.card-bar .ico{width:22px;height:22px;transition:transform .8s var(--ease)}
.card:hover .card-bar .ico{transform:translateX(4px)}
.card-name{max-width:15ch;overflow-wrap:anywhere}
.cta{position:relative;display:block;margin-top:180px;font-size:clamp(34px,7.5vw,150px);line-height:.9;letter-spacing:-.04em;text-transform:uppercase}
.cta-l1{display:flex;justify-content:space-between}
.cta-l2{display:flex;justify-content:center;padding-left:10%}
.w{display:inline-flex;align-items:center;padding:0 .04em}
.w-dark{background:var(--black);color:#fff}
.w-light{background:#fff;color:var(--black)}
.w-mint{background:var(--mint);color:var(--black);padding:0 .16em;transition:padding .8s var(--ease)}
.w-mint .ico{width:.42em;height:.42em}
.cta:hover .w-mint{padding:0 .3em}

/* footer */
.ftr{position:relative;z-index:1}
.ftr-main{position:relative;z-index:2;background:var(--bg);display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:minmax(var(--row),auto) 60px;border-top:1px solid var(--fg);border-bottom:1px solid var(--fg)}
.ftr-a{grid-column:1/3;grid-row:1/3;padding:var(--pad);display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.ftr-legal{display:grid;gap:10px;font-size:14px;max-width:520px}
.ftr-legal dt{font-family:var(--mono);font-size:12px;text-transform:uppercase;color:var(--muted)}
.ftr-nav{grid-column:3;grid-row:1;padding:var(--pad);border-left:1px solid var(--fg);display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.ftr-nav ul{display:grid;gap:6px;justify-items:start}
.ftr-nav a{transition:color .6s var(--ease),background-color .6s var(--ease);padding:2px 0}
.ftr-nav a:hover{background:var(--fg);color:var(--bg)}
.ftr-nav-legal{font-size:14px}
.ftr-clocks{grid-column:4;grid-row:1;padding:var(--pad);border-left:1px solid var(--fg);display:grid;align-content:start;gap:16px}
.clock{display:flex;gap:12px;align-items:flex-start;font-size:14px}
.clock .mono{color:var(--muted);margin-top:4px}
.clock-ico .hand-h,.clock-ico .hand-m{transform-origin:12px 12px;transition:transform .6s var(--ease)}
.ftr-mail,.ftr-tel{grid-row:2;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);border-top:1px solid var(--fg);border-left:1px solid var(--fg);transition:background-color .6s var(--ease),color .6s var(--ease)}
.ftr-mail{grid-column:3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ftr-tel{grid-column:4}
.ftr-mail:hover,.ftr-tel:hover{background:var(--fg);color:var(--bg)}
.ftr-reveal{position:sticky;bottom:0;z-index:0;display:grid;grid-template-columns:1fr 1fr;height:420px}
.ftr-logo{background:var(--black);color:#fff;display:grid;place-items:center;position:relative;padding:var(--pad)}
.ftr-logo-svg{width:min(56%,320px);height:auto}
.ftr-copy,.ftr-copy2{position:absolute;bottom:var(--pad);font-size:11px;color:#bdbdbd}
.ftr-copy{left:var(--pad)}.ftr-copy2{right:var(--pad)}
.ftr-copy a,.ftr-copy2 a{text-decoration:underline;text-underline-offset:2px}
.ftr-cta{position:relative;background:var(--mint);color:var(--black);padding:var(--pad);display:flex;flex-direction:column;justify-content:space-between}
.ftr-cta-small{font-size:14px}
.ftr-cta-arrow{position:absolute;right:var(--pad);bottom:var(--pad);width:30%;max-width:120px;aspect-ratio:1;transition:transform .8s var(--ease)}
.ftr-cta:hover .ftr-cta-arrow{transform:translate(6px,-6px)}

/* cookie notice */
.cookie{position:fixed;left:0;bottom:0;z-index:48;width:360px;max-width:100%;background:var(--black);color:#fff;padding:var(--pad);display:grid;gap:16px;font-size:14px;border-top:1px solid #fff;border-right:1px solid #fff}
.cookie[hidden]{display:none}
.cookie a{text-decoration:underline;text-underline-offset:2px}
.cookie .btn{width:100%}

/* legal pages */
.legal main{margin-top:var(--hh)}
.lg{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:0;position:relative}
.lg::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid var(--fg)}
.lg-head{grid-column:1/3;padding:var(--pad);display:flex;flex-direction:column;gap:28px;align-self:start;position:sticky;top:var(--hh)}
.lg-head .h40{font-size:clamp(44px,calc(44px + (100vw - 375px) * .03),80px);text-transform:none}
.lg-body{grid-column:3/5;padding:var(--pad) var(--pad) 120px;max-width:720px;font-size:17px;line-height:1.5;letter-spacing:-.01em}
.lg-body h2{font-size:24px;line-height:1.15;letter-spacing:-.03em;margin:40px 0 12px}
.lg-body h2:first-child{margin-top:0}
.lg-body p+p{margin-top:12px}
.lg-body a{text-decoration:underline;text-underline-offset:3px}
.lg-dl{display:grid;gap:0;margin:12px 0;border-top:1px solid var(--fg)}
.lg-dl div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--fg)}
.lg-dl dt{font-family:var(--mono);font-size:12px;text-transform:uppercase;padding-top:4px;color:var(--muted)}

/* 404 */
.nf{min-height:calc(100svh - var(--hh) - 200px)}
.nf .lg-head{position:relative;top:0;padding-bottom:80px}
.nf-btn{width:220px}

/* view transition: theme sweep */
::view-transition-old(root){animation:none}
::view-transition-new(root){animation:sweep 1.2s var(--ease-io) both}
@keyframes sweep{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}

/* ---------- mobile ---------- */
@media (max-width:899px){
  :root{--pad:12px;--row:auto}
  .hdr{grid-template-columns:48px 1fr 1fr}
  .hdr-mark-svg{width:28px;height:28px}
  .hdr-clock{padding-left:16px}
  .hdr-nav,.hdr-theme,.hdr-contact{display:none}
  .hdr-menu{display:flex;grid-column:3;align-items:center;justify-content:space-between;padding:0 var(--pad);background:var(--mint);color:var(--black);border-left:1px solid var(--fg)}
  .roll{display:grid;height:20px;overflow:hidden;line-height:20px}
  .roll span{transition:transform .6s var(--ease)}
  .hdr-menu[aria-expanded=true] .roll span{transform:translateY(-100%)}
  .burger{position:relative;width:14px;height:10px}
  .burger i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .6s var(--ease),top .6s var(--ease)}
  .burger i:first-child{top:2px}.burger i:last-child{top:7px}
  .hdr-menu[aria-expanded=true] .burger i:first-child{top:4.5px;transform:rotate(45deg)}
  .hdr-menu[aria-expanded=true] .burger i:last-child{top:4.5px;transform:rotate(-45deg)}
  .menu{display:flex;flex-direction:column;position:fixed;inset:var(--hh) 0 0;z-index:49;background:var(--bg);visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-io),visibility 0s .7s}
  .menu.is-open{visibility:visible;clip-path:inset(0);transition:clip-path .7s var(--ease-io)}
  .menu-links{flex:1;display:flex;flex-direction:column}
  .menu-links li{flex:1;display:flex;border-bottom:1px solid var(--fg)}
  .menu-links a{flex:1;display:flex;align-items:flex-end;padding:var(--pad);font-size:clamp(28px,8vw,40px);letter-spacing:-.04em}
  .menu-foot{display:grid;grid-template-columns:1fr 1fr 1fr;height:60px}
  .menu-foot>*{display:flex;align-items:center;justify-content:center;gap:10px;border-right:1px solid var(--fg)}
  .menu-foot>*:last-child{border-right:0}

  .hero-grid{grid-template-columns:1fr 1fr;grid-template-rows:clamp(200px,30svh,260px) clamp(200px,30svh,260px) auto auto}
  .hc-name{grid-column:1;grid-row:1}
  .hc-name-in{position:relative;top:0;height:100%;border:0}
  .hc-word{grid-column:2;grid-row:2;padding:var(--pad)}
  .hc-name h1,.hc-word .h50{font-size:clamp(38px,10.2vw,92px);line-height:.9}
  .hc-claim{grid-column:1/3;grid-row:3;display:flex;flex-direction:column;gap:28px;min-height:500px}
  .hc-claim-sub{display:block}
  .hc-claim .btn{display:flex;align-self:flex-end;width:auto}
  .hc-intro{display:none}
  .hc-mint{grid-column:1/3;grid-row:4;min-height:380px}
  .about-top{grid-template-columns:1fr;min-height:0}
  .about::before{display:none}
  .about-top .label{padding-bottom:160px}
  .about-text{grid-column:1;padding-bottom:60px}
  .stats{grid-template-columns:1fr;grid-template-rows:auto}
  .stat{grid-column:1!important;grid-row:auto!important;min-height:160px;gap:40px}
  .stat-b{min-height:240px}
  .stat-b .digits{font-size:clamp(48px,14vw,80px)}
  .services{grid-template-columns:1fr}
  .svc-side-in{position:relative;top:0;height:auto;min-height:0;grid-template-columns:1fr;background:var(--bg)}
  .svc-title{grid-column:1;font-size:clamp(40px,12.6vw,64px)}
  .svc-side-text{grid-column:1;padding-top:60px}
  .svc-side-text .btn{align-self:flex-end}
  .svc{grid-template-columns:1fr;padding:var(--pad);min-height:0;gap:20px}
  .svc-head{display:grid;grid-template-columns:1fr auto;align-items:end}
  .svc-head h3{order:2;grid-column:1/3}
  .svc-head .art{order:1;grid-column:2;width:150px;height:150px}
  .approach{grid-template-columns:1fr;grid-template-rows:auto}
  .approach>*{grid-column:1!important;grid-row:auto!important}
  .ap-ht{min-height:320px;order:-1;border:0}
  .approach .big-word{font-size:clamp(48px,14vw,72px);padding-top:40px}
  .ap-label{flex-direction:row;gap:12px;border:0}
  .ap-tile{min-height:220px}
  .ap-text{border:0;padding-bottom:40px}
  .ap-text .btn{align-self:flex-end}
  .row{height:84px}
  .row h3{font-size:24px}
  .process{grid-template-columns:1fr;grid-template-rows:auto}
  .process>*,.slide-img,.slide-quote,.slide-info,.pr-ht{grid-column:1!important;grid-row:auto!important}
  .pr-top{order:0}
  .slides{display:block;order:1}
  .js .slide.is-active{display:flex;flex-direction:column}
  .slide-quote{border:0;min-height:420px}
  .slide-img{order:2;aspect-ratio:4/3;border:0}
  .slide-info{order:3;flex-direction:row;gap:40px}
  .pr-ht{display:none}
  .pr-top .label{padding-bottom:20px}
  .company{grid-template-columns:1fr;grid-template-rows:auto}
  .company>*{grid-column:1!important;grid-row:auto!important;border-left:0!important;border-right:0!important}
  .company .big-word{font-size:clamp(48px,14vw,72px);padding-top:40px}
  .co-claim{padding-top:28px}
  .co-label{padding-top:40px}
  .co-link{height:60px;border-left:0;border-right:0}
  .co-text{padding-bottom:40px}
  .stage{min-height:0;padding-bottom:120px}
  .stage-flat{height:calc(120px + clamp(28px,8.6vw,64px) * .9)}
  .stage-flat-mark{width:62vw}
  .cards{grid-template-columns:1fr;padding-top:0}
  .card{margin-top:0!important}
  .cta{margin-top:120px;font-size:clamp(28px,8.6vw,64px)}
  .ftr-main{grid-template-columns:1fr;grid-template-rows:auto}
  .ftr-main>*{grid-column:1!important;grid-row:auto!important;border-left:0!important}
  .ftr-a{gap:40px}
  .ftr-nav,.ftr-clocks{border-top:1px solid var(--fg)}
  .ftr-mail,.ftr-tel{height:60px}
  .ftr-reveal{position:relative;grid-template-columns:1fr;height:auto}
  .ftr-logo{min-height:260px;padding-bottom:70px}
  .ftr-copy2{right:auto;left:var(--pad);bottom:calc(var(--pad) + 20px)}
  .ftr-cta{min-height:300px}
  .cookie{width:100%;border-right:0;grid-template-columns:1fr 76px;align-items:center;gap:12px;padding:10px var(--pad);font-size:13px;line-height:1.25}
  .cookie .btn{height:44px}
  .cookie a{display:inline-block;padding:6px 0}
  .ftr-nav a{display:inline-block;padding:12px 0;min-height:44px;min-width:44px}
  .btn{height:44px}
  .skip{min-height:44px;display:flex;align-items:center}
  .ftr-nav ul{gap:0}
  .ftr-copy a,.ftr-copy2 a{display:inline-block;padding:15px 0}
  .ftr-copy,.ftr-copy2{font-size:12px}
  .ftr-copy2{bottom:calc(var(--pad) + 36px)}
  .lg{grid-template-columns:1fr}
  .lg::before{display:none}
  .lg-head,.lg-body{grid-column:1;position:relative;top:0}
  .lg-head{border-bottom:1px solid var(--fg);padding-bottom:28px}
  .lg-body{padding-top:28px}
  .lg-dl div{grid-template-columns:1fr;gap:4px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .preloader{display:none}
  .hero-flat{display:none}
}
/* registry spelling of the company name is shown as is, never uppercased */
.ftr-copy,.lg-head .label{text-transform:none}
