
/* Peak 2.0. Warm ivory and charcoal, restrained gold. Oversized light serif display (Newsreader), quiet grotesk body (Hanken).
   Asymmetric 12-column compositions, hairlines instead of boxes, one drawn gold ridgeline, photographs revealed as they arrive. Privé is the same system after dark. */
:root{
--bg:#FBF8F2;--paper:#F4EFE5;--fg:#1E1E20;--muted:#6A665C;--line:#E2DACB;--ink-faint:#D6CEBE;
--accent:#C9A84C;--accent-ink:#8C6B25;--on-accent:#1E1E20;
--deep:#1B1A18;--deep-fg:#F6F1E7;--deep-muted:#B9B1A1;--deep-line:#3A372F;--gold:#C9A84C;
--display:'Newsreader',Georgia,'Times New Roman',serif;--body:'Hanken Grotesk','Helvetica Neue',Arial,sans-serif;
--gut:clamp(20px,4vw,48px);--max:1240px;--hh:84px}
body.prive{--paper:#15130E;--bg:#0B0A08;--fg:#F3EEE2;--muted:#BBB09A;--line:#3A3322;--ink-faint:#4A4230;--accent:#C9A24B;--accent-ink:#C9A24B;--on-accent:#0B0A08;
--deep:#050403;--deep-fg:#F3EEE2;--deep-muted:#BBB09A;--deep-line:#3A3322;--display:'Cormorant Garamond',Georgia,'Times New Roman',serif;--body:'Montserrat','Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17.5px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
h1,h2,h3,h4{font-family:var(--display);font-weight:300;line-height:1.02;letter-spacing:-.025em;margin:0;text-wrap:balance;font-optical-sizing:auto}
body.prive h1,body.prive h2,body.prive h3{font-weight:500;letter-spacing:-.005em}
h1{font-size:clamp(3rem,8vw,7.6rem);letter-spacing:-.035em;line-height:.96}
h2{font-size:clamp(2.2rem,5.2vw,4.6rem)}
h3{font-size:1.55rem;font-weight:400;line-height:1.15;letter-spacing:-.012em}
p{margin:0 0 1em}
.lede{font-size:clamp(1.12rem,1.5vw,1.32rem);line-height:1.6;color:var(--muted);max-width:46ch}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:.86rem;letter-spacing:.02em;color:var(--accent-ink);font-weight:500;margin:0 0 1.6rem}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
.tm{font-size:.5em;vertical-align:super;letter-spacing:0}
.note{font-size:.9rem;color:var(--muted)}
/* header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px)}
header.site::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);opacity:.7}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--hh)}
.logo{display:flex;align-items:center;text-decoration:none;min-width:0}
.logo .lg{height:58px;width:auto;display:block}
.logo .lg-cream{display:none}
body.prive header .logo .lg-navy{display:none}body.prive header .logo .lg-cream{display:block}
nav.main{display:flex;align-items:center;gap:4px}
nav.main>a,nav.main summary{font-size:.94rem;text-decoration:none;padding:10px 13px;cursor:pointer;list-style:none;font-weight:500;white-space:nowrap;position:relative}
nav.main summary::-webkit-details-marker{display:none}
nav.main summary::after{content:"";display:inline-block;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:9px}
nav.main>a::before{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
nav.main>a:hover::before,nav.main a[aria-current]::before{transform:scaleX(1)}
nav.main details{position:relative}
.drop{position:absolute;left:0;top:calc(100% + 8px);min-width:260px;background:var(--bg);border:1px solid var(--line);padding:10px;display:grid;box-shadow:0 30px 60px -30px rgba(30,30,32,.35)}
.drop:before{content:"";position:absolute;left:-12px;right:-12px;top:-16px;height:16px}
.drop a{padding:12px 14px;text-decoration:none;font-size:.95rem}
.drop a:hover{background:var(--paper)}
.drop a span{display:block;font-size:.8rem;color:var(--muted)}
a.pill{border:1px solid var(--accent);padding:9px 20px!important;margin-left:10px;transition:background .3s,color .3s}
a.pill::before{display:none}
a.pill:hover{background:var(--accent);color:var(--on-accent)}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--fg);padding:9px 16px;font:inherit;font-size:.9rem;cursor:pointer}
@media (max-width:1060px){
.menu-btn{display:block}
nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:14px var(--gut) 24px;gap:2px;max-height:calc(100vh - 90px);overflow:auto}
nav.main.open{display:flex}
nav.main>a::before{display:none}
.drop{position:static;box-shadow:none;border:0;padding:0 0 0 12px;min-width:0}
a.pill{text-align:center;margin:10px 0 0}}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 32px;font-weight:500;font-size:.96rem;letter-spacing:.015em;text-decoration:none;border:1px solid var(--fg);background:transparent;color:var(--fg);cursor:pointer;font-family:var(--body);transition:background .35s,color .35s,border-color .35s}
.btn:hover{background:var(--fg);color:var(--bg)}
.btn.solid{background:var(--fg);color:var(--bg)}
.btn.solid:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.prive .btn.solid{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.prive .btn.solid:hover{background:transparent;color:var(--accent)}
.prive .btn:hover{background:var(--fg);color:var(--bg)}
.tlink{display:inline-block;text-decoration:none;font-weight:500;padding-bottom:4px;background:linear-gradient(var(--accent),var(--accent)) 0 100%/100% 1px no-repeat;transition:background-size .5s}
.tlink:hover{background-size:0 1px;background-position:100% 100%}
.row{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center}
/* sections */
section.s{padding-block:clamp(80px,11vw,168px)}
section.s.tint{background:var(--paper)}
section.s.deep{background:var(--deep);color:var(--deep-fg)}
section.s.deep .lede,section.s.deep p.muted,section.s.deep .note{color:var(--deep-muted)}
section.s.deep .eyebrow{color:var(--accent)}
section.s.deep .btn{border-color:var(--deep-fg);color:var(--deep-fg)}
section.s.deep .btn:hover{background:var(--deep-fg);color:var(--deep)}
section.s.deep .btn.solid{background:var(--deep-fg);color:var(--deep)}
section.s.deep .btn.solid:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px);margin-bottom:clamp(48px,7vw,104px)}
.head>div{grid-column:1/10}
.head>p{grid-column:6/13;margin:clamp(20px,2.4vw,36px) 0 0;max-width:48ch}
.head>p.lede{justify-self:start}
.head>form.f,.head>div:nth-child(2){grid-column:6/13;margin-top:clamp(20px,2.4vw,36px);max-width:none}
.head>form.f{max-width:640px}
@media (max-width:820px){.head>div,.head>p,.head>form.f,.head>div:nth-child(2){grid-column:1/-1}}
/* page heads */
.pagehead{position:relative;padding-block:clamp(72px,10vw,150px) clamp(72px,9vw,128px);background:var(--bg)}
.pg-art{display:none}
.pagehead .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px)}
.pagehead .eyebrow,.pagehead h1{grid-column:1/-1}
.pagehead h1{font-size:clamp(2.9rem,7.6vw,7rem);max-width:14ch}
.pagehead .lede{grid-column:6/13;margin-top:clamp(28px,3.4vw,52px)}
@media (max-width:820px){.pagehead .lede{grid-column:1/-1}}
.pagehead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 64' preserveAspectRatio='none'%3E%3Cpath vector-effect='non-scaling-stroke' d='M0 62 L150 48 L240 56 L420 16 L520 40 L650 26 L760 54 L930 14 L1040 44 L1200 30' fill='none' stroke='%23C9A84C' stroke-width='1'/%3E%3C/svg%3E") 0 100%/100% 100% no-repeat;opacity:.9}
.pagehead + section.s{padding-top:clamp(72px,9vw,128px)}
/* home hero */
.hero2{position:relative;min-height:max(640px,calc(100svh - var(--hh)));display:flex;flex-direction:column;overflow:hidden}
.hero2 .tx{position:relative;z-index:3;flex:1;width:100%;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(40px,7vh,88px) clamp(28px,4vh,48px)}
.hero2 h1{font-size:clamp(3.4rem,11.2vw,11rem);max-width:9.5em}
.hero2 .lede{margin:clamp(24px,3.4vh,40px) 0 clamp(26px,4vh,44px);max-width:36ch}
.hero2 .ph2{position:absolute;z-index:1;right:0;top:0;bottom:0;width:min(38vw,540px);overflow:hidden;clip-path:inset(0 0 0 0);animation:wipe 1.5s cubic-bezier(.7,0,.2,1) .15s both}
@keyframes wipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.hero2 .ph2 .pi{position:absolute;left:0;right:0;top:-6%;height:112%;will-change:transform}
.hero2 .ph2 img{width:100%;height:100%;object-fit:cover;object-position:8% 50%;display:block;animation:settle 2.6s cubic-bezier(.2,.7,.2,1) .15s both}
@keyframes settle{from{transform:scale(1.18)}to{transform:scale(1)}}
.hero2 .from{position:relative;z-index:3;margin:0 0 6px;font-size:.88rem;color:var(--muted);max-width:min(62ch,calc(100% - min(38vw,540px) - 24px))}
.hero2 .ridge{position:relative;z-index:4;display:block;width:100%;height:clamp(70px,11vh,120px);pointer-events:none}
.hero2 .ridge path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 3.2s cubic-bezier(.45,.1,.2,1) .7s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em .06em .1em;margin:-.04em -.06em -.1em}
.w>span{display:inline-block;animation:rise 1.1s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d)*110ms + 160ms)}
@keyframes rise{from{transform:translateY(108%)}to{transform:none}}
.hero2 .fade{animation:fadeup 1s ease both;animation-delay:1.05s}
@keyframes fadeup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (max-width:820px){
.hero2{min-height:0}
.hero2 .ph2{position:relative;width:auto;height:min(78vw,460px);margin:0 0 -1px;order:2}
.hero2 .tx{padding-bottom:36px}
.hero2 .from{max-width:none;order:3;padding:18px var(--gut) 4px}
.hero2 .ridge{order:4}}
/* ink-in statement */
.stmt{font-family:var(--display);font-weight:300;font-size:clamp(2.4rem,6vw,5.6rem);line-height:1.06;letter-spacing:-.03em;max-width:17ch;margin:0 0 clamp(40px,6vw,88px);text-wrap:balance}
.js .stmt .iw{color:var(--ink-faint);transition:color .6s}
.js .stmt .iw.on{color:var(--fg)}
.two-col{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px);row-gap:40px}
.two-col>.l{grid-column:1/6}.two-col>.r{grid-column:7/13}
@media (max-width:820px){.two-col>.l,.two-col>.r{grid-column:1/-1}}
.pr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3.4vw,48px) clamp(24px,3vw,44px)}
.pr div{border-top:1px solid var(--line);padding-top:18px}
.pr h3{font-size:1.4rem;margin-bottom:.45rem}
.pr p{color:var(--muted);margin:0;font-size:.98rem;line-height:1.55}
@media (max-width:560px){.pr{grid-template-columns:1fr}}
/* audience index */
.idx{border-top:1px solid var(--fg)}
.idx a.r{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr) 64px;gap:clamp(16px,3vw,40px);align-items:center;padding:clamp(30px,4.4vw,60px) 0;border-bottom:1px solid var(--line);text-decoration:none;position:relative}
.idx a.r::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--accent);transition:width .8s cubic-bezier(.2,.7,.2,1)}
.idx a.r:hover::after{width:100%}
.idx h3{font-size:clamp(2.6rem,6.4vw,6rem);font-weight:300;letter-spacing:-.035em;line-height:.98;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.idx a.r:hover h3{transform:translateX(clamp(8px,1.4vw,20px))}
.idx .k{display:block;font-family:var(--body);font-size:.98rem;color:var(--muted);margin-top:.9rem;letter-spacing:0;font-weight:400}
.idx ul{list-style:none;margin:0;padding:0;color:var(--muted);display:grid;gap:7px;font-size:1rem;line-height:1.45}
.idx .go{justify-self:end;width:34px;height:1px;background:var(--accent);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.idx a.r:hover .go{width:64px}
.idx.sm h3{font-size:clamp(1.9rem,3.6vw,3rem)}
@media (max-width:820px){.idx a.r{grid-template-columns:minmax(0,1fr) 40px}.idx ul{grid-column:1/-1}.idx .go{grid-row:1;grid-column:2}}
/* results numerals */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px)}
.stats>div{border-top:1px solid var(--line);padding-top:22px}
.stats>div:nth-child(2){margin-top:clamp(0px,6vw,88px)}.stats>div:nth-child(3){margin-top:clamp(0px,12vw,176px)}
.stats b{display:block;font-family:var(--display);font-size:clamp(3.4rem,7.8vw,7.2rem);line-height:.95;color:var(--fg);font-weight:300;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums}
.stats span{display:block;margin-top:16px;color:var(--muted);font-size:1rem;max-width:26ch}
section.s.deep .stats>div{border-color:var(--deep-line)}section.s.deep .stats b{color:var(--deep-fg)}section.s.deep .stats span{color:var(--deep-muted)}
@media (max-width:760px){.stats{grid-template-columns:1fr}.stats>div:nth-child(n){margin-top:0}}
/* grids and items */
.grid{display:grid;gap:clamp(32px,4vw,56px) clamp(24px,3vw,44px)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.item{border-top:1px solid var(--line);padding-top:20px}
.item h3{margin-bottom:.55rem}
.item p{color:var(--muted);margin:0;font-size:1rem;line-height:1.6}
section.s.deep .item{border-color:var(--deep-line)}section.s.deep .item p{color:var(--deep-muted)}
.steps{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:clamp(20px,3vw,44px);position:relative}
.step{border-top:1px solid var(--accent);padding-top:22px}
.step .n{font-family:var(--display);font-size:clamp(3.6rem,6vw,5.6rem);font-weight:300;line-height:1;color:var(--fg);letter-spacing:-.04em;margin-bottom:.5rem}
.step h3{margin-bottom:.4rem}
.step p{margin:0;color:var(--muted);font-size:1rem}
@media (max-width:900px){.steps{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.steps.six{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-columns:auto;row-gap:clamp(28px,4vw,48px)}
.hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px)}
.hc{padding:clamp(20px,2.4vw,30px);border-top:1px solid var(--accent)}
.hc h3{font-family:var(--display);font-weight:500;font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.2;margin:0 0 .5rem}
.hc p{margin:0;color:var(--muted);font-size:.97rem;line-height:1.6}
.hc.core{background:var(--fg);color:var(--bg);border-top:0;display:flex;flex-direction:column;justify-content:center}
.hc.core .k{display:block;color:var(--accent);font-size:.95rem;font-weight:500;margin-bottom:.8rem}
.hc.core h3{font-size:clamp(1.5rem,2.3vw,2.1rem);color:var(--bg)}
.hc.core p{color:rgba(251,248,242,.82)}
@media (max-width:900px){.hub{grid-template-columns:repeat(2,minmax(0,1fr))}.hc.core{grid-column:1/-1;order:-1}}
@media (max-width:560px){.hub{grid-template-columns:1fr}}
.six-wrap{margin-top:clamp(40px,6vw,80px)}
@media (max-width:900px){.steps.six{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps.six{grid-template-columns:1fr}}
.cmp{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.cmp th,.cmp td{text-align:left;padding:16px 14px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.cmp th{font-size:.84rem;color:var(--muted);font-weight:500}
.cmp td.k{font-family:var(--display);font-size:1.5rem}
.scroll{overflow-x:auto}
.quote{padding:26px 0 0;position:relative;margin:0}
.quote::before{content:"";position:absolute;left:0;top:0;width:34px;height:1px;background:var(--accent)}
.quote p{font-family:var(--display);font-weight:300;font-size:clamp(1.3rem,2vw,1.62rem);line-height:1.36;margin:0 0 1rem;letter-spacing:-.012em}
.quote cite{font-style:normal;font-size:.9rem;color:var(--muted)}
.quote.big p{font-size:clamp(2rem,4.2vw,3.7rem);line-height:1.12;letter-spacing:-.03em;max-width:30ch}
.quote.big{padding-top:34px}
.tag{display:inline-block;font-size:.84rem;color:var(--accent-ink);font-weight:500;letter-spacing:.01em}
/* team */
.person{border-top:1px solid var(--line);padding-top:18px}
.person .av{width:60px;height:60px;border-radius:50%;background:var(--paper);display:grid;place-items:center;font-family:var(--display);font-weight:400;font-size:1.3rem;color:var(--accent-ink);margin-bottom:16px}
.person h3{font-size:1.35rem}
.person .t{font-size:.9rem;color:var(--accent-ink);font-weight:500;margin:.3rem 0 .5rem}
.person p{font-size:.96rem;color:var(--muted);margin:0}
.person .loc{font-size:.84rem;color:var(--muted);margin-top:8px}
.roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,4vw,56px)}
@media (max-width:900px){.roster{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.roster{grid-template-columns:1fr}}
.roster .m{padding:24px 0;border-top:1px solid var(--line)}
.roster h3{font-size:1.4rem}.roster .t{margin:.35rem 0 0;font-size:.95rem;color:var(--muted)}.roster .loc{margin:.35rem 0 0;font-size:.85rem;color:var(--accent-ink);font-weight:500}
.founder{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:center}
@media (max-width:820px){.founder{grid-template-columns:1fr}.founder .ph.round{max-width:170px}}
.founder .mono{aspect-ratio:4/5;max-height:440px;background:var(--paper);display:grid;place-items:center;font-family:var(--display);font-size:6rem;color:var(--accent-ink);font-weight:300}
/* media */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.chip{border:1px solid var(--line);background:none;color:var(--fg);padding:9px 18px;font:inherit;font-size:.9rem;cursor:pointer;transition:background .3s,color .3s}
.chip:hover{border-color:var(--fg)}
.chip[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ep{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line);background:transparent}
.ep .thumb{aspect-ratio:16/9;background:var(--deep);color:var(--deep-fg);display:flex;flex-direction:column;justify-content:space-between;padding:20px;position:relative;overflow:hidden}
.ep .thumb small{font-size:.82rem;color:var(--accent);font-weight:500}
.ep .thumb strong{font-family:var(--display);font-weight:300;font-size:1.35rem;line-height:1.15;max-width:18ch;position:relative;z-index:1}
.ep .meta{padding:18px 0 0}
.ep .meta h3{font-size:1.25rem;margin-bottom:.4rem}
.ep .meta p{font-size:.95rem;color:var(--muted);margin:0 0 .8rem}
.ep .meta .by{font-size:.86rem;color:var(--accent-ink);font-weight:500}
.series{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);padding-block:clamp(48px,7vw,96px)}
@media (max-width:820px){.series{grid-template-columns:1fr}}
.upc{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,5vw,72px);align-items:center}@media (max-width:820px){.upc{grid-template-columns:1fr}}
[hidden]{display:none!important}
.soon .tag{justify-self:start}
.artc{text-align:left;font:inherit;color:inherit;cursor:pointer;align-content:start}
button.artc{width:100%;background:none;border:0;border-top:1px solid var(--line)}
a.artc{text-decoration:none}
.card{display:grid;gap:12px;border-top:1px solid var(--line);padding:22px 0 0;background:transparent}
.card .tag{justify-self:start}
.card h3{font-size:1.45rem;transition:color .3s}
.card:hover h3{color:var(--accent-ink)}
.card p{margin:0;color:var(--muted);font-size:.98rem}
.card .more{font-size:.88rem;color:var(--accent-ink);font-weight:500;margin-top:4px}
.rd{border:0;padding:0;max-width:min(780px,94vw);width:100%;max-height:90vh;background:var(--bg);color:var(--fg);box-shadow:0 50px 100px -30px rgba(20,20,20,.55)}
.rd::backdrop{background:rgba(27,26,24,.7);backdrop-filter:blur(3px)}
.rdin{padding:clamp(24px,5vw,56px);position:relative;overflow-y:auto;max-height:90vh}
.rdin h2{font-size:clamp(1.9rem,3.8vw,2.8rem);line-height:1.08;margin:.2rem 0 .6rem}
.rdx{position:sticky;top:0;float:right;border:1px solid var(--line);background:var(--bg);color:var(--fg);width:42px;height:42px;font-size:1.5rem;line-height:1;cursor:pointer}
.prose{font-size:1.06rem;line-height:1.75}.prose p{margin:0 0 1.1em}.prose h2,.prose h3{font-size:1.5rem;margin:1.8em 0 .5em}.prose ul,.prose ol{margin:0 0 1.2em 1.2em;padding:0}.prose li{margin:.3em 0}.prose blockquote{margin:1.4em 0;padding:.2em 0 .2em 1.2em;border-left:1px solid var(--accent);font-family:var(--display);font-size:1.25rem;font-weight:300}
.rdf{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.soon{border:1px dashed var(--ink-faint);padding:28px;display:grid;gap:10px;align-content:start}
.soon h3{font-size:1.25rem}.soon p{margin:0;color:var(--muted);font-size:.96rem}
/* forms */
form.f{display:grid;gap:18px;max-width:640px}
form.f label{display:grid;gap:7px;font-size:.88rem;font-weight:500}
form.f input,form.f select,form.f textarea{font:inherit;font-size:1rem;padding:14px 0;border:0;border-bottom:1px solid var(--ink-faint);background:transparent;color:var(--fg);border-radius:0;width:100%;min-width:0;transition:border-color .3s}
form.f input:focus,form.f select:focus,form.f textarea:focus{outline:none;border-bottom-color:var(--accent-ink)}
form.f textarea{min-height:120px;resize:vertical}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media (max-width:560px){.two{grid-template-columns:1fr}}
.ok{border-left:1px solid var(--accent);padding:12px 16px;font-size:.96rem}
.copy{display:inline-flex;gap:12px;align-items:center;flex-wrap:wrap}
.copy button{border:1px solid var(--line);background:none;color:var(--fg);padding:4px 12px;font:inherit;font-size:.82rem;cursor:pointer}
/* prive */
.prive .hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 75% 20%,#2a2211 0%,var(--bg) 62%)}
.prive .hero .wrap{position:relative;padding-block:clamp(80px,12vw,160px) clamp(72px,10vw,130px)}
.prive .hero h1{max-width:12ch}
.prive .hero .lede{margin:1.6rem 0 2.2rem;max-width:min(46ch,48%)}@media (max-width:900px){.prive .hero .lede{max-width:60ch}}
.prive .heroimg{position:absolute;right:var(--gut);top:50%;transform:translateY(-50%);width:min(40vw,520px);box-shadow:0 30px 70px -20px rgba(0,0,0,.8),0 0 0 1px rgba(201,162,75,.35)}
@media (max-width:900px){.prive .heroimg{display:none}}
.prive .plogo{display:block;width:min(420px,70vw);height:auto;margin:0 0 1.4rem}
.prive .pagehead::after{display:block}
.tease{width:100%;display:block;box-shadow:0 30px 70px -24px rgba(0,0,0,.8),0 0 0 1px rgba(201,162,75,.35)}
.gal{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.gal figure{margin:0;display:grid;gap:10px;align-content:start}
.gal img{width:100%;height:100%;object-fit:cover;display:block;box-shadow:0 0 0 1px rgba(201,162,75,.25)}
.gal figcaption{font-size:.84rem;color:var(--muted)}
.gal figure:nth-child(1){grid-column:span 4}.gal figure:nth-child(2){grid-column:span 2}
.gal figure:nth-child(3){grid-column:span 3}.gal figure:nth-child(4){grid-column:span 3}
@media (max-width:700px){.gal{grid-template-columns:1fr 1fr}.gal figure:nth-child(1){grid-column:1/-1}.gal figure:nth-child(2),.gal figure:nth-child(3),.gal figure:nth-child(4){grid-column:span 1}.gal figure:nth-child(4){grid-column:1/-1}}
.pillar{border-top:1px solid var(--accent);padding-top:22px}
.pillar h3{font-size:1.1rem;color:var(--accent);font-family:var(--body);font-weight:500;letter-spacing:.04em}
.pillar .tagline{font-family:var(--display);font-size:2rem;margin:.6rem 0 1.1rem;line-height:1.1;font-weight:300}
.pillar ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:var(--muted);font-size:.96rem}
/* footer */
footer.site{background:var(--deep);color:var(--deep-fg);padding-block:clamp(72px,9vw,128px) 40px}
footer.site .cols{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:44px;margin-bottom:64px}
@media (max-width:820px){footer.site .cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){footer.site .cols{grid-template-columns:1fr}}
footer.site h4{font-family:var(--body);font-size:.88rem;color:var(--accent);margin-bottom:16px;font-weight:500;letter-spacing:.02em}
footer.site a{display:block;text-decoration:none;color:var(--deep-muted);padding:4px 0;font-size:.96rem;transition:color .3s}
footer.site a:hover{color:var(--deep-fg)}
footer.site p{color:var(--deep-muted);font-size:.96rem}
footer.site .logo .lg{display:block!important}
footer .legal{border-top:1px solid var(--deep-line);padding-top:22px;font-size:.84rem;color:var(--deep-muted);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
.cookie{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;max-width:500px;background:var(--deep);color:var(--deep-fg);padding:16px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:.88rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.5)}
.cookie p{margin:0;flex:1 1 220px;color:var(--deep-muted)}
.cookie button{background:var(--accent);color:var(--on-accent);border:0;padding:9px 20px;font:inherit;font-weight:500;cursor:pointer}
.progress{position:fixed;left:0;top:0;height:2px;width:0;background:var(--accent);z-index:70}
/* closing statement */
.cta{background:var(--bg);position:relative}
.cta h2{font-size:clamp(2.9rem,8.4vw,8rem);max-width:12ch;letter-spacing:-.04em;line-height:.96}
.cta .r{margin-top:clamp(32px,5vw,64px);margin-left:auto;max-width:44ch}
@media (min-width:821px){.cta .r{margin-right:clamp(0px,8vw,120px)}}
/* pictures */
.ph{margin:0;position:relative;overflow:hidden;background:var(--paper)}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 16px;color:#FBF8F2;font-size:.88rem;background:linear-gradient(to top,rgba(24,22,18,.55),rgba(24,22,18,0))}
.ph.tall{aspect-ratio:4/5}.ph.wide{aspect-ratio:16/9}.ph.sq{aspect-ratio:1}
.ph.tall img,.ph.wide img{position:absolute;inset:0}
.ph.round{border-radius:50%;aspect-ratio:1;max-width:280px;width:100%}
.js .ph.rv{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.4s cubic-bezier(.7,0,.2,1)}
.js .ph.rv.in{clip-path:inset(0 0 0 0)}
.js .ph.rv img{transform:scale(1.12);transition:transform 2.2s cubic-bezier(.2,.7,.2,1)}
.js .ph.rv.in img{transform:scale(1)}
.js .ph.round.rv,.js .ph.round.rv.in{clip-path:none}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:center}
.split.r{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
@media (max-width:820px){.split,.split.r{grid-template-columns:1fr}}
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
@media (max-width:700px){.duo{grid-template-columns:1fr}}
.duo .ph{aspect-ratio:3/2}
.mosaic{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(12px,1.8vw,24px)}
.mosaic .ph{aspect-ratio:4/3}
.mosaic .a{grid-column:span 3}.mosaic .b{grid-column:span 3}.mosaic .c{grid-column:span 2}
@media (max-width:700px){.mosaic .a,.mosaic .b{grid-column:1/-1}.mosaic .c{grid-column:span 3}}
/* editorial collage for the field photographs */
.collage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,28px);row-gap:clamp(12px,2vw,28px);align-items:start}
.collage .c1{grid-column:1/8}.collage .c1 .ph{aspect-ratio:4/3}
.collage .c2{grid-column:9/13;margin-top:clamp(40px,8vw,128px)}.collage .c2 .ph{aspect-ratio:3/4}
.collage .c3{grid-column:2/7;margin-top:clamp(-120px,-6vw,-24px)}.collage .c3 .ph{aspect-ratio:4/3}
.collage .c4{grid-column:8/13;margin-top:clamp(24px,5vw,72px)}.collage .c4 .ph{aspect-ratio:3/2}
.collage .ph img{position:absolute;inset:0}
@media (max-width:760px){.collage{grid-template-columns:1fr 1fr}.collage .c1{grid-column:1/-1}.collage .c2,.collage .c3,.collage .c4{grid-column:span 1;margin-top:0}.collage .c4{grid-column:1/-1}}
.asym{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px);align-items:start}
.show{position:relative}
.show img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:showfade 15s linear infinite;animation-delay:calc(var(--i)*5s)}
.js .show.ph.rv img,.js .show.ph.rv.in img{transform:none;transition:none}
@keyframes showfade{0%{opacity:0}7%{opacity:1}33.3%{opacity:1}40.3%{opacity:0}100%{opacity:0}}
.asym .im .ph.show{aspect-ratio:12/7}
.show:after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(to top,rgba(20,18,14,.78),rgba(20,18,14,0));pointer-events:none;z-index:1}
.showcap{position:absolute;left:clamp(18px,2.4vw,32px);right:clamp(18px,2.4vw,32px);bottom:clamp(16px,2.2vw,28px);z-index:2;color:#fff}
.showcap span{display:block;font-family:var(--display);font-weight:400;font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.15}
.showcap small{display:block;margin-top:.35rem;font-size:.9rem;opacity:.88}
@media (prefers-reduced-motion:reduce){.show img{animation:none}.show img:first-child{opacity:1}}
.asym .im{grid-column:1/8}.asym .im .ph{aspect-ratio:5/4}
.asym .tx2{grid-column:9/13;padding-top:clamp(0px,9vw,140px)}
.asym.rev .im{grid-column:6/13;grid-row:1}.asym.rev .tx2{grid-column:1/5;grid-row:1}
.asym h2{font-size:clamp(2.1rem,4vw,3.6rem)}
@media (max-width:820px){.asym .im,.asym .tx2,.asym.rev .im,.asym.rev .tx2{grid-column:1/-1;grid-row:auto;padding-top:0}.asym .tx2{margin-top:32px}}
/* full-bleed cinematic band */
.band{position:relative;min-height:clamp(480px,88vh,860px);overflow:hidden;display:grid;align-items:end;color:#FBF8F2;background:#2a2a2a}
.band .art{position:absolute;inset:0;overflow:hidden}
.band .bandimg{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;object-position:50% 40%;will-change:transform}
.band .bandshade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,20,24,.18) 0%,rgba(20,20,24,.05) 40%,rgba(18,18,20,.66) 100%)}
.band .wrap{width:100%;position:relative;padding-block:clamp(48px,8vw,104px);display:grid;gap:28px;justify-items:start}
.band .q{font-family:var(--display);font-weight:300;font-size:clamp(2.2rem,5.6vw,5.4rem);line-height:1;max-width:16ch;margin:0;letter-spacing:-.035em}
.band .eyebrow{color:#FBF8F2;margin:0}.band .eyebrow::before{background:#FBF8F2}
.band .btn{border-color:#FBF8F2;color:#FBF8F2}.band .btn:hover{background:#FBF8F2;color:#1E1E20}
.band .btn.solid{background:#FBF8F2;color:#1E1E20}.band .btn.solid:hover{background:var(--accent);border-color:var(--accent)}
/* case studies and cost figures */
.cs{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:start}
@media (max-width:900px){.cs{grid-template-columns:1fr}}
.cs .big{font-family:var(--display);font-size:clamp(5rem,12vw,10rem);line-height:.9;color:var(--fg);font-weight:300;margin:.2rem 0 1.2rem;letter-spacing:-.05em}
.cs .tbl{border-top:1px solid var(--fg);padding-top:18px}
.cs .tbl h3{font-size:1rem;font-family:var(--body);font-weight:500;color:var(--accent-ink);margin:0 0 10px}
.cs .r{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,.7fr);gap:10px;align-items:center;padding:14px 0}
.cs .r.h{font-size:.84rem;color:var(--muted);padding-top:0}
.cs .r b{font-weight:600}.cs .r .a{color:var(--accent-ink);font-weight:600}
.cs .cb{grid-column:1/-1;height:3px;background:var(--line);overflow:hidden;margin-top:-2px}
.cs .cb i{display:block;height:100%;background:var(--accent);width:0;transition:width 1.6s cubic-bezier(.2,.7,.2,1)}
.rv.in .cb i{width:var(--w)}
.cs .r.t{margin-top:10px;background:color-mix(in srgb,var(--accent) 14%,transparent);padding-inline:12px}
@media (max-width:520px){.cs .r{font-size:.88rem;gap:6px}}
.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,6vw,88px) clamp(32px,6vw,96px)}
@media (max-width:820px){.cases{grid-template-columns:1fr}}
.case{border-top:1px solid var(--fg);padding-top:22px;display:grid;gap:16px;align-content:start}
.case:nth-child(even){margin-top:clamp(0px,7vw,104px)}
@media (max-width:820px){.case:nth-child(even){margin-top:0}}
.case .k{font-size:.9rem;color:var(--accent-ink);font-weight:500}
.case h3{margin:0;font-size:1.5rem}
.case .res{color:var(--muted)}
.case .res b{display:block;font-family:var(--display);font-weight:300;font-size:clamp(3.4rem,6.4vw,5.6rem);color:var(--fg);line-height:.95;letter-spacing:-.04em;margin-bottom:10px}
.case dl{margin:0;display:grid;gap:12px;font-size:.96rem}.case dt{font-weight:500;font-size:.86rem;color:var(--accent-ink)}.case dd{margin:2px 0 0;color:var(--muted)}
.cv{display:grid;gap:26px;margin-top:8px}
.cv .row2{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:20px;align-items:center}
.cv .lab{font-size:1rem;font-weight:500}.cv .lab small{display:block;font-weight:400;color:var(--muted);font-size:.86rem}
.cv .track{position:relative;height:48px;background:color-mix(in srgb,var(--line) 60%,transparent)}
.cv .bar2{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:1.15rem;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.cv .b1{background:var(--fg);color:var(--bg)}.cv .b2{background:var(--accent);color:#1E1E20}
.cv .axis{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:20px}
.cv .ticks{position:relative;height:20px;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.cv .ticks span{position:absolute;transform:translateX(-50%)}
.cv .save{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;padding:28px 0 0;border-top:1px solid var(--fg)}
.cv .save b{font-family:var(--display);font-weight:300;font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:-.035em;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.cv .save span{color:var(--muted);font-size:1rem}
@media (max-width:640px){.cv .row2,.cv .axis{grid-template-columns:1fr;gap:8px}.cv .axis>div:first-child{display:none}.cv .bar2{font-size:.9rem}}
.ridge-edge{margin-top:0}

/* two doors: business and life */
.doors{display:grid;grid-template-columns:1fr 1fr;min-height:min(86vh,780px)}
.door{position:relative;display:flex;align-items:flex-end;padding:clamp(32px,5vw,80px);text-decoration:none;overflow:hidden;color:var(--fg)}
.door h3{font-size:clamp(2.8rem,6vw,5.6rem);font-weight:300;letter-spacing:-.035em;line-height:.98;margin-bottom:1.2rem}
.door .lede{max-width:34ch;margin-bottom:1.6rem}
.door.biz{background:var(--paper)}
.door.life{background:#0B0A08;color:#F3EEE2}
.door.life h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;letter-spacing:-.01em}
.door.life .lede{color:#E9E1D0}
.door .bg{position:absolute;inset:0}
.door .bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;display:block;transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
.door.life:hover .bg img{transform:scale(1.05)}
.door.life::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,10,8,.1) 20%,rgba(11,10,8,.78) 100%)}
.door .in,.door>div:not(.bg){position:relative;z-index:2}
.door.biz:hover .tlink{background-size:0 1px;background-position:100% 100%}
@media (max-width:820px){.doors{grid-template-columns:1fr;min-height:0}.door{min-height:420px}}
/* privé: tighter rhythm, quiet entry points, drill-down lists */
.prive section.s{padding-block:clamp(48px,6vw,88px)}
.prive .head{margin-bottom:clamp(28px,4vw,56px)}
.prive section.s.disc{padding-block:clamp(20px,3vw,36px)}
.prive .hero .wrap{padding-block:clamp(56px,8vw,112px) clamp(48px,6vw,88px)}
.prive .pagehead{padding-block:clamp(56px,8vw,112px) clamp(64px,7vw,104px)}
.prive .pagehead h1{font-size:clamp(2.6rem,6.4vw,5.6rem)}
.prive .cta h2{font-size:clamp(2.4rem,6vw,5rem)}
.ways{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.ways-g{display:grid;grid-template-columns:1fr 1fr}
.way{display:grid;gap:8px;align-content:start;padding:clamp(24px,3vw,40px) clamp(0px,2vw,32px);text-decoration:none}
.way:first-child{border-right:1px solid var(--line);padding-left:0}
.way:last-child{padding-left:clamp(24px,4vw,56px)}
.way .k{font-size:.95rem;color:var(--accent);font-weight:500}
.way p{margin:0;font-family:var(--display);font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.25;max-width:34ch}
.way .tlink{justify-self:start;margin-top:8px;font-size:.92rem}
.way:hover .tlink{background-size:0 1px;background-position:100% 100%}
@media (max-width:760px){.ways-g{grid-template-columns:1fr}.way:first-child{border-right:0;border-bottom:1px solid var(--line)}.way:last-child{padding-left:0}}
.plist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3.4vw,44px) clamp(28px,5vw,80px)}
.pi{border-top:1px solid var(--line);padding-top:18px}
.pi h3{font-size:1.4rem;margin-bottom:.4rem}
.pi p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.6;max-width:44ch}
@media (max-width:700px){.plist{grid-template-columns:1fr}}
.pdu{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:clamp(24px,5vw,72px)}
.pdu .ph{aspect-ratio:3/2}
.pdi h2{font-size:clamp(1.9rem,3.6vw,3rem);margin-bottom:1rem}
@media (max-width:700px){.pdu{grid-template-columns:1fr}}
.pmoment{font-family:var(--display);font-weight:500;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.25;max-width:34ch;margin:0 0 1rem}
.moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.mo{border-top:1px solid var(--accent);padding-top:18px}
.mo .k{display:block;color:var(--accent);font-size:.95rem;font-weight:500;margin-bottom:.7rem}
.mo p{margin:0;font-family:var(--display);font-weight:500;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.35}
@media (max-width:820px){.moments{grid-template-columns:1fr}}
.tales{border-bottom:1px solid var(--line)}
.tale{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:clamp(16px,4vw,56px);padding:clamp(22px,3vw,34px) 0;border-top:1px solid var(--line)}
.tale .k{color:var(--accent);font-size:.95rem;font-weight:500;padding-top:.35rem}
.tale h3{font-family:var(--display);font-weight:500;font-size:clamp(1.35rem,2.1vw,1.8rem);line-height:1.2;margin:0 0 .6rem}
.tale p{margin:0;max-width:62ch;color:var(--muted);line-height:1.65}
@media (max-width:820px){.tale{grid-template-columns:1fr;gap:6px}}

/* motion: photographs unveil; text only fades; one ink-in statement */
.js .rv:not(.ph){opacity:0;transition:opacity 1.1s ease}
.js .rv.in:not(.ph){opacity:1}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.js .rv,.js .ph.rv{opacity:1;clip-path:none}.js .ph.rv img{transform:none}.js .stmt .iw{color:var(--fg)}.hero2 .ridge path{stroke-dashoffset:0}.hero2 .ph2{clip-path:none}}

.rvall .rv,.rvall .ph.rv,.rvall .rv:not(.ph){opacity:1!important;clip-path:none!important;transform:none!important}.rvall .ph.rv img{transform:none!important}.rvall .stmt .iw{color:var(--fg)!important}.rvall .hero2 .ph2{clip-path:none!important}.rvall .hero2 .ridge path{stroke-dashoffset:0!important}
