@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap');

:root{--bg:#f5f2ec;--ink:#161616;--muted:#65615b;--line:#d9d5ce;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--pad:clamp(28px,3.2vw,58px);--index:clamp(28px,3vw,52px);--circle-size:48px}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:auto}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;overflow-x:hidden}
body::selection{background:#161616;color:var(--bg)}
a{color:inherit;text-decoration:none}
button{color:inherit;font:inherit}
img{display:block;max-width:100%}
.site-header{align-items:center;display:flex;height:100px;justify-content:space-between;padding:0 var(--pad);position:relative;z-index:30}
.wordmark{align-items:center;display:inline-flex;font:28px/1 var(--serif);gap:7px;letter-spacing:.02em}
.wordmark-circle{border:1px solid currentColor;border-radius:50%;display:inline-block;height:17px;width:17px}
.desktop-nav{display:flex;gap:30px}
.desktop-nav a,.menu-toggle,.site-footer{font-size:11px;letter-spacing:.06em}
.desktop-nav a{transition:opacity .2s ease}
.desktop-nav a:hover{opacity:.45}
.menu-toggle{background:none;border:0;cursor:pointer;display:none;padding:8px 0}
.mobile-menu{background:var(--bg);display:none;flex-direction:column;gap:20px;padding:24px var(--pad) 34px;position:fixed;right:0;top:74px;width:100%;z-index:29}
.mobile-menu.is-open{display:flex}
.mobile-menu a{font:34px/1 var(--serif)}
.master-circle{height:var(--circle-size);left:0;pointer-events:none;position:fixed;top:0;transform:translate3d(0,0,0);transform-origin:center center;width:var(--circle-size);z-index:20}
.master-circle-svg{height:100%;overflow:visible;width:100%}
.master-circle-svg circle{fill:none;shape-rendering:geometricPrecision;stroke:url(#black-chrome-ring)}
.site-section{min-height:100svh;position:relative}
.section-index{left:var(--index);position:absolute;top:clamp(32px,5.6vw,94px);z-index:3}
.section-index span{display:block;font:16px/1 var(--serif)}
.section-index i{background:#8d8982;display:block;height:46px;margin:15px 0 14px;width:1px}
.section-index strong{display:block;font-size:9px;font-weight:500;letter-spacing:.1em;writing-mode:vertical-rl}
.circle-anchor{display:block;height:1px;left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;width:1px}
.intro-section{min-height:90svh}
.intro-content{align-items:center;display:flex;flex-direction:column;height:calc(90svh - 100px);justify-content:center;padding-top:5svh;position:relative}
.intro-anchor{top:39%}
.intro-line{font:clamp(24px,2vw,30px)/1.1 var(--serif);letter-spacing:.02em;margin:clamp(130px,15vh,190px) 0 0;text-align:center}
.scroll-cue{color:var(--muted);font:20px/1 var(--serif);margin-top:24px;padding:10px}
.scroll-cue span{display:block;animation:soft-bounce 2.5s ease-in-out infinite}
@keyframes soft-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.object-section{min-height:108svh;padding:0 var(--pad) 12vh}
.object-content{margin-left:8.8vw;padding-top:clamp(190px,13vh,240px)}
.object-frame{margin:0;max-width:1380px;overflow:hidden;position:relative;width:min(86vw,1380px)}
.object-frame img{aspect-ratio:1.7;height:auto;object-fit:cover;transform:scale(1.02);width:100%}
.object-anchor{left:48%;top:54%}
.object-note{color:var(--muted);font-size:10px;letter-spacing:.1em;margin:18px 0 0 1px}
.space-transition{height:210svh;position:relative}
.space-sticky{height:100svh;overflow:hidden;position:sticky;top:0}
.space-stage{height:100%;position:relative}
.space-mask{clip-path:circle(var(--circle-radius,0px) at var(--circle-x,50%) var(--circle-y,50%));height:100%;inset:0;opacity:0;overflow:hidden;position:absolute;width:100%;will-change:clip-path,opacity}
.space-mask img{height:100%;object-fit:cover;object-position:center;width:100%}
.space-anchor{left:50%;top:50%}
.space-note{bottom:clamp(26px,6vh,76px);color:var(--muted);font-size:10px;letter-spacing:.12em;margin:0;position:absolute;right:var(--pad)}
.work-section{min-height:110svh;padding:0 var(--pad)}
.work-content{margin-left:32vw;padding-top:clamp(180px,20vh,260px);position:relative;width:calc(100% - 32vw)}
.section-lede{font:clamp(28px,3vw,44px)/1.02 var(--serif);margin:0 0 76px}
.work-list{border-top:1px solid var(--line);width:100%}
.work-item{align-items:center;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer;display:grid;grid-template-columns:42px 45px 1fr 26px;min-height:104px;padding:0;text-align:left;transition:color .35s ease}
.work-item:focus-visible{outline:1px solid var(--ink);outline-offset:6px}
.work-number{font-size:12px}
.work-circle{border:1px solid #181818;border-radius:50%;height:22px;transition:opacity .45s ease,transform .45s ease;width:22px}
.work-title{font:clamp(34px,3.2vw,44px)/1 var(--serif);transition:transform .5s cubic-bezier(.22,.8,.24,1)}
.work-arrow{font-size:22px;justify-self:end;transition:transform .5s cubic-bezier(.22,.8,.24,1)}
.work-item:hover .work-circle,.work-item.is-active .work-circle{opacity:0}
.work-item:hover .work-title,.work-item.is-active .work-title{transform:translateX(8px)}
.work-item:hover .work-arrow,.work-item.is-active .work-arrow{transform:translateX(5px)}
.work-preview{height:0;left:-30vw;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:clamp(180px,20vh,260px);transform:translateY(10px);transition:height .55s ease,opacity .55s ease,transform .55s ease;width:min(27vw,380px)}
.work-preview.is-visible{height:min(19vw,260px);opacity:1;transform:translateY(0)}
.work-preview img{height:100%;object-fit:cover;width:100%}
.work-preview p{font-size:9px;letter-spacing:.08em;margin:10px 0}
.work-anchor{left:0;top:56%}
.thought-section{min-height:110svh}
.thought-content{align-items:center;display:flex;height:100%;justify-content:center;position:relative}
.thought-content p{font:clamp(52px,5.4vw,72px)/1.05 var(--serif);margin:0;text-align:center}
.thought-anchor{left:92vw;top:58%}
.end-section{height:70svh;min-height:0}
.end-content{align-items:center;display:flex;height:100%;justify-content:center;position:relative}
.end-word{font:clamp(54px,5.2vw,74px)/1 var(--serif);letter-spacing:.27em;margin-left:.27em}
.end-anchor{left:calc(50% + clamp(140px,12vw,220px));top:50%}
.site-footer{align-items:center;display:flex;height:100px;justify-content:space-between;padding:0 var(--pad)}
.site-footer div{display:flex;gap:28px}
.site-footer a{transition:opacity .2s ease}
.site-footer a:hover{opacity:.45}
@media(max-width:1024px){
  :root{--circle-size:42px}
  .site-header{height:84px}
  .object-content{margin-left:7vw}
  .object-frame{width:calc(100vw - 10vw)}
  .work-content{margin-left:24vw;width:calc(100% - 24vw)}
  .work-preview{left:-22vw;width:20vw}
  .thought-content p{font-size:clamp(46px,6vw,62px)}
}
@media(max-width:767px){
  :root{--pad:16px;--index:16px;--circle-size:36px}
  .site-header{height:74px}
  .wordmark{font-size:24px}
  .wordmark-circle{height:15px;width:15px}
  .desktop-nav{display:none}
  .menu-toggle{display:block}
  .section-index{position:relative;top:auto;left:auto;padding:24px var(--pad) 0}
  .section-index span{display:inline;font:14px/1 var(--serif)}
  .section-index i{display:inline-block;height:1px;margin:0 8px 3px;width:26px}
  .section-index strong{display:inline;font-size:9px;letter-spacing:.12em;writing-mode:initial}
  .intro-section{min-height:85svh}
  .intro-content{height:calc(85svh - 74px);padding-top:0}
  .intro-anchor{top:36%}
  .intro-line{font-size:21px;margin-top:132px}
  .scroll-cue{margin-top:18px}
  .object-section{min-height:auto;padding:0 16px 110px}
  .object-content{margin:0;padding-top:88px}
  .object-frame{width:100%}
  .object-frame img{aspect-ratio:4/5;object-position:62% center}
  .object-note{margin-top:14px}
  .space-transition{height:165svh}
  .space-sticky{height:100svh}
  .space-note{bottom:24px;font-size:9px;right:16px}
  .work-section{min-height:auto;padding:0 16px 130px}
  .work-content{margin:0;padding-top:90px;width:100%}
  .section-lede{font-size:30px;margin-bottom:54px}
  .work-item{grid-template-columns:30px 32px 1fr 20px;min-height:86px}
  .work-circle{height:18px;width:18px}
  .work-title{font-size:29px}
  .work-arrow{font-size:18px}
  .work-preview{display:none}
  .thought-section{min-height:94svh}
  .thought-content{padding:0 22px}
  .thought-content p{font-size:clamp(34px,9.6vw,42px)}
  .thought-anchor{left:88vw;top:55%}
.end-section{height:68svh;min-height:0}
  .end-word{font-size:clamp(44px,12vw,52px);letter-spacing:.18em;margin-left:.18em}
  .end-anchor{left:calc(50% + 104px)}
  .site-footer{font-size:10px;height:82px;padding:0 16px}
  .site-footer div{gap:18px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
