*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}body{min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,svg,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}ul,ol{list-style:none}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em;line-height:1.04;text-wrap:balance}p{text-wrap:pretty}:root{--warm-black: #15120E;--warm-black-soft: #211c16;--ink: #0E0C09;--cream: #F4EFE6;--cream-dim: #E9E2D5;--accent: #C8623A;--accent-bright: #DC6E3C;--accent-text: #A8481F;--stone-700: #4a4036;--stone-500: #7c7163;--stone-400: #9c8f7e;--stone-300: #c6bbab;--room-bg: #0B0907;--room-surface: #1d1812;--room-bezel: #080705;--room-screen: #12100c;--room-glow: #C8623A;--room-glow-soft: #d98a5e;--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-serif: "Instrument Serif", Georgia, serif;--container: 1340px;--gutter: clamp(1.25rem, 4vw, 4rem);--radius: 6px}body{font-family:var(--font-body);background:var(--cream);color:var(--warm-black);font-size:1.0625rem}::selection{background:var(--accent);color:var(--cream)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(4.5rem,11vw,10rem)}main{overflow-x:clip}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.eyebrow{font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);display:inline-flex;align-items:center;gap:.7rem}.eyebrow:before{content:"";width:2rem;height:1px;background:currentColor;opacity:.9}.display{font-family:var(--font-display);font-weight:700;line-height:.92;letter-spacing:-.035em}.serif-accent{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.95rem;line-height:1;padding:1rem 1.65rem;border-radius:100px;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease;white-space:nowrap}.btn .arrow{transition:transform .25s ease}.btn:hover .arrow{transform:translate(3px,-3px)}.btn-primary{background:var(--warm-black);color:var(--cream)}.btn-primary:hover{background:var(--accent);transform:translateY(-2px)}.btn-ghost{border:1px solid color-mix(in srgb,var(--warm-black) 22%,transparent)}.btn-ghost:hover{border-color:var(--warm-black);transform:translateY(-2px)}.on-dark{background:var(--warm-black);color:var(--cream);--accent-text: var(--accent-bright)}.on-dark .btn-primary{background:var(--cream);color:var(--warm-black)}.on-dark .btn-primary:hover{background:var(--accent);color:var(--cream)}.on-dark .btn-ghost{border-color:color-mix(in srgb,var(--cream) 28%,transparent)}.on-dark .btn-ghost:hover{border-color:var(--cream)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.page-head{padding-block:clamp(7rem,13vw,11rem) clamp(1.5rem,4vw,3rem)}.page-title{font-family:var(--font-display);font-weight:700;line-height:.95;letter-spacing:-.035em;font-size:clamp(2.8rem,9vw,7rem);margin:1.25rem 0 1.5rem}.page-lead{max-width:56ch;font-size:clamp(1.1rem,1.7vw,1.4rem);color:var(--stone-700);line-height:1.5}.on-dark .page-lead{color:var(--stone-300)}.case-feature{margin-bottom:clamp(2.5rem,6vw,5rem)}.case-media{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:var(--ar, 16 / 9);background:var(--cream-dim)}.case-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.case-feature:hover .case-media img{transform:scale(1.03)}.case-badge{position:absolute;top:1rem;left:1rem;background:var(--accent);color:var(--cream);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.45rem .9rem;border-radius:100px;z-index:2}.case-body{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,4rem);align-items:start;margin-top:clamp(1.5rem,3vw,2.5rem)}.case-client{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);font-weight:600}.case-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.035em;font-size:clamp(2.2rem,5.5vw,4.75rem);line-height:.96;margin-top:.6rem}.case-desc{color:var(--stone-700);line-height:1.6;font-size:1.08rem}.case-tags{display:flex;gap:.6rem;margin-top:1.5rem;flex-wrap:wrap}.case-tags span{border:1px solid color-mix(in srgb,var(--warm-black) 20%,transparent);border-radius:100px;padding:.4rem .9rem;font-size:.82rem;font-weight:500}.case-link{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;border-bottom:2px solid var(--accent);padding-bottom:2px;margin-top:1.5rem;width:fit-content}.work-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(1.5rem,3vw,2.5rem)}.work-filter{border:1px solid color-mix(in srgb,var(--warm-black) 18%,transparent);border-radius:100px;padding:.5rem 1.15rem;font-size:.9rem;font-weight:600;color:var(--stone-700);transition:background .2s ease,color .2s ease,border-color .2s ease}.work-filter:hover{border-color:var(--warm-black)}.work-filter.active{background:var(--warm-black);color:var(--cream);border-color:var(--warm-black)}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2.5vw,2rem)}.work-tile{display:block}.work-tile.is-hidden{display:none}.work-tile-media{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4 / 3;background:var(--cream-dim)}.work-tile-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.work-tile:hover .work-tile-media img{transform:scale(1.05)}.work-tile-cap{position:absolute;inset:auto 0 0;padding:clamp(.9rem,2vw,1.5rem);display:flex;flex-direction:column;gap:.25rem;background:linear-gradient(to top,color-mix(in srgb,var(--warm-black) 85%,transparent),color-mix(in srgb,var(--warm-black) 30%,transparent) 55%,transparent);color:var(--cream);pointer-events:none}.work-tile-cat{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-bright);font-weight:700}.work-tile-title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.08}.work-masonry{column-width:20rem;column-gap:clamp(1rem,2.2vw,1.75rem)}.work-masonry>.work-tile{break-inside:avoid;margin-bottom:clamp(1rem,2.2vw,1.75rem)}.work-masonry>.work-tile.is-hidden{display:none}@media(max-width:540px){.work-masonry{column-width:auto;column-count:1}}.work-tile-media--natural{aspect-ratio:auto}.work-tile-media--natural img{height:auto}.work-tile-media.has-action,.case-media.has-action{display:block;width:100%;padding:0;border:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none}a.work-tile-media,a.case-media{text-decoration:none}.has-action:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.play-badge{position:absolute;inset:0;margin:auto;width:clamp(3rem,6vw,4.25rem);height:clamp(3rem,6vw,4.25rem);border-radius:999px;background:color-mix(in srgb,var(--warm-black) 50%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1.5px solid color-mix(in srgb,var(--cream) 70%,transparent);display:grid;place-items:center;transition:transform .25s ease,background .25s ease;pointer-events:none}.play-badge:before{content:"";width:0;height:0;border-style:solid;border-width:.5rem 0 .5rem .85rem;border-color:transparent transparent transparent var(--cream);margin-left:.18rem}.has-action:hover .play-badge{transform:scale(1.08);background:var(--accent)}.play-badge--link:before{border:0;width:auto;height:auto;margin:0;content:"↗";color:var(--cream);font-size:1.4rem;line-height:1}.gallery-badge{position:absolute;top:clamp(.7rem,1.5vw,1rem);right:clamp(.7rem,1.5vw,1rem);display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cream);background:color-mix(in srgb,var(--warm-black) 55%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid color-mix(in srgb,var(--cream) 45%,transparent);padding:.3rem .6rem;border-radius:100px;pointer-events:none;transition:background .25s ease}.gallery-badge:before{content:"▦";font-size:.85em}.has-action:hover .gallery-badge{background:var(--accent)}.services-list{border-top:1px solid color-mix(in srgb,var(--warm-black) 14%,transparent)}.service-row{display:grid;grid-template-columns:4rem minmax(0,16rem) 1fr 2rem;align-items:center;gap:1.5rem;padding-block:clamp(1.25rem,2.5vw,1.9rem);border-bottom:1px solid color-mix(in srgb,var(--warm-black) 14%,transparent);transition:padding-left .3s ease}.service-row:hover{padding-left:1rem}.service-n{font-family:var(--font-display);font-size:.9rem;color:var(--accent-text)}.service-name{font-family:var(--font-display);font-weight:600;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.03em}.service-desc{color:var(--stone-700);font-size:1rem}.service-arrow{color:var(--stone-400);text-align:right;transition:transform .3s ease,color .3s ease}.service-row:hover .service-arrow{color:var(--accent);transform:translate(4px,-4px)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.stat-num{font-family:var(--font-display);font-weight:700;line-height:1;letter-spacing:-.03em;font-size:clamp(3.5rem,9vw,7rem)}.stat-label{display:block;color:var(--stone-400);margin-top:.5rem;font-size:1rem}.cta-band{text-align:center}.cta-inner{display:flex;flex-direction:column;align-items:center;gap:1.75rem}.cta-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.035em;font-size:clamp(2.2rem,6vw,4.5rem);max-width:18ch}@media(max-width:900px){.case-body{grid-template-columns:1fr;gap:1.25rem}}@media(max-width:760px){.service-row{grid-template-columns:2.5rem 1fr;grid-template-areas:"n name" ". desc";gap:.4rem 1rem}.service-row .service-arrow{display:none}.service-n{grid-area:n}.service-name{grid-area:name}.service-desc{grid-area:desc}.stat-grid{grid-template-columns:1fr;gap:2.5rem}.work-grid{grid-template-columns:1fr}}
