
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-opsz-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400 900;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-opsz-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/jost-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda Fallback";src:local("Didot"),local("Bodoni 72"),local("Georgia"),local("DejaVu Serif");size-adjust:94%;ascent-override:104%;descent-override:28%;line-gap-override:0%}
@font-face{font-family:"Jost Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica");size-adjust:96%;ascent-override:94%;descent-override:26%;line-gap-override:0%}
:root{
  --paper:#0C0A0A;--band:#171313;--ink:#F7F1EA;--muted:#A9A09A;--accent:#DCC6A1;--on-accent:#0C0A0A;--label:#B8955A;
  --light:#F7F1EA;--light-ink:#0C0A0A;--light-label:#735A32;--light-accent:#876E43;--light-muted:#4B3F3A;
  --blush:#EAD7CB;--blush-ink:#0C0A0A;--blush-muted:#6B5A52;--star:#B8955A;
  --serif:"Bodoni Moda","Bodoni Moda Fallback",Didot,"Bodoni 72","Times New Roman",serif;
  --sans:"Jost","Jost Fallback","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --focus:var(--accent);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--paper);line-height:1.7;font-size:16px;overflow-x:hidden}
img{display:block;max-width:100%}
picture{display:contents}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
main:focus{outline:none}
.wrap{width:min(1240px,calc(100% - 48px));margin:0 auto}
.narrow{width:min(760px,calc(100% - 48px))}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1}
h2{font-size:clamp(46px,6vw,92px);letter-spacing:-.02em;text-wrap:balance}
h2 em{color:var(--accent)}
.h2--after{margin-top:22px}
.lbl{font-family:var(--sans);font-size:12px;line-height:1.5;letter-spacing:.32em;text-transform:uppercase;color:var(--label);font-weight:400}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:-999px;top:10px;z-index:300;background:var(--accent);color:var(--on-accent);padding:.8rem 1.1rem;font-weight:500}
.skip:focus{left:10px}
a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;gap:14px;font-family:var(--sans);font-size:12px;line-height:1.2;letter-spacing:.28em;text-transform:uppercase;font-weight:500;padding:19px 34px;background:var(--accent);color:var(--on-accent);border:0;cursor:pointer;transition:background .4s,color .4s,letter-spacing .4s}
.btn:hover{background:var(--ink);letter-spacing:.34em}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 60%,transparent)}
.btn--ghost:hover{background:var(--accent);color:var(--on-accent)}
.btn--ink{background:var(--paper);color:var(--accent)}
.btn--ink:hover{background:var(--band);color:var(--accent)}
.btn--sm{padding:14px 24px}
.btn--block{width:100%}
.top{position:absolute;inset:0 0 auto;z-index:20}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 0}
.brand{font-family:var(--serif);font-size:20px;line-height:1.2;letter-spacing:.42em;text-transform:uppercase}
.brand__img{max-height:40px;width:auto}
.links{display:flex;gap:42px;align-items:center;font-size:12px;letter-spacing:.26em;text-transform:uppercase}
.links ul{display:flex;gap:42px}
.links ul a{position:relative}
.links ul a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--accent);transition:right .4s}
.links ul a:hover::after{right:0}
.burger{display:none;background:none;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);color:var(--ink);font:400 11px var(--sans);letter-spacing:.26em;text-transform:uppercase;padding:12px 16px;cursor:pointer}
.sheet{position:fixed;inset:0;background:var(--paper);z-index:60;display:flex;flex-direction:column;padding:26px 24px calc(26px + env(safe-area-inset-bottom,0px));opacity:0;transition:opacity .4s}
.sheet[hidden]{display:none}
.sheet.is-open{opacity:1}
.sheet__top{display:flex;justify-content:space-between;align-items:center}
.sheet__top .brand{font-size:15px;letter-spacing:.3em}
.sheet .burger{display:block}
.sheet__list{display:flex;flex-direction:column;margin-top:60px;gap:6px}
.sheet__list a{font-family:var(--serif);font-style:italic;font-size:52px;line-height:1.2;color:var(--accent)}
.sheet .btn{margin-top:auto}
body.menu-open{overflow:hidden}
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}
.hero__copy{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;padding:140px 0 9vh max(24px,calc((100vw - 1240px)/2))}
.hero__k{animation:fade 1s .2s both}
.hero__name{font-style:italic;font-size:clamp(calc(72px * var(--k,1)),calc(20vw * var(--k,1)),calc(330px * var(--k,1)));line-height:.8;letter-spacing:-.05em;color:var(--accent);margin:.12em -30vw 0 0;white-space:nowrap;padding-bottom:.12em}
.hero__letters>span{display:inline-block;animation:rise 1.4s var(--ease) both}
.hero__letters>span:nth-child(2){animation-delay:.07s}.hero__letters>span:nth-child(3){animation-delay:.14s}.hero__letters>span:nth-child(4){animation-delay:.21s}.hero__letters>span:nth-child(5){animation-delay:.28s}.hero__letters>span:nth-child(n+6){animation-delay:.35s}
.hero__tag{font-family:var(--serif);font-size:clamp(22px,2.2vw,32px);margin:34px 0 14px;max-width:18ch;animation:fade 1.2s .7s both}
.hero__text{color:var(--muted);max-width:38ch;margin-bottom:38px;animation:fade 1.2s .85s both}
.hero__tag+.hero__acts{margin-top:24px}
.hero__acts{display:flex;gap:14px;flex-wrap:wrap;animation:fade 1.2s 1s both}
.hero__photo{position:relative;overflow:hidden}
.hero__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;animation:curtain 1.8s cubic-bezier(.77,0,.18,1) both,drift 18s 1.8s ease-in-out infinite alternate}
.hero__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 35%,transparent) 30%,transparent 60%),linear-gradient(0deg,color-mix(in srgb,var(--paper) 60%,transparent),transparent 35%)}
.hero__stamp{position:absolute;right:max(24px,calc((100vw - 1240px)/2));bottom:9vh;z-index:3;text-align:right;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);animation:fade 1.2s 1.3s both}
.hero__stamp b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;font-size:44px;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--ink)}
.hero--plain{grid-template-columns:1fr;background:radial-gradient(ellipse 50% 60% at 78% 40%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--paper)}
.hero--plain .hero__name{margin-right:0}
@keyframes rise{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes curtain{from{clip-path:inset(0 0 0 100%);transform:scale(1.15)}to{clip-path:inset(0);transform:scale(1.04)}}
@keyframes drift{from{transform:scale(1.04)}to{transform:scale(1.12) translate(-2%,1%)}}
.marquee{background:var(--blush);color:var(--blush-ink);overflow:hidden;padding:26px 0;white-space:nowrap}
.marquee__track{display:inline-flex;animation:slide 38s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__half{display:inline-flex;gap:60px;padding-right:60px;font-family:var(--serif);font-style:italic;font-size:clamp(28px,3.4vw,46px);line-height:1.3}
.marquee__half span::after{content:"\2726";font-style:normal;font-size:.5em;color:var(--star);margin-left:60px;vertical-align:middle}
@keyframes slide{to{transform:translateX(-50%)}}
.menu{padding:150px 0}
.menu-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:80px}
.menu-head>p{color:var(--muted);max-width:42ch}
.cats{display:grid;grid-template-columns:1fr 1fr;gap:20px 90px}
.cats--one{grid-template-columns:1fr;max-width:760px}
.cat h3{font-style:italic;font-size:30px;line-height:1.2;color:var(--accent);padding-bottom:18px;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent);margin-bottom:6px}
.row{display:grid;grid-template-columns:1fr auto;gap:6px 20px;padding:22px 0;border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent);position:relative}
.row::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--accent);transition:width .7s var(--ease)}
.row:hover::before,.row:focus-visible::before{width:100%}
.row:focus-visible{outline-offset:2px}
.row__n{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.25;transition:transform .5s var(--ease)}
.row:hover .row__n,.row:focus-visible .row__n{transform:translateX(10px)}
.row__p{font-family:var(--serif);font-size:26px;line-height:1.25;color:var(--accent);text-align:right}
.row__p small{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-right:8px}
.row__d{grid-column:1;font-style:italic;font-size:15px;color:var(--muted)}
.row__t{grid-column:2;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--label);text-align:right;align-self:center}
.row--ph{grid-template-columns:72px 1fr auto}
.row--ph .row__img{grid-row:span 2;width:72px;height:72px;object-fit:cover}
.row--ph .row__d{grid-column:2}
.row--ph .row__t{grid-column:3}
.work{background:var(--light);color:var(--light-ink);padding:150px 0;--focus:var(--light-ink)}
.work h2 em{color:var(--light-accent)}
.work .lbl{color:var(--light-label)}
.grid5{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-auto-rows:340px;grid-auto-flow:dense;gap:18px;margin-top:70px}
.grid5 figure{position:relative;overflow:hidden;background:color-mix(in srgb,var(--light-ink) 8%,var(--light))}
.grid5 figure:nth-child(5n+1){grid-row:span 2;grid-column:1}
.grid5 img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.grid5 figure:hover img{transform:scale(1.07)}
.grid5 figcaption{position:absolute;left:18px;bottom:16px;right:18px;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.2;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.65)}
.exp{padding:150px 0;background:var(--band)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-top:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.step{padding:40px 30px 10px 0}
.step+.step{padding-left:30px;border-left:1px solid color-mix(in srgb,var(--accent) 15%,transparent)}
.step .n{font-family:var(--serif);font-style:italic;font-size:64px;line-height:1;color:var(--accent)}
.step h3{font-size:24px;line-height:1.2;margin:22px 0 12px}
.step p{color:var(--muted);font-size:15px}
.about{display:grid;grid-template-columns:1fr 1fr;min-height:90vh}
.about__ph{position:relative;overflow:hidden;min-height:420px}
.about__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.about__tx{background:var(--blush);color:var(--blush-ink);padding:120px 8vw;display:flex;flex-direction:column;justify-content:center;--focus:var(--blush-ink)}
.about--solo{grid-template-columns:1fr;min-height:0}
.about__tx .lbl{color:var(--light-label)}
.about blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(30px,3.2vw,46px);line-height:1.15;margin:28px 0}
.about__p{max-width:46ch;color:var(--light-muted)}
.about__p+.about__p{margin-top:1em}
.creds{display:flex;gap:46px;margin:40px 0 44px;flex-wrap:wrap}
.creds li{font-size:12px;line-height:1.5;letter-spacing:.2em;text-transform:uppercase;color:var(--blush-muted)}
.creds b{display:block;font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.2;letter-spacing:0;text-transform:none;color:var(--blush-ink)}
.about__tx .btn{align-self:flex-start;margin-top:36px}
.creds+.btn{margin-top:0}
.voice{padding:170px 0;text-align:center;position:relative;overflow:hidden}
.voice::before{content:"\201C";position:absolute;left:50%;top:40px;transform:translateX(-50%);font-family:var(--serif);font-size:300px;line-height:1;color:color-mix(in srgb,var(--accent) 12%,transparent)}
.voice__main blockquote{position:relative;font-family:var(--serif);font-style:italic;font-size:clamp(32px,4vw,60px);line-height:1.15;max-width:20ch;margin:0 auto;padding:0 24px}
.voice figcaption{display:block;margin-top:34px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--label)}
.voice__more{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin-top:90px;text-align:left}
.voice__more blockquote{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.35}
.voice__more figcaption{margin-top:16px}
.visit{background:var(--light);color:var(--light-ink);padding:150px 0;--focus:var(--light-ink)}
.visit .grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.visit .lbl{color:var(--light-label)}
.visit h2 em{color:var(--light-accent)}
.visit__addr{margin-top:24px;max-width:40ch;color:var(--light-muted)}
.visit__map{margin-top:12px}
.visit__map a{font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;border-bottom:1px solid currentColor;padding-bottom:3px}
.hours{margin-top:40px}
.hours div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:15px 0;border-bottom:1px solid color-mix(in srgb,var(--light-ink) 12%,transparent)}
.hours dt{font-family:var(--serif);font-size:20px;line-height:1.3}
.hours dd{font-size:14px;letter-spacing:.12em;text-transform:uppercase;font-weight:400;white-space:nowrap}
.hours .is-today dt::after{content:attr(data-today);margin-left:12px;font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--light-label);vertical-align:middle}
.hours .is-today{border-bottom-color:var(--light-ink)}
.notes{border:1px solid color-mix(in srgb,var(--light-ink) 15%,transparent);padding:50px;align-self:start}
.notes h3{font-style:italic;font-size:34px;line-height:1.15;margin-bottom:24px}
.notes li{padding:16px 0;border-bottom:1px solid color-mix(in srgb,var(--light-ink) 10%,transparent);display:grid;grid-template-columns:40px 1fr}
.notes .n{font-family:var(--serif);font-style:italic;color:var(--light-accent);font-size:20px;line-height:1.4}
.notes .btn{margin-top:36px}
.pagehead{padding:190px 0 70px}
.pagehead--tall{min-height:80vh;display:flex;align-items:center}
.h1{font-size:clamp(46px,7vw,104px);letter-spacing:-.02em;margin-top:22px;text-wrap:balance}
.h1 em{color:var(--accent)}
.lede{margin-top:28px;max-width:52ch;color:var(--muted);font-size:18px}
.acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:40px}
.prose-sec{padding:0 0 130px}
.prose h2{font-size:30px;line-height:1.2;margin:48px 0 14px;font-style:italic;color:var(--accent)}
.prose p,.prose li{color:color-mix(in srgb,var(--ink) 88%,var(--paper))}
.prose ul{list-style:disc;padding-left:1.2em}
.prose li+li{margin-top:.4em}
.prose a{border-bottom:1px solid var(--accent)}
.foot{padding:80px 0 40px;text-align:center}
.foot__brand{font-size:30px;margin-bottom:20px}
.foot__line{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;color:var(--muted);font-size:13px;letter-spacing:.2em;text-transform:uppercase}
.foot__line>*+*::before{content:"\00B7";margin:0 14px;color:var(--muted)}
.foot__line a:hover{color:var(--accent)}
.foot__line a[href^="mailto"]{text-transform:none;letter-spacing:.08em}
.foot__base{margin-top:46px;color:var(--muted);font-size:12px;letter-spacing:.06em}
.foot__legal a{margin-left:14px;border-bottom:1px solid color-mix(in srgb,var(--muted) 50%,transparent)}
.fab{position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;display:none;transform:translateY(140%);transition:transform .5s var(--ease)}
.fab.is-shown,.fab:focus-visible{transform:none}
.js .rv{opacity:0;transform:translateY(50px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .about__ph img{transform:scale(1.25);transition:transform 2.4s var(--ease)}
.js .about__ph.in img{transform:scale(1)}
.pal{position:fixed;left:12px;bottom:12px;z-index:95;display:flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:6px 8px;box-shadow:0 6px 24px rgba(0,0,0,.45)}
.pal__t{font:600 .66rem/1 var(--sans);letter-spacing:.08em;color:#111;padding:0 .3rem 0 .2rem;text-transform:uppercase}
.pal__b{position:relative;display:block;border:0;background:transparent;border-radius:50%;padding:3px;cursor:pointer}
.pal__b i{width:22px;height:22px;border-radius:50%;display:block;background:linear-gradient(135deg,var(--c) 0 55%,var(--k) 55% 100%);box-shadow:0 0 0 1.5px rgba(0,0,0,.35)}
.pal__b[aria-pressed="true"] i{box-shadow:0 0 0 2px #fff,0 0 0 4px #111}
.pal__b span{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);background:#111;color:#fff;border-radius:999px;padding:.3rem .7rem;font:500 .72rem/1 var(--sans);white-space:nowrap;opacity:0;pointer-events:none}
.pal__b:hover span,.pal__b:focus-visible span{opacity:1}
.pal__b:focus-visible{outline:2px solid #111;outline-offset:2px}
body.menu-open .pal{display:none}
@media (max-width:900px){
  .links{display:none}.burger{display:block}.fab{display:flex}
  .brand{font-size:15px;letter-spacing:.3em}
  .nav{padding:26px 0}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__photo{height:70vh;height:70svh;order:-1}
  .hero__photo::after{background:linear-gradient(0deg,var(--paper) 0%,transparent 45%)}
  .hero__copy{padding:0 20px 70px;margin-top:-26vw}
  .hero--plain .hero__copy{margin-top:0;padding-top:150px}
  .hero__name{margin-right:0;font-size:calc(31vw * var(--k,1))}
  .hero__stamp{display:none}
  .menu,.work,.exp,.visit{padding:90px 0}
  .menu-head,.cats,.visit .grid{grid-template-columns:1fr;gap:40px}
  .menu-head{margin-bottom:50px}
  .row__n,.row__p{font-size:22px}
  .grid5{grid-template-columns:1fr 1fr;grid-auto-rows:91px;margin-top:50px}
  .grid5 figure{grid-row:span 2}
  .grid5 figure:nth-child(5n+1){grid-column:span 2;grid-row:span 3}
  .grid5 figcaption{font-size:18px;left:14px;bottom:12px}
  .steps{grid-template-columns:1fr 1fr;margin-top:50px}
  .step:nth-child(odd){padding-left:0;border-left:0}
  .step:nth-child(even){padding-left:20px;padding-right:0}
  .step .n{font-size:52px}
  .about{grid-template-columns:1fr;min-height:0}
  .about__ph{height:70vh;min-height:0}
  .about__tx{padding:70px 22px}
  .voice{padding:110px 0}
  .notes{padding:30px 22px}
  .visit .grid{gap:56px}
  .pagehead{padding:150px 0 50px}
  .foot{padding:60px 0 110px}
  .foot__line{flex-direction:column;align-items:center;gap:10px}
  .foot__line>*+*::before{content:none}
  .pal{bottom:auto;top:84px;left:auto;right:12px}
}
@media (max-width:420px){
  .hero__acts .btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  .js .about__ph img{transform:none}
  .hero__photo img{transform:scale(1.04)}
}
