:root{--ink:#0a0a0a;--muted:#666;--line:rgba(10,10,10,.11);--accent:#4a4db2;--paper:#fff;--dark:#0b0b0d}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip;scrollbar-width:thin;scrollbar-color:#6236c7 #f1f1f4}
body{font-family:'Inter',sans-serif;background:var(--paper);color:var(--ink);overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
button,a{outline-offset:4px}
.skip-link{position:fixed;left:16px;top:12px;z-index:100;transform:translateY(-160%);background:#fff;color:#0a0a0a;padding:10px 14px;border:2px solid #4a4db2;text-decoration:none}.skip-link:focus{transform:none}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(74,77,178,.52);outline-offset:4px}
.site-nav{height:78px;padding:0 clamp(20px,4vw,54px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:5}
.site-logo img{width:auto;height:58px}
.site-links{display:flex;align-items:center;gap:28px}
.site-links a{font-size:12px;text-decoration:none;color:#555}
.site-links .nav-cta{padding:11px 20px;border-radius:100px;background:var(--ink);color:#fff;font-weight:600}
.page-shell{width:min(100% - 40px,1320px);margin:0 auto}
.case-hero{padding:clamp(70px,10vw,150px) 0 52px}
.crumb{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;text-decoration:none;color:var(--accent)}
.case-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;font-size:clamp(64px,9vw,96px);line-height:.86;letter-spacing:-.035em;margin:36px 0 44px;text-wrap:balance;overflow-wrap:anywhere}
.case-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,8vw,130px);align-items:end}
.case-lead{font-size:clamp(20px,2.4vw,34px);line-height:1.35;max-width:800px;text-wrap:pretty}
.case-meta{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;border-top:1px solid var(--line);padding-top:20px}
.case-meta dt{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#626262;margin-bottom:6px}
.case-meta dd{font-size:12px;line-height:1.5}
.case-media{margin:40px auto 0;width:min(100% - 40px,1440px);background:#111;overflow:hidden}
.case-media img{width:100%;height:auto}
.case-body{padding:clamp(80px,11vw,160px) 0}
.story-row{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:clamp(45px,10vw,170px);padding:54px 0;border-top:1px solid var(--line)}
.story-row h2{font-family:'Cormorant Garamond',serif;font-size:clamp(38px,5vw,68px);font-weight:600;font-style:italic;line-height:.92;letter-spacing:-.025em}
.story-copy{max-width:750px}
.story-copy p{font-size:16px;line-height:1.85;color:#444;margin-bottom:22px}
.deliverables{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.deliverables span{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:8px 12px;border:1px solid var(--line);border-radius:100px;color:#555}
.result-panel{background:var(--dark);color:#fff;padding:clamp(60px,8vw,110px);margin-top:48px}
.result-panel p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(34px,5vw,66px);line-height:1.05;max-width:960px;text-wrap:balance}
.result-link{display:inline-flex;margin-top:38px;font-size:13px;font-weight:600;text-decoration:none;padding-bottom:5px;border-bottom:1px solid #9b70ec;color:#c7aff5}
.next-project{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:70px 0;border-top:1px solid var(--line);text-decoration:none}
.next-project span{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#999}
.next-project strong{font-family:'Cormorant Garamond',serif;font-size:clamp(42px,6vw,78px);font-style:italic;line-height:.9}
.service-hero{padding:clamp(80px,12vw,170px) 0 90px;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,8vw,140px);align-items:end}
.service-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(60px,8vw,96px);font-weight:600;font-style:italic;line-height:.88;letter-spacing:-.035em;text-wrap:balance;hyphens:manual;max-width:100%;overflow-wrap:anywhere}
.service-hero p{font-size:clamp(18px,2vw,26px);line-height:1.55;max-width:620px}
.service-band{background:var(--dark);color:#fff;padding:clamp(70px,9vw,130px) 0}
.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 70px}
.service-item{padding:38px 0;border-top:1px solid rgba(255,255,255,.18)}
.service-item h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:38px;margin-bottom:12px}
.service-item p{font-size:14px;line-height:1.8;color:rgba(255,255,255,.56);max-width:540px}
.process{padding:clamp(85px,11vw,150px) 0}
.process h2{font-family:'Cormorant Garamond',serif;font-size:clamp(48px,7vw,92px);font-style:italic;line-height:.9;margin-bottom:65px}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.process-step{padding:28px 25px 50px 0;border-top:1px solid var(--line)}
.process-step b{font-family:'DM Mono',monospace;font-size:9px;color:var(--accent);letter-spacing:2px}
.process-step h3{font-size:17px;margin:30px 0 12px}
.process-step p{font-size:13px;line-height:1.7;color:var(--muted)}
.page-cta{background:#f3f3f4;padding:clamp(70px,10vw,130px) 0}
.page-cta h2{font-family:'Cormorant Garamond',serif;font-size:clamp(54px,9vw,120px);font-style:italic;line-height:.82;max-width:950px;text-wrap:balance}
.page-cta a{display:inline-flex;margin-top:40px;padding:14px 26px;background:var(--ink);color:#fff;text-decoration:none;border-radius:100px;font-size:13px;font-weight:600}
.about-cta{margin-top:120px}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(50px,10vw,160px);padding:clamp(80px,11vw,150px) 0}
.contact-copy h1{font-family:'Cormorant Garamond',serif;font-size:clamp(64px,8vw,96px);font-style:italic;line-height:.86;letter-spacing:-.035em;margin-bottom:44px;overflow-wrap:anywhere}
.contact-copy p{font-size:17px;line-height:1.7;color:#555;max-width:520px}
.contact-direct{display:flex;flex-direction:column;gap:10px;margin-top:34px}
.contact-direct a{text-decoration:none;font-size:14px}
.contact-form{padding-top:10px}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.field label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:#626262}
.field input,.field textarea,.field select{width:100%;border:0;border-bottom:1px solid var(--line);padding:12px 0;font:inherit;background:transparent;color:var(--ink)}
.field textarea{min-height:130px;resize:vertical}
.submit{border:0;background:var(--ink);color:#fff;padding:14px 25px;border-radius:100px;font:600 13px 'Inter',sans-serif;cursor:pointer}
.booking-page{align-items:start}.booking-page .contact-copy{position:sticky;top:120px}.booking-kicker{font:500 9px 'DM Mono',monospace!important;letter-spacing:2px;text-transform:uppercase;color:#6f43bd!important;margin-bottom:24px}.booking-page .contact-copy h1{margin-bottom:36px}.booking-note{display:flex;flex-direction:column;gap:5px;margin-top:54px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.booking-note strong{font:700 13px 'Syne',sans-serif}.booking-note span{font-size:12px;color:#777}.booking-form{display:flex;flex-direction:column;gap:1px;padding-top:0;background:var(--line)}.booking-step{background:#fff;padding:clamp(26px,4vw,48px)}.step-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:30px}.step-head>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#111;color:#fff;font:500 9px 'DM Mono',monospace}.step-head h2{font:800 clamp(20px,2.5vw,29px) 'Syne',sans-serif;letter-spacing:-.6px}.step-head p{margin-top:5px;color:#888;font-size:12px;text-transform:capitalize}.calendar{border:1px solid var(--line);padding:18px}.calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;margin-bottom:22px}.calendar-head strong{text-align:center;text-transform:capitalize;font:700 14px 'Syne',sans-serif}.month-nav{height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;font-size:16px;transition:.2s}.month-nav:hover:not(:disabled){background:#111;color:#fff}.month-nav:disabled{opacity:.22;cursor:not-allowed}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekdays{margin-bottom:8px}.weekdays span{text-align:center;font:500 8px 'DM Mono',monospace;color:#999;text-transform:uppercase}.calendar-days>span{aspect-ratio:1}.calendar-day{position:relative;aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:#171717;font:600 12px 'Inter',sans-serif;cursor:pointer;transition:transform .2s,background .2s,color .2s}.calendar-day:hover:not(:disabled){background:#ede6f9;transform:scale(1.06)}.calendar-day.weekend{color:#7145bd}.calendar-day.today::after{content:'';position:absolute;bottom:5px;left:50%;width:3px;height:3px;border-radius:50%;background:#7145bd;transform:translateX(-50%)}.calendar-day.selected{background:#111;color:#fff;transform:scale(1.05)}.calendar-day.selected::after{background:#fff}.calendar-day:disabled{opacity:.18;cursor:not-allowed}.time-period{display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:start;margin-top:18px}.time-period>span{padding-top:11px;font:500 8px 'DM Mono',monospace;letter-spacing:1.3px;text-transform:uppercase;color:#999}.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.time-slot{min-height:42px;border:1px solid var(--line);border-radius:100px;background:#fff;font:600 11px 'Inter',sans-serif;cursor:pointer;transition:.2s}.time-slot:hover:not(:disabled){border-color:#7145bd;color:#7145bd}.time-slot.selected{background:#7145bd;border-color:#7145bd;color:#fff}.time-slot:disabled{opacity:.3;cursor:not-allowed}.details-step .booking-fields{padding-left:50px}.booking-summary{display:flex;justify-content:space-between;gap:24px;align-items:center;background:#111;color:#fff;padding:25px clamp(26px,4vw,48px)}.booking-summary span{font:500 8px 'DM Mono',monospace;letter-spacing:1.5px;text-transform:uppercase;color:#999}.booking-summary strong{text-align:right;font:700 12px 'Syne',sans-serif}.booking-summary.needs-selection{background:#7145bd}.booking-submit{align-self:flex-start;margin:30px 0 0;padding:16px 30px}.form-note{background:#fff;margin-top:-1px;padding:0 0 6px;color:#888;font-size:11px;line-height:1.6}.booking-form>.booking-submit,.booking-form>.form-note{background:#fff;width:100%;border-radius:0;text-align:left}.booking-form>.booking-submit{padding:22px clamp(26px,4vw,48px);font-size:14px}.booking-form>.booking-submit:hover{background:#7145bd}.booking-form>.form-note{padding:0 clamp(26px,4vw,48px) 28px}
.booking-form>.booking-submit{background:#111;color:#fff}.booking-form>.booking-submit:hover,.booking-form>.booking-submit:focus-visible{background:#7145bd;color:#fff}.booking-form>.form-note{background:#fff;padding-top:18px}
.page-footer{padding:44px clamp(20px,4vw,54px);display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;border-top:1px solid var(--line);font-family:'DM Mono',monospace;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#626262}
.page-footer div{display:flex;gap:22px}.page-footer a{text-decoration:none}
.contact-direct span{font-size:12px;color:#626262}.inquiry-form{max-width:720px}.inquiry-form .field{margin-bottom:28px}.field-hint{color:#626262;font-size:11px;line-height:1.55}.field-error{min-height:1.3em;color:#a21d2f;font-size:12px;line-height:1.4}.hp-field{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important}.consent-row{display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.6;color:#444}.consent-row input{width:18px;height:18px;margin-top:1px;flex:0 0 auto}.inquiry-submit{margin-top:28px;min-height:48px}.inquiry-submit:disabled{opacity:.62;cursor:wait}.form-status{min-height:1.5em;margin-top:16px;font-size:13px;line-height:1.55}.form-status.success{color:#176b3a}.form-status.error{color:#a21d2f}.inquiry-form .form-note{margin-top:12px;color:#626262}.legal-hero,.blog-hero{padding:clamp(70px,10vw,140px) 0 54px}.legal-hero h1,.blog-hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(58px,8vw,96px);font-style:italic;line-height:.88;letter-spacing:-.035em;text-wrap:balance}.legal-body,.article-body{padding:18px 0 clamp(80px,10vw,140px);max-width:820px}.legal-body h2,.article-body h2{font-size:clamp(24px,3vw,34px);margin:50px 0 14px}.legal-body h3,.article-body h3{font-size:20px;margin:34px 0 12px}.legal-body p,.legal-body li,.article-body p,.article-body li{font-size:16px;line-height:1.8;color:#3f3f3f}.legal-body p,.article-body p{margin-bottom:18px}.legal-body ul,.article-body ul{padding-left:22px;margin:0 0 22px}.article-meta{display:flex;flex-wrap:wrap;gap:10px 20px;font:500 10px 'DM Mono',monospace;letter-spacing:1px;text-transform:uppercase;color:#626262;margin:18px 0 34px}.article-body blockquote{margin:34px 0;padding:24px;background:#f3f3f4}.blog-list-page{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-bottom:clamp(80px,10vw,140px)}.blog-entry{display:grid;grid-template-columns:.4fr 1.4fr auto;gap:30px;padding:34px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:start}.blog-entry time{font:500 9px 'DM Mono',monospace;letter-spacing:1px;text-transform:uppercase;color:#626262}.blog-entry h2{font-family:'Cormorant Garamond',serif;font-size:clamp(30px,4vw,48px);font-style:italic;line-height:1;margin-bottom:10px}.blog-entry p{font-size:14px;line-height:1.7;color:#555;max-width:700px}.blog-entry>span{font-size:24px}.relationship-note{margin-top:22px;padding:14px 16px;background:#f3f3f4;color:#444;font-size:13px;line-height:1.6}
@media(max-width:700px){.blog-entry{grid-template-columns:1fr;gap:12px}.blog-entry>span{display:none}}
@media(max-width:800px){.site-links>a:not(.nav-cta){display:none}.case-intro,.service-hero,.contact-grid{grid-template-columns:1fr}.case-title{margin-top:30px}.story-row{grid-template-columns:1fr;gap:24px}.service-list{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr 1fr}.case-meta{margin-top:10px}.service-hero{padding-top:90px}.contact-grid{padding-top:90px}.booking-page .contact-copy{position:static}.booking-page{gap:70px}.time-slots{grid-template-columns:repeat(4,1fr)}}
@media(max-width:520px){.page-shell{width:min(100% - 32px,1320px)}.site-nav{height:66px}.site-logo img{height:50px}.case-title{font-size:clamp(62px,23vw,100px)}.case-lead{font-size:20px}.case-media{width:calc(100% - 24px)}.case-meta,.process-grid{grid-template-columns:1fr}.result-panel{padding:48px 22px}.next-project{align-items:flex-start;flex-direction:column}.page-footer{padding-left:16px;padding-right:16px}.page-footer div{flex-wrap:wrap}.service-hero h1,.contact-copy h1{font-size:clamp(60px,22vw,96px)}.booking-step{padding:24px 16px}.calendar{padding:12px 8px}.calendar-day{font-size:11px}.calendar-day.today::after{bottom:3px}.time-period{grid-template-columns:1fr;gap:8px}.time-period>span{padding-top:0}.time-slots{grid-template-columns:repeat(2,1fr)}.details-step .booking-fields{padding-left:0}.booking-summary{align-items:flex-start;flex-direction:column}.booking-summary strong{text-align:left}.booking-note{margin-top:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
