:root{
  --ink:#171814;
  --paper:#eee8dd;
  --paper-light:#f8f4ec;
  --sand:#d9cfbf;
  --rust:#a55c3d;
  --olive:#5b6350;
  --line:rgba(23,24,20,.18);
  --serif:"Newsreader",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
body.menu-open{overflow:hidden}
a{text-decoration:none;color:inherit}
img{display:block;width:100%}
button{font:inherit;color:inherit}
::selection{background:var(--rust);color:white}

.page-loader{
  position:fixed;inset:0;background:var(--ink);z-index:9999;
  display:grid;place-items:center;color:var(--paper-light);
  transition:opacity .7s ease,visibility .7s ease;
}
.page-loader.loaded{opacity:0;visibility:hidden}
.loader-mark{font-family:var(--serif);font-size:42px;margin-bottom:24px}
.loader-line{position:absolute;bottom:12vh;width:min(260px,60vw);height:1px;background:rgba(255,255,255,.2)}
.loader-line span{display:block;height:100%;width:0;background:white;animation:load 1.25s ease forwards}
@keyframes load{to{width:100%}}

.film-grain{
  position:fixed;inset:0;pointer-events:none;z-index:900;opacity:.12;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}

.cursor{
  position:fixed;width:74px;height:74px;border-radius:50%;background:rgba(248,244,236,.9);
  display:grid;place-items:center;z-index:1000;pointer-events:none;transform:translate(-50%,-50%) scale(0);
  transition:transform .18s ease;mix-blend-mode:difference;color:white;font-size:11px;text-transform:uppercase;letter-spacing:.1em;
}
.cursor.active{transform:translate(-50%,-50%) scale(1)}

.site-header{
  position:fixed;left:0;right:0;top:0;height:82px;padding:0 4vw;display:flex;align-items:center;
  justify-content:space-between;z-index:800;color:white;transition:background .35s,color .35s,border .35s;
}
.site-header.scrolled{background:rgba(238,232,221,.86);backdrop-filter:blur(18px);color:var(--ink);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;font-weight:500}
.brand-monogram{width:40px;height:40px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:14px}
.brand-name{font-size:14px}
.site-nav{display:flex;gap:30px;font-size:13px}
.site-nav a{position:relative}
.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:currentColor;transition:right .25s}
.site-nav a:hover:after{right:0}
.menu-button{display:none;background:none;border:0;padding:10px;z-index:3}
.menu-button span{display:block;width:24px;height:1px;background:currentColor;margin:6px 0}

.hero{height:100svh;min-height:720px;position:relative;color:white;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{height:100%;object-fit:cover;transform:scale(1.04);animation:heroIn 1.8s ease forwards}
@keyframes heroIn{to{transform:scale(1)}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,8,.68),rgba(10,10,8,.05) 65%),linear-gradient(transparent 55%,rgba(10,10,8,.52))}
.hero-content{position:relative;z-index:2;height:100%;padding:150px 4vw 52px;display:flex;flex-direction:column;justify-content:center}
.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:600;margin:0 0 26px}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:.92;margin:0}
h1{font-size:clamp(78px,12vw,185px)}
h1 em,h2 em{font-weight:400;color:var(--rust)}
.hero-content h1 em{color:#e4c1a5}
.hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-top:auto}
.hero-bottom>p{max-width:420px;font-size:16px;line-height:1.6;margin:0}
.circle-link{width:118px;height:118px;border:1px solid rgba(255,255,255,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:12px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;transition:background .25s,color .25s,transform .25s}
.circle-link:hover{background:white;color:var(--ink);transform:rotate(-4deg)}
.circle-link b{font-size:20px;font-weight:400}
.hero-index{position:absolute;right:4vw;bottom:38px;z-index:2;display:flex;gap:36px;font-size:10px;text-transform:uppercase;letter-spacing:.12em}

.section{padding:130px 4vw}
.section-intro{display:grid;grid-template-columns:1.15fr .7fr;gap:8vw;align-items:end;margin-bottom:80px}
.section-intro .kicker{grid-column:1/-1}
.section-intro h2{font-size:clamp(62px,8vw,120px)}
.intro-note{max-width:420px;line-height:1.8;margin:0;font-size:16px}

.archive{background:var(--paper-light)}
.editorial-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:22px;row-gap:70px;align-items:start}
.work-item{border:0;padding:0;background:none;text-align:left;cursor:none;position:relative}
.work-item img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .6s}
.work-item:hover img{transform:scale(1.025);filter:contrast(1.04)}
.work-large{grid-column:1/9;height:700px}
.work-christmas{grid-column:9/13;height:460px;margin-top:120px}
.work-tall{grid-column:2/6;height:500px;margin-top:40px}
.work-offset{grid-column:7/13;height:610px;margin-top:-35px}
.work-wide{grid-column:1/8;height:430px;margin-top:20px}
.work-canopy{grid-column:9/13;height:330px;margin-top:115px}
.work-caption{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding-top:13px}
.work-caption strong{font-family:var(--serif);font-size:25px;font-weight:400}
.work-caption small{text-transform:uppercase;letter-spacing:.1em;font-size:9px}

.manifesto{background:var(--sand);overflow:hidden}
.manifesto-line{display:flex;align-items:center;justify-content:space-between;gap:18px;text-transform:uppercase;letter-spacing:.14em;font-size:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}
.manifesto-line i{height:1px;background:var(--line);flex:1}
.manifesto-copy{padding:110px 0 20px;text-align:center}
.manifesto-copy p{font-family:var(--serif);font-size:26px;margin:0 0 20px}
.manifesto-copy h2{font-size:clamp(65px,9vw,140px)}

.session{background:var(--ink);color:var(--paper-light)}
.session-panel{border:1px solid rgba(248,244,236,.18);padding:54px}
.session-top{display:flex;justify-content:space-between;gap:30px;align-items:start;padding-bottom:50px;border-bottom:1px solid rgba(248,244,236,.18)}
.session-top h2{font-size:clamp(65px,8vw,118px)}
.session-top h2 em{color:#d9b095}
.price{font-family:var(--serif);font-size:clamp(56px,7vw,100px)}
.session-grid{display:grid;grid-template-columns:.82fr 1fr;gap:9vw;padding:60px 0}
.session-promise .lead{font-family:var(--serif);font-size:38px;line-height:1.15;margin:0 0 28px}
.session-promise p:not(.lead){line-height:1.8;color:rgba(248,244,236,.65)}
.session-includes div{display:grid;grid-template-columns:55px 1fr;gap:20px;border-top:1px solid rgba(248,244,236,.18);padding:17px 0}
.session-includes div:last-child{border-bottom:1px solid rgba(248,244,236,.18)}
.session-includes span{font-size:10px;letter-spacing:.1em;color:rgba(248,244,236,.45)}
.session-includes p{margin:0}
.session-actions{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:35px;border-top:1px solid rgba(248,244,236,.18)}
.session-actions p{font-size:12px;color:rgba(248,244,236,.55);max-width:480px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:16px 22px;border:1px solid currentColor;transition:background .25s,color .25s,transform .25s}
.button:hover{transform:translateY(-3px)}
.button.dark:hover{background:var(--paper-light);color:var(--ink)}

.about{display:grid;grid-template-columns:.25fr 1fr .75fr;gap:5vw;align-items:center;background:var(--paper)}
.about-number{font-family:var(--serif);font-size:120px;color:rgba(23,24,20,.12);align-self:start}
.about-copy h2{font-size:clamp(58px,7vw,110px);margin-bottom:35px}
.about-copy>p:last-child{max-width:590px;line-height:1.8;font-size:17px}
.about-image{transform:rotate(1deg)}
.about-image img{height:620px;object-fit:cover}
.about-image span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin-top:12px}

.contact{background:var(--olive);color:var(--paper-light);min-height:78vh;display:flex;flex-direction:column;justify-content:space-between}
.contact-copy h2{font-size:clamp(65px,9vw,140px)}
.contact-copy h2 em{color:#e5c4ac}
.contact-copy>p:not(.kicker){font-size:17px;line-height:1.7;max-width:600px;margin:35px 0}
.email-link{display:inline-block;font-family:var(--serif);font-size:clamp(25px,3vw,44px);border-bottom:1px solid rgba(248,244,236,.55);padding-bottom:8px}
.contact-meta{display:flex;gap:28px;margin-top:80px;font-size:12px;text-transform:uppercase;letter-spacing:.1em}

footer{background:var(--olive);color:rgba(248,244,236,.62);border-top:1px solid rgba(248,244,236,.16);padding:24px 4vw;display:flex;justify-content:space-between;gap:20px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}

.lightbox{width:min(94vw,1280px);max-height:94vh;border:0;background:var(--paper-light);padding:18px;color:var(--ink)}
.lightbox::backdrop{background:rgba(10,10,8,.9);backdrop-filter:blur(8px)}
.lightbox-image-wrap{height:78vh;background:#cfc5b6}
.lightbox img{height:100%;object-fit:contain}
.lightbox-meta{display:flex;justify-content:space-between;padding-top:14px}
.lightbox-meta strong{font-family:var(--serif);font-size:24px;font-weight:400}
.lightbox-meta span{font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.lightbox-close{position:absolute;right:28px;top:26px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(248,244,236,.92);font-size:28px;cursor:pointer;z-index:2}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.delay-1{transition-delay:.12s}
.delay-2{transition-delay:.24s}

@media(max-width:980px){
  .section-intro{grid-template-columns:1fr}
  .work-large{grid-column:1/9;height:580px}
  .work-christmas{grid-column:9/13;height:480px;margin-top:100px}
  .work-tall{grid-column:1/6;height:480px;margin-top:80px}
  .work-offset{grid-column:1/7;height:520px}
  .work-wide{grid-column:7/13;height:430px}
  .work-canopy{grid-column:2/12;height:520px;margin-top:90px}
  .session-grid{grid-template-columns:1fr}
  .about{grid-template-columns:1fr 1fr}
  .about-number{display:none}
  .about-image img{height:520px}
}
@media(max-width:720px){
  .cursor{display:none}
  .site-header{height:70px}
  .brand-name{display:none}
  .menu-button{display:block}
  .site-nav{
    position:fixed;inset:0;background:var(--paper-light);color:var(--ink);
    display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;
    font-family:var(--serif);font-size:42px;opacity:0;pointer-events:none;transition:opacity .3s;
  }
  .site-nav.open{opacity:1;pointer-events:auto}
  .hero-content{padding:125px 22px 35px}
  .hero-bottom{align-items:start}
  .circle-link{width:95px;height:95px;flex-shrink:0}
  .hero-index{display:none}
  .section{padding:95px 22px}
  .editorial-grid{display:block}
  .work-item,.work-large,.work-tall,.work-offset,.work-wide,.work-canopy,.work-christmas{display:block;width:100%;height:auto;margin:0 0 52px}
  .work-item img{height:auto}
  .manifesto-line{overflow:hidden;white-space:nowrap}
  .manifesto-line i{min-width:30px}
  .session-panel{padding:28px 20px}
  .session-top{flex-direction:column}
  .session-grid{padding:42px 0}
  .session-actions{align-items:flex-start;flex-direction:column}
  .about{grid-template-columns:1fr}
  .about-image img{height:auto}
  .contact-meta{flex-wrap:wrap}
  footer{flex-direction:column}
}


.addon-row{
  margin-top:12px;
  padding-top:22px!important;
  padding-bottom:22px!important;
  border-top:1px solid rgba(248,244,236,.38)!important;
  border-bottom:1px solid rgba(248,244,236,.38)!important;
}
.addon-row p{line-height:1.45}
.addon-row strong{font-family:var(--serif);font-size:24px;font-weight:400}
.addon-row small{display:inline-block;margin-top:5px;color:rgba(248,244,236,.56);font-size:11px}


.work-christmas .work-caption,
.work-canopy .work-caption{
  max-width:92%;
}

.work-canopy{
  justify-self:end;
  width:100%;
}

.work-canopy img{
  object-position:center 70%;
}

@media(max-width:980px){
  .editorial-grid{column-gap:16px;row-gap:46px}
  .work-large{grid-column:1/9;height:560px}
  .work-christmas{grid-column:9/13;height:380px;margin-top:85px}
  .work-tall{grid-column:1/6;height:430px;margin-top:20px}
  .work-offset{grid-column:6/13;height:500px;margin-top:-20px}
  .work-wide{grid-column:1/8;height:380px;margin-top:10px}
  .work-canopy{grid-column:9/13;height:280px;margin-top:80px}
}

@media(max-width:720px){
  .editorial-grid{display:block}
  .work-item,.work-large,.work-tall,.work-offset,.work-wide,.work-canopy,.work-christmas{
    display:block;
    width:100%;
    height:auto;
    margin:0 0 52px;
  }
  .work-item img{height:auto}
}


.brand-monogram{
overflow:hidden;
padding:0;
background:#fff;
}
.brand-monogram img{
width:100%;
height:100%;
object-fit:cover;
border-radius:50%;
}
.footer-brand{
display:flex;
align-items:center;
gap:10px;
}
.footer-brand img{
width:28px;
height:28px;
border-radius:50%;
}

.brand-monogram{border:none!important;background:transparent!important;overflow:hidden}
.brand-monogram img{width:120%!important;height:120%!important;max-width:none;object-fit:cover;transform:scale(1.08);margin:-10%}
.hero-bottom{justify-content:flex-end}
