*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--black:#08080f;--white:#fff;--grey-100:#e8e8f0;--grey-200:#a8a8b8;--grey-300:#787888;--grey-400:#ffffff24;--grey-500:#ffffff0f;--red:#e85d4c;--accent:#8b7cf6;--accent-warm:#e8a87c;--glass-bg:#ffffff12;--glass-bg-strong:#ffffff1f;--glass-border:#ffffff29;--glass-blur:blur(28px);--font-sans:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:"Syne", "Inter", sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--touch-min:44px;--text-premium:#fffffff5;--text-premium-soft:#ffffffe0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}html,body{width:100%;max-width:100vw;height:100%;min-height:100dvh;color:var(--white);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;background:#050805;overflow:clip hidden}@media (pointer:fine){body.use-custom-cursor,body.use-custom-cursor *{cursor:none!important}}.bg-ambient{z-index:0;background:#050805;position:fixed;inset:0;overflow:hidden}.bg-panorama-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.bg-panorama-overlay{z-index:1;pointer-events:none;background:radial-gradient(80% 60%,#0000 35%,#04080459 100%),linear-gradient(#02040273 0%,#04080426 40%,#02040280 100%);transition:background 1.4s;position:absolute;inset:0}.bg-panorama-overlay[data-theme=travel]{background:radial-gradient(80% 60%,#0000 35%,#12080261 100%),linear-gradient(#0c060280 0%,#140a041f 42%,#0a050285 100%)}.bg-noise{opacity:.035;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' 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:absolute;inset:0}#camera-cursor{z-index:9999;pointer-events:none;opacity:0;will-change:transform;position:fixed;top:0;left:0;transform:translate(-100px,-100px)}#camera-cursor.visible{opacity:1}.camera-cursor__svg{filter:drop-shadow(0 3px 10px #00000073);display:block;overflow:visible}.camera-cursor__body{transition:transform .12s cubic-bezier(.34,1.25,.64,1)}.camera-cursor__shutter{transform-origin:20.5px 19.5px;transition:transform .12s cubic-bezier(.34,1.45,.64,1)}#camera-cursor.clicking .camera-cursor__body{transform:scale(.96)}#camera-cursor.clicking .camera-cursor__shutter{transform:translateY(4px)}@media (pointer:coarse){#camera-cursor{display:none}}#app{z-index:1;width:100%;height:100%;position:relative}.view{opacity:0;pointer-events:none;z-index:1;position:fixed;inset:0}.view.visible{opacity:1;pointer-events:auto}#view-work,.view{min-height:100dvh}#view-work{z-index:0}#view-work.visible{pointer-events:none}#gallery-canvas,.layout-toggle,.gallery-hint{pointer-events:auto}#gallery-canvas{touch-action:none;width:100%;height:100%;display:block}.gallery-vignette{pointer-events:none;z-index:2;background:radial-gradient(#0000 52%,#0408041f 82%,#02040252 100%);transition:background 1.2s;position:absolute;inset:0}.photo-filter-menu{z-index:120;position:relative}.photo-filter-menu__trigger{border:1px solid var(--glass-border);background:var(--glass-bg);min-width:168px;-webkit-backdrop-filter:var(--glass-blur);color:var(--white);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:100px;align-items:center;gap:10px;padding:12px 18px 12px 14px;font-size:11px;font-weight:500;transition:background .25s,border-color .25s;display:inline-flex;box-shadow:0 4px 24px #0000002e}.photo-filter-menu__trigger:hover,.photo-filter-menu.is-open .photo-filter-menu__trigger{background:var(--glass-bg-strong);border-color:#ffffff38}.site-header:has(.photo-filter-menu.is-open){z-index:250}.header-center{transition:opacity .22s,visibility .22s,max-height .28s}.site-header:has(.photo-filter-menu.is-open) .header-center{opacity:0;visibility:hidden;pointer-events:none;max-height:0;margin:0;padding:0;overflow:hidden}.photo-filter-menu.is-open .photo-filter-menu__chevron{transform:rotate(180deg)}.photo-filter-menu__icon{opacity:.85;flex-shrink:0}.photo-filter-menu__label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.photo-filter-menu__chevron{opacity:.6;flex-shrink:0;transition:transform .25s}.photo-filter-menu__backdrop{display:none}.photo-filter-menu__panel{z-index:130;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(32px);background:#0c0e0ce0;border-radius:16px;min-width:100%;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 16px 48px #00000059}.photo-filter-menu__list{margin:0;padding:0;list-style:none}.photo-filter-menu__option{color:#ffffffc7;width:100%;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:10px;padding:12px 16px;font-size:11px;font-weight:500;transition:background .2s,color .2s;display:block}.photo-filter-menu__option:hover{color:var(--white);background:#ffffff14}.photo-filter-menu__option.is-active{color:var(--black);background:#ffffffeb}body[data-theme=travel] .gallery-vignette{background:radial-gradient(#0000 44%,#140a042e 80%,#0c06027a 100%)}body[data-layout=flat] .gallery-vignette{background:radial-gradient(#0000 62%,#0408040f 88%,#02040229 100%)}body[data-layout=flat][data-theme=travel] .gallery-vignette{background:radial-gradient(#0000 58%,#180c041f 86%,#0e07024d 100%)}body[data-layout=flat] .bg-panorama-overlay:not([data-theme=travel]){background:radial-gradient(82% 65%,#0000 42%,#04080438 100%),linear-gradient(#02040252 0%,#04080414 42%,#02040257 100%)}body[data-layout=flat] .bg-panorama-overlay[data-theme=travel]{background:radial-gradient(85% 68%,#0000 38%,#160a0347 100%),linear-gradient(#0e070261 0%,#160b041a 44%,#0a05025c 100%)}.gallery-hint{left:max(16px, var(--safe-left));right:max(16px, var(--safe-right));width:fit-content;max-width:min(calc(100vw - 32px - var(--safe-left) - var(--safe-right)), 320px);bottom:calc(88px + var(--safe-bottom));z-index:90;font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--grey-200);pointer-events:none;opacity:0;white-space:nowrap;text-align:center;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-sizing:border-box;border-radius:100px;margin-inline:auto;padding:10px 18px;font-size:clamp(8px,2.2vw,10px);line-height:1.45;position:fixed;box-shadow:0 8px 32px #00000038}.gallery-hint--flat{white-space:normal;letter-spacing:.08em;max-width:min(calc(100vw - 32px - var(--safe-left) - var(--safe-right)), 248px);border-radius:16px;padding:11px 20px;line-height:1.55}.gallery-loading{left:max(20px, var(--safe-left));right:max(20px, var(--safe-right));bottom:calc(108px + var(--safe-bottom));z-index:95;-webkit-backdrop-filter:blur(24px);pointer-events:none;opacity:0;visibility:hidden;background:#060a06e0;border:1px solid #ffffff24;border-radius:14px;width:min(100%,400px);margin-inline:auto;padding:14px 18px;transition:opacity .22s,visibility .22s;position:fixed;box-shadow:0 10px 40px #00000059}.gallery-loading.is-visible{opacity:1;visibility:visible}.gallery-loading__track{background:#ffffff1f;border-radius:99px;height:3px;overflow:hidden}.gallery-loading__bar{transform-origin:0;will-change:transform;background:linear-gradient(90deg,#ffffff80,#fff);border-radius:99px;width:100%;height:100%;transition:transform .18s ease-out;display:block;transform:scaleX(0)}.gallery-loading__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#ffffffc7;text-align:center;margin:10px 0 0;font-size:clamp(9px,2.4vw,10px);line-height:1.4}.intro-splash{z-index:500;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#050805;width:100%;height:100dvh;position:fixed;inset:0;overflow:hidden}.intro-bg{z-index:0;pointer-events:none;position:absolute;inset:0}.intro-bg img{object-fit:cover;object-position:center center;filter:blur(10px)brightness(.48)saturate(.85);width:100%;height:100%;transition:filter .45s,transform .45s;transform:scale(1.06)}.intro-splash.is-focused .intro-bg img{filter:blur()brightness(.82)saturate(1.05);transform:scale(1)}.intro-vignette{z-index:1;pointer-events:none;background:radial-gradient(#0000 38%,#04080438 72%,#02040280 100%);transition:opacity .45s;position:absolute;inset:0}.intro-splash.is-focused .intro-vignette{opacity:.25}.intro-focus{z-index:2;width:100%;min-height:100dvh;padding:max(16px, var(--safe-top)) max(24px, var(--safe-right)) max(16px, var(--safe-bottom)) max(24px, var(--safe-left));box-sizing:border-box;flex-direction:column;align-items:center;display:flex;position:relative}.intro-center{flex:1 1 0;justify-content:center;align-items:flex-end;width:100%;min-height:0;display:flex}.intro-tail{text-align:center;flex-direction:column;flex:1 1 0;align-items:center;width:100%;min-height:0;display:flex}.intro-name-line{font-family:var(--font-display);letter-spacing:-.04em;color:#fff;text-align:center;text-shadow:0 0 40px #ffffff1f,0 4px 48px #00000073;will-change:filter, opacity, transform;max-width:min(92vw,720px);font-size:clamp(40px,11vw,120px);font-weight:800;line-height:.95}.intro-name-line,.intro-name-portfolio,.intro-tagline{opacity:.92;filter:blur(6px)}.intro-name-portfolio{font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;color:#ffffffd1;will-change:filter, opacity, transform;margin-top:clamp(8px,2vw,20px);padding-left:.28em;font-size:clamp(14px,3.5vw,36px);font-weight:600}.intro-tagline{max-width:34ch;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#ffffffad;will-change:filter, opacity, transform;margin-top:clamp(12px,2.5vw,22px);font-size:clamp(9px,2vw,11px);font-weight:500;line-height:1.65}.intro-prompt-wrap{z-index:3;width:min(88vw,380px);margin-top:clamp(28px,5vw,44px);transition:opacity .4s,transform .4s;position:relative;top:auto;left:auto;transform:none}.intro-prompt-wrap.is-hidden{opacity:0;pointer-events:none;transform:scale(.96)}.intro-prompt{width:100%;min-height:var(--touch-min);font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:#ffffffeb;text-align:center;-webkit-backdrop-filter:blur(36px)saturate(1.5);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:linear-gradient(145deg,#ffffff24 0%,#ffffff0a 42%,#ffffff12 100%);border:1px solid #ffffff38;border-radius:10px;margin:0;padding:clamp(22px,4.5vw,30px) clamp(24px,5vw,52px);font-size:clamp(11px,2.6vw,14px);font-weight:500;line-height:1.5;animation:3s ease-in-out infinite intro-prompt-pulse;display:block;position:relative;overflow:hidden;box-shadow:0 24px 64px #0000006b,inset 0 1px #ffffff2e,inset 0 -1px #0000001f}.intro-prompt:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffffff29 0%,#0000 38% 62%,#ffffff0a 100%);position:absolute;inset:0}.intro-prompt:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff73,#0000);height:1px;position:absolute;top:0;left:12%;right:12%}.intro-prompt__mobile{display:none}@keyframes intro-prompt-pulse{0%,to{box-shadow:0 24px 64px #0000006b,inset 0 1px #ffffff2e,inset 0 -1px #0000001f}50%{box-shadow:0 28px 72px #0000007a,inset 0 1px #ffffff3d,inset 0 -1px #0000001f}}@media (pointer:coarse){.intro-splash{cursor:pointer}.intro-focus{padding:max(12px, var(--safe-top)) max(16px, var(--safe-right)) max(12px, var(--safe-bottom)) max(16px, var(--safe-left))}.intro-name-line{font-size:clamp(34px,10vw,72px)}.intro-name-portfolio{letter-spacing:.2em;font-size:clamp(12px,3.2vw,22px)}.intro-tagline{letter-spacing:.12em;max-width:28ch;font-size:clamp(8px,2.4vw,10px);line-height:1.7}.intro-prompt-wrap{width:min(92vw,340px);margin-top:clamp(20px,4vw,32px)}.intro-prompt{letter-spacing:.12em;border-radius:10px;padding:18px 22px;font-size:clamp(12px,3.2vw,14px)}.intro-prompt__desktop{display:none}.intro-prompt__mobile{display:inline}.layout-toggle,.project-back,.photo-filter-menu__trigger,.photo-filter-menu__option,.nav-pill,.btn-primary,.contact-link{min-height:var(--touch-min);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gallery-hint{bottom:calc(108px + var(--safe-bottom));letter-spacing:.07em;padding:9px 16px;font-size:clamp(8px,2.4vw,9px)}.gallery-hint--flat{max-width:min(calc(100vw - 24px - var(--safe-left) - var(--safe-right)), 220px);padding:10px 16px;line-height:1.5}.gallery-loading{bottom:calc(118px + var(--safe-bottom));padding:16px 18px}.gallery-loading__label{font-size:10px}}.layout-toggle{z-index:110;border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);color:#ffffffd9;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;opacity:0;pointer-events:auto;border-radius:100px;grid-area:1/3;place-self:center end;align-items:center;gap:9px;padding:12px 18px;font-size:11px;font-weight:500;transition:background .25s,border-color .25s,color .25s;display:inline-flex;position:static;box-shadow:0 4px 24px #0000002e}.layout-toggle:hover{background:var(--glass-bg-strong);border-color:#ffffff38}.layout-toggle.is-active{color:#0a0a0a;background:#ffffffeb;border-color:#ffffff59}.layout-toggle:disabled{opacity:.5;cursor:wait}.site-header{top:calc(10px + var(--safe-top));z-index:100;padding:26px max(clamp(16px, 4vw, 32px), var(--safe-left)) 14px max(clamp(16px, 4vw, 32px), var(--safe-right));pointer-events:none;grid-template-columns:auto 1fr auto;align-items:center;gap:14px 18px;transition:opacity .35s,visibility .35s;display:grid;position:fixed;left:0;right:0}body:not([data-view=work]) .site-header{opacity:0;visibility:hidden;pointer-events:none}body[data-view=about] .page-content,body[data-view=contact] .page-content{padding-top:calc(88px + var(--safe-top))}.site-header>*{pointer-events:auto}.site-header__toolbar{grid-area:1/1;align-items:center;min-width:0;display:flex}.site-header__toolbar .photo-filter-menu{min-width:0}.header-center{grid-area:1/2;justify-content:center;min-width:0;display:flex}.conservation-banner{width:100%;max-width:min(680px,100%);font-family:var(--font-mono);letter-spacing:.04em;color:#ffffffd1;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:100px;align-items:center;gap:12px;padding:13px 20px;font-size:clamp(9px,1.9vw,12px);font-weight:500;line-height:1.5;display:inline-flex;box-shadow:0 4px 24px #00000026}.conservation-text{flex:1;min-width:0;display:block}.conservation-dot{background:#7dd4a0;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2.8s ease-in-out infinite pulseDot;box-shadow:0 0 10px #7dd4a08c}@keyframes pulseDot{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.bottom-nav{left:max(16px, var(--safe-left));right:max(16px, var(--safe-right));bottom:calc(28px + var(--safe-bottom));z-index:100;width:fit-content;max-width:calc(100vw - 32px - var(--safe-left) - var(--safe-right));background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);opacity:0;pointer-events:auto;border-radius:100px;justify-content:center;align-items:center;gap:4px;margin-inline:auto;padding:5px;display:inline-flex;position:fixed;box-shadow:0 8px 32px #00000038}.nav-pill{letter-spacing:.04em;color:var(--grey-100);white-space:nowrap;border-radius:100px;justify-content:center;align-items:center;padding:10px 28px;font-size:12px;font-weight:500;text-decoration:none;transition:background .25s,color .25s;display:inline-flex}.nav-pill:hover{color:var(--white);background:#ffffff0f}.nav-pill.active{color:var(--black);background:#ffffffeb}.site-footer{display:none}.scroll-section{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-backdrop-filter:blur(20px);z-index:10;background:#04080480;height:100%;max-height:100dvh;overflow:hidden auto}body[data-theme=travel] .scroll-section{background:#120a0680}.page-content{max-width:1100px;padding:calc(140px + var(--safe-top)) 48px calc(120px + var(--safe-bottom));margin:0 auto}.page-label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--grey-300);margin-bottom:16px;font-size:11px}.page-title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:48px;font-size:clamp(52px,9vw,104px);font-weight:800;line-height:.95}.lead{color:var(--grey-100);margin-bottom:24px;font-size:20px;line-height:1.6}.about-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:64px;display:grid}.about-text .lead{color:var(--text-premium)}.about-text p{color:var(--text-premium-soft);margin-bottom:20px;font-size:16px;line-height:1.75}.about-subheading{letter-spacing:-.01em;color:var(--text-premium);margin:32px 0 16px;font-size:18px;font-weight:600}.about-meta{background:var(--glass-bg);height:fit-content;-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:20px;flex-direction:column;align-self:start;align-items:center;gap:24px;padding:28px;display:flex}.about-portrait{aspect-ratio:1;border:1px solid var(--glass-border);background:#ffffff0a;border-radius:50%;flex-shrink:0;width:clamp(148px,14vw,180px);margin:0;overflow:hidden;box-shadow:0 14px 44px #00000047}.about-portrait img{object-fit:cover;object-position:center 52%;width:100%;height:100%;display:block;transform:scale(1.14)}.about-cv-link{text-align:center;justify-content:center;align-self:center;align-items:center;margin-top:0;text-decoration:none;display:inline-flex}.about-meta__list{flex-direction:column;gap:20px;width:100%;display:flex}.meta-block{flex-direction:column;gap:6px;display:flex}.meta-label{font-family:var(--font-mono);letter-spacing:.12em;color:var(--grey-300);font-size:10px}.meta-value{color:var(--white);font-size:15px;font-weight:500}.contact-layout{grid-template-columns:minmax(280px,1fr) minmax(340px,1.15fr);align-items:start;gap:clamp(40px,5vw,72px);display:grid}.contact-side{top:calc(24px + var(--safe-top));flex-direction:column;gap:36px;display:flex;position:sticky}.contact-lead{max-width:42ch;color:var(--white);margin-bottom:0}.contact-form{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:20px;flex-direction:column;gap:24px;padding:clamp(28px,3vw,40px);display:flex}.contact-form__fields{flex-direction:column;gap:24px;display:flex}.form-row{flex-direction:column;gap:8px;display:flex}.form-row label{font-family:var(--font-mono);letter-spacing:.12em;color:var(--white);text-transform:uppercase;font-size:11px}.form-row input,.form-row textarea{border:1px solid var(--glass-border);width:100%;min-height:var(--touch-min);font-family:var(--font-sans);color:var(--white);-webkit-text-fill-color:var(--white);caret-color:var(--white);resize:vertical;background:#ffffff0a;border-radius:12px;outline:none;padding:14px 16px;font-size:16px;transition:border-color .2s,background .2s}.form-row input:focus,.form-row textarea:focus{background:#ffffff12;border-color:#ffffff59}.form-row input::placeholder,.form-row textarea::placeholder{color:var(--white);opacity:.78}.form-row input:-webkit-autofill{-webkit-text-fill-color:var(--white);transition:background-color 99999s ease-in-out;box-shadow:inset 0 0 0 1000px #ffffff0a}.form-row input:-webkit-autofill:hover{-webkit-text-fill-color:var(--white);transition:background-color 99999s ease-in-out;box-shadow:inset 0 0 0 1000px #ffffff0a}.form-row input:-webkit-autofill:focus{-webkit-text-fill-color:var(--white);transition:background-color 99999s ease-in-out;box-shadow:inset 0 0 0 1000px #ffffff0a}.form-row textarea:-webkit-autofill{-webkit-text-fill-color:var(--white);transition:background-color 99999s ease-in-out;box-shadow:inset 0 0 0 1000px #ffffff0a}.form-row textarea:-webkit-autofill:hover{-webkit-text-fill-color:var(--white);transition:background-color 99999s ease-in-out;box-shadow:inset 0 0 0 1000px #ffffff0a}.form-row textarea:-webkit-autofill:focus{-webkit-text-fill-color:var(--white);transition:background-color 99999s ease-in-out;box-shadow:inset 0 0 0 1000px #ffffff0a}.btn-primary{min-height:var(--touch-min);color:var(--black);letter-spacing:.04em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffffeb;border:none;border-radius:100px;align-self:flex-start;margin-top:8px;padding:14px 32px;font-size:16px;font-weight:600;transition:transform .2s,opacity .2s}.btn-primary:hover{opacity:.9;transform:scale(1.03)}.btn-primary:disabled{opacity:.65;cursor:default;transform:none}.contact-form__success{color:var(--white);background:#ffffff14;border:1px solid #ffffff2e;border-radius:14px;margin:0;padding:18px 20px;font-size:clamp(15px,3.8vw,17px);line-height:1.65}.contact-form.is-sent .contact-form__fields,.contact-form.is-sent .btn-primary{display:none}.contact-form__error{color:var(--white);background:#ff50501f;border:1px solid #ff50504d;border-radius:14px;margin:0;padding:18px 20px;font-size:clamp(15px,3.8vw,17px);line-height:1.65}.contact-form__error a{color:inherit;text-decoration:underline}.form-row--honeypot{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-links{flex-direction:column;gap:16px;display:flex}.contact-link{color:var(--white);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:16px;flex-direction:column;gap:6px;padding:20px 24px;text-decoration:none;transition:opacity .2s,transform .2s,background .2s;display:flex}.contact-link .meta-label,.contact-link .meta-value,.contact-link:visited,.contact-link:hover,.contact-link:active,.contact-link:focus-visible{color:var(--white)}.contact-link:hover{opacity:.9;background:var(--glass-bg-strong);transform:translateY(-2px)}.project-overlay{z-index:150;background:linear-gradient(165deg,#0a120a 0%,#050805 42%,#0c100c 100%);overflow:hidden}.project-bg{z-index:0;filter:blur(52px)brightness(.38)saturate(1.15);opacity:0;background-position:50%;background-size:cover;transition:opacity .5s;position:fixed;inset:-8%;transform:scale(1.08)}.project-overlay.visible .project-bg{opacity:1}.project-scrim{z-index:1;pointer-events:none;background:radial-gradient(72% 58% at 50% 42%,#ffffff0d 0%,#0000 58%),radial-gradient(100% 80% at 50% 100%,#0408048c 0%,#0000 55%),linear-gradient(#0204028c 0%,#040804d1 100%);position:fixed;inset:0}.project-inner{z-index:2;width:100%;max-width:none;height:100%;padding:calc(72px + var(--safe-top)) clamp(12px, 3vw, 24px) calc(24px + var(--safe-bottom));box-sizing:border-box;justify-content:center;align-items:center;margin:0;display:flex;position:relative}.project-back{top:calc(20px + var(--safe-top));z-index:160;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);color:var(--white);font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;border-radius:100px;padding:10px 20px;font-size:12px;transition:background .2s,transform .2s;position:fixed;left:clamp(16px,4vw,32px)}.project-back:hover{background:var(--glass-bg-strong);transform:scale(1.02)}.project-hero{width:100%;max-width:min(1100px,100%);height:auto;max-height:calc(100vh - 120px - var(--safe-top) - var(--safe-bottom));aspect-ratio:unset;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);background:#ffffff0a;border-radius:16px;margin:0;overflow:hidden;box-shadow:0 28px 90px #0000008c,inset 0 1px #ffffff14}.project-hero img{width:100%;height:auto;max-height:calc(100vh - 120px - var(--safe-top) - var(--safe-bottom));object-fit:contain;will-change:transform, filter;transform-origin:50%;display:block}.project-info{display:none!important}.project-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.project-client{font-family:var(--font-mono);letter-spacing:.1em;color:var(--grey-300);font-size:11px}.project-year{font-family:var(--font-mono);color:var(--grey-300);font-size:11px}.project-title{letter-spacing:-.02em;margin-bottom:20px;font-size:clamp(32px,5vw,56px);font-weight:700}.project-tags{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.08em;border:1px solid var(--glass-border);color:var(--grey-200);background:var(--glass-bg);border-radius:100px;padding:6px 12px;font-size:10px}.project-description{color:var(--grey-100);max-width:680px;margin-bottom:40px;font-size:17px;line-height:1.7}.project-details{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;flex-direction:column;gap:20px;padding:28px;display:flex}.detail-row{flex-direction:column;gap:4px;display:flex}@media (width<=900px){.site-header{padding:22px max(16px, var(--safe-left)) 12px max(16px, var(--safe-right));grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:12px}.site-header__toolbar{grid-area:1/1;width:auto;min-width:0}.header-center{grid-area:2/1/auto/-1;max-height:96px}.photo-filter-menu__trigger{width:100%;min-width:0;max-width:min(52vw,220px);padding:11px 14px;font-size:10px}.site-header:has(.photo-filter-menu.is-open){grid-template-rows:auto;gap:0}.photo-filter-menu__panel{min-width:max(100%,210px)}.photo-filter-menu__option{padding:14px 16px;font-size:10px}.layout-toggle{min-height:var(--touch-min);flex-shrink:0;grid-area:1/2;padding:11px 14px;font-size:10px}.conservation-banner{border-radius:16px;width:100%;padding:12px 16px;font-size:clamp(9px,2.4vw,11px);line-height:1.55}.conservation-text{text-align:left}.intro-name-portfolio{letter-spacing:.2em;font-size:clamp(12px,3.5vw,18px)}.intro-tagline{letter-spacing:.14em}.about-grid,.contact-layout{grid-template-columns:1fr;gap:40px}.contact-side{gap:28px;position:static}.about-meta{width:100%;max-width:420px;margin-inline:auto;padding:24px 22px}.about-portrait{width:clamp(152px,40vw,180px)}.contact-lead{max-width:none;color:var(--white);font-size:17px;line-height:1.65}.page-content{padding:calc(120px + var(--safe-top)) 24px calc(100px + var(--safe-bottom))}body[data-view=about] .page-content,body[data-view=contact] .page-content{padding-top:calc(72px + var(--safe-top))}.project-inner{padding:calc(90px + var(--safe-top)) 24px calc(60px + var(--safe-bottom))}.gallery-hint{letter-spacing:.06em;padding:8px 14px;font-size:clamp(7px,2.1vw,8px)}.gallery-hint--flat{max-width:min(calc(100vw - 20px - var(--safe-left) - var(--safe-right)), 200px);padding:9px 14px}.gallery-loading{left:max(16px, var(--safe-left));right:max(16px, var(--safe-right));bottom:calc(112px + var(--safe-bottom));padding:15px 16px}.intro-name-line{font-size:clamp(36px,12vw,64px)}.intro-prompt-wrap{width:min(92vw,320px)}.intro-prompt{letter-spacing:.12em;padding:18px 20px}.project-hero{max-height:calc(100dvh - 100px - var(--safe-top) - var(--safe-bottom));border-radius:12px}.project-hero img{max-height:calc(100dvh - 100px - var(--safe-top) - var(--safe-bottom))}.project-back{min-height:var(--touch-min);padding:12px 20px}.bottom-nav{bottom:calc(20px + var(--safe-bottom));max-width:calc(100vw - 24px - var(--safe-left) - var(--safe-right));padding:4px}.nav-pill{min-height:var(--touch-min);padding:10px 16px;font-size:11px}}@media (width<=480px){.site-header{padding:18px max(14px, var(--safe-left)) 10px max(14px, var(--safe-right))}.conservation-banner{padding:11px 14px;font-size:clamp(8px,2.6vw,10px)}.intro-name-line{font-size:clamp(32px,11vw,52px)}.intro-name-portfolio{letter-spacing:.16em;font-size:clamp(11px,3.2vw,16px)}.intro-tagline{letter-spacing:.1em;max-width:26ch;font-size:clamp(8px,2.2vw,10px)}.intro-prompt-wrap{width:min(94vw,300px);margin-top:18px}.intro-prompt{letter-spacing:.08em;padding:16px 18px;font-size:clamp(11px,3.2vw,13px)}.nav-pill{min-height:var(--touch-min);padding:10px 14px;font-size:11px}.layout-toggle{gap:7px;padding:11px 12px;font-size:9px}.layout-toggle__label{display:none}.project-back{left:max(14px, var(--safe-left));top:calc(14px + var(--safe-top));font-size:11px}.project-inner{padding:calc(72px + var(--safe-top)) 12px calc(20px + var(--safe-bottom))}.page-content{padding:calc(110px + var(--safe-top)) 18px calc(96px + var(--safe-bottom))}.page-title{margin-bottom:32px;font-size:clamp(36px,10vw,52px)}.lead{font-size:17px}.contact-form{padding:22px 18px}.contact-link{padding:18px 20px}.contact-link .meta-label{font-size:11px}.contact-link .meta-value{word-break:break-word;font-size:16px;line-height:1.45}.form-row label{font-size:12px}.form-row input,.form-row textarea{padding:16px;font-size:16px}.form-row textarea{min-height:140px}.btn-primary{text-align:center;align-self:stretch;width:100%}.contact-layout{gap:32px}}@media (height<=700px) and (width<=900px){.intro-prompt-wrap{margin-top:16px}.intro-name-line{font-size:clamp(30px,9vw,56px)}}@media (height<=520px) and (orientation:landscape){.intro-name-line{font-size:clamp(28px,8vw,44px)}.intro-name-portfolio{margin-top:6px;font-size:12px}.intro-tagline{margin-top:8px;font-size:8px}.intro-prompt-wrap{width:min(70vw,320px);margin-top:20px}.intro-prompt{padding:14px 20px;font-size:11px}}
