@font-face{font-family:Archivo;src:url('../assets/fonts/archivo-variable-latin.woff2') format('woff2');font-weight:100 900;font-stretch:75% 125%;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('../assets/fonts/space-grotesk-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../assets/fonts/ibm-plex-mono-regular-latin.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../assets/fonts/ibm-plex-mono-semibold-latin.woff2') format('woff2');font-weight:600;font-display:swap}

:root{
  --ink:#111111;
  --paper:#F2EFE7;
  --yellow:#FFD500;
  --red:#FF3B30;
  --blue:#245BFF;
  --grey:#B8B6AF;
  --white:#FFFFFF;
  --display:'Archivo','Arial Narrow',Impact,sans-serif;
  --body:'Space Grotesk',Arial,sans-serif;
  --mono:'IBM Plex Mono','Courier New',monospace;
  --gutter:clamp(1rem,3vw,3.5rem);
  --line:2px;
  --header-h:4.5rem;
  --ease:cubic-bezier(.22,.75,.25,1);
}

html{background:var(--ink);scroll-padding-top:var(--header-h)}
body{font-family:var(--body);font-size:clamp(1rem,.94rem + .2vw,1.125rem);line-height:1.55;background:var(--paper);color:var(--ink);overflow-x:clip}
body.menu-open,body.is-loading{overflow:hidden}
main{overflow:clip}
a,button,input,textarea,select{outline-offset:4px}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.sheet{position:relative;padding-inline:var(--gutter)}
.label,.eyebrow{font-family:var(--mono);font-size:.68rem;font-weight:600;line-height:1.35;letter-spacing:.12em;text-transform:uppercase}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem}
.hero__title,.intro h2,.section-heading h2,.case h3,.services h2,.service-stage h3,.process h2,.process-line h3,.about h2,.clients h2,.testimonials h2,.brand-sheet h1,.brand-sheet h2,.contact__headline h2,.error-sheet h1,.legal-main h1,.legal-copy h2{word-spacing:.1em}
.eyebrow::before{content:'';inline-size:1.5rem;border-block-start:2px solid currentColor}
mark{padding:0 .07em;background:var(--yellow);color:var(--ink)}
.skip-link{position:fixed;z-index:10000;inset-block-start:.75rem;inset-inline-start:.75rem;padding:.75rem 1rem;background:var(--yellow);border:2px solid var(--ink);font-weight:700;transform:translateY(-180%)}
.skip-link:focus{transform:none}

/* Preloader */
.preloader{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;background:var(--paper);transition:clip-path .7s var(--ease),visibility .7s;clip-path:inset(0)}
.preloader.is-complete{clip-path:inset(0 0 100% 0);visibility:hidden}
.preloader__press{position:relative;display:grid;place-items:center;width:min(84vw,48rem);aspect-ratio:8/2.2;overflow:hidden}
.preloader__plate{position:absolute;inset:0;transform:translateX(-110%);animation:plate-in .5s var(--ease) forwards}
.preloader__plate--yellow{background:var(--yellow);animation-delay:.1s;transform:translateX(110%)}
.preloader__plate--black{inset:.75rem;background:var(--ink);animation-delay:.35s}
.preloader img{position:relative;z-index:2;width:82%;padding:.45rem .65rem;background:var(--paper);border:3px solid var(--ink);opacity:0;animation:stamp-in .15s steps(2,end) .8s forwards}
.preloader__cross{position:absolute;inset-block-start:10%;inset-inline-start:8%}
.preloader__meta{position:absolute;inset-inline:var(--gutter);inset-block-end:2rem;display:flex;justify-content:space-between;border-block-start:2px solid;padding-block-start:.65rem}
@keyframes plate-in{to{transform:translateX(0)}}
@keyframes stamp-in{0%{opacity:0;transform:scale(1.08)}100%{opacity:1;transform:none}}
.no-js .preloader{display:none}

/* Registration marks */
.register-cross,.cursor-register{inline-size:2rem;block-size:2rem;border:2px solid;border-radius:50%}
.register-cross::before,.register-cross::after,.cursor-register::before,.cursor-register::after{content:'';position:absolute;background:currentColor}
.register-cross::before,.cursor-register::before{inset-block-start:50%;inset-inline:-.5rem;block-size:2px;transform:translateY(-50%)}
.register-cross::after,.cursor-register::after{inset-inline-start:50%;inset-block:-.5rem;inline-size:2px;transform:translateX(-50%)}
.cursor-register{position:fixed;z-index:5000;inset-block-start:0;inset-inline-start:0;display:none;pointer-events:none;transform:translate3d(-100px,-100px,0);mix-blend-mode:difference;color:#fff}
.cursor-register span{position:absolute;inset:.45rem;border:1px solid;border-radius:50%}
.crop-mark{position:absolute;inline-size:2.2rem;block-size:2.2rem;pointer-events:none}
.crop-mark::before,.crop-mark::after{content:'';position:absolute;background:var(--ink)}
.crop-mark::before{inline-size:100%;block-size:2px}
.crop-mark::after{inline-size:2px;block-size:100%}
.crop-mark--tl{inset-block-start:6rem;inset-inline-start:.6rem}
.crop-mark--tr{inset-block-start:6rem;inset-inline-end:.6rem;transform:rotate(90deg)}
.crop-mark--bl{inset-block-end:.6rem;inset-inline-start:.6rem;transform:rotate(-90deg)}
.crop-mark--br{inset-block-end:.6rem;inset-inline-end:.6rem;transform:rotate(180deg)}

/* Header */
.site-header{position:fixed;z-index:1000;inset-block-start:0;inset-inline:0;display:flex;align-items:center;justify-content:space-between;min-block-size:var(--header-h);padding:.8rem var(--gutter);background:var(--paper);background:color-mix(in srgb,var(--paper) 94%,transparent);border-block-end:2px solid var(--ink);transition:transform .25s ease,background .25s ease}
.site-header.is-hidden{transform:translateY(-110%)}
.site-logo{display:block;inline-size:clamp(9.2rem,16vw,13.8rem);padding:.25rem 0}.site-logo img{width:100%}
.menu-toggle{position:relative;z-index:1002;display:flex;align-items:center;gap:.7rem;min-block-size:2.75rem;padding:.45rem .2rem;cursor:pointer;font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.menu-toggle__icon{display:grid;gap:.38rem;inline-size:1.75rem}
.menu-toggle__icon i{display:block;block-size:2px;background:currentColor;transition:transform .2s ease}
.menu-toggle[aria-expanded=true] .menu-toggle__icon i:first-child{transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-toggle__icon i:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu-toggle[aria-expanded=true]{position:fixed;inset-block-start:.65rem;inset-inline-end:var(--gutter);padding:.45rem .6rem;background:var(--paper);border:2px solid var(--ink)}
.site-nav{position:fixed;z-index:1001;inset:0;display:grid;grid-template-rows:auto 1fr auto auto;align-content:start;padding:calc(var(--header-h) + 2rem) var(--gutter) 2rem;background:var(--yellow);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .45s var(--ease),visibility .45s}
.site-nav.is-open{clip-path:inset(0);visibility:visible}
.site-nav__edition{padding-block:.75rem;border-block:2px solid}
.site-nav ul{display:grid;align-content:center}
.site-nav li{border-block-end:2px solid}
.site-nav li a{display:flex;align-items:baseline;gap:1rem;padding:.65rem 0;font-family:var(--display);font-size:clamp(2.8rem,13vw,6rem);font-weight:900;font-stretch:75%;line-height:.9;letter-spacing:-.05em;text-transform:uppercase}
.site-nav li a span{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em}
.site-nav__cta{align-self:end;margin-block-start:1.5rem}
.site-nav__language{display:inline-flex;align-items:center;justify-self:start;gap:.35rem;margin-block-start:.85rem;font-family:var(--mono);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.site-nav__language a{padding:.35rem .2rem;border-block-end:2px solid transparent}.site-nav__language a:hover,.site-nav__language a:focus-visible{border-color:currentColor}.site-nav__language a[aria-current=page]{border-color:currentColor}.site-nav__language span{opacity:.45}
.site-nav__marks{position:absolute;inset:1rem;pointer-events:none}
.site-nav__marks i{position:absolute;inline-size:1rem;block-size:1rem;border-color:var(--ink);border-style:solid}
.site-nav__marks i:nth-child(1){inset:0 auto auto 0;border-width:2px 0 0 2px}.site-nav__marks i:nth-child(2){inset:0 0 auto auto;border-width:2px 2px 0 0}.site-nav__marks i:nth-child(3){inset:auto auto 0 0;border-width:0 0 2px 2px}.site-nav__marks i:nth-child(4){inset:auto 0 0 auto;border-width:0 2px 2px 0}

/* Buttons & links */
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-block-size:3.2rem;padding:.85rem 1.1rem;border:2px solid var(--ink);font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-align:center;text-transform:uppercase;box-shadow:0 0 0 var(--ink);transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease}
.button:hover{transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--ink)}
.button--ink{background:var(--ink);color:var(--paper)}
.button--ink:hover{background:var(--yellow);color:var(--ink)}
.button--yellow{background:var(--yellow);color:var(--ink)}
.text-link,.project-link{position:relative;display:inline-flex;align-items:center;gap:.7rem;min-block-size:2.75rem;padding-block:.35rem;font-weight:700}
.text-link::after,.project-link::after{content:'';position:absolute;inset-inline:0;inset-block-end:0;block-size:2px;background:currentColor;transform-origin:right;transition:transform .2s ease}
.text-link:hover::after,.project-link:hover::after{transform:scaleX(.35)}
.text-link span,.project-link span{transition:transform .15s ease}
.text-link:hover span,.project-link:hover span{transform:translate(3px,-3px)}

/* Hero */
.hero{position:relative;display:grid;align-content:end;min-block-size:max(44rem,100svh);padding-block:calc(var(--header-h) + 2rem) 2.2rem;background:var(--paper);isolation:isolate}
.hero::before{content:'';position:absolute;z-index:-2;inset:0;background-image:linear-gradient(90deg,transparent calc(50% - 1px),rgba(17,17,17,.12) 50%,transparent calc(50% + 1px)),repeating-linear-gradient(0deg,transparent 0 39px,rgba(17,17,17,.055) 39px 40px);background-size:100% 100%,100% 40px}
.hero::after{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 75% 20%,rgba(17,17,17,.12) 0 1px,transparent 1.5px);background-size:8px 8px;mask-image:linear-gradient(90deg,transparent 45%,#000 100%)}
.hero__topline{position:absolute;inset-block-start:calc(var(--header-h) + 1rem);inset-inline:var(--gutter);display:flex;justify-content:space-between;gap:1rem;padding-block-end:.55rem;border-block-end:2px solid}
.hero__topline span:nth-child(2),.hero__topline span:nth-child(3){display:none}
.hero__title{position:relative;z-index:3;margin-block:0 1.25rem;font-family:var(--display);font-size:clamp(3.1rem,15.4vw,7rem);font-weight:900;font-stretch:75%;line-height:.79;letter-spacing:-.075em;text-transform:uppercase}
.hero__title span{display:block;white-space:nowrap}
.print-line{clip-path:inset(0 100% 0 0);transform:translateX(-1rem);transition:clip-path .65s steps(8,end),transform .65s var(--ease)}
.is-ready .print-line{clip-path:inset(0);transform:none}
.is-ready .print-line:nth-child(2){transition-delay:.18s}
.hero__lower{position:relative;z-index:4;display:grid;gap:1.25rem}
.hero__intro{max-inline-size:39rem;font-size:clamp(1.05rem,.9rem + .7vw,1.55rem);line-height:1.35}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem}
.hero-press{position:absolute;z-index:1;inset-block-start:17%;inset-inline-end:-7rem;inline-size:min(62vw,30rem);aspect-ratio:1;display:grid;place-items:center;transform:translate3d(var(--press-x,0),var(--press-y,0),0)}
.hero-press__plate{position:absolute;inset:18%;background:var(--ink);opacity:.9;transition:transform .15s linear}
.hero-press__plate--red{background:var(--red);transform:translate(-11%,5%) rotate(-5deg)}
.hero-press__plate--blue{background:var(--blue);transform:translate(8%,-8%) rotate(3deg)}
.hero-press__plate--yellow{background:var(--yellow);transform:translate(-2%,2%)}
.hero-press img{position:relative;z-index:3;inline-size:68%;filter:drop-shadow(8px 8px 0 rgba(17,17,17,.15))}
.hero-press__roller{position:absolute;z-index:4;inset-inline:0;block-size:9%;background:var(--ink);border:4px solid var(--paper)}
.hero-press__roller::after{content:'';position:absolute;inset:.3rem;background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(255,255,255,.35) 8px 10px)}
.hero-press__roller--top{inset-block-start:6%}.hero-press__roller--bottom{inset-block-end:6%}
.hero-press__counter{position:absolute;z-index:5;inset-block-end:0;inset-inline-end:0;background:var(--paper);padding:.4rem;border:2px solid}
.hero__registration{position:absolute;z-index:5;inset-block-start:calc(var(--header-h) + 4.2rem);inset-inline-end:var(--gutter);display:none;align-items:center;gap:.8rem;padding:.45rem .55rem;background:var(--paper);border:2px solid var(--ink)}
.hero__target{position:relative;display:block;flex:0 0 auto;inline-size:1.35rem;block-size:1.35rem}
.hero__swatches{display:flex;gap:.2rem}.hero__swatches i{display:block;inline-size:1rem;block-size:.38rem;background:var(--yellow)}.hero__swatches i:nth-child(2){background:var(--red)}.hero__swatches i:nth-child(3){background:var(--blue)}.hero__swatches i:nth-child(4){background:var(--ink)}
.paper-feed{position:absolute;z-index:0;inset-block:0;inset-inline-end:13%;inline-size:22%;border-inline:1px solid rgba(17,17,17,.2);overflow:hidden}
.paper-feed span{position:absolute;inset-inline:10%;block-size:1px;background:rgba(17,17,17,.2);animation:feed-line 3s linear infinite}
.paper-feed span:nth-child(2){animation-delay:-1s}.paper-feed span:nth-child(3){animation-delay:-2s}
@keyframes feed-line{from{inset-block-start:-5%}to{inset-block-start:105%}}

/* Marquee */
.marquee{overflow:hidden;border-block:3px solid var(--ink);background:var(--yellow)}
.marquee__track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee p{padding:.75rem 0;font-family:var(--display);font-size:clamp(1.55rem,3vw,3rem);font-weight:900;font-stretch:75%;line-height:1;text-transform:uppercase;white-space:nowrap}
.marquee i{font-style:normal;color:var(--red)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Intro */
.intro{display:grid;gap:2.4rem;padding-block:clamp(5rem,10vw,10rem);background:var(--paper);border-block-end:3px solid;overflow:hidden}
.section-code{display:flex;justify-content:space-between;padding-block-end:.7rem;border-block-end:2px solid}
.intro__statement{position:relative;z-index:2}
.intro h2,.services h2,.process h2,.clients h2,.testimonials h2,.brand-sheet h1,.brand-sheet h2,.about h2{margin-block-start:1.2rem;font-family:var(--display);font-size:clamp(3rem,9vw,8.5rem);font-weight:900;font-stretch:75%;line-height:.84;letter-spacing:-.065em;text-transform:uppercase}
.intro__copy{display:grid;gap:1rem;max-inline-size:45rem;font-size:clamp(1.08rem,1rem + .35vw,1.35rem)}
.intro__copy p:first-child{font-weight:700}
.intro__back{position:absolute;inset-block-end:-.08em;inset-inline:-.02em;display:flex;gap:1.2rem;font-family:var(--display);font-size:clamp(5rem,17vw,15rem);font-weight:900;font-stretch:75%;line-height:.6;color:transparent;-webkit-text-stroke:1px rgba(17,17,17,.12);white-space:nowrap;transform:translateX(-3%);pointer-events:none}

/* Work */
.work{background:var(--ink)}
.section-heading{display:grid;gap:2rem;padding-block:clamp(5rem,10vw,9rem)}
.section-heading--dark{background:var(--ink);color:var(--paper);border-block-end:2px solid var(--grey)}
.section-heading h2{margin-block-start:1.1rem;font-family:var(--display);font-size:clamp(3rem,8.5vw,8rem);font-weight:900;font-stretch:75%;line-height:.84;letter-spacing:-.065em;text-transform:uppercase}
.section-heading>p{max-inline-size:36rem;align-self:end;font-size:clamp(1.05rem,1rem + .4vw,1.35rem)}
.case{container-type:inline-size;padding-block:clamp(4.5rem,9vw,9rem);overflow:hidden}
.case__header{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding-block-end:1.5rem;border-block-end:3px solid;align-items:end}
.case__number{font-family:var(--display);font-size:clamp(4rem,11vw,10rem);font-weight:900;font-stretch:75%;line-height:.68;letter-spacing:-.08em}
.case h3{font-family:var(--display);font-size:clamp(2.7rem,7vw,7rem);font-weight:900;font-stretch:75%;line-height:.85;letter-spacing:-.06em;text-transform:uppercase}
.case__services{grid-column:1/-1}
.case__visual{position:relative;margin-block-start:var(--gutter)}
.case__image-frame{position:relative;border:3px solid;overflow:hidden;background:var(--grey)}
.case__image-frame::before{content:'';position:absolute;z-index:2;inset:0;background:var(--yellow);transform-origin:left;transform:scaleX(var(--reveal,1));transition:transform .9s var(--ease)}
.case.is-visible .case__image-frame::before{--reveal:0;transform-origin:right}
.case__image-frame img{inline-size:100%;aspect-ratio:2/1;object-fit:cover;transition:transform .45s var(--ease),filter .25s ease}
.case:hover .case__image-frame img{transform:scale(1.015)}
.case__proof{position:relative;border:3px solid;background:var(--paper);box-shadow:8px 8px 0 var(--ink)}
.case__proof img{width:100%}.case__proof figcaption,.case__vdb-spread figcaption{padding:.45rem .6rem;border-block-start:2px solid}
.case__proof--screen{width:82%;margin:-1.5rem 0 0 auto;transform:rotate(1.2deg)}
.stamp{position:absolute;z-index:4;display:flex;align-items:center;justify-content:center;inline-size:6rem;aspect-ratio:1;padding:0;border:3px solid;border-radius:50%;font-family:var(--display);font-size:1rem;font-weight:900;font-stretch:75%;text-align:center;transform:rotate(-10deg)}
.stamp span{display:block;inline-size:72%;line-height:.8;letter-spacing:-.025em;text-align:center;transform:translateY(.03em)}
.stamp--yellow{inset-block-start:-1.5rem;inset-inline-start:-.25rem;background:var(--yellow)}
.case__footer{display:grid;gap:1.3rem;margin-block-start:2rem;padding-block-start:1.2rem;border-block-start:2px solid}
.case__footer p{max-inline-size:43rem;font-size:clamp(1.1rem,1rem + .4vw,1.35rem)}

.case--benn{background:#d9efef;color:var(--ink)}
.case--akse{background:#e9e5d9}
.case__akse-grid{display:grid;gap:2rem}
.case__akse-info{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:1.3rem}
.case__akse-info .case__number{color:#273a9a}
.case__akse-info>p:not(.label){max-inline-size:31rem}
.tag-list{display:flex;flex-wrap:wrap;gap:.4rem}
.tag-list li{padding:.38rem .55rem;border:2px solid;font-family:var(--mono);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.case__akse-visual{position:relative;padding:1rem 1rem 3.5rem;background:#273a9a}
.case__akse-screen{width:100%;border:3px solid var(--ink);box-shadow:8px 8px 0 rgba(0,0,0,.25)}
.case__akse-logo{position:absolute;inset-inline:8% 25%;inset-block-end:1rem;padding:.4rem;background:var(--paper);border:2px solid}
.case__akse-logo img{width:100%;max-height:4.5rem;object-fit:contain}
.vertical-label{position:absolute;inset-block:1rem;inset-inline-end:-.25rem;writing-mode:vertical-rl;color:var(--paper)}
.color-bar{display:flex;block-size:.7rem;margin-block-end:.8rem}
.color-bar i{flex:1;background:var(--yellow)}.color-bar i:nth-child(2){background:var(--red)}.color-bar i:nth-child(3){background:var(--blue)}.color-bar i:nth-child(4){background:var(--ink)}

.case--ukh{background:#17352e;color:var(--paper);padding:0}
.case__ukh-top{display:grid;gap:2rem;padding-block:clamp(4rem,8vw,8rem)}
.case__ukh-title h3{margin-block-start:1rem;font-size:clamp(2.4rem,7.7vw,7.4rem)}
.case__ukh-title h3 span{-webkit-text-stroke:2px var(--paper);color:transparent}
.case__ukh-copy{display:grid;align-content:end;gap:1rem;max-inline-size:36rem}
.case__ukh-copy>p:first-child{font-size:clamp(1.1rem,1rem + .5vw,1.45rem)}
.case__ukh-visual{position:relative;display:grid;gap:1.4rem;padding-block:3rem 5rem;background:#cfd0a7;color:var(--ink);border-block-start:3px solid var(--ink)}
.case__ukh-visual .case__number{position:absolute;inset-block-start:-.14em;inset-inline-start:var(--gutter);font-size:clamp(8rem,28vw,25rem);color:transparent;-webkit-text-stroke:2px var(--ink);opacity:.28;pointer-events:none}
.case__ukh-visual figure{position:relative;z-index:2;transform:rotate(-1deg);border:3px solid;background:var(--paper);box-shadow:10px 10px 0 var(--ink)}
.case__ukh-visual figcaption{padding:.5rem;border-block-start:2px solid}
.case__ukh-logo{position:relative;z-index:3;justify-self:end;width:min(40%,16rem);padding:1rem;background:#fff;border:3px solid;transform:rotate(2deg)}
.case__ukh-logo img{width:100%;max-height:8rem;object-fit:contain}
.case__ukh-visual .button{position:relative;z-index:3;justify-self:start;margin-block-start:.5rem}

.case--vdb{background:#f4eddd}
.case__vdb-spread{display:grid;gap:1.6rem;margin-block-start:var(--gutter)}
.case__vdb-spread figure{border:3px solid;background:var(--paper)}
.case__vdb-spread img{width:100%;aspect-ratio:2/1;object-fit:cover}
.case__vdb-site{transform:rotate(.7deg)}
.case__vdb-note{display:grid;gap:1rem;align-content:end;padding:1.4rem;border:3px solid;background:#9d8048;color:var(--paper)}

.case--kim{background:#d7adac;color:var(--ink)}
.case__header--kim{border-block-end-color:var(--ink)}
.case__kim-layout{display:grid;gap:1.5rem;margin-block-start:var(--gutter)}
.case__kim-brand{position:relative;display:grid;align-content:space-between;gap:2rem;min-block-size:20rem;padding:1.4rem;background:var(--paper);border:3px solid var(--ink);overflow:hidden}
.case__kim-brand::after{content:'05';position:absolute;inset:auto -.04em -.2em auto;font-family:var(--display);font-size:clamp(8rem,23vw,18rem);font-weight:900;font-stretch:75%;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(172,80,80,.38);pointer-events:none}
.case__kim-brand img{position:relative;z-index:2;width:min(100%,28rem);max-block-size:9rem;object-fit:contain;object-position:left center}
.case__kim-brand>p{position:relative;z-index:2;font-family:var(--display);font-size:clamp(2.4rem,6vw,5.5rem);font-weight:900;font-stretch:75%;line-height:.84;text-transform:uppercase}
.case__kim-swatches{position:relative;z-index:2;display:flex;gap:.35rem}
.case__kim-swatches i{inline-size:2.4rem;block-size:.55rem;background:#ac5050}
.case__kim-swatches i:nth-child(2){background:#d7adac}
.case__kim-swatches i:nth-child(3){background:var(--paper);border:1px solid var(--ink)}
.case__kim-screen{align-self:start;border:3px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 #ac5050;transform:rotate(-.6deg)}
.case__kim-screen img{width:100%;aspect-ratio:1265/712;object-fit:cover}
.case__kim-screen figcaption{padding:.5rem .65rem;border-block-start:2px solid var(--ink)}
.case img.case__site-shot{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;object-position:center top}

/* Services */
.services{display:grid;gap:3rem;padding-block:clamp(5rem,10vw,10rem);background:var(--yellow);overflow:hidden}
.services__intro{position:relative;z-index:2}.services__intro>p:last-child{max-inline-size:38rem;margin-block-start:1.5rem}
.services__press{position:absolute;inset-block-start:7rem;inset-inline-end:-5rem;inline-size:min(60vw,34rem);aspect-ratio:1;opacity:.9}
.services__plate{position:absolute;inset:16%;border:3px solid;transition:transform .35s var(--ease),background .2s ease}
.services__plate--1{background:var(--paper);transform:translate(-8%,-8%)}
.services__plate--2{background:var(--red);transform:translate(6%,-3%)}
.services__plate--3{background:var(--blue);transform:translate(-3%,7%)}
.services__plate--4{background:var(--grey);transform:translate(5%,5%)}
.services[data-active='1'] .services__plate--1,.services[data-active='2'] .services__plate--2,.services[data-active='3'] .services__plate--3,.services[data-active='4'] .services__plate--4{transform:translate(0);z-index:3}
.services__press-label{position:absolute;inset-block-end:8%;inset-inline-end:8%;padding:.5rem;background:var(--paper);border:2px solid}
.service-stages{position:relative;z-index:4;border-block-start:3px solid}
.service-stage{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.4rem 0;border-block-end:3px solid;cursor:crosshair;transition:padding .2s ease,background .2s ease}
.service-stage:focus-visible{outline-color:var(--ink)}
.service-stage.is-active{padding-inline:1rem;background:var(--paper)}
.service-stage__number{font-family:var(--mono);font-size:.72rem;font-weight:600}
.service-stage h3{font-family:var(--display);font-size:clamp(2rem,5vw,4.5rem);font-weight:900;font-stretch:75%;line-height:.9;text-transform:uppercase}
.service-stage p{max-inline-size:43rem;margin-block:.5rem;font-size:clamp(1rem,.95rem + .25vw,1.2rem)}
.service-stage div>span{font-family:var(--mono);font-size:.65rem;letter-spacing:.05em;text-transform:uppercase}

/* Process */
.process{background:var(--ink);color:var(--paper)}
.process__heading{padding-block:clamp(4rem,8vw,8rem);border-block-end:2px solid var(--grey)}
.process-line{position:relative;display:grid;padding-block:2rem clamp(5rem,10vw,9rem)}
.process-line::before{content:'';position:absolute;inset-block:2rem;inset-inline-start:calc(var(--gutter) + .45rem);inline-size:3px;background:var(--yellow)}
.process-line li{position:relative;display:grid;grid-template-columns:2rem 1fr;gap:.2rem 1rem;padding-block:1rem 2rem}
.process-line li::before{content:'';position:absolute;inset-block-start:1.25rem;inset-inline-start:.05rem;inline-size:.85rem;aspect-ratio:1;background:var(--yellow);border:2px solid var(--ink);outline:2px solid var(--yellow)}
.process-line li>span{grid-row:1/3;font-family:var(--mono);font-size:.66rem;color:var(--yellow);padding-block-start:1.7rem}
.process-line h3{font-family:var(--display);font-size:clamp(2rem,5vw,3.8rem);font-weight:900;font-stretch:75%;line-height:1;text-transform:uppercase}
.process-line p{max-inline-size:23rem;color:#d8d5cb}

/* About */
.about{display:grid;gap:3rem;padding-block:clamp(5rem,10vw,10rem);background:var(--paper);border-block-end:3px solid}
.about__portrait{position:relative;isolation:isolate;padding:1rem 1rem 2.4rem;border:3px solid;background:var(--ink)}
.about__portrait>img{position:relative;z-index:2;width:100%;aspect-ratio:1;object-fit:cover;object-position:center;filter:grayscale(1);transition:filter .3s ease}
.about__portrait:hover>img{filter:none}
.about__plate{position:absolute;z-index:1;inset:2rem -1rem 1rem 2rem;background:var(--yellow);border:3px solid;transform:rotate(3deg)}
.about__halftone{position:absolute;z-index:3;inset:1rem;opacity:.24;background:radial-gradient(circle,#111 0 1.1px,transparent 1.5px);background-size:6px 6px;mix-blend-mode:multiply;pointer-events:none}
.about__caption{position:absolute;z-index:4;inset-inline:1rem;inset-block-end:.7rem;color:var(--paper)}
.about__content{display:flex;flex-direction:column;align-items:flex-start;gap:1.3rem}
.about__content h2{font-size:clamp(2.7rem,7vw,6.5rem)}
.about__content>p{max-inline-size:42rem}
.about__lead{font-size:clamp(1.25rem,1.1rem + .5vw,1.65rem);font-weight:700}
.about__facts{width:100%;border-block-start:2px solid}
.about__facts div{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:.65rem 0;border-block-end:2px solid}
.about__facts dt{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}

/* Clients */
.clients{background:var(--paper)}
.clients__heading{display:grid;gap:1.5rem;padding-block:clamp(5rem,8vw,8rem)}
.clients__heading>p:last-child{max-inline-size:35rem}
.logo-sheet{position:relative;display:grid;grid-template-columns:repeat(2,1fr);background:var(--ink);border-block:3px solid var(--ink);padding-block:var(--gutter) calc(var(--gutter) + 2rem)}
.logo-sheet a{position:relative;display:grid;place-items:center;min-block-size:8rem;padding:.8rem;background:var(--paper);border:1px solid var(--ink);overflow:hidden;transition:background .2s ease}
.logo-sheet a::after{content:'↗';position:absolute;inset-block-start:.4rem;inset-inline-end:.55rem;font-family:var(--mono);font-size:.65rem;opacity:0;transform:translate(-4px,4px);transition:.2s ease}
.logo-sheet a:hover{background:var(--yellow)}.logo-sheet a:hover::after{opacity:1;transform:none}
.logo-sheet img{width:75%;max-height:4.4rem;object-fit:contain;filter:grayscale(1);transition:filter .2s ease,transform .2s ease}
.logo-sheet__wide img{width:90%;max-height:3.8rem}
.logo-sheet a:hover img{filter:none;transform:scale(1.04)}
.logo-sheet__label{position:absolute;inset-inline:var(--gutter);inset-block-end:.75rem;color:var(--paper)}

/* Reviews */
.testimonials{padding-block:clamp(5rem,10vw,9rem);background:var(--paper);overflow:hidden}
.testimonials__heading{display:grid;gap:1.2rem;margin-block-end:2.5rem}
.review-controls{display:flex;gap:.5rem}
.review-controls button{display:grid;place-items:center;inline-size:3rem;aspect-ratio:1;border:2px solid;cursor:pointer;font-size:1.25rem;transition:.15s ease}
.review-controls button:hover{background:var(--ink);color:var(--paper)}
.review-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink) transparent;padding-block-end:1.2rem;overscroll-behavior-inline:contain}
.review-card{flex:0 0 min(88vw,29rem);min-block-size:27rem;display:flex;flex-direction:column;justify-content:space-between;scroll-snap-align:start;padding:1.5rem;background:var(--paper);border:3px solid;box-shadow:6px 6px 0 var(--ink)}
.review-card__top{display:flex;justify-content:space-between;align-items:start;border-block-end:2px solid;padding-block-end:1rem}.review-card__top>span:last-child{font-family:var(--display);font-size:5rem;font-weight:900;line-height:.5}
.review-card>p{margin-block:2rem;font-size:clamp(1.15rem,1.05rem + .3vw,1.4rem);font-weight:600;line-height:1.35}
.review-card footer{display:grid;gap:.15rem;padding-block-start:1rem;border-block-start:2px solid}.review-card footer strong{font-family:var(--display);font-size:1.35rem;text-transform:uppercase}.review-card footer span{font-family:var(--mono);font-size:.65rem;text-transform:uppercase}
.review-card--yellow{background:var(--yellow)}.review-card--blue{background:var(--blue);color:#fff}.review-card--red{background:var(--red)}
.review-source{display:grid;gap:1.2rem;align-items:center;margin-block-start:2rem;padding-block-start:1.5rem;border-block-start:2px solid var(--ink)}
.review-source p{max-inline-size:42rem;font-size:clamp(1rem,.95rem + .25vw,1.2rem)}
.review-source .label{display:block;margin-block-end:.4rem}
.review-source .button{justify-self:start}

/* Brand sheet */
.brand-sheet{padding-block:clamp(5rem,10vw,10rem);background:#d7d4ca;border-block-start:3px solid}
.brand-sheet__heading{display:grid;gap:1.2rem;margin-block-end:2.5rem}.brand-sheet__heading>p:last-child{max-inline-size:40rem}
.brand-grid{display:grid;gap:1rem}
.brand-tile{display:grid;align-content:center;min-block-size:15rem;padding:2rem;border:3px solid;background:var(--paper)}
.brand-tile img{width:100%;max-height:8rem;object-fit:contain}.brand-tile figcaption{align-self:end;margin-block-start:2rem;padding-block-start:.6rem;border-block-start:2px solid;font-family:var(--mono);font-size:.65rem;font-weight:600;letter-spacing:.08em}
.brand-tile--yellow{background:var(--yellow)}.brand-tile--yellow img{max-height:10rem}.brand-tile--stacked img{max-height:12rem}.brand-tile--dark{background:var(--ink);color:var(--paper)}.brand-tile--dark img{filter:none}.brand-tile--overprint{background:#fff}
.palette{display:grid;grid-template-columns:repeat(2,1fr);margin-block-top:2rem;border:3px solid}
.palette div{position:relative;display:flex;min-block-size:7rem;flex-direction:column;justify-content:flex-end;padding:.7rem;background:var(--swatch);border:1px solid;color:var(--ink);font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.04em}
.palette div:first-child{color:var(--paper)}.palette code{font:inherit}
.brand-downloads{display:grid;margin-block-start:2rem;border-block-start:3px solid}
.brand-downloads a{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-block-end:3px solid;font-weight:700}.brand-downloads a:hover{padding-inline:1rem;background:var(--yellow)}

/* Contact */
.contact{padding-block:clamp(5rem,10vw,10rem);background:var(--ink);color:var(--paper);overflow:hidden}
.contact::before{content:'';position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.16) 0 1px,transparent 1.5px);background-size:8px 8px;mask-image:linear-gradient(120deg,transparent 35%,#000);pointer-events:none}
.contact__headline{position:relative;z-index:2;max-inline-size:85rem}.contact__headline h2{display:grid;gap:.1em;margin-block:1.2rem;font-family:var(--display);font-size:clamp(2.75rem,13vw,5rem);font-weight:900;font-stretch:75%;line-height:.88;letter-spacing:-.065em;text-transform:uppercase}.contact__headline h2>span{display:block}.contact__title-action{display:grid;justify-items:start;gap:.1em}.contact__title-action mark,.contact__title-action>span{display:inline-block}.contact__headline>p:last-child{max-inline-size:45rem;font-size:clamp(1.1rem,1rem + .45vw,1.45rem)}
.contact__grid{position:relative;z-index:2;display:grid;gap:3rem;margin-block-start:4rem;padding-block-start:2rem;border-block-start:3px solid var(--grey)}
.contact__details{display:grid;align-content:start;gap:1.4rem}.contact__details div{display:grid;gap:.25rem;padding-block-end:.8rem;border-block-end:1px solid var(--grey)}.contact__details a{font-size:clamp(1.05rem,.98rem + .3vw,1.25rem);font-weight:700}.contact__details a:hover{color:var(--yellow)}
.contact__value{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .8rem}.contact__value a{overflow-wrap:anywhere;user-select:text}.contact__copy{min-block-size:2.75rem;padding:.4rem .65rem;border:1px solid var(--grey);color:var(--paper);font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.contact__copy:hover,.contact__copy:focus-visible,.contact__copy.is-copied{border-color:var(--yellow);background:var(--yellow);color:var(--ink)}
.contact__run{margin-block-start:1rem;color:var(--yellow)}
.contact-form{display:grid;gap:1.2rem}.form-row{display:grid;gap:1.2rem}.field{display:grid;gap:.4rem}.field label{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.field label span{font-size:.58rem;color:var(--grey)}
.field input,.field textarea,.field select{width:100%;border:2px solid var(--grey);border-radius:0;background:transparent;padding:.8rem;color:var(--paper);transition:border-color .15s ease,background .15s ease}.field select{background:var(--ink);color:var(--paper)}.field select option{background:var(--paper);color:var(--ink)}.field select option:checked{background:var(--yellow);color:var(--ink)}.field textarea{resize:vertical;min-block-size:9rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--yellow);background:rgba(255,255,255,.05);outline:none}.field input:user-invalid,.field textarea:user-invalid,.field select:user-invalid{border-color:var(--red)}
.field--check{grid-template-columns:auto 1fr;align-items:start}.field--check input{inline-size:1.2rem;block-size:1.2rem;margin-block-start:.15rem;accent-color:var(--yellow)}.field--check label{font-family:var(--body);font-size:.8rem;font-weight:400;letter-spacing:0;text-transform:none}.field--check a{text-decoration:underline}
.hp-fields{position:absolute!important;inline-size:1px!important;block-size:1px!important;margin:-1px!important;padding:0!important;border:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem}.form-actions>a{display:inline-flex;align-items:center;min-block-size:2.75rem;text-decoration:underline;font-size:.85rem}.form-actions .button:disabled{cursor:wait;opacity:.72;transform:none;box-shadow:none}.form-status{display:none;margin:0;padding:1rem 1.1rem;border:2px solid transparent;font-family:var(--mono);font-size:.74rem;font-weight:600;line-height:1.5;letter-spacing:.04em;text-transform:uppercase}.form-status:not(:empty){display:block}.form-status.is-success{background:var(--yellow);border-color:var(--paper);color:var(--ink);box-shadow:6px 6px 0 var(--paper)}.form-status.is-error{background:#ffd0cc;border-color:var(--red);color:var(--ink)}.form-note{font-size:.8rem;color:var(--grey)}
.contact__marks{position:absolute;inset:1rem;pointer-events:none}.contact__marks i{position:absolute;inline-size:1.3rem;block-size:1.3rem;border-color:var(--yellow);border-style:solid}.contact__marks i:nth-child(1){inset:0 auto auto 0;border-width:2px 0 0 2px}.contact__marks i:nth-child(2){inset:0 0 auto auto;border-width:2px 2px 0 0}.contact__marks i:nth-child(3){inset:auto auto 0 0;border-width:0 0 2px 2px}.contact__marks i:nth-child(4){inset:auto 0 0 auto;border-width:0 2px 2px 0}

/* Floating contact dock */
.contact-dock{position:fixed;z-index:950;inset-block-end:max(1rem,env(safe-area-inset-bottom));inset-inline-end:max(1rem,env(safe-area-inset-right));display:grid;justify-items:end;gap:.7rem;opacity:0;visibility:hidden;transform:translateY(1rem);pointer-events:none;transition:opacity .18s ease,transform .18s var(--ease),visibility .18s}
.menu-open .contact-dock{opacity:0;visibility:hidden;pointer-events:none}
.contact-dock.is-visible{opacity:1;visibility:visible;transform:none}
.contact-dock__toggle,.contact-dock__panel{pointer-events:auto}
.contact-dock__toggle{display:flex;align-items:center;gap:.65rem;min-block-size:3.25rem;padding:.55rem .85rem;background:var(--yellow);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease}
.contact-dock__toggle:hover,.contact-dock__toggle[aria-expanded='true']{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ink)}
.contact-dock__symbol{display:grid;place-items:center;inline-size:1.75rem;aspect-ratio:1;background:var(--ink);color:var(--paper);font-size:1rem;line-height:1}
.contact-dock__panel{inline-size:min(21rem,calc(100vw - 2rem));max-block-size:calc(100svh - 2rem);overflow-y:auto;overscroll-behavior:contain;padding:1rem;background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:9px 9px 0 var(--yellow);animation:dock-stamp .18s steps(2,end) both}
.contact-dock__panel[hidden]{display:none}
.contact-dock__top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block-end:.7rem;border-block-end:2px solid var(--ink)}
.contact-dock__top button{display:grid;place-items:center;inline-size:2.75rem;aspect-ratio:1;border:2px solid var(--ink);font-size:1.35rem;line-height:1;cursor:pointer}
.contact-dock__top button:hover{background:var(--ink);color:var(--paper)}
.contact-dock h2{margin-block:1rem .7rem;font-family:var(--display);font-size:clamp(2.2rem,10vw,3.5rem);font-weight:900;font-stretch:75%;line-height:.84;letter-spacing:-.05em;text-transform:uppercase}
.contact-dock__panel>p{font-size:.95rem;line-height:1.45}
.contact-dock__actions{display:grid;gap:.25rem;margin-block-start:1rem;padding-block-start:1rem;border-block-start:2px solid var(--ink)}
.contact-dock__actions .button{justify-self:stretch;margin-block-end:.45rem}
.contact-dock__actions>a:not(.button){display:block;padding:.55rem .1rem;border-block-end:1px solid var(--ink);font-size:.88rem;font-weight:700;overflow-wrap:anywhere;user-select:text}
.contact-dock__actions>a:not(.button):hover{padding-inline:.55rem;background:var(--ink);color:var(--paper)}
@keyframes dock-stamp{from{opacity:0;transform:translateY(.65rem) scale(.97)}to{opacity:1;transform:none}}

/* Footer */
.site-footer{position:relative;padding-block:3rem 1.2rem;background:var(--ink);color:var(--paper);border-block-start:1px solid var(--grey);overflow:hidden}
.site-footer__brand{display:grid;gap:.8rem;padding-block-end:2rem;border-block-end:2px solid var(--grey)}.site-footer__brand img{width:min(26rem,80vw);padding:.4rem .55rem;background:var(--paper);border:2px solid var(--paper)}.site-footer__brand p{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--yellow)}
.site-footer__nav{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 1rem;padding-block:2rem}.site-footer__nav div{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.site-footer__nav .label{margin-block-end:.5rem;color:var(--grey)}.site-footer__nav a,.site-footer__nav p{font-size:.84rem}.site-footer__nav a[data-protected-contact]{overflow-wrap:anywhere;user-select:text}.site-footer__nav a:hover{color:var(--yellow)}
.site-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-block-start:1rem;border-block-start:2px solid var(--grey);font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase}.back-top{display:grid;place-items:center;inline-size:2.75rem;aspect-ratio:1;margin-inline-start:auto;border:2px solid}.back-top:hover{background:var(--yellow);color:var(--ink)}
.footer-print-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-block-start:2rem;padding-block-start:1rem;border-block-start:1px solid #575757;color:var(--grey)}
.footer-target{position:relative;display:block;flex:0 0 auto;inline-size:1.8rem;block-size:1.8rem}
.footer-register{display:flex;justify-content:flex-end;gap:.35rem;margin-inline-start:auto}.footer-register span{inline-size:2.2rem;block-size:.45rem;background:var(--yellow)}.footer-register span:nth-child(2){background:var(--red)}.footer-register span:nth-child(3){background:var(--blue)}.footer-register span:nth-child(4){background:var(--paper)}
.crop-mark--footer-tl{inset-block-start:.7rem;inset-inline-start:.55rem}.crop-mark--footer-br{inset-block-end:.55rem;inset-inline-end:.55rem;transform:rotate(180deg)}
.site-footer .crop-mark::before,.site-footer .crop-mark::after{background:var(--grey)}

/* Utility pages */
.error-page{min-block-size:100svh;background:var(--yellow)}
.error-sheet{position:relative;display:grid;align-content:space-between;min-block-size:100svh;padding-block:2rem;overflow:hidden}
.error-sheet::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 39px,rgba(17,17,17,.12) 39px 40px);pointer-events:none}
.error-sheet__logo{position:relative;z-index:2;width:min(14rem,48vw)}
.error-sheet__code{position:absolute;inset-inline-end:-.08em;inset-block-start:8%;font-family:var(--display);font-size:min(62vw,42rem);font-weight:900;font-stretch:75%;line-height:.75;letter-spacing:-.1em;color:transparent;-webkit-text-stroke:3px var(--ink);opacity:.22}
.error-sheet__content{position:relative;z-index:2;align-self:end;max-inline-size:70rem;margin-block-start:30vh}
.error-sheet h1{margin-block:1rem 1.5rem;font-family:var(--display);font-size:clamp(3rem,10vw,9rem);font-weight:900;font-stretch:75%;line-height:.82;letter-spacing:-.07em}
.error-sheet__content>p:not(.eyebrow){max-inline-size:38rem;margin-block-end:1.5rem;font-size:clamp(1.05rem,1rem + .4vw,1.4rem)}
.error-sheet__mark{position:absolute;z-index:2;inset-block-start:2rem;inset-inline-end:var(--gutter)}

.legal-page{background:var(--paper)}
.legal-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1.2rem;border-block-end:3px solid}
.legal-header>a:first-child{width:min(14rem,46vw)}
.legal-header .text-link{font-size:.8rem}
.legal-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.6rem 1.25rem}.legal-actions .site-nav__language{justify-self:auto;margin:0}
.legal-main{padding-block:clamp(4rem,9vw,9rem)}
.legal-main__title{padding-block-end:2rem;border-block-end:3px solid}
.legal-main h1{margin-block:1rem;font-family:var(--display);font-size:clamp(3.2rem,10vw,9rem);font-weight:900;font-stretch:75%;line-height:.8;letter-spacing:-.07em;overflow-wrap:anywhere}
.legal-main__title>p:last-child{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}
.legal-copy{display:grid;gap:0;max-inline-size:70rem;margin-block-start:2rem}
.legal-copy section{display:grid;gap:.7rem;padding-block:1.5rem;border-block-end:2px solid}
.legal-copy h2{font-family:var(--display);font-size:clamp(1.65rem,3vw,2.5rem);font-weight:850;font-stretch:85%;line-height:1;text-transform:uppercase}
.legal-copy p{max-inline-size:68ch}.legal-copy a{text-decoration:underline;font-weight:700}.legal-copy code{font-family:var(--mono);font-size:.85em}
.legal-copy aside{display:grid;gap:.25rem;margin-block-start:2rem;padding:1.5rem;background:var(--yellow);border:3px solid}.legal-copy aside strong{font-family:var(--display);font-size:1.5rem;text-transform:uppercase}
.legal-footer{display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;padding-block:1.5rem;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:.65rem;text-transform:uppercase}.legal-footer a{color:var(--yellow);font-weight:600}

/* Scroll reveals: content stays visible without JS */
.js [data-reveal]{opacity:0;transform:translateY(1.8rem);clip-path:inset(0 0 18% 0);transition:opacity .45s ease,transform .6s var(--ease),clip-path .6s var(--ease)}
.js [data-reveal].is-visible{opacity:1;transform:none;clip-path:inset(0)}

@media (hover:hover) and (pointer:fine){
  .cursor-register{display:block}
  a,button,.service-stage{cursor:none}
}

@media (hover:none),(pointer:coarse){
  .about__portrait>img{filter:none}
  .about__halftone{opacity:.14}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .preloader{display:none}
  .print-line{clip-path:none;transform:none}
  .js [data-reveal]{opacity:1;transform:none;clip-path:none}
  .cursor-register{display:none!important}
}

@media (prefers-contrast:more){
  :root{--paper:#fff;--grey:#777}
  .hero::before,.hero::after,.contact::before{display:none}
  .label,.eyebrow{font-weight:700}
}
