:root{color:#fffdf8;background:#0f1115;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{height:100%}body{margin:0;min-width:320px;min-height:100vh;background:#0f1115;overflow:auto}:root[data-theme=day]{color:#16181d;background:#f4f2ed}:root[data-theme=day] body{background:#f4f2ed}a{color:inherit;text-decoration:none}img{display:block;width:100%}.site-nav{position:relative;z-index:20;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:clamp(20px,4vw,56px);padding:14px clamp(16px,3vw,42px);color:#16181d;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 -1px #0f111514,0 1px #0f11150a}:root[data-theme=night] .site-nav{color:#f6f3ed;background:#0d0f14f0;box-shadow:inset 0 -1px #ffffff14,0 1px #ffffff0a}.site-nav__links{display:flex;align-items:center;gap:clamp(18px,3vw,42px);flex-wrap:wrap;justify-content:flex-start;margin-left:auto}.site-nav__brand{flex:0 0 auto;color:inherit;font-size:1.02rem;font-weight:800;letter-spacing:0;transition:transform .18s ease}.site-nav__brand:hover,.site-nav__brand:focus-visible{transform:translateY(-1px)}.site-nav__brand:focus-visible{outline:2px solid rgba(22,24,29,.74);outline-offset:4px}:root[data-theme=night] .site-nav__brand:focus-visible{outline-color:#fffdf8bd}.site-nav__links a{display:inline-flex;min-height:34px;align-items:center;color:#16181d;font-size:1.02rem;font-weight:400;letter-spacing:0;transition:color .18s ease,opacity .18s ease,transform .18s ease}.site-nav__links a[aria-current=location]{font-weight:500}.site-nav__links:has(a[aria-current=location]) a:not([aria-current=location]){opacity:.64}.site-nav__links:has(a[aria-current=location]) a:not([aria-current=location]):hover,.site-nav__links:has(a[aria-current=location]) a:not([aria-current=location]):focus-visible{opacity:1}:root[data-theme=night] .site-nav__links a{color:#f6f3ed}.site-nav__links a:hover,.site-nav__links a:focus-visible{color:#000;transform:translateY(-1px)}:root[data-theme=night] .site-nav__links a:hover,:root[data-theme=night] .site-nav__links a:focus-visible{color:#fff}.site-nav__links a:focus-visible{outline:2px solid rgba(22,24,29,.74);outline-offset:4px}:root[data-theme=night] .site-nav__links a:focus-visible{outline-color:#fffdf8bd}.theme-toggle{display:inline-flex;position:relative;width:88px;height:42px;align-items:center;justify-content:space-between;border:0;border-radius:999px;padding:0 12px;background:#eee;color:#16181d;cursor:pointer;box-shadow:inset 4px 4px 8px #c6c8cccc,inset -4px -4px 8px #ffffffdb,0 1px 3px #2a313e1f;transition:background .24s ease,color .18s ease,transform .18s ease}.theme-toggle:hover,.theme-toggle:focus-visible{transform:translateY(-1px)}.theme-toggle:focus-visible{outline:2px solid rgba(22,24,29,.74);outline-offset:4px}:root[data-theme=night] .theme-toggle{background:#737c99;color:#fffdf8;box-shadow:inset 4px 4px 8px #343c54b8,inset -4px -4px 8px #9aa4c229,0 1px 3px #0f172a24}:root[data-theme=night] .theme-toggle:focus-visible{outline-color:#fffdf8bd}.theme-toggle__track-icon{position:relative;z-index:1;display:grid;width:22px;height:22px;place-items:center;color:#aab0bd;opacity:.78}.theme-toggle__track-icon--sun{color:#ffa726;opacity:.9}.theme-toggle__track-icon--moon{color:#9fa7b8}:root[data-theme=night] .theme-toggle__track-icon--sun{color:#c0c7d6;opacity:.7}:root[data-theme=night] .theme-toggle__track-icon--moon{color:#42a5f5;opacity:.95}.theme-toggle__slider{position:absolute;top:4px;left:4px;z-index:2;display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#eee;box-shadow:-2px -2px 4px #ffffffb8,4px 4px 7px #aeb2bc9e;transition:left .26s cubic-bezier(.2,.8,.2,1),background .22s ease}:root[data-theme=night] .theme-toggle__slider{left:50px;background:#eee;box-shadow:-2px -2px 4px #ffffff42,4px 4px 7px #1c23378a}.theme-toggle__icon-well{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#eee;box-shadow:inset 2px 2px 4px #c6c8ccb8,inset -2px -2px 4px #ffffffdb}.theme-icon{display:block;width:20px;height:20px;color:#ffa726;fill:none}.theme-icon--moon{transform:rotate(-18deg);transform-origin:50% 50%}:root[data-theme=night] .theme-toggle__slider .theme-icon{color:#42a5f5}.theme-toggle__track-icon .theme-icon{color:currentColor}.theme-icon__stroke{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.theme-icon__fill{fill:currentColor}main{flex:1;min-height:0;overflow:visible;padding-top:0}.site-shell{display:flex;flex-direction:column;min-height:100%}.photo-strip-section{position:relative;isolation:isolate;height:calc(100svh - 70px);min-height:560px;background:#0f1115}.photo-stage{position:relative;width:100%;height:100%;overflow:hidden;background:#0f1115}:root[data-theme=day] .photo-stage{background:#f4f2ed}.photo-strip-shell{position:relative;min-width:0;height:100%;overflow:hidden}.photo-strip-shell.has-intro:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#00000080;pointer-events:none;transition:background 1.1s ease}.photo-strip-shell.has-intro.is-fading:before{background:#0000002e}.photo-strip-shell.has-intro.is-clearing:before{background:#0000}.photo-intro{position:absolute;inset:40% auto auto 50%;z-index:6;display:grid;gap:8px;justify-items:center;width:min(92vw,680px);padding:0;color:#fffdf8;text-align:center;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity .7s ease,transform .7s ease}.photo-intro.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.photo-intro p{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(2rem,4vw,3.4rem);font-weight:600;line-height:1.05;color:#fffdf8;text-shadow:0 2px 18px rgba(0,0,0,.45)}.photo-intro span{color:#fffdf8e0;font-size:1.2rem;line-height:1.45;text-shadow:0 1px 12px rgba(0,0,0,.4)}.photo-strip{display:grid;height:100%;grid-auto-columns:100%;grid-auto-flow:column;gap:0;width:100%;position:relative;z-index:1;will-change:transform}.strip-card{position:relative;height:100%;min-width:0;overflow:hidden;background:#0f1115}:root[data-theme=day] .strip-card{background:#f4f2ed}:root[data-theme=night] .strip-card{background:#0f1115}.photo-caption{position:absolute;right:clamp(18px,4vw,52px);bottom:clamp(18px,4vw,52px);left:clamp(18px,4vw,52px);display:flex;align-items:flex-end;justify-content:space-between;gap:14px;color:#fffdf6;text-shadow:0 1px 18px rgba(0,0,0,.45)}.photo-progress{position:absolute;left:50%;bottom:clamp(18px,3vw,34px);z-index:5;display:flex;width:100%;align-items:center;transform:translate(-50%);pointer-events:none}.photo-progress__track{display:flex;gap:8px;align-items:center;justify-content:center;width:100%}.photo-progress__dot{position:relative;flex:0 0 1cm;height:18px;border:0;padding:0;background:transparent;cursor:pointer;pointer-events:auto}.photo-progress__dot:before{position:absolute;right:0;left:0;top:50%;height:4px;border-radius:999px;content:"";background:#ffffff6b;box-shadow:inset 0 1px #ffffff38,0 5px 12px #0000003d;transform:translateY(-50%);transition:transform .18s ease,background .18s ease,opacity .18s ease}.photo-progress__label{position:absolute;left:50%;top:calc(100% + 1px);color:#16181d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.64rem;font-weight:400;letter-spacing:0;line-height:1;text-shadow:0 1px 12px rgba(0,0,0,.42);transform:translate(-50%,-2px);opacity:0;white-space:nowrap;pointer-events:none;transition:opacity .18s ease,transform .18s ease}:root[data-theme=night] .photo-progress__label{color:#fffdf8}:root[data-theme=day] .photo-progress__dot:before{background:#ffffff6b}.photo-progress__dot:hover:before,.photo-progress__dot:focus-visible:before{transform:translateY(-50%) scaleY(1.45);opacity:1}.photo-progress__dot:hover .photo-progress__label,.photo-progress__dot:focus-visible .photo-progress__label,.photo-progress__dot.is-active .photo-progress__label{opacity:1;transform:translate(-50%)}.photo-progress__dot.is-active:before{transform:translateY(-50%) scaleY(1.35);background:#fff}:root[data-theme=day] .photo-progress__dot.is-active:before{background:#16181df0}:root[data-theme=night] .photo-progress__dot:before{background:#ffffff80}:root[data-theme=night] .photo-progress__dot.is-active:before{background:#f6f3edf5}.photo-progress__count{display:none}@media(max-width:820px){.photo-caption{align-items:flex-start;flex-direction:column}.photo-caption strong{text-align:left}}.photo-caption span,.project-row span,.profile-kicker{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.profile-section{display:grid;grid-template-columns:minmax(9rem,.38fr) minmax(0,1fr);gap:clamp(28px,7vw,100px);padding:clamp(70px,13vw,160px) clamp(18px,4vw,52px);color:#f8f7f0;background:linear-gradient(135deg,rgba(143,91,74,.34),transparent 34rem),#17231f}.profile-kicker{color:#d7e1cf}.profile-copy{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(15rem,.75fr);gap:clamp(28px,5vw,70px);width:min(1120px,100%)}.profile-copy h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,5.9vw,6.2rem);font-weight:500;line-height:.98}.profile-notes{align-self:end;border-top:1px solid rgba(248,247,240,.28)}.profile-notes p{margin:0;padding:18px 0;border-bottom:1px solid rgba(248,247,240,.18);color:#dfe4d8;font-size:.98rem;line-height:1.65}.project-section{padding:clamp(64px,10vw,118px) clamp(18px,4vw,52px);background:#edf1f0}.photo-caption strong{max-width:18rem;font-size:clamp(1.1rem,2.6vw,2rem);line-height:1.05;text-align:right}.project-list{width:min(1120px,100%);margin:0 auto;border-top:1px solid rgba(23,23,23,.18)}.project-row{display:grid;grid-template-columns:minmax(12rem,.9fr) minmax(16rem,1.2fr) 5.5rem;gap:clamp(18px,4vw,52px);align-items:center;padding:clamp(22px,4.5vw,44px) 0;border-bottom:1px solid rgba(23,23,23,.14)}.project-row span{color:#75665c}.project-row h2{margin:8px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,3vw,3rem);font-weight:500;line-height:1}.project-row p{max-width:33rem;margin:0;color:#49514c;font-size:1rem;line-height:1.55}.project-row time{justify-self:end;color:#963f34;font-size:.92rem;font-weight:700}.wall-slide{height:100%;padding:clamp(12px,1.6vw,20px) clamp(24px,2.8vw,40px) clamp(48px,4.4vw,60px);color:#f6f3ed}:root[data-theme=day] .wall-slide{color:#16181d}.photo-wall-grid{display:grid;height:100%;width:100%;min-height:0;grid-auto-flow:row dense;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(4px,.55vw,8px)}.wall-tile{position:relative;overflow:hidden;min-height:0;margin:0;grid-column:span var(--tile-columns);grid-row:span var(--tile-rows);border:0;border-radius:5px;background:transparent;isolation:isolate}:root[data-theme=day] .wall-tile{background:transparent}.wall-tile{position:relative;display:block;width:100%;border:0;padding:0;background:transparent}.wall-tile img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:scale(1.01);transition:filter .24s ease,transform .32s ease}.wall-tile:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:"";opacity:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.72));transition:opacity .24s ease;pointer-events:none}.wall-tile figcaption{position:absolute;inset:auto 0 0 0;z-index:2;display:grid;gap:4px;padding:18px 16px 14px;color:#fff;font-size:.84rem;line-height:1.4;opacity:0;transform:translateY(12px);transition:opacity .22s ease,transform .22s ease}.wall-tile__caption,.wall-tile__meta{display:block}.wall-tile__meta{color:#ffffffbd;font-size:.7rem;line-height:1.25}.wall-tile:hover,.wall-tile:focus-within{z-index:3}.wall-tile--mobile:hover,.wall-tile--mobile:focus-within{z-index:auto}.wall-tile:hover img,.wall-tile:focus-within img{filter:brightness(.82);transform:scale(1.06)}.wall-tile--mobile:hover img,.wall-tile--mobile:focus-within img{filter:none;transform:scale(1.01) translateZ(0)}.wall-tile:hover:after,.wall-tile:focus-within:after,.wall-tile:hover figcaption,.wall-tile:focus-within figcaption{opacity:1}.wall-tile--mobile:hover:after,.wall-tile--mobile:focus-within:after,.wall-tile--mobile:hover figcaption,.wall-tile--mobile:focus-within figcaption{opacity:0}.wall-tile:hover figcaption,.wall-tile:focus-within figcaption{transform:translateY(0)}.wall-tile--mobile:hover figcaption,.wall-tile--mobile:focus-within figcaption{transform:translateY(12px)}@media(min-width:521px){.wall-tile[aria-pressed=true]{z-index:auto}}@media(max-width:520px){.wall-tile{-webkit-tap-highlight-color:transparent;text-align:left;-moz-appearance:none;appearance:none;-webkit-appearance:none}.wall-tile--mobile{touch-action:manipulation;cursor:pointer}.wall-tile--mobile .wall-tile__mobile-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";background:transparent}.wall-tile--mobile .wall-tile__mobile-meta{position:absolute;inset:auto 0 0 0;z-index:3;display:grid;gap:4px;padding:34px 10px 10px;color:#fff;opacity:0;transform:translateY(12px);transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1);pointer-events:none}.wall-tile--mobile.is-open .wall-tile__mobile-meta{opacity:1;transform:translateY(0);pointer-events:auto}.wall-tile--mobile img{filter:none;transform:scale(1.01) translateZ(0);transition:filter .28s ease,transform .32s cubic-bezier(.22,1,.36,1)}.wall-tile--mobile:after{opacity:0;transition:opacity .28s ease}.wall-tile--mobile.is-open .wall-tile__mobile-meta{opacity:1;transform:translateY(0)}.wall-tile--mobile.is-open img{filter:brightness(.82);transform:scale(1.06)}.wall-tile--mobile.is-open:after{opacity:1}}.contact-section{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;padding:clamp(58px,10vw,104px) clamp(18px,4vw,52px);color:#fffdf8;background:#243a42}.contact-section p{max-width:780px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,5.2rem);line-height:.98}.contact-section a{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border:1px solid rgba(255,253,248,.58);padding:0 18px;color:#fffdf8;font-size:.88rem;font-weight:700;transition:background .18s ease,color .18s ease}.contact-section a:hover{color:#243a42;background:#fffdf8}@media(max-width:820px){.photo-caption{align-items:flex-start;flex-direction:column}.photo-caption strong{text-align:left}.profile-section,.profile-copy,.project-row,.contact-section{grid-template-columns:1fr}.profile-copy{gap:26px}.project-row time{justify-self:start}.contact-section{align-items:start}.wall-slide{padding:clamp(18px,4vw,28px) clamp(18px,5vw,34px) clamp(62px,12vw,84px)}.photo-wall-grid{grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(5,minmax(0,1fr))}.wall-tile--standard,.wall-tile--wide,.wall-tile--tall,.wall-tile--large{grid-column:span 1;grid-row:span 2}}@media(max-width:760px){.site-nav{gap:12px;padding:12px 14px}.site-nav__links{gap:14px;margin-left:0;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.site-nav__links a{flex:0 0 auto;min-height:28px;font-size:.9rem}.photo-progress{left:0;right:0;transform:none}}@media(max-width:520px){.theme-toggle{display:none}.photo-progress__dot{flex-basis:1cm}.photo-wall-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.wall-tile--standard,.wall-tile--wide,.wall-tile--tall,.wall-tile--large{grid-column:span 1;grid-row:span 1}.wall-slide{padding:16px 14px 58px}.wall-tile figcaption{padding:34px 10px 10px;font-size:.78rem}}
