@font-face{font-family:Oswald;src:url('fonts/oswald-variable.ttf') format('truetype');font-weight:200 700;font-style:normal;font-display:swap}
@font-face{font-family:Golos;src:url('fonts/golos-text-variable.ttf') format('truetype');font-weight:400 900;font-style:normal;font-display:swap}
:root{
  color-scheme:dark;--ink:#111116;--ink-deep:#09090d;--paper:#111116;--paper-bright:#f4f0ec;--paper-edge:#35343d;--paper-muted:#19191f;
  --orange:#e0525c;--orange-light:#ed7179;--orange-ink:#09090d;--text:#f4f0ec;--muted:#b1b0b6;--line:#35343d;
  --font-body:Golos,Arial,sans-serif;--font-display:Oswald,'Arial Narrow',sans-serif;--max:1440px;--gutter:clamp(1.25rem,4.2vw,4rem);--section:clamp(4.5rem,9vw,8.5rem);
  --fast:180ms;--medium:320ms;--enter:750ms;--ease:cubic-bezier(.2,.75,.25,1);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--ink-deep);color:var(--text);font:400 1rem/1.6 var(--font-body);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline-offset:5px}button:disabled{cursor:not-allowed;opacity:.5}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange-light)}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.08}ol,ul{margin:0;padding:0;list-style:none}[hidden]{display:none!important}.icon{width:24px;height:24px;flex:none}
.page-width{width:min(100%,var(--max));padding-inline:var(--gutter);margin-inline:auto}.eyebrow{font-size:.6875rem;line-height:1.5;letter-spacing:.12em;font-weight:500;text-transform:uppercase;color:var(--muted)}.paper{background:var(--paper);color:var(--text)}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:100;padding:.75rem 1.25rem;background:var(--text);color:var(--ink-deep);transform:translateY(-170%)}.skip-link:focus{transform:none}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:52px;padding:.875rem 1.25rem;border:1px solid transparent;border-radius:0;font-size:.8125rem;font-weight:500;line-height:1.25;white-space:nowrap;transition:background var(--fast),border-color var(--fast),transform var(--fast)}.button .icon{width:20px;height:20px}.primary{background:var(--orange);color:var(--orange-ink)}.primary:hover{background:var(--orange-light)}.outlined{border-color:var(--line);background:transparent;color:var(--text)}.outlined:hover{border-color:var(--orange)}.ink-button{background:var(--orange);color:var(--orange-ink)}.button:active{transform:translateY(1px)}
.text-link{display:inline-flex;align-items:center;gap:1.25rem;min-height:44px;padding-block:.625rem;border-bottom:1px solid var(--line);font-size:.8125rem;font-weight:500;transition:border-color var(--fast),color var(--fast)}.text-link:hover{color:var(--orange-light);border-color:currentColor}.text-link .icon{width:21px;height:21px}.round-button{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent}.round-button:hover{border-color:var(--orange);background:var(--paper-muted)}

/* Portrait cover: foreground identity and oversized red lettering behind it. */
.hero-shell{position:relative;isolation:isolate;background:radial-gradient(ellipse at 55% 38%,#47121c22,transparent 52%),var(--ink-deep);border-bottom:1px solid var(--line)}.hero-inner{position:relative}
.site-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:92px;padding-block:1.25rem;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:.75rem;flex-shrink:0;min-height:44px}.brand-logo{width:40px;height:40px;border-radius:10px;object-fit:contain;filter:grayscale(1) sepia(.3) saturate(4) hue-rotate(305deg);flex:none}.brand span{font:650 1.125rem/1 var(--font-display);letter-spacing:.015em}
.header-nav{display:flex;align-items:center;gap:clamp(1.125rem,2.5vw,2.5rem);font-size:.75rem}.header-nav a{display:flex;align-items:center;min-height:44px;color:var(--muted);transition:color var(--fast)}.header-nav a:hover,.header-nav a[aria-current]{color:var(--text)}.header-cta{padding:.625rem 0;min-height:44px;gap:.75rem;background:transparent;color:var(--text);border:0;white-space:nowrap}.header-cta:hover{background:transparent;color:var(--orange-light)}
.hero-topline{display:flex;justify-content:space-between;gap:2rem;padding-top:1.75rem;font-size:.625rem;line-height:1.5;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.hero-topline>span:first-child,.hero-topline strong{color:var(--orange);font-weight:500}
.hero-stage{position:relative;min-height:680px;isolation:isolate;margin-top:1rem}.hero-wordmark{position:absolute;top:.3rem;left:0;right:0;z-index:-1;font:700 clamp(5rem,15.7vw,14.125rem)/1 var(--font-display);letter-spacing:-.05em;white-space:nowrap;text-align:center;color:#ae2939;background:linear-gradient(180deg,#d03b49 15%,#822030 70%,#301019);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;user-select:none;pointer-events:none}
.intro-copy{position:relative;z-index:3;width:29%;padding-top:6.5rem;padding-bottom:2rem}.handwritten{font:italic 400 clamp(1.5rem,3vw,2.8rem)/1.15 Georgia,'Times New Roman',serif;transform:rotate(-5deg);transform-origin:left bottom;margin-bottom:1.25rem;color:var(--text)}.hero-title{font:700 clamp(3.25rem,6.1vw,5.65rem)/.98 var(--font-display);letter-spacing:-.045em;text-transform:uppercase}.hero-title>span,.hero-title em{color:var(--orange);font-style:normal}
.intro-copy>.hero-role,.intro-copy>.lead{font:600 clamp(1rem,1.6vw,1.4rem)/1.25 var(--font-display);text-transform:uppercase;color:var(--orange);margin-top:1.25rem;max-width:13em}.hero-description{max-width:26em;margin-top:1.5rem;font-size:.875rem;line-height:1.75;color:var(--muted)}.intro-copy>p:not(.handwritten):not(.hero-description):not(.hero-role):not(.lead){font-size:.9375rem;line-height:1.6;color:var(--muted);margin-top:1.5rem;max-width:22em}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;max-width:100%}.hero-actions .button{font-size:.75rem;min-height:50px;gap:.875rem;padding:.875rem 1rem}.hero-actions .outlined{border:0;border-bottom:1px solid var(--line);padding-inline:0}
.hero-portrait{position:absolute;z-index:2;left:50%;bottom:0;width:62%;height:100%;transform:translateX(-50%);pointer-events:none;display:flex;align-items:flex-end;justify-content:center}.hero-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(15px -2px 28px #a51f3040);mask-image:linear-gradient(#000 85%,transparent 100%);-webkit-mask-image:linear-gradient(#000 85%,transparent 100%)}
.hero-side{position:absolute;z-index:3;right:0;top:12rem;width:17%;min-width:165px}.hero-side>p{font-size:.75rem;line-height:1.5;margin-bottom:1rem;color:var(--muted)}.hero-service-link{display:flex;align-items:flex-start;gap:.75rem;min-height:62px;padding:.875rem 0;border-bottom:1px solid var(--line)}.hero-service-link>span:first-child{font:600 1.125rem/1.3 var(--font-display);color:var(--orange)}.hero-service-link strong{font:500 .8125rem/1.45 var(--font-body);overflow-wrap:anywhere}.hero-service-link:hover strong{color:var(--orange-light)}
.hero-bottom{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 0 1.75rem;font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.hero-bottom a{display:inline-flex;align-items:center;gap:.875rem;min-height:44px;color:var(--text)}

/* Content remains visible without JavaScript. Screenshots keep their whole frame. */
.works-section,.services-section,.studio-section,.process-section{padding-top:var(--section);padding-bottom:var(--section);scroll-margin-top:2rem}.works-section+.services-section,.services-section+.studio-section,.studio-section+.process-section{border-top:1px solid var(--line)}
.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.48fr);align-items:end;gap:2rem;margin-bottom:3rem}.section-heading>.eyebrow{grid-column:1/-1;margin-bottom:-.75rem}.section-heading h2{font:650 clamp(2.6rem,5vw,4.5rem)/1.05 var(--font-display);letter-spacing:-.035em;text-transform:uppercase;max-width:18ch}.section-heading h2 span,.section-heading h2 em{color:var(--orange);font-style:normal}.section-heading>p{max-width:32em;color:var(--muted);font-size:.9375rem;line-height:1.7}.section-heading>div h2{margin-top:1rem}
.case-controls{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.case-position{font-size:.875rem}.case-total{color:var(--muted)}.case-arrow-controls{display:flex;gap:.625rem}.case-stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem 1.75rem;align-items:start}.case-display{min-width:0;display:flex;flex-direction:column;gap:1.125rem;scroll-margin-top:2rem}
.case-picture{display:block;position:relative;order:-1;background:#17171d;border:1px solid var(--line);border-radius:0;overflow:hidden}.case-picture>img{display:block;width:100%;height:auto;object-fit:contain;transition:opacity var(--fast)}.case-picture:hover>img{opacity:.9}.picture-open{display:flex;position:absolute;inset:auto .75rem .75rem auto;align-items:center;gap:.5rem;padding:.5rem .625rem;background:#09090deb;color:var(--text);font-size:.625rem;line-height:1.3;pointer-events:none}.picture-open .icon{width:16px;height:16px}
.case-copy{min-width:0}.case-copy h2{font:550 clamp(1.75rem,2.3vw,2.5rem)/1.12 var(--font-display);letter-spacing:-.025em}.case-category{font-size:.75rem;line-height:1.5;color:var(--orange-light);margin-top:.625rem}.case-summary{font-size:.8125rem;line-height:1.75;color:var(--muted);margin-top:1rem;max-width:38em}.case-copy .text-link{margin-top:1rem;font-size:.75rem}.case-mobile-number{display:block;margin-bottom:.625rem;font-size:.625rem;color:var(--muted)}.demo-note{display:block;margin-top:.875rem;font-size:.625rem;color:var(--muted)}
.case-index{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:2.5rem}.case-index button{display:inline-flex;gap:.625rem;align-items:center;min-height:44px;border:1px solid var(--line);background:transparent;padding:.625rem .875rem;font-size:.75rem}.case-index button[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:var(--ink-deep)}.case-index button:hover{border-color:var(--orange)}.next-case{display:none}.next-case-button>img{height:auto;object-fit:contain}
.filter-bar,.work-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.filter-bar button,.work-filters button{min-height:44px;background:transparent;border:1px solid var(--line);padding:.625rem 1rem;font-size:.75rem}.filter-bar button[aria-pressed=true],.work-filters button[aria-pressed=true]{color:var(--ink-deep);background:var(--orange);border-color:var(--orange)}

/* Native disclosures retain real links, keyboard use and visible focus. */
.service-list{border-top:1px solid var(--line)}.service-row{border-bottom:1px solid var(--line);scroll-margin-top:2rem}.service-row summary{display:flex;align-items:center;gap:1.5rem;min-height:112px;padding:1.25rem 0;cursor:pointer;list-style:none}.service-row summary::-webkit-details-marker{display:none}.service-number{font-size:.75rem;color:var(--orange);min-width:1.5rem}.service-row summary>.icon{color:var(--muted)}.service-row h3{min-width:0;flex:1;font:550 clamp(1.75rem,3vw,2.75rem)/1.15 var(--font-display);letter-spacing:-.02em}
.service-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:50%;transition:transform var(--medium),color var(--fast),border-color var(--fast)}.service-toggle>.icon{width:20px;height:20px}.service-row[open] .service-toggle{transform:rotate(135deg);color:var(--orange);border-color:var(--orange)}.service-row summary:hover .service-toggle{color:var(--orange-light);border-color:var(--orange-light)}
.service-description{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem 3rem;margin:0 5rem 2rem 5.5rem;font-size:.9375rem;line-height:1.75;color:var(--muted)}.service-description>div>.eyebrow{color:var(--orange);font-size:.625rem;margin-bottom:.5rem;display:block}.service-description>.text-link{justify-self:start;color:var(--text);grid-column:1/-1}
.directions{display:grid;gap:0}.direction-link{display:flex;align-items:flex-start;gap:1rem;padding:1.125rem 0;border-bottom:1px solid var(--line);min-height:64px}.direction-link>.icon{color:var(--orange);width:20px;height:20px}.direction-link strong{display:block;font-size:.875rem;font-weight:500}.direction-link span span{display:block;color:var(--muted);font-size:.75rem;margin-top:.375rem;max-width:28em}
.studio-feature{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.7fr);gap:4rem;align-items:center}.studio-feature h2{font:600 clamp(2.5rem,4.6vw,4.5rem)/1.06 var(--font-display);letter-spacing:-.025em;text-transform:uppercase}.studio-feature>div>p{margin-top:1.75rem;color:var(--muted);font-size:1rem;line-height:1.8;max-width:44em}.studio-feature .button{margin-top:2rem}
.studio-note{background:linear-gradient(145deg,#bc3547,#671a2a);padding:2.5rem;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-height:340px}.studio-note>.eyebrow{color:#f4f0ecc9}.studio-note>p{font:500 clamp(1.75rem,3vw,2.8rem)/1.15 var(--font-display);margin-top:2rem;color:var(--text)}.studio-note em{font-style:normal}.studio-note-stamp{display:block;font-size:.625rem;letter-spacing:.07em;margin-top:2rem;color:#f4f0ecc9}
.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin-top:4rem;border-top:1px solid var(--line);padding-top:2rem}.principles>div>span{font-size:.625rem;color:var(--orange);letter-spacing:.08em}.principles h3{font:500 1.625rem/1.2 var(--font-display);margin-top:.875rem}.principles p{font-size:.875rem;line-height:1.75;color:var(--muted);margin-top:.875rem;max-width:30em}
.process{margin-top:3rem}.process h3{font:500 .6875rem/1.5 var(--font-body);letter-spacing:.1em;margin-bottom:2rem}.process ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem}.process li{display:flex;align-items:flex-start;gap:1rem}.step-number{display:flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;border:1px solid var(--line);color:var(--orange);font-size:.75rem}.process h4{font:500 1.125rem/1.25 var(--font-display)}.process p{font-size:.8125rem;color:var(--muted);line-height:1.7;margin-top:.75rem}
.work-terms{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:2rem;align-items:center;padding-block:3rem;margin-top:3rem;border-block:1px solid var(--line)}.work-terms h2{font:500 1.75rem/1.2 var(--font-display);margin-top:.75rem}.prepayment{display:flex;align-items:center;gap:1rem}.prepayment strong{font:650 4.5rem/1 var(--font-display);color:var(--orange);letter-spacing:-.04em}.prepayment span{font-size:.8125rem}.client-types{font-size:.9375rem;line-height:1.7;color:var(--muted)}
.contact-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:2rem;align-items:center;margin-top:var(--section);padding-block:3rem 4rem;border-top:1px solid var(--line)}.contact-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;min-width:100px}.contact-brand .brand-logo{width:70px;height:70px;border-radius:18px}.contact-brand span{font:500 .625rem/1 var(--font-display);letter-spacing:.05em}.contact-copy h2{font:600 clamp(2.75rem,5vw,4.75rem)/1.04 var(--font-display);letter-spacing:-.035em;text-transform:uppercase}.contact-copy p{color:var(--muted);margin-top:1rem;font-size:.875rem}
.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;border-top:1px solid var(--line);padding-block:1.5rem 2rem;font-size:.6875rem;color:var(--muted)}.footer-wordmark{font:500 .875rem/1 var(--font-display);color:var(--text)}.site-footer>p{max-width:34em;line-height:1.6}.site-footer>a{min-height:44px;display:inline-flex;align-items:center}.footer-contact{gap:.625rem;color:var(--text)}.footer-contact .icon{width:18px;height:18px}.motion-toggle{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;padding:.625rem .875rem;min-height:44px;max-width:100%;font-size:.6875rem;line-height:1.4;white-space:normal;text-align:left}.motion-toggle[aria-pressed=true]{border-color:var(--orange);color:var(--orange-light)}

/* Server-rendered detail and data pages share the editorial system. */
.detail-header{padding-inline:var(--gutter)}.detail-page{padding-top:3rem;padding-bottom:3rem;min-height:50svh;background:transparent}.section-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.detail-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);gap:3rem;padding-block:3rem;align-items:start}.detail-intro h1{font:600 clamp(3rem,6vw,6rem)/1.04 var(--font-display);letter-spacing:-.025em}.detail-intro .case-category{font-size:.9375rem;margin-top:1rem}.detail-intro>p{font-size:1rem;line-height:1.8;color:var(--muted);max-width:42em}.detail-image{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:var(--paper);border:1px solid var(--line)}
.detail-bottom{display:flex;align-items:center;justify-content:space-between;gap:3rem;padding-block:3rem;border-bottom:1px solid var(--line)}.detail-bottom>div{max-width:46em}.detail-bottom h2{font:500 2rem/1.15 var(--font-display)}.detail-bottom p{margin-top:1.125rem;color:var(--muted);font-size:.9375rem;line-height:1.8}.detail-bottom>.button{flex:none}.detail-cta{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding-top:3rem}.detail-cta>p{font:500 2rem/1.2 var(--font-display)}
.data-page{max-width:1040px;padding-top:4rem;padding-bottom:5rem}.data-page h1{font:600 clamp(3.5rem,7vw,6rem)/1.05 var(--font-display);margin-top:2rem}.data-page h2{font:500 1.875rem/1.2 var(--font-display);margin-top:3rem}.data-page p{font-size:1rem;line-height:1.85;color:var(--muted);margin-top:1.125rem;max-width:68ch}.data-page p a{color:var(--text);text-decoration:underline;text-underline-offset:4px}.data-page>.text-link{margin-top:2.5rem}

/* Whole-page construction is a disposable, inert blueprint of the real page. */
.assembly-layer{position:absolute;left:0;top:0;width:100%;min-height:100vh;z-index:40;pointer-events:none;overflow:clip;background:var(--ink-deep)}
.assembly-blueprint{position:relative;width:100%;pointer-events:none}.assembly-blueprint *{pointer-events:none!important}
.assembly-tools{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.assembly-cursor{position:absolute;left:0;top:0;width:20px;height:27px;pointer-events:none;filter:drop-shadow(0 1px 2px #000a);will-change:transform;z-index:8}.assembly-cursor svg{display:block;width:100%;height:100%;overflow:visible}
.assembly-outline{position:absolute;left:0;top:0;pointer-events:none;border:1px solid var(--orange);transform-origin:top left;z-index:4;min-width:1px;min-height:1px}
.assembly-handle{position:absolute;width:5px;height:5px;background:var(--ink-deep);border:1px solid var(--orange)}.assembly-handle-0{left:-3px;top:-3px}.assembly-handle-1{right:-3px;top:-3px}.assembly-handle-2{left:-3px;bottom:-3px}.assembly-handle-3{right:-3px;bottom:-3px}
.assembly-size{position:absolute;left:0;top:100%;margin-top:5px;min-width:62px;padding:2px 5px;background:var(--orange);color:var(--ink-deep);font:500 9px/1.4 var(--font-body);font-variant-numeric:tabular-nums;white-space:nowrap;z-index:5}
.assembly-caret{position:absolute;left:0;top:0;width:2px;background:var(--orange-light);z-index:6}
.assembly-ruler{position:absolute;color:#b1b0b688;font:400 8px/1 var(--font-body);z-index:9;background-color:#09090dec}
.assembly-ruler-top{top:0;left:0;right:0;height:20px;border-bottom:1px solid #e0525c30;background-image:repeating-linear-gradient(90deg,transparent 0 9px,#b1b0b638 9px 10px);background-size:100% 5px;background-position:0 bottom;background-repeat:no-repeat}.assembly-ruler-top span{position:absolute;top:3px;transform:translateX(3px)}
.assembly-ruler-left{top:20px;left:0;bottom:0;width:16px;border-right:1px solid #e0525c30;background-image:repeating-linear-gradient(0deg,transparent 0 9px,#b1b0b638 9px 10px);background-size:5px 100%;background-repeat:no-repeat;background-position:right top}
.assembly-guide{position:absolute;z-index:3;background:#e0525c38}.assembly-guide-x{top:20px;bottom:0;width:1px}.assembly-guide-y{left:16px;right:0;height:1px}
.assembly-orbit-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:18px;color:var(--muted);font:500 10px/1 var(--font-body);letter-spacing:.14em}.assembly-orbit-mark img{width:64px;height:64px;border-radius:15px;filter:grayscale(1);opacity:.45}
.assembly-hud{position:absolute;left:28px;bottom:24px;display:grid;grid-template-columns:1fr auto;gap:9px 20px;width:260px;padding:13px 16px;background:#111116f5;border:1px solid var(--line);color:var(--text);font:400 10px/1.3 var(--font-body);z-index:10}.assembly-hud-count{color:var(--orange-light);font-variant-numeric:tabular-nums}.assembly-progress{grid-column:1/-1;height:2px;background:var(--line);overflow:hidden}.assembly-progress>span{display:block;width:100%;height:100%;background:var(--orange);transform:scaleX(0);transform-origin:left}
.assembly-running body>.site-footer>[data-motion-toggle]{position:fixed;right:24px;bottom:24px;z-index:60;max-width:180px;background:var(--ink-deep);color:var(--text);border-color:var(--line);font-size:11px}
@media(max-width:40rem){.assembly-hud{left:22px;bottom:18px;width:190px;padding:11px 12px;font-size:9px;gap:8px}.assembly-running body>.site-footer>[data-motion-toggle]{right:12px;bottom:18px;max-width:120px;min-height:44px;padding:8px 10px;font-size:10px}.assembly-ruler-left{width:12px}.assembly-cursor{width:17px;height:23px}}
[data-reveal]{opacity:1}.case-display:target{outline:1px solid var(--orange);outline-offset:10px}

@media(min-width:75rem){.hero-stage{min-height:700px}.hero-side{top:11rem}}
@media(max-width:68rem){
  .header-nav{gap:1rem}.brand{gap:.625rem}.brand span{font-size:1rem}.hero-side{width:19%;min-width:150px;top:9rem}.intro-copy{padding-top:5.5rem;width:30%}.hero-portrait{width:55%;left:51%}.hero-title{font-size:clamp(3.125rem,6.8vw,4.75rem)}.hero-actions{display:grid;justify-items:start;gap:.5rem}.case-stage{gap:2.5rem 1.25rem}.studio-feature{gap:2.5rem}.process ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem}
}
@media(max-width:58rem){
  :root{--gutter:1.5rem;--section:5rem}.site-header{min-height:80px;gap:1rem}.header-nav{display:none}.hero-topline{padding-top:1.25rem;font-size:.625rem}.hero-stage{min-height:670px;margin-top:2rem}.hero-wordmark{font-size:17.1vw;top:1rem}.intro-copy{padding-top:5.5rem;width:36%;max-width:290px}.hero-title{font-size:clamp(3rem,7.1vw,4.5rem)}.hero-description{font-size:.8125rem}.hero-portrait{width:66%;left:65%;height:92%;bottom:0}
  .hero-side{position:absolute;top:100%;left:0;right:auto;width:100%;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1.5rem;margin-top:.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.hero-side>p{grid-column:1/-1;margin-bottom:.5rem}.hero-service-link{min-height:58px}.hero-bottom{margin-top:190px}.case-stage{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 1.5rem}
  .section-heading{grid-template-columns:1fr;gap:1.25rem;margin-bottom:2.5rem}.section-heading>.eyebrow{margin-bottom:0}.section-heading h2{font-size:3.25rem;max-width:22ch}.section-heading>p{max-width:46em}.service-row summary{min-height:100px;gap:1.25rem}.service-row summary>.icon{display:none}.service-description{margin-left:2.75rem;margin-right:0;gap:1.5rem 2rem}.studio-feature{grid-template-columns:1fr;gap:2.5rem}.studio-note{min-height:250px;max-width:100%;padding:2rem}.studio-note>p{font-size:2.5rem;margin-top:1.5rem}.principles{gap:1.5rem}
  .work-terms{grid-template-columns:1fr 1fr;gap:2rem}.work-terms>div:first-child{grid-column:1/-1}.contact-card{grid-template-columns:80px minmax(0,1fr);gap:1.5rem}.contact-card>.button{grid-column:2;justify-self:start}.contact-brand{min-width:0;align-self:start}.contact-brand .brand-logo{width:64px;height:64px;border-radius:16px}.detail-intro{grid-template-columns:1fr;gap:1.75rem}.detail-bottom{display:block}.detail-bottom>.button{margin-top:2rem}
}
@media(max-width:40rem){
  :root{--gutter:1.25rem;--section:4rem}.site-header{padding-block:1rem;min-height:76px}.brand-logo{width:36px;height:36px;border-radius:9px}.brand span{font-size:.9375rem}.header-cta{font-size:.6875rem;gap:.625rem}.header-cta .icon{width:18px;height:18px}.hero-topline{padding-top:1.25rem;gap:1rem;font-size:.5625rem;line-height:1.6}.hero-topline>span{max-width:48%}.hero-topline>span:last-child{text-align:right}
  .hero-stage{display:flex;flex-direction:column;min-height:0;margin-top:1.25rem;padding-top:1.5rem}.hero-wordmark{top:0;left:-.125rem;right:-.125rem;font-size:17vw;line-height:1.1;letter-spacing:-.055em;text-align:left}.intro-copy{width:100%;max-width:none;padding-top:3.25rem;padding-bottom:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 1.25rem;align-items:start}.handwritten{grid-column:1/-1;font-size:1.65rem;margin-bottom:1rem;transform:rotate(-4deg)}.hero-title{grid-column:1;font-size:clamp(3.125rem,12.5vw,4.75rem);line-height:.97;letter-spacing:-.04em}
  .intro-copy>.hero-role,.intro-copy>.lead{grid-column:2;grid-row:2;margin-top:.3rem;font-size:1rem;line-height:1.35;max-width:14em}.hero-description{grid-column:2;grid-row:3;margin-top:.75rem;font-size:.8125rem;line-height:1.65;max-width:24em}.intro-copy>p:not(.handwritten):not(.hero-description):not(.hero-role):not(.lead){grid-column:2;font-size:.8125rem;margin-top:.75rem}.hero-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;position:relative;z-index:5}.hero-actions .button{font-size:.6875rem;min-height:48px;padding:.875rem .875rem;gap:.625rem}.hero-actions .outlined{padding-inline:.25rem}.hero-actions .icon{width:18px;height:18px}
  .hero-portrait{position:relative;left:auto;bottom:auto;width:min(100%,430px);height:490px;transform:none;align-self:center;margin-top:1rem;z-index:1}.hero-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom;mask-image:linear-gradient(#000 86%,transparent);-webkit-mask-image:linear-gradient(#000 86%,transparent)}.hero-stage .hero-side{position:relative;top:auto;left:auto;margin-top:0;padding-top:1rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem}.hero-side>p{font-size:.6875rem;margin-bottom:.5rem}.hero-service-link{padding:.875rem 0;gap:.625rem;min-height:64px}.hero-service-link>span:first-child{font-size:1rem}.hero-service-link strong{font-size:.75rem;line-height:1.5}.hero-bottom{margin-top:1.25rem;align-items:center;padding-block:.75rem 1.25rem;font-size:.5625rem;gap:1rem}.hero-bottom>span{max-width:45%;line-height:1.7}.hero-bottom a{gap:.625rem}.hero-bottom .icon{width:18px;height:18px}
  .section-heading{margin-bottom:2rem;gap:1.25rem}.section-heading h2{font-size:clamp(2.625rem,11vw,3.75rem);line-height:1.06;letter-spacing:-.03em;max-width:18ch}.section-heading>p{font-size:.9375rem;line-height:1.75;max-width:32em}.case-stage{grid-template-columns:1fr;gap:2.75rem}.case-display{gap:1rem}.case-copy h2{font-size:2.1rem}.case-category{font-size:.8125rem;margin-top:.5rem}.case-summary{font-size:.875rem;line-height:1.75;margin-top:.875rem;max-width:34em}.case-copy .text-link{font-size:.8125rem;margin-top:.875rem}.case-mobile-number{font-size:.625rem}.demo-note{font-size:.6875rem;margin-top:.75rem;line-height:1.5}.case-index{gap:.5rem;margin-top:2rem}.case-index button{flex:1 1 44%;font-size:.6875rem;padding:.625rem .75rem}.picture-open{font-size:.5625rem;inset:auto .625rem .625rem auto}
  .service-row summary{gap:.875rem;min-height:96px;padding-block:1.125rem}.service-number{font-size:.625rem;min-width:1rem}.service-row h3{font-size:1.75rem;line-height:1.18;letter-spacing:-.015em;overflow-wrap:anywhere}.service-toggle{width:40px;height:40px;min-width:40px}.service-toggle>.icon{width:18px;height:18px}.service-description{display:block;margin:0 0 1.75rem 1.875rem;font-size:.9375rem;line-height:1.75}.service-description>div{margin-top:1.5rem}.service-description>.text-link{margin-top:1rem;font-size:.8125rem}
  .studio-feature h2{font-size:2.75rem}.studio-feature>div>p{font-size:.9375rem;line-height:1.8;margin-top:1.5rem}.studio-feature .button{font-size:.75rem;margin-top:1.75rem}.studio-note{min-height:280px;padding:1.75rem}.studio-note>p{font-size:2.25rem}.principles{grid-template-columns:1fr;gap:2rem;padding-top:1.75rem;margin-top:2.5rem}.principles h3{font-size:1.75rem}.principles p{font-size:.9375rem;line-height:1.75;margin-top:.75rem}.process{margin-top:2rem}.process ol{grid-template-columns:1fr;gap:1.875rem}.process li{gap:1rem}.step-number{width:40px;height:40px}.process h4{font-size:1.375rem}.process p{font-size:.875rem;line-height:1.75;margin-top:.5rem;max-width:28em}
  .work-terms{grid-template-columns:1fr;gap:1.75rem;padding-block:2rem;margin-top:2.5rem}.work-terms h2{font-size:1.75rem;margin-top:.625rem}.prepayment strong{font-size:4.5rem}.prepayment span{font-size:.875rem}.client-types{font-size:.9375rem}.contact-card{grid-template-columns:60px minmax(0,1fr);gap:1.25rem;padding-block:2rem 2.5rem;margin-top:4rem}.contact-brand .brand-logo{width:50px;height:50px;border-radius:12px}.contact-brand span{font-size:.5rem;line-height:1.4;max-width:8em}.contact-copy h2{font-size:clamp(2.125rem,9.5vw,3.5rem);line-height:1.04}.contact-copy p{font-size:.8125rem;line-height:1.65;margin-top:.875rem}.contact-card>.button{grid-column:1/-1;width:100%;min-height:54px;font-size:.8125rem;justify-content:space-between}
  .site-footer{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:.875rem 1rem;padding-block:1.5rem 2rem;font-size:.6875rem}.site-footer>p{grid-column:1/-1;grid-row:2;max-width:31em}.footer-wordmark{grid-column:1;grid-row:1;font-size:.875rem}.footer-contact{grid-column:2;grid-row:1;justify-self:end;font-size:.625rem;gap:.375rem}.footer-contact .icon{width:16px;height:16px}.site-footer>.motion-toggle{justify-self:end;font-size:.625rem;max-width:100%}
  .detail-header{gap:1rem}.detail-header .brand-logo{width:32px;height:32px}.detail-header .brand span{font-size:.8125rem}.detail-header .button{min-height:44px;font-size:.625rem;padding:.625rem .75rem;gap:.625rem}.detail-header .button .icon{width:17px;height:17px}.detail-page{padding-top:2rem;padding-bottom:2.5rem}.section-topline{gap:1rem;padding-bottom:1rem}.section-topline .eyebrow{font-size:.5625rem;line-height:1.6;max-width:48%}.detail-intro{padding-block:2rem;gap:1.5rem}.detail-intro h1{font-size:clamp(2.625rem,11vw,4rem);overflow-wrap:anywhere}.detail-intro .case-category{font-size:.875rem;margin-top:.875rem}.detail-intro>p{font-size:.9375rem;line-height:1.8}.detail-bottom{padding-block:2rem}.detail-bottom h2{font-size:1.875rem}.detail-bottom p{font-size:.9375rem;line-height:1.8;margin-top:1rem}.detail-bottom>.button{font-size:.6875rem;gap:1rem;max-width:100%;white-space:normal;min-height:52px;margin-top:1.5rem}.detail-cta{display:block;padding-top:2rem}.detail-cta>p{font-size:1.875rem}.detail-cta>.text-link{margin-top:1.25rem}.data-page{padding-top:3rem;padding-bottom:4rem}.data-page h1{font-size:3.5rem;margin-top:1.5rem}.data-page h2{font-size:1.75rem;margin-top:2.5rem}.data-page p{font-size:.9375rem;line-height:1.85}.assembly-cursor{width:18px;height:24px}
}
@media(max-width:22rem){
  :root{--gutter:1rem}.site-header{gap:.625rem}.brand{gap:.5rem}.brand span{font-size:.8125rem}.header-cta{font-size:.625rem;gap:.375rem}.header-cta .icon{width:16px;height:16px}.hero-title{font-size:3rem}.intro-copy{gap:0 .875rem}.hero-description{font-size:.75rem}.hero-actions .button{font-size:.625rem;padding:.8125rem .75rem}.hero-portrait{height:420px}.hero-service-link strong{font-size:.6875rem}.service-row h3{font-size:1.55rem}.service-row summary{gap:.75rem}.contact-copy h2{font-size:2rem}
}
@media(hover:hover){.hero-service-link:hover{border-color:var(--orange)}.case-picture:hover .picture-open{color:var(--orange-light)}}
.motion-reduced *,.motion-reduced *::before,.motion-reduced *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-reduced .assembly-layer{display:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.assembly-layer{display:none!important}}

/* Final template mappings: services, four-step process and two-column contact. */
.services-panel{padding-top:var(--section);padding-bottom:var(--section);border-top:1px solid var(--line);scroll-margin-top:2rem}
.hero-service-link strong{flex:1;min-width:0}.hero-service-link>.icon{width:14px;height:14px;margin-top:2px;color:var(--muted)}
.studio-feature>div>.overview-lead{font:500 clamp(1.75rem,3vw,2.75rem)/1.2 var(--font-display);color:var(--text);margin-top:0;max-width:20em}
.process.page-width{margin-top:0;padding-top:var(--section);padding-bottom:var(--section);border-top:1px solid var(--line)}
.process ol h3{font:500 1.25rem/1.25 var(--font-display);letter-spacing:0;margin:0}
.contact-card{grid-template-columns:minmax(0,1fr) minmax(180px,.4fr);gap:3rem}
.contact-copy em{color:var(--orange);font-style:normal}.contact-copy>.eyebrow{margin-bottom:1.5rem}.contact-copy>.button{margin-top:2rem}
.contact-brand{justify-self:end;align-self:end;max-width:100%;gap:1rem}.contact-brand strong{font:500 1.25rem/1.2 var(--font-display)}.contact-brand .brand-logo{width:100px;height:100px;border-radius:24px}
@media(max-width:40rem){
  .process ol h3{font-size:1.375rem}.contact-card{grid-template-columns:1fr;gap:3rem}.contact-brand{justify-self:start;align-self:start;display:grid;grid-template-columns:64px 1fr;gap:.5rem 1rem;align-items:center;width:100%}.contact-brand .brand-logo{grid-row:1/3;width:64px;height:64px;border-radius:16px}.contact-brand strong{font-size:1.125rem}.contact-brand>.text-link{font-size:.8125rem;grid-column:2;justify-self:start;gap:.75rem}.contact-copy>.button{width:100%;min-height:54px;justify-content:space-between}
}

/* Keep the long brand out of the second column and remove empty portrait space on phones. */
@media(max-width:40rem){.hero-title{font-size:clamp(2rem,9.8vw,3.7rem)}.hero-portrait{height:auto;aspect-ratio:1312/1199}.hero-portrait img{height:auto}}

/* Show complete project screenshots at their natural ratio on every screen. */
.case-picture{align-self:start;aspect-ratio:auto;min-height:0}
.case-picture>img{position:static;width:100%;height:auto;object-fit:contain}
.case-picture:hover>img{transform:none}
.detail-image{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.next-case-button>img{height:auto;object-fit:contain}
