@font-face { font-family: "Elms Sans"; src: url("../fonts/ElmsSans-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Elms Sans"; src: url("../fonts/ElmsSans-SemiBold.ttf") format("truetype"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Nikea"; src: url("../fonts/NIKEA.otf") format("opentype"); font-weight: 400; font-display: swap; }

/* Base */
:root { --ink:#030303; --paper:#fff; --muted:#a0a0a0; --line:#5f5f5f; --font:"Elms Sans", Arial, sans-serif; --pad:clamp(1.25rem, 4.2vw, 5rem); --radius:.2rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:7rem; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font); font-size:14px; line-height:1.1; letter-spacing:.035em; text-transform:uppercase; }
a { color:inherit; }
button, input, select, textarea { font:inherit; }

/* Header and brand */
.site-header { position:fixed; inset:0 0 auto; z-index:20; display:flex; justify-content:space-between; align-items:center; padding:clamp(1.25rem,2.2vw,2rem) var(--pad); background:rgba(255,255,255,.9); backdrop-filter:blur(8px); }
.brand-icon { display:block; width:clamp(4rem,5.8vw,6.75rem); aspect-ratio:1.6; }.brand-icon img { display:block; width:100%; height:100%; object-fit:contain; }
.site-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:clamp(.8rem,2vw,2rem); font-size:clamp(.62rem,.9vw,.82rem); font-weight:600; }.site-nav a { text-decoration:none; }.site-nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:.28rem; }

/* Hero */
.hero { position:relative; }.hero__canvas { height:clamp(32rem, 67vw, 68rem); display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding-top:clamp(14rem,24vw,27rem); }
.hero__eyebrow { margin:0 auto; text-align:center; font-size:clamp(1.1rem,1.8vw,2rem); font-weight:600; letter-spacing:.09em; line-height:1.05; }
.hero__wordmark { position:sticky; top:5rem; z-index:0; width:106%; margin:0 0 0 -3%; line-height:0; overflow:hidden; }.hero__wordmark img { display:block; width:100%; height:auto; }
.work-slider { position:relative; z-index:10; height:clamp(25rem, 60vw, 72rem); margin-top:-0.1rem; overflow:hidden; background:transparent; }.work-slider__viewport { position:relative; width:100%; height:100%; }.work-slider__slide { position:absolute; inset:0; margin:0; opacity:0; transition:opacity .45s ease; }.work-slider__slide.is-active { opacity:1; }.work-slider__slide img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }.work-slider__controls { position:absolute; z-index:1; left:50%; bottom:1.25rem; display:flex; align-items:center; gap:.9rem; color:var(--paper); font-size:.68rem; transform:translateX(-50%); }.work-slider__controls button { width:2.25rem; height:2.25rem; border:1px solid var(--paper); border-radius:50%; background:rgba(0,0,0,.18); color:var(--paper); cursor:pointer; font-size:1rem; }.work-slider__controls b { font-weight:600; }

/* Services */
.services { width:min(92%, 1500px); margin:0 auto clamp(3rem,7vw,8rem); display:grid; gap:clamp(1.5rem,2.6vw,3rem); }
.work-slider, .services, .contact { scroll-margin-top:7rem; }
.service-card { min-height:clamp(8rem,13vw,15rem); display:grid; grid-template-columns:34% 1fr; border:3px solid var(--ink); border-radius:var(--radius); overflow:hidden; }
.service-card__title { display:flex; align-items:center; gap:clamp(.6rem,1.6vw,1.7rem); padding:1.1rem clamp(.7rem,2.1vw,2.4rem); color:var(--paper); background:var(--ink); }
.service-card strong { font-family:"Nikea", var(--font); font-size:clamp(4.5rem,8vw,9rem); font-weight:400; line-height:.7; letter-spacing:-.08em; }
.service-card__title span, .service-card p { font-size:clamp(.7rem,1.4vw,1.25rem); font-weight:600; line-height:1.05; }
.service-card p { align-self:center; margin:0; padding:1rem clamp(1rem,5vw,6rem); }
.service-card--two { width:90%; justify-self:center; grid-template-columns:40% 1fr; }.service-card--three { width:94%; justify-self:center; grid-template-columns:42% 1fr; }

/* Contact */
.contact { margin:clamp(5rem,13vw,15rem) auto clamp(4rem,10vw,11rem); text-align:center; font-size:clamp(.72rem,1.25vw,1.1rem); font-weight:600; }.contact p { margin:0 0 .25rem; }.contact a { text-decoration:none; }
.contact__cta { display:inline-block; margin-top:1.5rem; text-decoration:underline !important; text-underline-offset:.22rem; }
.contact-form-section { padding:clamp(2.5rem,6vw,7rem) max(var(--pad), 17vw) clamp(5rem,12vw,14rem); background:var(--ink); color:var(--paper); }.form-intro { margin:0 0 3.5rem; text-align:center; font-size:clamp(.72rem,1.3vw,1.1rem); line-height:1.3; }
.contact-form { --form-size:clamp(.68rem,1.1vw,1rem); display:grid; gap:2.45rem; max-width:900px; margin:auto; }.contact-form fieldset { min-width:0; padding:0; border:0; margin:0; }.contact-form legend, .contact-form > label { display:block; font-size:var(--form-size); }.contact-form span { color:var(--muted); }.name-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; margin-top:.7rem; }
.contact-form label { display:grid; gap:.7rem; }.contact-form input:not([type="checkbox"]):not([type="radio"]), .contact-form select, .contact-form textarea { width:100%; padding:.2rem 0 .65rem; border:0; border-bottom:1px solid var(--line); border-radius:0; outline:0; background:transparent; color:var(--paper); font-size:var(--form-size); text-transform:uppercase; }.contact-form select { appearance:auto; }.contact-form textarea { height:2.1rem; resize:vertical; }.contact-form ::placeholder { color:var(--muted); opacity:1; }
.check { display:flex !important; align-items:center; gap:.45rem !important; margin-top:-1.6rem; color:var(--muted); font-size:var(--form-size) !important; }.check input { appearance:none; width:.85rem; height:.85rem; margin:0; border:1px solid var(--paper); border-radius:50%; }.check input:checked { background:var(--paper); box-shadow:inset 0 0 0 3px var(--ink); }
.budget { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1rem; }.budget label { display:flex; align-items:center; gap:.25rem; padding:.2rem .55rem; border:1px solid var(--paper); border-radius:2rem; font-size:var(--form-size); }.budget input { appearance:none; position:absolute; }.budget label:has(input:checked) { background:var(--paper); color:var(--ink); }.submit { width:10rem; padding:1rem; border:0; border-radius:0; background:var(--paper); color:var(--ink); font-weight:600; cursor:pointer; text-transform:uppercase; }
.date-field { display:grid; grid-template-columns:1fr auto; align-items:center; border-bottom:1px solid var(--line); }.date-field input { border-bottom:0 !important; }.calendar-button { width:2rem; height:2rem; padding:0; border:0; background:transparent; color:var(--paper); cursor:pointer; font-size:1.15rem; line-height:1; }.calendar-button:focus-visible, .submit:focus-visible { outline:2px solid var(--paper); outline-offset:3px; }.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }.form-status { max-width:900px; margin:0 auto 2rem; padding:1rem; border:1px solid var(--paper); font-size:var(--form-size, .9rem); text-align:center; }.form-status--error { border-color:#ff9a9a; color:#ffb3b3; }
.site-footer { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(1rem,4vw,5rem); padding:clamp(2rem,5vw,5rem) var(--pad); background:var(--ink); color:var(--paper); }.site-footer small { font-size:clamp(.55rem,.9vw,.8rem); letter-spacing:.08em; white-space:nowrap; }.site-footer small:last-child { text-align:right; }.brand-icon--light { grid-column:1; grid-row:1; justify-self:start; filter:invert(1); }.site-footer small:first-of-type { grid-column:2; grid-row:1; }.site-footer small:last-child { grid-column:3; grid-row:1; }

@media (max-width: 700px) { .site-header { padding-top:1.25rem; }.brand-icon { width:4rem; }.site-nav { gap:.8rem; font-size:.62rem; }.hero__canvas { height:30rem; padding-top:11.5rem; }.hero__wordmark { width:110%; margin-left:-5%; }.work-slider { height:60vw; min-height:23rem; }.work-slider__controls { bottom:.75rem; }.services { width:91%; gap:1.35rem; }.service-card, .service-card--two, .service-card--three { width:100%; grid-template-columns:42% 1fr; }.service-card__title { padding:.7rem; }.service-card strong { font-size:4rem; }.service-card__title span, .service-card p { font-size:.65rem; }.service-card p { padding:.8rem; }.contact-form-section { padding-left:17%; padding-right:17%; }.name-grid { grid-template-columns:1fr; gap:2.45rem; }.site-footer { grid-template-columns:auto 1fr; gap:1rem; }.brand-icon--light { grid-column:1; }.site-footer small:first-of-type { grid-column:2; }.site-footer small:last-child { display:none; }.site-footer small { font-size:.52rem; } }
