:root{--color-bg: #fafafa;--color-bg-alt: #f5f5f5;--color-surface: #ffffff;--color-text: #1a1a1a;--color-text-secondary: #666666;--color-text-tertiary: #999999;--color-text-inverse: #ffffff;--color-accent: #2c2c2c;--color-accent-hover: #000000;--color-border: #e5e5e5;--color-border-subtle: #f0f0f0;--color-focus: rgba(0, 0, 0, .1);--font-display: "Fraunces", "Georgia", "Times New Roman", serif;--font-body: "Fraunces", "Georgia", "Times New Roman", serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--font-size-base: clamp(.875rem, .85rem + .15vw, .9375rem);--font-size-xs: calc(var(--font-size-base) * .75);--font-size-sm: calc(var(--font-size-base) * .875);--font-size-md: var(--font-size-base);--font-size-lg: calc(var(--font-size-base) * 1.15);--font-size-xl: calc(var(--font-size-base) * 1.35);--font-size-2xl: calc(var(--font-size-base) * 1.75);--font-size-3xl: calc(var(--font-size-base) * 2.25);--font-size-4xl: calc(var(--font-size-base) * 2.75);--font-size-hero: clamp(2rem, 1.5rem + 2.5vw, 3.5rem);--line-height-tight: 1.1;--line-height-snug: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .05em;--tracking-wider: .1em;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--space-gutter: clamp(1rem, 3vw, 3rem);--space-section: clamp(4rem, 10vw, 8rem);--container-max: 1400px;--container-narrow: 720px;--container-text: 65ch;--gallery-gap: clamp(.75rem, 2vw, 2rem);--gallery-item-min: 280px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .1);--shadow-xl: 0 24px 60px rgba(0, 0, 0, .15);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--radius-xl: 0;--radius-full: 0;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-base: .3s;--duration-slow: .5s;--duration-slower: .7s;--transition-fast: var(--duration-fast) var(--ease-out);--transition-base: var(--duration-base) var(--ease-out);--transition-slow: var(--duration-slow) var(--ease-out);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--bp-sm: 480px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--bp-2xl: 1536px}@font-face{font-family:Fraunces;src:url(https://fonts.gstatic.com/s/fraunces/v31/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIctxuTB_7T.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(https://fonts.gstatic.com/s/fraunces/v31/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcwxuTB_7T.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(https://fonts.gstatic.com/s/fraunces/v31/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIc2RuTB_7T.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(https://fonts.gstatic.com/s/fraunces/v31/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIcNRyTB_7T.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-body);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-normal);line-height:var(--line-height-tight);letter-spacing:var(--tracking-tight);margin:0;color:var(--color-text)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}h6{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase}p{margin:0 0 var(--space-4)}p:last-child{margin-bottom:0}.text-lead{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.text-small{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}a{color:var(--color-text);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}.link-underline{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}.link-underline:hover{text-decoration-thickness:2px}.label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-tertiary)}figcaption,.caption{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-2)}.statement{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);max-width:var(--container-text)}.statement p{margin-bottom:var(--space-6)}.bio{font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.bio p{margin-bottom:var(--space-4)}.page-title{font-size:var(--font-size-hero);font-weight:var(--font-weight-light);letter-spacing:var(--tracking-tight);line-height:var(--line-height-tight)}.section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:var(--space-6)}.nav-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);transition:color var(--transition-fast)}.nav-link:hover,.nav-link[aria-current=page]{color:var(--color-text)}.artwork-title{font-size:var(--font-size-md);font-weight:var(--font-weight-normal)}.artwork-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}::selection{background-color:var(--color-text);color:var(--color-text-inverse)}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--duration-base);animation-timing-function:var(--ease-out)}::view-transition-old(gallery-image),::view-transition-new(gallery-image){animation-duration:var(--duration-slow);animation-timing-function:var(--ease-in-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes blurIn{0%{filter:blur(20px);opacity:1}to{filter:blur(0);opacity:1}}@keyframes blurFadeOut{0%{filter:blur(20px);opacity:1}to{filter:blur(20px);opacity:0}}.animate-on-scroll{opacity:0;transform:translateY(30px)}@supports (animation-timeline: view()){.animate-on-scroll{animation:fadeUp var(--duration-slow) var(--ease-out) forwards;animation-timeline:view();animation-range:entry 0% entry 40%}}@supports not (animation-timeline: view()){.animate-on-scroll{opacity:1;transform:translateY(0);transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.stagger-7{animation-delay:.35s}.stagger-8{animation-delay:.4s}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-slow)}.hover-scale:hover{transform:scale(1.02)}@keyframes lightboxOpen{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(10px)}}@keyframes lightboxClose{0%{opacity:1;backdrop-filter:blur(10px)}to{opacity:0;backdrop-filter:blur(0)}}@keyframes lightboxImageIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,var(--color-bg-alt) 0%,var(--color-surface) 50%,var(--color-bg-alt) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideOut{0%{transform:translate(0)}to{transform:translate(-100%)}}.reveal-caption{opacity:0;transform:translateY(10px);transition:opacity var(--transition-base),transform var(--transition-base)}.reveal-caption-trigger:hover .reveal-caption{opacity:1;transform:translateY(0)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100vh;min-height:100dvh;background-color:var(--color-bg);overflow-x:hidden}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}img{border-style:none}.protected-image{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.protected-image img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;pointer-events:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-gutter)}.container--narrow{max-width:var(--container-narrow)}.container--full{max-width:none;padding-inline:0}.section{padding-block:var(--space-section)}.section--tight{padding-block:var(--space-12)}.grid{display:grid;gap:var(--gallery-gap)}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-col{flex-direction:column}.mt-auto{margin-top:auto}.mb-0{margin-bottom:0}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mb-12{margin-bottom:var(--space-12)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.skip-link{position:fixed;top:-100%;left:var(--space-4);z-index:var(--z-toast);padding:var(--space-3) var(--space-4);background:var(--color-surface);color:var(--color-text);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);text-decoration:none;transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-4)}.page-wrapper{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}main{flex:1}.divider{width:100%;height:1px;background-color:var(--color-border);border:none;margin-block:var(--space-8)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;border:1px solid var(--color-text);background:transparent;color:var(--color-text);border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast);min-height:44px}.btn:hover,.btn--primary{background-color:var(--color-text);color:var(--color-text-inverse)}.btn--primary:hover{background-color:var(--color-accent-hover)}.btn--secondary{background-color:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.btn--secondary:hover{background-color:var(--color-surface);border-color:var(--color-text);color:var(--color-text)}@media(max-width:767px){.hide-mobile{display:none!important}}@media(min-width:768px){.hide-desktop{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
