:root{--bg:#e8ebe9;--bg-elevated:#f4f6f5;--ink:#12161a;--ink-soft:#12161a9e;--ink-faint:#12161a47;--accent:#0f8a7a;--accent-bright:#14b8a6;--accent-glow:#14b8a659;--line:#12161a1a;--serif:"Instrument Serif", "Times New Roman", serif;--sans:"Syne", system-ui, sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);--header-h:4.25rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:auto}body{min-height:100vh;font-family:var(--sans);color:var(--ink);background:radial-gradient(120% 80% at 10% -10%, #14b8a61f, transparent 55%), radial-gradient(90% 70% at 100% 0%, #12161a0f, transparent 50%), linear-gradient(180deg, #ecefeb 0%, var(--bg) 40%, #e3e8e5 100%);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;margin:0;font-weight:500;overflow-x:hidden}img,video{max-width:100%;display:block}a{color:inherit;text-underline-offset:.22em;transition:color .25s var(--ease);text-decoration-thickness:1px}a:hover{color:var(--accent)}em{font-family:var(--serif);font-style:italic;font-weight:400}.noise{pointer-events:none;z-index:50;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.site-header{z-index:40;height:var(--header-h);mix-blend-mode:difference;color:#f4f6f5;justify-content:space-between;align-items:center;padding:0 clamp(1.25rem,4vw,3rem);display:flex;position:fixed;top:0;left:0;right:0}.brand{font-family:var(--serif);letter-spacing:.01em;font-size:1.35rem;font-style:italic;text-decoration:none}.nav{gap:clamp(1rem,3vw,2rem);display:flex}.nav a{letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-size:.78rem;text-decoration:none}.nav a:hover{opacity:1;color:inherit}.chapter{position:relative}.chapter-pin,.gallery-pin{height:100dvh;padding:calc(var(--header-h) + 1rem) clamp(1.25rem, 4vw, 3rem) 2rem;place-items:center;display:grid;position:relative}.intro-stage{text-align:center;place-items:center;width:min(1100px,100%);min-height:min(70vh,520px);display:grid;position:relative}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);opacity:.7;white-space:nowrap;margin:0;font-size:.72rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.intro-zoom{z-index:1;will-change:transform;transform-origin:50%;position:relative}.intro-line{font-family:var(--serif);letter-spacing:-.02em;flex-wrap:wrap;justify-content:center;gap:.18em .28em;margin:0;font-size:clamp(2.8rem,11vw,7.5rem);font-style:italic;font-weight:400;line-height:.95;display:flex}.intro-line .word{display:inline-flex}.intro-line .char{transform-origin:bottom;will-change:transform, color, opacity;display:inline-block}.accent-target{color:var(--ink);position:relative}.accent-target:after{content:"";background:radial-gradient(circle, var(--accent-glow), transparent 70%);opacity:0;z-index:-1;border-radius:50% 50% 45% 45%;transition:none;position:absolute;inset:8% -4% 4%;transform:scale(.4)}.intro-reveal{z-index:2;opacity:0;pointer-events:none;place-content:center;gap:.75rem;display:grid;position:absolute;inset:0}.reveal-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.75rem}.reveal-copy{font-family:var(--serif);margin:0;max-width:16ch;margin-inline:auto;font-size:clamp(1.8rem,5.5vw,3.6rem);font-style:italic;line-height:1.15}.chapter-bridge{place-items:center;min-height:100vh;padding:8rem clamp(1.25rem,4vw,3rem);display:grid}.bridge-inner{width:min(720px,100%)}.bridge-lead{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3.4rem);line-height:1.15}.bridge-lead em{color:var(--accent);display:inline}.bridge-sub{color:var(--ink-soft);max-width:42ch;margin:0 0 2rem;font-size:clamp(1rem,2vw,1.15rem);line-height:1.65}.text-link{letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--ink);align-items:center;gap:.5rem;padding-bottom:.2rem;font-size:.85rem;text-decoration:none;display:inline-flex}.text-link:hover{border-color:var(--accent)}.chapter-gallery{color:#f4f6f5;background:#0f1418}.gallery-pin{padding:0;overflow:hidden}.gallery-frame{width:100%;height:100%;position:relative}.gallery-slide{opacity:0;visibility:hidden;will-change:transform, opacity;margin:0;position:absolute;inset:0;transform:scale(1.08)}.gallery-slide.is-active{opacity:1;visibility:visible}.gallery-slide img,.gallery-slide video{object-fit:contain;object-position:center;background:#f7f8f7;width:100%;height:100%}.gallery-slide--video video{object-fit:cover;background:#0f1418}.gallery-slide figcaption{z-index:2;text-shadow:0 1px 18px #00000073;gap:.35rem;max-width:34rem;display:grid;position:absolute;bottom:clamp(1.5rem,4vh,3rem);left:clamp(1.25rem,4vw,3rem);right:clamp(1.25rem,4vw,3rem)}.gallery-slide:after{content:"";pointer-events:none;background:linear-gradient(#0f141826 0%,#0f14181a 45%,#0f1418c7 100%);position:absolute;inset:0}.slide-index{letter-spacing:.18em;text-transform:uppercase;opacity:.7;font-size:.7rem}.slide-title{font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.8rem);font-style:italic}.slide-desc{opacity:.82;max-width:36ch;font-size:.95rem;line-height:1.5}.gallery-progress{left:clamp(1.25rem,4vw,3rem);right:clamp(1.25rem,4vw,3rem);top:calc(var(--header-h) + .5rem);z-index:3;background:#f4f6f52e;height:2px;position:absolute;overflow:hidden}.gallery-progress-bar{background:var(--accent-bright);transform-origin:0;width:0%;height:100%;display:block}.chapter-close{background:radial-gradient(80% 60% at 50% 100%, #14b8a624, transparent 60%), var(--bg-elevated);place-items:center;min-height:100vh;padding:8rem clamp(1.25rem,4vw,3rem);display:grid}.close-inner{text-align:center;width:min(820px,100%)}.close-line{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 1.25rem;font-size:clamp(2.4rem,7vw,5rem);font-weight:400;line-height:1.05}.close-line em{color:var(--accent)}.close-sub{max-width:36ch;color:var(--ink-soft);margin:0 auto 2.25rem;line-height:1.6}.btn{border:1px solid var(--ink);letter-spacing:.08em;text-transform:uppercase;transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);border-radius:999px;justify-content:center;align-items:center;padding:.95rem 1.5rem;font-size:.8rem;text-decoration:none;display:inline-flex}.btn:hover{background:var(--ink);color:var(--bg-elevated);border-color:var(--ink)}.chapter-about{border-top:1px solid var(--line);padding:8rem clamp(1.25rem,4vw,3rem) 5rem}.about-grid{grid-template-columns:1.4fr .8fr;gap:clamp(2rem,6vw,5rem);width:min(1100px,100%);margin:0 auto;display:grid}.section-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 1rem;font-size:.7rem}.about-name{font-family:var(--serif);margin:0 0 1.5rem;font-size:clamp(2.2rem,4vw,3.2rem);font-style:italic;font-weight:400}.about-copy p{color:var(--ink-soft);max-width:58ch;margin:0 0 1.15rem;font-size:1.05rem;line-height:1.7}.about-copy p:last-child{margin-bottom:0}.about-copy a{color:var(--ink)}.work-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.work-item{border-bottom:1px solid var(--line);gap:.2rem;padding:1rem 0;text-decoration:none;display:grid}.work-item-title{font-family:var(--serif);font-size:1.25rem;font-style:italic}.work-item-meta{color:var(--ink-soft);font-size:.85rem}.chapter-contact{border-top:1px solid var(--line);padding:6rem clamp(1.25rem,4vw,3rem) 5rem}.contact-inner{width:min(1100px,100%);margin:0 auto}.contact-line{font-family:var(--serif);margin:0 0 2rem;font-size:clamp(2.8rem,8vw,5.5rem);font-style:italic;font-weight:400;line-height:.95}.contact-links{flex-wrap:wrap;gap:1.5rem 2.5rem;display:flex}.contact-links a{letter-spacing:.04em;border-bottom:1px solid var(--ink-faint);padding-bottom:.15rem;font-size:1rem;text-decoration:none}.contact-links a:hover{border-color:var(--accent)}.site-footer{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:1.5rem clamp(1.25rem,4vw,3rem) 2rem;font-size:.8rem;display:flex}.site-footer p{margin:0}@media (prefers-reduced-motion:reduce){.intro-stage,.gallery-slide,.intro-line .char{transition:none!important;transform:none!important}}@media (width<=800px){.about-grid{grid-template-columns:1fr}.site-header{mix-blend-mode:normal;color:var(--ink);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav a{font-size:.68rem}.gallery-slide figcaption{bottom:1.25rem}}
