:root{--leading:24px;--half:12px;--edge:clamp(20px,5vw,72px);--measure:62ch}
html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;text-wrap:pretty}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--edge)}
.nav{position:sticky;top:0;z-index:20;background:var(--color-bg);padding-inline:max(var(--edge),calc((100% - 1200px)/2 + var(--edge)))}
.nav a{white-space:nowrap;text-decoration:none}
.nav .nav-brand{white-space:nowrap}
.nav .btn{white-space:nowrap}
.nav a:hover{color:var(--color-accent-700)}
a{color:var(--color-accent-700)}a:hover{color:var(--color-accent-800)}
.nav{gap:var(--half);align-items:center}
.nav-brand{margin-right:auto;text-decoration:none;color:inherit;white-space:nowrap}
.nav-brand:hover{color:var(--color-accent-700)}
.lang{display:flex;border:1px solid var(--color-divider)}
.lang button{background:none;border:0;padding:8px 11px;cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.08em;color:color-mix(in srgb,var(--color-text) 62%,transparent)}
.lang button+button{border-left:1px solid var(--color-divider)}
.lang button:hover{background:var(--color-accent-100);color:var(--color-text)}
.lang button[aria-pressed=true]{background:var(--color-accent);color:var(--color-bg)}
@media (max-width:560px){.nav{flex-wrap:wrap;padding-block:var(--half)}.nav-brand{flex:1 0 100%;font-size:17px}.nav .btn{flex:1;justify-content:center}}
.kicker{display:block;font-size:13px;line-height:var(--half);letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--color-accent-700);font-feature-settings:"tnum" 1;margin:0 0 var(--half)}
.caption-rule{height:1px;border:0;margin:0 0 calc(var(--leading) - var(--half));background:var(--color-divider)}
.nav .btn-primary,.btn-primary{color:var(--color-bg)}
.nav .btn-primary:hover,.btn-primary:hover{color:var(--color-bg)}
.corner{position:absolute;width:15px;height:15px;color:color-mix(in srgb,var(--color-text) 55%,transparent);pointer-events:none}
.corner::before{content:"";position:absolute;left:7px;top:0;width:1px;height:100%;background:currentColor}
.corner::after{content:"";position:absolute;top:7px;left:0;width:100%;height:1px;background:currentColor}
.corner.tl{top:-8px;left:-8px}.corner.tr{top:-8px;right:-8px}.corner.bl{bottom:-8px;left:-8px}.corner.br{bottom:-8px;right:-8px}
.frame{position:relative;border:1px solid var(--color-divider);padding:var(--leading)}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:.02em;text-transform:uppercase;margin:0;text-box:trim-both cap alphabetic}
p{text-box:trim-both cap alphabetic}
.hero{padding:calc(3.5*var(--leading)) 0 calc(2.5*var(--leading))}
.display{font-size:clamp(44px,6.4vw,88px);line-height:clamp(46px,6.7vw,92px);letter-spacing:.01em;margin-left:-.052em}
.display .line{display:block}
.hero .sub{font-size:17px;line-height:calc(1.25*var(--leading));max-width:var(--measure);margin:calc(1.5*var(--leading) - 1cap) 0 0}
.row{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--leading)}
.hero-meta{display:flex;flex-wrap:wrap;gap:var(--half) var(--leading);margin-top:calc(1.5*var(--leading));font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:color-mix(in srgb,var(--color-text) 62%,transparent)}
.sheet{padding:0 0 calc(2.5*var(--leading))}
.plate{position:relative;border:1px solid var(--color-divider)}
.title-block{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--color-divider)}
.title-block>span{padding:var(--half) var(--leading);font-size:13px;line-height:var(--leading);letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.tb-title{flex:1;min-width:16ch}
.tb-cell{border-left:1px solid var(--color-divider);white-space:nowrap;color:color-mix(in srgb,var(--color-text) 70%,transparent)}
.tiers{display:grid;grid-template-columns:repeat(3,1fr)}
.tier{padding:var(--leading);border-left:1px solid var(--color-divider)}
.tier:first-child{border-left:0}
.tier .no{font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--color-accent-700);font-feature-settings:"tnum" 1}
.tier h3{font-size:26px;line-height:calc(1.25*var(--leading));margin-top:var(--half)}
.tier .who{font-size:15px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 78%,transparent);margin:var(--half) 0 var(--leading)}
.tier ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--half);font-size:15px;line-height:var(--leading)}
.tier li{display:grid;grid-template-columns:14px 1fr;gap:var(--half);align-items:baseline}
.tier li::before{content:"+";color:var(--color-accent);font-weight:600}
.gallery{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.5fr);align-items:start;gap:clamp(20px,3vw,40px);margin-top:calc(var(--leading) - var(--half))}
.gallery figure{margin:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;min-width:0}
.gallery .shotbox{position:relative;min-width:0;overflow:hidden}
.gallery image-slot{width:100%;max-width:100%;height:clamp(230px,25vw,370px);display:block}
.gallery figcaption{font-size:13px;line-height:var(--leading);letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 62%,transparent);margin-top:var(--half)}
.sheet-note{margin:0;padding:var(--half) var(--leading);border-top:1px solid var(--color-divider);font-size:13px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 70%,transparent)}
.section{padding:calc(2.5*var(--leading)) 0}
.split{display:grid;grid-template-columns:minmax(0,9fr) minmax(0,3.4fr);gap:var(--leading) clamp(24px,5vw,88px);align-items:center}
.split h2{font-size:34px;line-height:calc(1.5*var(--leading))}
.split p{font-size:16px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 82%,transparent);margin:calc(var(--leading) - 1cap) 0 0;max-width:52ch}
figure.shot{margin:0;width:100%;max-width:280px;margin-left:auto}
figure.shot image-slot{width:100%;aspect-ratio:4/5}
.creds{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--half) var(--leading);margin-top:calc(1.5*var(--leading));font-size:14px;line-height:var(--leading);border-top:1px solid var(--color-divider);padding-top:var(--leading)}
.creds b{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px;display:block;letter-spacing:.02em}
.vendors{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);margin-top:calc(var(--leading) - var(--half))}
.vendors h4{font-size:19px;line-height:var(--leading)}
.vendors p{font-size:14px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 78%,transparent);margin:var(--half) 0 0}
.quote{background:var(--color-accent-900);color:var(--color-bg);margin-top:calc(2*var(--leading));padding:calc(2*var(--leading)) 0}
.quote .wrap{max-width:1200px}
.quote blockquote{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:clamp(24px,2.6vw,34px);line-height:calc(1.5*var(--leading));max-width:40ch;margin:0;text-indent:-.316em}
.quote figcaption{font-size:15px;line-height:var(--leading);color:color-mix(in srgb,var(--color-bg) 72%,transparent);margin:calc(1.5*var(--leading) - 1cap) 0 0;text-indent:-.885em}
.faq{display:grid;margin-top:var(--leading);border-top:1px solid var(--color-divider)}
.faq>div{border-bottom:1px solid var(--color-divider)}
[data-q]{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:var(--leading);background:none;border:0;cursor:pointer;text-align:left;padding:var(--leading) 0;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:21px;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text)}
[data-q]:hover{color:var(--color-accent-700)}
[data-q]::after{content:"+";color:var(--color-accent);font-size:24px;line-height:1}
[data-q][aria-expanded=true]::after{content:"–"}
[data-q]+div{padding:0 0 var(--leading);font-size:15px;line-height:var(--leading);max-width:70ch;color:color-mix(in srgb,var(--color-text) 82%,transparent)}
.funnel{padding:calc(2.5*var(--leading)) 0 calc(3*var(--leading))}
.pips{display:flex;gap:var(--leading);flex-wrap:wrap;margin:0 0 var(--leading);font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:color-mix(in srgb,var(--color-text) 45%,transparent)}
[data-pip][data-state=now]{color:var(--color-accent-700)}
[data-pip][data-state=done]{color:color-mix(in srgb,var(--color-text) 70%,transparent)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--leading)}
.field label{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:color-mix(in srgb,var(--color-text) 70%,transparent);margin-bottom:6px}
.input,select.input,textarea.input{width:100%;min-height:40px;font-family:var(--font-body);font-size:15px;box-sizing:border-box}
textarea.input{min-height:88px;padding:8px 10px;resize:vertical}
[data-invalid=true]{border-color:var(--color-accent-700);background:var(--color-accent-100)}
[data-error]{grid-column:1/-1;margin:0;font-size:13px;color:var(--color-accent-800)}
.days{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--half);margin-top:var(--half)}
.day{background:none;border:1px solid var(--color-divider);padding:var(--half) 4px;cursor:pointer;display:grid;gap:2px;text-align:center;color:var(--color-text);font-family:var(--font-body)}
.day-dow,.day-mon{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 62%,transparent)}
.day-num{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:26px;line-height:1}
.day:hover{background:var(--color-accent-100)}
.day[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}
.day[aria-pressed=true] .day-dow,.day[aria-pressed=true] .day-mon{color:color-mix(in srgb,var(--color-bg) 80%,transparent)}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--half);margin-top:var(--leading)}
.slot{background:none;border:1px solid var(--color-divider);padding:10px;cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:17px;letter-spacing:.02em;color:var(--color-text)}
.slot:hover{background:var(--color-accent-100)}
.slot[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.recap{margin-top:var(--leading);padding-top:var(--leading);border-top:1px solid var(--color-divider);font-size:15px;line-height:var(--leading)}
.recap dl{display:grid;grid-template-columns:max-content 1fr;gap:6px var(--leading);margin:var(--half) 0 0}
.recap dt{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:color-mix(in srgb,var(--color-text) 62%,transparent);align-self:baseline}
.recap dd{margin:0}
footer{padding:calc(2*var(--leading)) 0;border-top:1px solid var(--color-divider);font-size:13px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 70%,transparent);display:flex;justify-content:space-between;gap:var(--leading);flex-wrap:wrap}
@media (max-width:900px){.gallery{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.gallery figure:first-child{grid-column:1/-1}.tiers,.vendors{grid-template-columns:1fr 1fr}.tier:nth-child(n+3){border-top:1px solid var(--color-divider)}.tier:nth-child(odd){border-left:0}.tier:nth-child(3){grid-column:1/-1}.vendors{gap:clamp(20px,3vw,40px)}.split{grid-template-columns:1fr}figure.shot{order:-1}}
@media (max-width:640px){.gallery{grid-template-columns:1fr}.tiers,.vendors,.grid2,.slots,.creds{grid-template-columns:1fr}.tier{border-left:0}.days{grid-template-columns:repeat(3,1fr)}.quote blockquote,.quote figcaption{text-indent:0}}
.rail{position:fixed;right:0;top:50%;transform:translate(0,-50%);z-index:30;display:flex;align-items:center;gap:10px;padding:var(--leading) 12px;background:var(--color-accent);color:var(--color-bg);border:0;cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:15px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;writing-mode:vertical-rl;transition:background .15s,opacity .25s,transform .25s}
.rail:hover{background:var(--color-accent-600);color:var(--color-bg)}
.rail:active{background:var(--color-accent-700)}
.rail::before{content:"";width:7px;height:7px;flex:none;background:currentColor;border-radius:50%}
.rail[hidden]{display:none}
.rail[data-off]{opacity:0;transform:translate(100%,-50%);pointer-events:none}
@media (max-width:640px){.rail{writing-mode:horizontal-tb;top:auto;bottom:0;right:0;left:0;transform:none;justify-content:center;padding:15px;font-size:14px}.rail[data-off]{transform:translateY(100%)}body{padding-bottom:56px}}
@media (prefers-reduced-motion:reduce){.rail{transition:none}}
footer{padding:calc(2*var(--leading)) 0 calc(1.5*var(--leading));border-top:1px solid var(--color-divider);display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:var(--leading) clamp(24px,4vw,64px)}
footer h5{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 var(--half);color:color-mix(in srgb,var(--color-text) 62%,transparent)}
.f-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:22px;letter-spacing:.02em;text-transform:uppercase;margin:0}
.f-note{font-size:13px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 70%,transparent);margin:var(--half) 0 0;max-width:38ch}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;line-height:var(--leading)}
footer a{color:var(--color-text);text-decoration:none}
footer a:hover{color:var(--color-accent-700)}
.social{display:flex;align-items:center;gap:8px}
.social svg{width:16px;height:16px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none}
.f-base{grid-column:1/-1;border-top:1px solid var(--color-divider);padding-top:var(--leading);display:flex;justify-content:space-between;gap:var(--leading);flex-wrap:wrap;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent)}
.pagehead{padding:calc(3*var(--leading)) 0 calc(1.5*var(--leading))}
.pagehead h1{font-size:clamp(38px,5.2vw,68px);line-height:1.04;letter-spacing:.01em;margin-left:-.05em}
.pagehead p{font-size:17px;line-height:calc(1.25*var(--leading));max-width:58ch;color:color-mix(in srgb,var(--color-text) 82%,transparent);margin:calc(1.2*var(--leading) - 1cap) 0 0}
.cta-strip{margin:calc(2*var(--leading)) 0 0;padding:calc(1.5*var(--leading)) var(--leading);border:1px solid var(--color-divider);display:flex;align-items:center;justify-content:space-between;gap:var(--leading);flex-wrap:wrap;position:relative}
.cta-strip h3{font-size:24px;line-height:calc(1.25*var(--leading))}
.cta-strip p{font-size:14px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 70%,transparent);margin:6px 0 0}
@media (max-width:760px){footer{grid-template-columns:1fr 1fr}.f-brand-col{grid-column:1/-1}}
.lede{font-size:17px;line-height:calc(1.25*var(--leading));max-width:62ch;color:color-mix(in srgb,var(--color-text) 84%,transparent);margin:calc(var(--leading) - 1cap) 0 0}
.svc-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:calc(1.5*var(--leading)) clamp(24px,5vw,72px);align-items:start}
.svc-split h2{font-size:28px;line-height:calc(1.25*var(--leading))}
.bul{list-style:none;margin:calc(var(--leading) - var(--half)) 0 0;padding:0;display:grid;gap:var(--half);font-size:15px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 84%,transparent)}
.bul li{display:grid;grid-template-columns:14px 1fr;gap:var(--half);align-items:baseline}
.bul li::before{content:"+";color:var(--color-accent);font-weight:600}
.spec{border-top:1px solid var(--color-divider);margin:calc(var(--leading) - var(--half)) 0 0}
.spec>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--half) var(--leading);padding:var(--leading) 0;border-bottom:1px solid var(--color-divider)}
.spec dt{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:18px;letter-spacing:.02em;text-transform:uppercase;margin:0}
.spec dd{margin:0;font-size:15px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 82%,transparent)}
.callout{border:1px solid var(--color-divider);padding:var(--leading);position:relative;margin-top:calc(1.5*var(--leading))}
.callout h3{font-size:21px;line-height:calc(1.25*var(--leading))}
.callout p{font-size:15px;line-height:var(--leading);color:color-mix(in srgb,var(--color-text) 82%,transparent);margin:calc(var(--leading) - 1cap) 0 0;max-width:64ch}
.tier-more{display:inline-flex;align-items:center;gap:7px;margin-top:var(--leading);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--color-accent-700)}
.tier-more:hover{color:var(--color-accent-800);gap:11px}
.tier-more{transition:gap .15s}
.sheet-note{display:flex;align-items:center;justify-content:space-between;gap:var(--leading);flex-wrap:wrap}
.svc-nav{display:flex;gap:var(--leading);flex-wrap:wrap;margin-top:calc(1.5*var(--leading));padding-top:var(--leading);border-top:1px solid var(--color-divider);font-size:14px}
.svc-nav a{text-decoration:none}
@media (max-width:860px){.svc-split{grid-template-columns:1fr}.spec>div{grid-template-columns:1fr}}
.kicker-rev{color:color-mix(in srgb,var(--color-bg) 78%,transparent)}
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--leading) clamp(24px,4vw,56px);margin-top:var(--leading);border-top:1px solid color-mix(in srgb,var(--color-bg) 30%,transparent);padding-top:calc(1.5*var(--leading))}
.quotes figure{margin:0}
.quotes blockquote{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:clamp(19px,1.7vw,24px);line-height:calc(1.25*var(--leading));letter-spacing:.02em;margin:0;max-width:34ch}
.quotes figcaption{font-size:13px;line-height:var(--leading);letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--color-bg) 66%,transparent);margin-top:var(--leading)}
@media (max-width:860px){.quotes{grid-template-columns:1fr}}
.wrap{padding-left:var(--edge);padding-right:var(--edge)}
@media (min-width:641px){.wrap{padding-right:calc(var(--edge) + 44px)}}
footer>div{min-width:0}
footer a{overflow-wrap:anywhere}
/* ——— tweak: palette ——— */
html[data-palette]{--color-accent:var(--tw-accent);--color-accent-100:var(--tw-accent-100);--color-accent-600:var(--tw-accent-600);--color-accent-700:var(--tw-accent-700);--color-accent-800:var(--tw-accent-800);--color-accent-900:var(--tw-accent-900);--color-bg:var(--tw-bg);--color-text:var(--tw-ink);--color-divider:var(--tw-rule)}
html[data-palette] body{background:var(--color-bg);color:var(--color-text)}
html[data-palette] .nav{background:var(--color-bg)}
/* ——— tweak: drafting weight ——— */
html[data-weight=drafted] .corner{display:none}
html[data-weight=drafted] .plate,html[data-weight=drafted] .frame,html[data-weight=drafted] .callout,html[data-weight=drafted] .cta-strip{border-color:color-mix(in srgb,var(--color-divider) 70%,transparent)}
html[data-weight=quiet] .corner{display:none}
html[data-weight=quiet] .plate,html[data-weight=quiet] .frame,html[data-weight=quiet] .callout,html[data-weight=quiet] .cta-strip{border:0;padding-left:0;padding-right:0}
html[data-weight=quiet] .title-block{border-bottom:1px solid var(--color-divider)}
html[data-weight=quiet] .title-block .tb-cell{border-left:0;padding-left:0}
html[data-weight=quiet] .tier{border-left:0;padding-left:0;padding-right:clamp(16px,2vw,32px)}
html[data-weight=quiet] .tiers{gap:0 clamp(20px,3vw,44px)}
html[data-weight=quiet] .sheet-note{border-top:1px solid var(--color-divider);padding-left:0;padding-right:0}
html[data-weight=quiet] .spec>div{border-bottom:0;padding-bottom:0}
html[data-weight=quiet] .spec{border-top:0}
html[data-weight=quiet] .cta-strip{border-top:1px solid var(--color-divider);padding-top:calc(1.5*var(--leading))}
html[data-weight=quiet] .caption-rule{background:none}
html[data-weight=quiet] .section,html[data-weight=quiet] .sheet{padding-top:calc(3*var(--leading))}
/* ——— tweak: voice ——— */
html[data-voice=warm] .display,html[data-voice=warm] .quotes blockquote,html[data-voice=warm] .quote blockquote{text-transform:none;letter-spacing:-.015em;margin-left:-.03em}
html[data-voice=warm] h2,html[data-voice=warm] h3,html[data-voice=warm] .pagehead h1{text-transform:none;letter-spacing:-.01em}
html[data-voice=warm] .display{font-size:clamp(40px,5.6vw,76px);line-height:1.06}
html[data-voice=warm] .sub{font-size:18px}
html[data-voice=bold] .display{font-size:clamp(52px,8vw,116px);line-height:.96;letter-spacing:-.005em}
html[data-voice=bold] .kicker,html[data-voice=bold] .hero-meta{letter-spacing:.16em}
html[data-voice=bold] .sub{font-size:19px;max-width:48ch}

/* production: filled image slots rendered as plain images */
.slot-img{display:block;width:100%;object-fit:cover}
.gallery .slot-img{height:clamp(230px,25vw,370px)}
figure.shot .slot-img{aspect-ratio:4/5}
