:root{--paper:#fff;--ink:#000;--glass:rgba(217,217,217,.72);--muted:#636363;--green:#c0ff00;--edge:24px;--gap:16px;--ease:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;background:var(--paper);color:var(--ink)}body{font-family:ABC Diatype,Arial,Helvetica,sans-serif;font-size:15px;line-height:1.25}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0;cursor:pointer;background:none;padding:0}a,button{color:inherit}a{text-decoration-thickness:1px;text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:4px;background-color:var(--green)}button:disabled{opacity:.4;cursor:default}::selection{background:var(--green);color:var(--ink)}::-webkit-scrollbar{width:5px;height:4px}::-webkit-scrollbar-thumb{background:#a0a0a0;border-radius:8px}h1,h2,p{margin:0}h1,h2{font-size:inherit;font-weight:400;text-wrap:balance}svg{flex-shrink:0}img{display:block;width:100%;height:100%;object-fit:cover}body:has(.gallery-all){overflow:hidden}.skip-link{position:fixed;left:24px;top:-100px;padding:12px;background:var(--green);z-index:100}.skip-link:focus{top:12px}.site-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--edge);position:relative;z-index:30;pointer-events:none}.site-header button,.site-header nav{pointer-events:auto}.wordmark{text-align:left;padding:10px 0}.wordmark:hover h1{opacity:.6}nav{display:flex;gap:20px}.nav-pill{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:5px 16px 4px;border-radius:30px;background:var(--glass);backdrop-filter:blur(16px);transition:background-color .2s;line-height:1.2;text-align:left}.site-header .nav-pill{width:176px}.nav-pill.active,.nav-pill:hover,.round-button:hover{background:var(--green)}.nav-heart{width:19px;height:19px;margin-right:-7px}.filter-dot{height:6px;width:6px;border-radius:50%;background:currentColor;margin-left:auto}.gallery{position:absolute;inset:64px var(--edge) var(--edge)}.gallery-all{grid-template-columns:1fr 1fr}.gallery-all,.left-column{display:grid;gap:var(--gap)}.left-column{grid-template-rows:1fr 1fr;min-height:0}.right-column{flex-direction:column}.right-column,.split{min-height:0;display:flex}.split{gap:var(--gap);height:100%;width:100%;min-width:0;animation:divide .7s var(--ease) both}.split-row{flex-direction:row}.split-column{flex-direction:column}.split>*{flex:1}.photo-pane,.split>*{min-width:0;min-height:0}.photo-pane{position:relative;height:100%;width:100%}.photo-surface{width:100%;height:100%;display:block;overflow:hidden;border-radius:25vw;isolation:isolate;transition:border-radius .5s var(--ease);background:#e9e9e9}.photo-surface img{transform:scale(1.045);transition:transform .8s var(--ease);user-select:none}.photo-pane:focus-within>.photo-surface,.photo-pane:hover>.photo-surface{border-radius:0}.photo-pane:focus-within>.photo-surface img,.photo-pane:hover>.photo-surface img{transform:scale(1)}.photo-actions{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:8px;pointer-events:none}.round-button{height:56px;width:56px;display:inline-flex;align-items:center;justify-content:center;background:var(--glass);backdrop-filter:blur(16px);border-radius:50%;transition:transform .45s var(--ease),background-color .2s;pointer-events:auto}.round-button svg{width:26px;height:26px;stroke-width:1.5}.photo-actions .round-button{transform:scale(0)}.photo-actions .round-button:nth-child(2){transition-delay:45ms}.photo-pane:focus-within>.photo-actions .round-button,.photo-pane:hover>.photo-actions .round-button{transform:scale(1)}.is-saved svg{fill:var(--ink)}.photo-caption{position:absolute;left:16px;bottom:16px;display:flex;align-items:center;gap:20px;padding:8px 14px;border-radius:24px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);opacity:0;transform:translateY(6px);transition:opacity .25s,transform .4s var(--ease);max-width:calc(100% - 32px);text-align:left}.photo-caption svg{margin-left:auto}.photo-pane:focus-within>.photo-caption,.photo-pane:hover>.photo-caption{opacity:1;transform:none}.depth-2 .photo-caption,.depth-3 .photo-caption{display:none}.depth-2 .round-button,.depth-3 .round-button{width:36px;height:36px}.depth-2 .round-button svg,.depth-3 .round-button svg{width:20px;height:20px}.filtered-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding-bottom:var(--edge)}.filtered-grid>.photo-pane{aspect-ratio:3/4;height:auto}.gallery-filtered{position:relative;inset:auto;margin:0 var(--edge)}.gallery-filtered .photo-surface{border-radius:15vw}.panel-backdrop{position:fixed;inset:64px 0 0;z-index:35;background:rgba(255,255,255,.12);cursor:default}.navigation-panel{position:fixed;top:76px;right:var(--edge);width:568px;max-height:calc(100dvh - 100px);overflow:auto;padding:20px;border-radius:18px;background:rgba(233,233,233,.94);backdrop-filter:blur(28px);z-index:40;animation:panel-in .45s var(--ease) both;box-shadow:0 12px 36px rgba(0,0,0,.06)}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.text-button{display:inline-flex;align-items:center;gap:8px;min-height:32px}.text-button:hover{opacity:.55}.filter-options{display:grid;gap:7px}.filter-options>button{display:flex;justify-content:space-between;align-items:center;min-height:49px;padding:10px 15px;border-radius:25px;background:rgba(255,255,255,.6);text-align:left}.filter-options>button.selected,.filter-options>button:hover{background:var(--green)}.filter-options span{font-size:13px}.filter-options>.reset-button{margin-top:20px;justify-content:center;gap:8px;background:none}.about-content h2{font-size:30px;line-height:1.1;letter-spacing:-.025em;margin-bottom:28px}.about-content>p{font-size:20px;line-height:1.45;margin-bottom:24px;white-space:pre-line}.about-projects{display:grid}.about-projects button{display:flex;justify-content:space-between;align-items:center;text-align:left;min-height:82px;border-top:1px solid #bcbcbc;gap:15px}.about-projects button:hover{padding-left:8px;transition:padding .25s}.about-projects small{display:block;color:#555;font-size:13px;margin-top:5px}.contact-links{display:flex;gap:24px;margin-top:32px}.contact-links a{display:flex;gap:10px;align-items:center}.saved-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.saved-photo{width:100%;aspect-ratio:3/4;overflow:hidden;border-radius:70px}.saved-photo:hover{border-radius:0;transition:border-radius .4s}.remove-saved{width:100%;display:flex;align-items:center;justify-content:space-between;font-size:12px;min-height:32px}.empty-saved{padding:22px 20px 35px;text-align:center}.empty-saved>svg{margin:0 auto 20px}.empty-saved p+p{color:#555;font-size:14px;max-width:260px;margin:9px auto 26px}.empty-saved .nav-pill,.lightbox{background:var(--paper)}.lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;color:var(--ink);padding:0}.lightbox::backdrop{background:white}.lightbox-inner{height:100%;display:flex;flex-direction:column;padding:0 var(--edge)}.lightbox-header{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:20px}.lightbox-header h2{margin-bottom:4px}.lightbox-header span{font-size:13px;color:var(--muted)}.lightbox-tools{display:flex;gap:12px;align-items:center}.lightbox-tools .round-button{width:34px;height:34px}.lightbox-tools .round-button svg{width:18px;height:18px}.close-viewer{gap:30px}.lightbox-stage{flex:1;min-height:0;position:relative;display:flex;justify-content:center;align-items:center;padding:0 70px}.lightbox-photo{height:100%;width:100%;animation:photo-in .4s var(--ease)}.lightbox-photo img{object-fit:contain}.lightbox-stage>.round-button{position:absolute;z-index:2;width:44px;height:44px}.previous{left:0}.next{right:0}.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:100px;padding:12px 0}.lightbox-footer>span{font-variant-numeric:tabular-nums;min-width:90px}.filmstrip{display:flex;gap:5px;overflow-x:auto;padding:5px;max-width:65%;align-items:center}.filmstrip button{width:40px;height:54px;flex-shrink:0;opacity:.45;transition:opacity .2s}.filmstrip button.current,.filmstrip button:hover{opacity:1}.filmstrip button.current{outline:1px solid black;outline-offset:3px}.case-description{max-width:65ch;padding:20px 0;white-space:pre-line}.lightbox:has(.case-description) .lightbox-stage{min-height:60vh}.lightbox:has(.case-description){overflow:auto}@keyframes divide{0%{opacity:.65;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes panel-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:none}}@keyframes photo-in{0%{opacity:.4;transform:scale(.985)}to{opacity:1;transform:none}}.responsive-photo{display:block;width:100%;height:100%;background-size:cover;background-position:50%;background-repeat:no-repeat}.responsive-photo.full-photo{background-size:contain}.photo-caption>span{min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.filter-options .project-label{font-size:15px;min-width:0;padding-right:14px}.project-label small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.filter-options>button{gap:12px}.lightbox-header>div:first-child{min-width:0}.lightbox-header>div:first-child>span{display:block;max-width:65ch;overflow-wrap:anywhere}.wordmark{padding-right:20px}.wordmark h1{overflow-wrap:anywhere}.about-content>p{font-size:15px}.project-logo{width:34px;height:22px;object-fit:contain;flex-shrink:0}.project-identity{display:flex;align-items:center;gap:12px;min-width:0}.project-identity>div,.project-identity>span{min-width:0}.photo-caption{gap:10px}.photo-caption .project-logo{width:28px;height:18px}.lightbox-header .project-identity{flex:1}.lightbox-header .project-identity>div>span{display:block;max-width:65ch;overflow-wrap:anywhere}.filmstrip,.filmstrip img,.responsive-photo,.responsive-photo img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.filmstrip img,.responsive-photo img{-webkit-user-drag:none}.left-column .photo-surface img{object-position:center 10%}.left-column>.photo-pane:nth-child(2) .photo-surface img{object-position:center 28%}@media(min-width:1600px){.round-button{width:64px;height:64px}}@media(max-width:1000px){.site-header .nav-pill{width:130px}nav{gap:12px}.photo-actions .round-button{width:44px;height:44px}.photo-actions .round-button svg{width:22px;height:22px}.photo-caption{font-size:13px;left:10px;bottom:10px;max-width:calc(100% - 20px);gap:10px}}@media(max-width:700px){:root{--edge:12px;--gap:12px}.site-header{height:100px;display:block;padding-top:12px}.wordmark{padding:0 0 10px;font-size:14px}nav{gap:8px;width:100%}.site-header .nav-pill{flex:1;width:auto;min-height:44px}.gallery{top:100px;bottom:12px}.gallery-all{grid-template-columns:1fr;grid-template-rows:1fr 1.15fr;min-height:640px;position:relative;inset:auto;margin:0 var(--edge) 12px;height:calc(100svh - 112px)}.left-column{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.right-column .photo-surface{border-radius:50vw}.photo-surface{border-radius:45vw}.photo-surface img{object-position:center 35%}body:has(.gallery-all){overflow:auto}.photo-actions{right:7px;top:7px;gap:5px}.photo-actions .round-button{transform:scale(1);width:44px;height:44px}.photo-actions .round-button svg{width:20px;height:20px}.photo-caption{opacity:1;transform:none;font-size:12px;left:8px;bottom:8px;padding:7px 9px;max-width:calc(100% - 16px);gap:5px}.photo-caption svg{width:13px}.filtered-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-filtered .photo-surface{border-radius:30vw}.navigation-panel{top:106px;width:calc(100% - 24px);max-height:calc(100dvh - 118px);padding:18px}.panel-backdrop{top:100px}.about-content h2{font-size:27px}.panel-header{margin-bottom:25px}.filter-options>button{font-size:14px}.lightbox-header{min-height:85px;gap:10px}.lightbox-header h2{font-size:14px}.lightbox-header span{font-size:12px}.lightbox-tools{gap:7px}.close-viewer{gap:9px;padding:7px 12px;min-height:44px}.lightbox-stage{padding:0}.lightbox-stage>.round-button{top:auto;bottom:8px;width:44px;height:44px}.lightbox-photo{padding-bottom:60px}.lightbox-footer{min-height:90px;flex-wrap:wrap;gap:6px;padding-top:0}.filmstrip{order:3;width:100%;max-width:100%;justify-content:flex-start;padding:5px}.filmstrip button{width:36px;height:44px}.lightbox-footer>span{font-size:13px}.lightbox-footer>.text-button{font-size:13px;min-height:44px}.lightbox-tools .round-button{width:44px;height:44px}.split-row{flex-direction:column}.split-column{flex-direction:row}.depth-1 .photo-caption,.depth-2 .photo-actions,.depth-3 .photo-actions{display:none}}@media(hover:none){.photo-actions .round-button{transform:scale(1)}.photo-caption{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}