

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--night);color:var(--milk);font-family:"Public Sans",system-ui,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--pad)}
.lng{display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.12em}
.lng .on{color:var(--milk)}
.lng .soon{color:rgba(242,235,221,.28);cursor:default}
.lb{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
a{color:var(--ochre)}a:hover{color:var(--milk)}
:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}
img{display:block}
picture{display:contents}

.hdr{position:sticky;top:0;z-index:20;background:rgba(14,16,14,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:clamp(12px,3vw,34px);min-height:72px}
.bm{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--milk);margin-right:auto}
.bm svg{width:28px;height:28px}
.bm b{font-weight:400;font-size:16px}
.nav{display:flex;gap:clamp(14px,2.4vw,28px)}
.nav a{font-size:14px;color:var(--milk);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current]{color:var(--ochre);border-bottom-color:var(--ochre)}
.mb{display:none;width:44px;height:44px;background:none;border:0;color:inherit;cursor:pointer;place-items:center}
.mb span{display:block;width:20px;height:1.5px;background:currentColor;position:relative}
.mb span::before,.mb span::after{content:"";position:absolute;left:0;width:20px;height:1.5px;background:currentColor}
.mb span::before{top:-6px}.mb span::after{top:6px}

/* hero */
.hero{padding:clamp(40px,7vw,86px) 0 clamp(36px,5vw,64px)}
.hero .in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,5vw,64px);align-items:stretch}
.hero .tx{display:flex;flex-direction:column;justify-content:center;min-height:clamp(380px,48vh,520px);padding:8px 0}
.hero h1{font-family:var(--font-serif, Newsreader),serif;font-weight:200;font-size:clamp(44px,7.2vw,86px);line-height:1.02;margin:16px 0 0;color:#fbf6ec;letter-spacing:-.01em}
.hero h1 em{font-style:italic;color:var(--ochre)}
.hero .su{margin:24px 0 0;font-size:clamp(16px,1.5vw,19px);line-height:1.55;color:#d6cec0;max-width:34ch}
.hero .role{display:flex;flex-wrap:wrap;gap:6px 14px;margin:28px 0 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.hero .role i{font-style:normal;color:rgba(242,235,221,.3)}
.hero .ph{position:relative;overflow:hidden;background:#1b1e1b;min-height:100%}
.hero .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 36%}

.ix{display:flex;align-items:baseline;justify-content:space-between;padding:0 0 18px;border-bottom:1px solid var(--line)}
.ix h2{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(22px,2.4vw,30px);margin:0}

/* practice */
.prs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:1px;background:var(--line);margin-top:1px}
.pr{background:var(--night);display:grid;grid-template-columns:160px minmax(0,1fr);gap:22px;padding:28px clamp(18px,2.2vw,30px) 30px;text-decoration:none;color:var(--milk);transition:background .18s}
.pr .th{width:100%;aspect-ratio:3/4;align-self:start;overflow:hidden;background:#1b1e1b}
.pr .th img{width:100%;height:100%;object-fit:cover}
.pr .n{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.pr h3{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(26px,2.6vw,34px);line-height:1.04;margin:8px 0 0}
.pr .who{display:block;margin-top:8px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--emerald)}
.pr .ds{display:block;margin-top:10px;font-size:13.5px;line-height:1.55;color:#a49c90;max-width:34ch}
.pr .st{display:block;margin-top:10px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.pr .go{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin-top:12px;font-size:15px;color:var(--ochre);border-bottom:1px solid rgba(224,149,47,.4);width:fit-content}
.pr:hover .go{color:var(--milk);border-bottom-color:var(--milk)}
.pr:hover{background:rgba(242,235,221,.04)}

/* products — light band */
.dg{background:var(--milk);color:var(--ink);margin-top:clamp(52px,7vw,96px);padding:clamp(44px,6vw,84px) 0 clamp(40px,5vw,72px)}
.dg .lb,.dg .ix h2{color:var(--dim-i)}
.dg .ix{border-bottom-color:var(--linei)}
.dg .ix h2{color:var(--ink)}
.pds{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(28px,4vw,56px);margin-top:clamp(32px,4vw,52px)}
.pd{display:grid;grid-template-columns:150px minmax(0,1fr);gap:26px;text-decoration:none;color:var(--ink);align-items:start}
.phone{width:150px;border:7px solid #14120f;border-radius:20px;overflow:hidden;background:#0f3f44;display:block;align-self:start}
.appx{width:100%;height:100%;display:grid;align-content:space-between;padding:12cqw 9cqw;color:#f2ebdd}
.appx .nm{font-size:17cqw;font-weight:600;line-height:.95;letter-spacing:-.02em}
.appx .tg{font-size:7.4cqw;line-height:1.35;color:rgba(242,235,221,.74);margin-top:4cqw}
.appx .bt{font-size:5.4cqw;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,235,221,.52)}
.appx.yc{background:#2e6a5a}
.appx.ai{background:#0f3f44}
.pd .n{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-i)}
.pd h3{font-size:clamp(26px,2.6vw,32px);font-weight:600;letter-spacing:-.015em;line-height:1;margin:8px 0 0}
.pd .who{display:block;margin-top:10px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sapphire)}
.pd .ds{display:block;margin-top:10px;font-size:13.5px;line-height:1.55;color:#5f574a;max-width:34ch}
.pd .st{display:block;margin-top:10px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-i)}
.pd .fx{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:14px}
.pd .fx span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim-i);border:1px solid var(--linei);padding:5px 8px}
.pd .go{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:54px;margin-top:18px;padding:0 24px;font-size:15px;background:var(--ochre-deep);color:#fdf7ea;width:fit-content}
.pd .go:hover{background:var(--ink);color:var(--milk)}

/* strip */
.strip{padding:clamp(44px,6vw,86px) 0 0}
.strip .rw{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1.2vw,14px);margin-top:20px}
.strip .rw div{aspect-ratio:4/5;overflow:hidden;background:#1b1e1b}
.strip .rw img{width:100%;height:100%;object-fit:cover}

/* contact band */
.say{background:var(--milk);color:var(--ink);margin-top:clamp(52px,7vw,96px);padding:clamp(44px,6vw,84px) 0}
.say .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:center}
.say .lb{color:var(--dim-i)}
.say h2{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(30px,4vw,48px);line-height:1.08;margin:14px 0 0;max-width:20ch}
.cr{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;border-top:1px solid var(--linei);text-decoration:none;color:var(--ink)}
.cr:last-child{border-bottom:1px solid var(--linei)}
.cr .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-i);display:block}
.cr .v{font-family:var(--font-serif, Newsreader),serif;font-size:clamp(20px,2vw,25px);display:block;margin-top:3px}
.cr .a{color:var(--ochre-deep);font-size:17px}
.cr:hover .a{color:var(--ink)}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1vw,12px)}
.tiles a{display:grid;gap:14px;justify-items:center;align-content:center;min-height:clamp(112px,13vw,148px);border:1px solid var(--linei);text-decoration:none;color:var(--ink)}
.tiles svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.tiles span{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.tiles a:hover{background:var(--ink);color:var(--milk);border-color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 26px;background:var(--ochre-deep);color:#fdf7ea;text-decoration:none;font-size:15px;font-family:inherit;border:0;cursor:pointer}
.btn:hover{background:var(--ink);color:var(--milk)}
.btn.gh{background:none;color:var(--ink);border:1px solid var(--linei)}
.btn.gh:hover{background:var(--ink);color:var(--milk)}

@media(max-width:900px){
.hero .in,.say .in{grid-template-columns:minmax(0,1fr)}
.hero .tx{min-height:0}
.hero .ph{aspect-ratio:16/10;min-height:0;order:-1;margin:0 calc(var(--pad)*-1)}
.strip .rw{grid-template-columns:repeat(2,1fr)}
.nav{display:none}
.mb{display:grid}
}
@media(max-width:560px){
.pr,.pd{grid-template-columns:minmax(0,1fr)}
.pr .th{max-width:none}
}



*{box-sizing:border-box}
body{margin:0;background:var(--night);color:var(--milk);font-family:"Public Sans",system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:96px}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--pad)}
.lng{display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.12em}
.lng .on{color:var(--milk)}
.lng .soon{color:rgba(242,235,221,.28);cursor:default}
.lb{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
a{color:var(--ochre)}a:hover{color:var(--milk)}
img{display:block}
:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}

.hdr{position:sticky;top:0;z-index:20;background:rgba(14,16,14,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:clamp(12px,3vw,34px);min-height:72px}
.mb{display:none;width:44px;height:44px;margin-right:-8px;background:none;border:0;color:inherit;cursor:pointer;place-items:center}
.mb span{display:block;width:20px;height:1.5px;background:currentColor;position:relative}
.mb span::before,.mb span::after{content:"";position:absolute;left:0;width:20px;height:1.5px;background:currentColor}
.mb span::before{top:-6px}.mb span::after{top:6px}
.mb.x span{background:transparent}.mb.x span::before{top:0;transform:rotate(45deg)}.mb.x span::after{top:0;transform:rotate(-45deg)}
.bm{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--milk);margin-right:auto}
.bm svg{width:28px;height:28px}
.bm b{font-weight:400;font-size:16px}
.nav{display:flex;gap:clamp(14px,2.4vw,28px)}
.nav a{font-size:14px;color:var(--milk);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid transparent;cursor:pointer}
.nav a:hover,.nav a.on{color:var(--ochre);border-bottom-color:var(--ochre)}

.pg{display:none;padding:clamp(40px,6vw,80px) 0 clamp(48px,6vw,88px)}
.pg.on{display:block}
.hd{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:start}
.hd h1{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(34px,4.2vw,54px);line-height:1.04;margin:14px 0 0;max-width:18ch}
.hd2{display:grid;grid-template-columns:minmax(0,1fr) clamp(260px,30vw,400px);gap:clamp(28px,5vw,64px);align-items:center}
.hd2 h1{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(36px,4.2vw,54px);line-height:1.02;margin:12px 0 0;max-width:15ch}
.hd2 h1 em{font-style:italic;color:var(--ochre)}
.intro{margin:22px 0 0;font-size:clamp(16px,1.35vw,18px);line-height:1.6;color:#d3cbbc;max-width:44ch;text-wrap:pretty}
.por2{aspect-ratio:4/5;overflow:hidden;background:#1b1e1b}
.por2 img{width:100%;height:100%;object-fit:cover;object-position:50% 10%}
.spread{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:clamp(24px,5vw,72px);margin-top:clamp(38px,5vw,68px)}
.idx{position:sticky;top:96px;align-self:start}
.idx ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:4px}
.idx a{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:baseline;font-size:14.5px;color:#cfc7b8;text-decoration:none;min-height:34px;border-bottom:1px solid var(--line);padding:6px 0}
.idx a span{font-size:10.5px;letter-spacing:.14em;color:var(--dim)}
.idx a:hover{color:var(--ochre)}
.sec{border-top:1px solid var(--line);padding:26px 0 36px}
.sec:first-child{border-top:0;padding-top:0}
.sec h2{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(24px,2.4vw,32px);line-height:1.1;margin:10px 0 0;max-width:22ch}
.sec p{margin:14px 0 0;font-size:15.5px;line-height:1.6;color:#cfc7b8;max-width:56ch;text-wrap:pretty}
.sec .cv{max-width:680px;margin-top:18px}
.don{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,6vw,80px);align-items:start}
.don h1{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(36px,4.4vw,56px);line-height:1.02;margin:12px 0 0;max-width:16ch}
.don h1 em{font-style:italic;color:var(--ochre)}
.btn.big{min-height:60px;padding:0 32px;font-size:16px}
.dbtns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px;max-width:520px}
.dbtns .btn{width:100%}
.dph{margin:0 0 22px}
.dph img{width:100%;height:clamp(220px,24vw,300px);object-fit:cover;display:block}
.dph figcaption{margin-top:10px;font-size:12px;letter-spacing:.06em;color:var(--dim)}
.und{display:block;margin-top:12px;font-size:13.5px;color:#8c8478}
.gift{border:0;padding:18px 0 0}
.donation-page{padding-bottom:0}
.gl{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:12px;font-size:15.5px;line-height:1.55;color:#cfc7b8}
.gl li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;max-width:52ch}
.gl li::before{content:"—";color:var(--ochre)}
.sm{font-size:14px;line-height:1.65;color:#8c8478;margin:30px 0 0;max-width:48ch}
.sm a{color:var(--ochre);cursor:pointer}
.ways{display:grid;gap:18px;align-content:start;position:sticky;top:96px}
.way{border:1px solid var(--line);padding:20px;display:grid;gap:10px;justify-items:start}
.way .wd{font-size:14.5px;line-height:1.5;color:#cfc7b8}
.plinks{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 4px}
.plinks a{display:inline-flex;align-items:center;min-height:54px;padding:0 24px;font-size:15px;background:var(--ochre-deep);color:#fdf7ea;text-decoration:none}
.plinks a:hover{background:var(--milk);color:var(--ink)}
.ask{border:1px dashed rgba(224,149,47,.5);padding:14px 16px;margin-top:20px;max-width:560px}
.ask .t{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ochre)}
.ask p{margin:8px 0 0;font-size:13.5px;line-height:1.5;color:#cfc7b8;max-width:46ch}
.hd h1 em{font-style:italic;color:var(--ochre)}
.hd p{margin:22px 0 0;font-size:clamp(16px,1.4vw,18px);line-height:1.6;color:#d3cbbc;max-width:36ch;text-wrap:pretty}
.por{overflow:hidden;background:#1b1e1b;aspect-ratio:4/5}
.por img{width:100%;height:100%;object-fit:cover;object-position:50% 14%}

.blks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1px;background:var(--line);margin-top:clamp(44px,6vw,80px)}
.blk{background:var(--night);padding:26px clamp(18px,2vw,28px) 30px}
.blk h2{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(22px,2.2vw,28px);line-height:1.12;margin:10px 0 0}
.blk p{margin:12px 0 0;font-size:15px;line-height:1.55;color:#cfc7b8;max-width:38ch;text-wrap:pretty}
.cv{margin:16px 0 0;display:grid}
.cv div{display:grid;grid-template-columns:minmax(0,104px) minmax(0,1fr);gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.cv .k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding-top:3px}
.cv .v{font-size:14.5px;line-height:1.45;color:#d3cbbc}
.now{margin-top:clamp(36px,4vw,56px);border:1px solid var(--line);padding:24px clamp(18px,2vw,28px) 28px;display:grid;gap:14px;grid-template-columns:minmax(0,180px) minmax(0,1fr);align-items:start}
.now ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.now li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;font-size:15px;line-height:1.5;color:#d3cbbc}
.now li b{color:var(--ochre);font-weight:400}

.frm{display:grid;gap:16px;max-width:520px;margin-top:8px}
.fld{display:grid;gap:8px}
.fld label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.fld input,.fld textarea{font-family:inherit;font-size:16px;color:var(--milk);background:rgba(242,235,221,.04);border:1px solid var(--line);padding:14px 13px;min-height:52px;width:100%}
.fld textarea{min-height:130px;resize:vertical;line-height:1.5}
.fld input::placeholder,.fld textarea::placeholder{color:#6f675c}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--ochre)}
.fine{font-size:13px;line-height:1.5;color:#8c8478;margin:0}
.ok{display:none;border:1px solid rgba(74,166,108,.5);padding:15px;font-size:15px;line-height:1.5;color:#cfe4d6}
.ok.on{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 26px;background:var(--ochre-deep);color:#fdf7ea;text-decoration:none;font-size:15px;font-family:inherit;border:0;cursor:pointer;width:fit-content}
.btn:hover{background:var(--milk);color:var(--ink)}
.btn.gh{background:none;color:var(--milk);border:1px solid var(--line)}
.btn.gh:hover{background:rgba(242,235,221,.08);color:var(--milk)}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.tiles a{display:grid;gap:14px;justify-items:center;align-content:center;min-height:132px;border:1px solid var(--line);text-decoration:none;color:var(--milk)}
.tiles svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.tiles span{font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.tiles a:hover{background:rgba(242,235,221,.06);border-color:rgba(242,235,221,.35)}
.cr{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;border-top:1px solid var(--line);text-decoration:none;color:var(--milk)}
.cr:last-child{border-bottom:1px solid var(--line)}
.cr .k{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);display:block}
.cr .v{font-family:var(--font-serif, Newsreader),serif;font-size:20px;display:block;margin-top:3px}
.cr .a{color:var(--ochre);font-size:16px}
.cr:hover .a{color:var(--milk)}

.nf{min-height:clamp(420px,62vh,640px);display:grid;align-content:center;justify-items:start}
.nf svg{width:58px;height:58px;margin-bottom:30px}
.nf .num{font-family:var(--font-serif, Newsreader),serif;font-weight:200;font-size:clamp(64px,9vw,112px);line-height:1;color:var(--ochre)}
.nf h1{font-family:var(--font-serif, Newsreader),serif;font-weight:300;font-size:clamp(30px,4vw,50px);line-height:1.08;margin:16px 0 0;max-width:24ch}
.nf p{margin:18px 0 0;font-size:clamp(16px,1.4vw,18px);line-height:1.55;color:#cfc7b8;max-width:38ch}
.nf .row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}

/* A quiet, compact closing note shared by every page. */
.ft{margin-top:clamp(32px,5vw,64px);border-top:3px solid var(--ochre);background:#090b09;padding:clamp(28px,4vw,48px) 0}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px 48px}
.footer-note{font:300 clamp(24px,2.5vw,30px)/1.3 var(--font-serif, Newsreader),serif;margin:0;color:var(--milk)}
.footer-note em{color:var(--ochre)}
.footer-signoff{text-align:right;flex-shrink:0}
.footer-signoff p{margin:0 0 8px;font:300 20px/1.4 var(--font-serif, Newsreader),serif;color:var(--dim)}
.footer-signoff p span{color:var(--milk);font-style:italic}
.footer-nav{display:flex;justify-content:flex-end;gap:8px;margin:0 0 8px;font-size:14px;color:var(--dim)}
.footer-nav a{color:var(--dim);text-decoration:none;min-height:28px;display:inline-flex;align-items:center}
.footer-nav a:hover{color:var(--ochre)}
.footer-signoff small{font-size:12px;color:var(--dim)}
@media(max-width:600px){.footer-inner{flex-direction:column;align-items:flex-start;gap:22px}.footer-signoff{text-align:left}.footer-signoff p{margin-bottom:4px}.footer-nav{justify-content:flex-start;margin-top:6px}}
@media(max-width:900px){.hd,.now,.hd2,.spread,.don{grid-template-columns:minmax(0,1fr)}
.idx{display:none}
.por2{aspect-ratio:3/2;order:-1;margin:0 calc(var(--pad)*-1) 4px}
.hd2{align-items:start}.por{aspect-ratio:16/10;order:-1;margin:0 calc(var(--pad)*-1)}
.mb{display:grid}
.nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--night);border-bottom:1px solid var(--line);padding:6px var(--pad) 18px}
.nav.open{display:flex}
.nav a{font-size:22px;font-family:var(--font-serif, Newsreader),serif;font-weight:300;min-height:58px;border-bottom:1px solid var(--line)}
.hdr{position:relative}
}
@media(max-width:560px){.tiles{grid-template-columns:1fr}}

/* Production layout and accessible controls. */
body{line-height:1.5} .pg{display:block} .hdr{position:sticky} img{max-width:100%}
.lb,.n,.st,.fc,.cv .k,.idx a span{font-size:12px!important}
.pr .ds,.pd .ds,.sec p,.blk p,.cv .v{font-size:16px} .pr .st,.pd .st{overflow-wrap:anywhere;letter-spacing:.08em}
.appx .nm,.appx .tg{display:block}.hero .role{font-size:12px}.lng{font-size:12px;gap:2px;letter-spacing:.04em}.lng .on{color:var(--dim)}
.skip{position:fixed;top:8px;left:8px;z-index:100;background:var(--milk);color:var(--ink);padding:12px;transform:translateY(-180%)}.skip:focus{transform:none}
.site-menu{display:none}.site-menu summary{list-style:none;cursor:pointer;width:44px;height:44px;display:grid;place-content:center}.site-menu summary::-webkit-details-marker{display:none}
.menu-icon,.menu-icon::before,.menu-icon::after{display:block;width:20px;height:1.5px;background:currentColor}
.menu-icon{position:relative}.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0}.menu-icon::before{top:-6px}.menu-icon::after{top:6px}
.menu-panel{position:absolute;top:100%;left:0;right:0;background:var(--night);border-bottom:1px solid var(--line);padding:16px var(--pad) 28px;max-height:calc(100dvh - 72px);overflow:auto}
.menu-panel a{display:flex;justify-content:space-between;align-items:center;min-height:50px;border-bottom:1px solid var(--line);font-family:var(--font-serif, Newsreader),serif;font-size:20px;text-decoration:none;color:var(--milk)}
.menu-panel .ut{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:14px}.menu-panel .ut a{font:500 16px 'Public Sans',sans-serif;min-height:52px;border-bottom:0}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.idx a{min-height:44px}
.say .tiles a{color:var(--ink);border-color:var(--linei)}.say .tiles a:hover{background:var(--ink);color:var(--milk)}
.say .btn:hover{background:var(--ink);color:var(--milk)}.say .btn.gh{color:var(--ink);border-color:var(--linei)}.say .btn.gh:hover{color:var(--milk)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;margin-top:32px}.contact-layout .frm{max-width:none}
.touch{background:var(--milk);color:var(--ink);padding:20px 28px;align-self:start}.touch .cr{color:var(--ink);border-color:var(--linei)}.touch .cr .k{color:var(--dim-i)}.touch .cr .v{overflow-wrap:anywhere}.touch .cr .a{color:var(--ochre-deep)}
.contact-talk{margin-top:32px}.contact-section-label{margin:0 0 8px;font:500 12px 'Public Sans',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--dim-i)}
.fld label{font-size:14px;letter-spacing:.06em}.fine{font-size:14px;color:var(--dim)}.field-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-status{min-height:24px;margin:0;font-size:14px}.form-status[data-state=success]{color:var(--emerald)}.form-status[data-state=error]{color:var(--ochre)}button:disabled{opacity:.6;cursor:wait}
.legacy{max-width:800px}.legacy h1{font:300 clamp(36px,5vw,56px) var(--font-serif, Newsreader),serif}.legacy h2{font:300 30px var(--font-serif, Newsreader),serif}.legacy p{font-size:16px;line-height:1.7}
@media(max-width:900px){.site-menu{display:block}.hero{padding-top:0}.hero .ph{height:auto}.contact-layout{grid-template-columns:1fr;gap:32px}.nav{display:none}.hdr{position:sticky}.por2{order:0;margin:0;aspect-ratio:3/2}}
@media(max-width:560px){.hero .in{gap:22px}.hero h1{font-size:clamp(37px,10vw,52px);margin-top:12px}.hero .su{margin-top:16px}.hero .role{margin-top:18px;gap:6px 10px}.hero .ph{aspect-ratio:39/28}.prs,.pds{grid-template-columns:1fr}.pr{grid-template-columns:104px minmax(0,1fr);gap:16px;padding:22px 0}.pr .th{aspect-ratio:3/4}.pr h3{font-size:28px}.pd{grid-template-columns:118px minmax(0,1fr);gap:16px}.phone{width:118px}.pd .go{padding:12px;font-size:14px;width:100%;text-align:center}.dg{margin-top:36px;padding:32px 0}.pds{gap:30px;margin-top:24px}.strip .rw{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.strip .rw div{min-width:126px;scroll-snap-align:start}.strip .rw img{height:158px}.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles a{min-height:105px}.tiles span{font-size:12px;letter-spacing:.03em}.say{margin-top:36px;padding:32px 0}.say .tiles{margin:0}.cv div{grid-template-columns:92px minmax(0,1fr);gap:12px}.touch{padding:20px}.pg{padding-top:32px}.por2{aspect-ratio:4/3}.por2 img{object-position:50% 14%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero .role{flex-direction:column;align-items:flex-start;gap:6px;text-transform:none;font-size:clamp(.875rem,3.6vw,1rem);line-height:1.5;letter-spacing:0}
.hero .role > span:first-child{font-size:1.375rem;color:var(--milk)}

.phone .app-preview{display:block;width:100%;height:auto}
.pd p.ds{margin-bottom:0}
.pd .st{font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;color:#655f55;font-style:italic}
.pd .go{text-decoration:none}

.contact-channels{display:grid;gap:0}.contact-tile{display:flex;gap:14px;align-items:center;padding:10px 0;border:0;border-top:1px solid var(--linei);text-decoration:none;color:var(--ink);min-height:64px}.contact-tile:last-child{border-bottom:1px solid var(--linei)}.contact-tile svg{width:24px;height:24px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.contact-tile strong{display:block;font-size:16px;font-weight:500}.contact-tile small{display:block;margin-top:2px;font-size:13px;color:var(--dim-i)}.contact-tile>span:last-child{margin-left:auto;color:var(--ochre-deep)}.contact-tile:hover{background:rgba(14,16,14,.06);color:var(--ink)}.contact-tile:hover small{color:var(--dim-i)}.contact-tile:hover>span:last-child{color:var(--ochre-deep)}.email-fallback a{display:inline-block;min-height:44px;padding:10px 0}.email-fallback{overflow-wrap:anywhere}

button.contact-tile{width:100%;background:transparent;font:inherit;text-align:left;cursor:pointer}
button.contact-tile:hover{background:rgba(14,16,14,.06)}
.contact-tile[hidden]{display:none}

.cv .k.brand-name{text-transform:none;letter-spacing:0}
.contact-intro{display:block}
.contact-title{display:flex;align-items:center;gap:24px;margin-top:12px}
.contact-title h1{margin:0}
.contact-portrait{width:88px;height:88px;flex-shrink:0;object-fit:cover;object-position:50% 20%;border-radius:50%}
@media(max-width:600px){.contact-title{gap:18px}.contact-portrait{width:64px;height:64px}}

.donate-note{padding-bottom:24px}
.donate-inner{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;border-top:1px solid var(--line);padding-top:18px}
.donate-inner h2{margin:0;font:300 clamp(20px,2vw,24px)/1.25 var(--font-serif, Newsreader),serif}
.donate-inner p{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--dim);max-width:50ch}
.donate-inner .btn{flex-shrink:0;gap:12px;min-height:44px;padding:0 16px;font-size:14px}
@media(max-width:600px){.donate-inner{flex-direction:column;align-items:flex-start;gap:12px}}

.intro strong{font-weight:600;color:var(--milk)}
.gift h2{margin:0;font-weight:400;line-height:1.6}
.gift p{margin:16px 0 0;font-size:15.5px;line-height:1.65;color:#cfc7b8;max-width:52ch}

/* Compact education and personal practice, scoped to the About background. */
.background-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:18px}
.background-groups h3{margin:0 0 8px;font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.background-groups dl{margin:0}
.background-groups dl>div{padding:9px 0;border-top:1px solid var(--line)}
.background-groups dt{font-size:14px;font-weight:500;line-height:1.4;color:var(--milk)}
.background-groups dt span{display:inline-block;margin-left:5px;font-size:12px;font-weight:400;color:var(--dim)}
.background-groups dd{margin:4px 0 0;font-size:14px;line-height:1.45;color:#cfc7b8}
@media(max-width:600px){.background-groups{grid-template-columns:1fr;gap:16px;margin-top:14px}.practice-background{padding-bottom:24px}}

.detail-list{margin:0;padding-left:17px}
.detail-list li+li{margin-top:4px}
.detail-list li::marker{color:var(--dim)}
.about-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px;max-width:680px}
.about-project{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding-top:16px;border-top:1px solid var(--line)}
.about-project h3{margin:0;font:300 25px/1.15 var(--font-serif, Newsreader),serif;color:var(--milk)}
.about-project p{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--dim);max-width:30ch}
.about-project .st{display:block;margin-top:10px;font-size:11px!important;line-height:1.4;letter-spacing:.1em;color:var(--dim);overflow-wrap:anywhere}
.about-project .btn{width:100%;min-height:60px;margin-top:16px;padding:0 22px;font-size:16px}
.practice-action{display:inline-flex;align-items:center;min-height:48px;margin-top:12px;color:var(--ochre);text-underline-offset:5px;text-decoration-thickness:1px}
.practice-action:hover{color:var(--milk)}
.product-background{margin-top:clamp(28px,4vw,48px);padding-top:clamp(32px,4vw,46px);border-top:2px solid rgba(242,235,221,.24)}
@media(max-width:640px){.dbtns{grid-template-columns:1fr;gap:10px}.about-projects{grid-template-columns:1fr;gap:24px}}
@media(max-width:360px){.about-project .btn{padding:0 14px;font-size:15px}}

/* Cyrillic uses a complete serif family, without mixing Latin and Cyrillic glyphs. */
html[lang="ru"]{--font-serif:Georgia}
html[lang="ru"] body{font-family:system-ui,sans-serif}
.lng a{display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:44px;color:var(--dim);text-decoration:none}
.lng a.on{color:var(--milk);text-decoration:underline;text-underline-offset:5px}
.lng a:hover{color:var(--ochre)}
html[lang="ru"] .hero h1{font-size:clamp(42px,6.4vw,76px);line-height:1.1}
html[lang="ru"] .lb{letter-spacing:.1em}

/* Direct messages sit quietly between the introduction and email form. */
.contact-talk{background:none;color:var(--milk);padding:0}
.contact-talk .contact-section-label{color:var(--dim);margin-bottom:6px}
.contact-talk .contact-channels{display:flex;flex-wrap:wrap;gap:8px 28px}
.contact-talk .contact-tile{width:auto;min-height:44px;padding:6px 0;gap:9px;border:0;background:none;color:var(--milk)}
.contact-talk .contact-tile svg{width:19px;height:19px;color:var(--dim)}
.contact-talk .contact-tile strong{font-size:15px;font-weight:400}
.contact-talk .contact-tile>span:last-child{margin-left:2px;color:var(--ochre)}
.contact-talk .contact-tile:hover{background:none;color:var(--ochre)}
.contact-talk .contact-tile:hover strong{text-decoration:underline;text-underline-offset:5px}
.lng > span{display:inline-flex;align-items:center;justify-content:center;min-height:44px}

/* Language toggle: one pill, the thumb marks the current language, any tap switches. */
.lng .lng-toggle{display:inline-flex;align-items:center;min-height:44px;min-width:0;padding:0;color:inherit;text-decoration:none;cursor:pointer;border-radius:999px}
.lng-track{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;padding:2px;border:1px solid rgba(242,235,221,.14);border-radius:999px;transition:border-color .2s}
.lng-track::before{content:"";position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);border-radius:999px;background:rgba(242,235,221,.1);transition:transform .25s ease}
.lng-track[data-current="ru"]::before{transform:translateX(100%)}
.lng .lng-opt{position:relative;z-index:1;min-width:26px;padding:3px 6px;text-align:center;font-size:10px;line-height:1;letter-spacing:.08em;color:rgba(242,235,221,.32);transition:color .25s}
.lng .lng-opt.on{color:var(--dim)}
.lng .lng-toggle:hover .lng-track{border-color:rgba(242,235,221,.3)}
.lng .lng-toggle:hover .lng-opt:not(.on){color:var(--dim)}
.lng .lng-toggle:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}
.lng .lng-toggle.is-disabled{cursor:default}
.lng .is-disabled:hover .lng-track{border-color:rgba(242,235,221,.14)}
.lng .is-disabled .lng-opt.soon,.lng .is-disabled:hover .lng-opt.soon{color:rgba(242,235,221,.18)}
@media(prefers-reduced-motion:reduce){.lng-track::before,.lng .lng-opt,.lng-track{transition:none}}

/* Uppercase labels: Onest is soft and has Cyrillic, so EN and RU caps match. */
.lb,.hero .role,.pr .n,.pr .who,.pr .st,.pd .n,.pd .who,.pd .st,.pd .fx span,.cr .k,.tiles span,.cv .k,.fld label,.ask .t,.appx .bt,.contact-section-label,.background-groups h3,.lng .lng-opt{font-family:'Onest',system-ui,sans-serif}
/* Mobile menu: landing pages sit together in one even row, below the projects. */
.menu-panel .ut{flex-wrap:nowrap;justify-content:space-between;gap:0 12px}
.menu-panel .ut a{font-family:'Onest',system-ui,sans-serif;font-size:15px;white-space:nowrap}
