    @font-face { font-family: "ISO100 Modern"; font-style: normal; font-weight: 400 700; font-display: block; src: url("fonts/raleway-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Elegant"; font-style: italic; font-weight: 400 700; font-display: block; src: url("fonts/cormorant-garamond-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Portrait"; font-style: normal; font-weight: 400; font-display: block; src: url("fonts/instrument-serif-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Art"; font-style: italic; font-weight: 400; font-display: block; src: url("fonts/instrument-serif-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Documentary"; font-style: normal; font-weight: 400; font-display: block; src: url("fonts/newsreader-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Landscape"; font-style: normal; font-weight: 400; font-display: block; src: url("fonts/libre-baskerville-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Commercial"; font-style: normal; font-weight: 400 700; font-display: block; src: url("fonts/manrope-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Lifestyle"; font-style: normal; font-weight: 400 700; font-display: block; src: url("fonts/fraunces-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    @font-face { font-family: "ISO100 Sports"; font-style: normal; font-weight: 400 700; font-display: block; src: url("fonts/ibm-plex-sans-condensed-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
    :root { color-scheme: light; --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --color-background: #ffffff; --color-foreground: #050505; --color-surface: #f8f8f6; --color-muted-foreground: #60605b; --color-accent: #050505; --color-border: #e2e2dc; --color-border-soft: #eeeeea; --radius-lg: 0; --radius-md: 0; --radius-sm: 0; --public-background: var(--color-background); --public-surface: var(--color-surface); --public-foreground: var(--color-foreground); --public-muted-foreground: var(--color-muted-foreground); --public-accent: var(--color-accent); --public-border: var(--color-border); --public-border-soft: var(--color-border-soft); --public-image-placeholder: #f1f1ed; --public-page-padding: clamp(14px, 2vw, 28px); --public-hero-scale: 1; --paper: var(--public-background); --ink: var(--public-foreground); --muted: var(--public-muted-foreground); --line: var(--public-border); --line-soft: var(--public-border-soft); --image-placeholder: var(--public-image-placeholder); --accent: var(--public-accent); --hero-scale: var(--public-hero-scale); }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans); letter-spacing: 0; }
    a { color: inherit; text-decoration: none; }
    button { color: inherit; font: inherit; }
    img { display: block; height: auto; width: 100%; }
    h1 { margin: 0; font-size: calc(clamp(42px, 8.5vw, 120px) * var(--hero-scale)); line-height: .9; font-weight: 520; letter-spacing: 0; }
    .portfolio-gallery-grid { align-items: start; display: grid; gap: clamp(30px, 4vw, 62px) clamp(24px, 3vw, 52px); grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: start; padding: clamp(32px, 4.5vw, 76px) var(--public-page-padding) clamp(22px, 3vw, 44px); }
    .portfolio-gallery-grid--count-1 { grid-template-columns: minmax(0, min(100%, 560px)); }
    .portfolio-gallery-grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portfolio-gallery-grid--count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .gallery-card { display: grid; gap: 18px; min-width: 0; }
    .gallery-card[hidden] { display: none; }
    .gallery-card-photo { aspect-ratio: 4 / 3; background: var(--image-placeholder); object-fit: cover; transition: filter 180ms ease-out, transform 180ms ease-out; }
    .gallery-card-empty { aspect-ratio: 4 / 3; background: var(--image-placeholder); border: 1px solid var(--line-soft); }
    .gallery-card-copy { display: grid; gap: 8px; min-width: 0; }
    .gallery-card-title { font-family: var(--gallery-card-heading-font, var(--font-sans)); font-size: clamp(22px, 1.8vw, 28px); font-style: var(--gallery-card-heading-style, normal); font-weight: 400; line-height: 1.02; overflow-wrap: anywhere; text-transform: var(--gallery-card-heading-transform, none); }
    .gallery-card-lock { color: var(--muted); font-size: 11px; letter-spacing: 0; line-height: 1.2; text-transform: uppercase; }
    .portfolio-gallery-grid--font-serif { --gallery-card-heading-font: Georgia, "Times New Roman", serif; }
    .portfolio-gallery-grid--font-classic { --gallery-card-heading-font: "ISO100 Elegant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; --gallery-card-heading-style: italic; }
    .portfolio-gallery-grid--font-modern { --gallery-card-heading-font: "ISO100 Modern", Raleway, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif; --gallery-card-heading-transform: uppercase; }
    .portfolio-gallery-grid--font-sans { --gallery-card-heading-font: var(--font-sans); }
    .portfolio-gallery-grid--font-minimal { --gallery-card-heading-font: var(--font-sans); }
    .portfolio-gallery-grid--font-portrait { --gallery-card-heading-font: "ISO100 Portrait", "Instrument Serif", Georgia, serif; }
    .portfolio-gallery-grid--font-wedding { --gallery-card-heading-font: "ISO100 Elegant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; --gallery-card-heading-style: italic; }
    .portfolio-gallery-grid--font-fashion { --gallery-card-heading-font: "ISO100 Portrait", "Instrument Serif", Georgia, serif; --gallery-card-heading-transform: uppercase; }
    .portfolio-gallery-grid--font-documentary { --gallery-card-heading-font: "ISO100 Documentary", Newsreader, Georgia, serif; }
    .portfolio-gallery-grid--font-landscape { --gallery-card-heading-font: "ISO100 Landscape", "Libre Baskerville", Georgia, serif; }
    .portfolio-gallery-grid--font-architecture { --gallery-card-heading-font: "ISO100 Modern", Raleway, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif; --gallery-card-heading-transform: uppercase; }
    .portfolio-gallery-grid--font-commercial { --gallery-card-heading-font: "ISO100 Commercial", Manrope, Inter, ui-sans-serif, system-ui, sans-serif; }
    .portfolio-gallery-grid--font-lifestyle { --gallery-card-heading-font: "ISO100 Lifestyle", Fraunces, Georgia, serif; }
    .portfolio-gallery-grid--font-sports { --gallery-card-heading-font: "ISO100 Sports", "IBM Plex Sans Condensed", "Arial Narrow", Arial, sans-serif; --gallery-card-heading-transform: uppercase; }
    .portfolio-gallery-grid--font-art { --gallery-card-heading-font: "ISO100 Art", "Instrument Serif", Georgia, serif; --gallery-card-heading-style: italic; }
    .portfolio-contact--font-serif { --contact-heading-font: Georgia, "Times New Roman", serif; }
    .portfolio-contact--font-classic { --contact-heading-font: "ISO100 Elegant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; --contact-heading-style: italic; }
    .portfolio-contact--font-modern { --contact-heading-font: "ISO100 Modern", Raleway, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif; --contact-heading-transform: uppercase; }
    .portfolio-contact--font-sans { --contact-heading-font: var(--font-sans); }
    .portfolio-contact--font-minimal { --contact-heading-font: var(--font-sans); }
    .portfolio-contact--font-portrait { --contact-heading-font: "ISO100 Portrait", "Instrument Serif", Georgia, serif; }
    .portfolio-contact--font-wedding { --contact-heading-font: "ISO100 Elegant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; --contact-heading-style: italic; }
    .portfolio-contact--font-fashion { --contact-heading-font: "ISO100 Portrait", "Instrument Serif", Georgia, serif; --contact-heading-transform: uppercase; }
    .portfolio-contact--font-documentary { --contact-heading-font: "ISO100 Documentary", Newsreader, Georgia, serif; }
    .portfolio-contact--font-landscape { --contact-heading-font: "ISO100 Landscape", "Libre Baskerville", Georgia, serif; }
    .portfolio-contact--font-architecture { --contact-heading-font: "ISO100 Modern", Raleway, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif; --contact-heading-transform: uppercase; }
    .portfolio-contact--font-commercial { --contact-heading-font: "ISO100 Commercial", Manrope, Inter, ui-sans-serif, system-ui, sans-serif; }
    .portfolio-contact--font-lifestyle { --contact-heading-font: "ISO100 Lifestyle", Fraunces, Georgia, serif; }
    .portfolio-contact--font-sports { --contact-heading-font: "ISO100 Sports", "IBM Plex Sans Condensed", "Arial Narrow", Arial, sans-serif; --contact-heading-transform: uppercase; }
    .portfolio-contact--font-art { --contact-heading-font: "ISO100 Art", "Instrument Serif", Georgia, serif; --contact-heading-style: italic; }
    .gallery-card-description { color: var(--muted); font-size: clamp(13px, 1vw, 15px); line-height: 1.45; max-width: 42ch; overflow-wrap: break-word; }
    .gallery-password-gate { align-items: start; border-top: 1px solid var(--line); display: grid; gap: clamp(24px, 4vw, 64px); grid-template-columns: minmax(0, .85fr) minmax(280px, .55fr); margin: 0 auto; max-width: 1480px; padding: clamp(48px, 7vw, 110px) var(--public-page-padding); }
    .gallery-password-gate-copy { display: grid; gap: 14px; max-width: 620px; }
    .gallery-password-kicker { color: var(--muted); font-size: 12px; line-height: 1.2; margin: 0; text-transform: uppercase; }
    .gallery-password-gate h2 { font-size: clamp(32px, 5vw, 72px); font-weight: 520; letter-spacing: 0; line-height: .95; margin: 0; }
    .gallery-password-gate p { color: var(--muted); font-size: 16px; line-height: 1.6; margin: 0; }
    .gallery-password-form { align-content: start; display: grid; gap: 12px; }
    .gallery-password-form label { font-size: 13px; line-height: 1.2; }
    .gallery-password-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .gallery-password-form input { background: var(--paper); border: 1px solid var(--line); color: var(--ink); font: inherit; min-height: 46px; padding: 0 12px; width: 100%; }
    .gallery-password-form button { background: var(--ink); border: 1px solid var(--ink); color: var(--paper); cursor: pointer; font: inherit; min-height: 46px; padding: 0 18px; }
    .gallery-password-form button:disabled { cursor: progress; opacity: .6; }
    .gallery-password-form input:focus-visible, .gallery-password-form button:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
    .gallery-password-error { color: var(--ink); font-size: 13px; }
    .protected-photo-viewer { align-items: center; background: rgba(0,0,0,.94); display: grid; inset: 0; justify-items: center; opacity: 0; padding: clamp(18px, 3vw, 44px); pointer-events: none; position: fixed; transition: opacity 160ms ease-out; z-index: 80; }
    .protected-photo-viewer[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
    .protected-photo-viewer img { max-height: calc(100svh - 140px); max-width: min(100%, 1500px); object-fit: contain; width: auto; }
    .protected-photo-viewer p { bottom: 22px; color: rgba(255,255,255,.78); font-size: 13px; left: 24px; margin: 0; max-width: min(640px, calc(100vw - 48px)); position: absolute; }
    .protected-photo-viewer button { background: transparent; border: 1px solid rgba(255,255,255,.34); color: #fff; cursor: pointer; min-height: 44px; min-width: 44px; position: absolute; }
    .protected-photo-viewer-close { right: 18px; top: 18px; }
    .protected-photo-viewer-prev { left: 18px; top: 50%; transform: translateY(-50%); }
    .protected-photo-viewer-next { right: 18px; top: 50%; transform: translateY(-50%); }
    .gallery-pagination { align-items: center; display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; margin: 0 auto; max-width: 1680px; padding: 0 0 clamp(28px, 4vw, 56px); }
    .gallery-pagination[hidden] { display: none; }
    .gallery-pagination button { background: transparent; border: 1px solid transparent; color: var(--muted); cursor: pointer; font-size: 14px; font-weight: 400; min-height: 42px; min-width: 42px; padding: 0 10px; transition: background-color 160ms ease-out, border-color 160ms ease-out, color 160ms ease-out; }
    .gallery-pagination button:hover { border-color: var(--line); color: var(--ink); }
    .gallery-pagination button[hidden] { display: none; }
    .gallery-pagination button[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
    .gallery-pagination-previous, .gallery-pagination-next { font-size: 26px; font-weight: 300; line-height: 1; }
    .portfolio-contact { display: flex; justify-content: center; padding: clamp(52px, 6vw, 96px) var(--public-page-padding) clamp(36px, 5vw, 74px); }
    .contact-form { align-content: start; display: grid; gap: 16px; max-width: 520px; width: min(100%, 520px); }
    .contact-form h2 { font-family: var(--contact-heading-font, var(--font-sans)); font-size: clamp(22px, 2.2vw, 34px); font-style: var(--contact-heading-style, normal); line-height: 1; margin: 0; text-transform: var(--contact-heading-transform, none); }
    .contact-form form { display: grid; gap: 12px; }
    .contact-form label { display: grid; gap: 7px; font-size: 13px; font-weight: 400; }
    .contact-form input, .contact-form textarea { background: var(--paper); border: 1px solid var(--line); color: var(--ink); font: inherit; padding: 13px 12px; width: 100%; }
    .contact-form textarea { min-height: 132px; resize: vertical; }
    .contact-form input:focus-visible, .contact-form textarea:focus-visible, .contact-form button:focus-visible { border-color: var(--ink); outline: 2px solid var(--ink); outline-offset: 3px; }
    .contact-form button { background: var(--ink); border: 1px solid var(--ink); color: var(--paper); cursor: pointer; font-size: 14px; font-weight: 420; justify-self: start; min-height: 44px; padding: 0 18px; }
    .contact-form button:disabled { cursor: progress; opacity: .58; }
    .contact-form button:hover { background: var(--paper); color: var(--ink); }
    .contact-form button:disabled:hover { background: var(--ink); color: var(--paper); }
    .contact-form-trap { left: -10000px; position: absolute; }
    .contact-form-status { font-size: 13px; line-height: 1.5; margin: 0; min-height: 20px; }
    .portfolio-social-links { display: flex; flex-wrap: wrap; gap: 10px 18px; padding-top: 2px; }
    .portfolio-social-links a { border-bottom: 1px solid color-mix(in srgb, currentColor 28%, transparent); color: var(--muted); font-size: 13px; line-height: 1.5; }
    .portfolio-social-links a:hover { border-bottom-color: currentColor; color: var(--ink); }
    .public-brand-footer { background: var(--paper); color: var(--ink); padding: clamp(26px, 3vw, 42px) var(--public-page-padding); }
    .public-brand-footer-inner { align-items: center; display: flex; gap: 18px; justify-content: space-between; margin: 0 auto; max-width: 1480px; min-width: 0; }
    .public-brand-footer--paid .public-brand-footer-inner { justify-content: center; text-align: center; }
    .public-brand-footer a { align-items: center; color: var(--muted); display: inline-flex; flex: 0 0 auto; }
    .public-brand-footer-made { align-items: center; color: var(--muted); display: inline-flex; flex-wrap: wrap; font-size: 12px; font-weight: 400; gap: 10px; justify-content: flex-end; }
    .public-brand-footer-notice { color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.45; margin: 0; overflow-wrap: anywhere; }
    .public-brand-logo { color: var(--ink); display: block; height: auto; width: clamp(82px, 8vw, 118px); }
    .gallery-card:focus-visible, .gallery-pagination button:focus-visible, .cover-hero-copy a:focus-visible, .gallery-portfolio-link:focus-visible, .cover-scroll-link:focus-visible, .portfolio-social-links a:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }
    .gallery-card:hover .gallery-card-photo { filter: contrast(1.06); transform: scale(1.025); }
    .gallery-card:active .gallery-card-photo { filter: contrast(1.04); }
    html[data-gallery-transition="leaving"] body { opacity: .84; transition: opacity 140ms ease-out; }
    html[data-gallery-transition="entering"] .gallery-hero-photo { animation: gallery-page-enter 160ms ease-out both; }
    .cover-hero { --cover-padding-block-end: clamp(22px, 4vw, 64px); --cover-padding-inline-end: clamp(22px, 4vw, 64px); --cover-padding-inline-start: clamp(22px, 4vw, 64px); --cover-scroll-hit-slop: 12px; align-items: end; color: #ffffff; display: grid; min-height: clamp(220px, var(--cover-height, 80svh), 100svh); overflow: hidden; padding: clamp(22px, 4vw, 64px); position: relative; text-align: left; }
    .cover-hero--height-20 { min-height: clamp(220px, 20svh, 360px); }
    .cover-hero--height-80 { min-height: clamp(620px, 80svh, 880px); }
    .cover-hero--height-100 { min-height: 100svh; }
    .cover-hero--layout-compact { min-height: clamp(220px, var(--cover-height, 20svh), 360px); padding-bottom: clamp(24px, 3.2vw, 44px); padding-top: clamp(76px, 8svh, 112px); }
    .cover-hero--layout-compact.cover-hero--position-center { padding-block: clamp(24px, 3.2vw, 44px); }
    .cover-hero--layout-compact .cover-hero-text { gap: 8px; }
    .cover-hero--layout-compact .cover-hero-copy h1 { font-size: calc(clamp(32px, 4.2vw, 54px) * var(--cover-title-scale, 1)); line-height: .98; }
    .cover-hero--layout-immersive .portfolio-hero-copy h1 { font-size: calc(clamp(54px, 7vw, 112px) * var(--cover-title-scale, 1)); }
    .cover-hero--layout-immersive .gallery-hero-copy h1 { font-size: calc(clamp(48px, 6.4vw, 104px) * var(--cover-title-scale, 1)); }
    .cover-hero-photo, .cover-hero-empty { background: #050505; height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; z-index: 0; }
    .cover-hero-empty { background: var(--line-soft); }
    .cover-hero::after { content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
    .cover-hero--dim-gradient.cover-hero--scrim-black::after { background: linear-gradient(to top, rgba(0, 0, 0, .68), rgba(0, 0, 0, .28) 38%, rgba(0, 0, 0, 0)); }
    .cover-hero--dim-gradient.cover-hero--scrim-white::after { background: linear-gradient(to top, rgba(255, 255, 255, .72), rgba(255, 255, 255, .34) 38%, rgba(255, 255, 255, 0)); }
    .cover-hero--dim-gradient-top.cover-hero--scrim-black::after { background: linear-gradient(to bottom, rgba(0, 0, 0, .68), rgba(0, 0, 0, .28) 38%, rgba(0, 0, 0, 0)); }
    .cover-hero--dim-gradient-top.cover-hero--scrim-white::after { background: linear-gradient(to bottom, rgba(255, 255, 255, .72), rgba(255, 255, 255, .34) 38%, rgba(255, 255, 255, 0)); }
    .cover-hero--dim-full.cover-hero--scrim-black::after { background: rgba(0, 0, 0, .42); }
    .cover-hero--dim-full.cover-hero--scrim-white::after { background: rgba(255, 255, 255, .46); }
    .cover-hero--dim-none::after { content: none; }
    .cover-hero--text-black { color: #050505; }
    .cover-hero--text-white { color: #ffffff; }
    .portfolio-hero--contained { background: #050505; }
    .portfolio-hero--contained .cover-hero-photo, .portfolio-hero--contained .cover-hero-empty { height: auto; inset: clamp(24px, 3vw, 56px); object-fit: contain; width: auto; }
    .cover-hero-copy { animation: cover-copy-reveal 520ms cubic-bezier(.2, .7, .2, 1) 120ms both; display: grid; gap: clamp(14px, 2vw, 24px); min-width: 0; position: relative; width: min(70vw, 900px); max-width: 100%; z-index: 2; }
    .cover-hero-text { display: grid; gap: clamp(10px, 1.4vw, 18px); min-width: 0; max-width: min(70vw, 860px, 100%); }
    .portfolio-cover-identity { display: grid; gap: clamp(10px, 1.2vw, 16px); justify-items: start; min-width: 0; }
    .public-portfolio-logo { display: block; height: auto; max-height: clamp(42px, 8vw, 92px); object-fit: contain; object-position: left center; width: clamp(92px, 14vw, 190px); }
    .portfolio-cover-identity--logo_and_name .public-portfolio-logo { width: clamp(72px, 9vw, 132px); }
    .cover-hero-copy h1 { font-family: var(--cover-heading-font, var(--font-sans)); font-size: calc(clamp(48px, 6vw, 96px) * var(--hero-scale) * var(--cover-title-scale, 1)); font-weight: var(--cover-heading-weight, 520); line-height: 1; max-width: min(var(--cover-title-width, 18ch), 70vw); overflow-wrap: anywhere; text-wrap: balance; }
    .cover-hero--font-serif { --cover-heading-font: Georgia, "Times New Roman", serif; }
    .cover-hero--font-classic { --cover-heading-font: "ISO100 Elegant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; }
    .cover-hero--font-classic .cover-hero-copy h1 { font-style: italic; }
    .cover-hero--font-modern { --cover-heading-font: "ISO100 Modern", Raleway, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif; }
    .cover-hero--font-modern .cover-hero-copy h1 { text-transform: uppercase; }
    .cover-hero--font-sans { --cover-heading-font: var(--font-sans); }
    .cover-hero--font-minimal { --cover-heading-font: var(--font-sans); }
    .cover-hero--font-portrait { --cover-heading-font: "ISO100 Portrait", "Instrument Serif", Georgia, serif; }
    .cover-hero--font-wedding { --cover-heading-font: "ISO100 Elegant", "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; }
    .cover-hero--font-wedding .cover-hero-copy h1 { font-style: italic; }
    .cover-hero--font-fashion { --cover-heading-font: "ISO100 Portrait", "Instrument Serif", Georgia, serif; }
    .cover-hero--font-fashion .cover-hero-copy h1 { text-transform: uppercase; }
    .cover-hero--font-documentary { --cover-heading-font: "ISO100 Documentary", Newsreader, Georgia, serif; }
    .cover-hero--font-landscape { --cover-heading-font: "ISO100 Landscape", "Libre Baskerville", Georgia, serif; }
    .cover-hero--font-architecture { --cover-heading-font: "ISO100 Modern", Raleway, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif; --cover-title-scale: .86; --cover-title-width: 20ch; }
    .cover-hero--font-architecture .cover-hero-copy h1 { text-transform: uppercase; }
    .cover-hero--font-commercial { --cover-heading-font: "ISO100 Commercial", Manrope, Inter, ui-sans-serif, system-ui, sans-serif; }
    .cover-hero--font-lifestyle { --cover-heading-font: "ISO100 Lifestyle", Fraunces, Georgia, serif; }
    .cover-hero--font-sports { --cover-heading-font: "ISO100 Sports", "IBM Plex Sans Condensed", "Arial Narrow", Arial, sans-serif; }
    .cover-hero--font-sports .cover-hero-copy h1 { text-transform: uppercase; }
    .cover-hero--font-art { --cover-heading-font: "ISO100 Art", "Instrument Serif", Georgia, serif; }
    .cover-hero--font-art .cover-hero-copy h1 { font-style: italic; }
    .cover-hero--weight-normal { --cover-heading-weight: 400; }
    .cover-hero--weight-bold { --cover-heading-weight: 680; }
    .gallery-hero-copy h1 { font-size: calc(clamp(42px, 5.2vw, 86px) * var(--hero-scale) * var(--cover-title-scale, 1)); }
    .cover-hero-copy p { color: color-mix(in srgb, currentColor 82%, transparent); font-size: clamp(17px, 1.15vw, 21px); font-weight: 420; line-height: 1.42; margin: 0; max-width: min(52ch, 100%); overflow-wrap: break-word; text-align: inherit; text-wrap: pretty; }
    .cover-hero-copy a, .cover-hero-kicker { align-items: center; color: currentColor; display: inline-flex; font-size: 14px; font-weight: 400; gap: 10px; white-space: nowrap; }
    .cover-hero-kicker { border-bottom: 1px solid color-mix(in srgb, currentColor 42%, transparent); padding: 0 0 6px; }
    .cover-scroll-link { bottom: calc(var(--cover-padding-block-end) - var(--cover-scroll-hit-slop)); color: currentColor; display: inline-flex; font-family: var(--font-sans); font-size: clamp(24px, 2.4vw, 34px); font-weight: 300; line-height: 1; padding: var(--cover-scroll-hit-slop); position: absolute; right: calc(var(--cover-padding-inline-end) - var(--cover-scroll-hit-slop)); transition: opacity 160ms ease, transform 160ms ease; z-index: 3; }
    .cover-hero-copy a:hover, .cover-hero-kicker:hover, .cover-scroll-link:hover { opacity: .72; }
    .cover-scroll-link:hover { transform: translateY(4px); }
    .cover-hero--position-top-left { align-items: start; justify-items: start; padding-top: clamp(24px, 4vw, 64px); text-align: left; }
    .cover-hero--gallery.cover-hero--position-top-left { padding-top: clamp(96px, 12svh, 140px); }
    .cover-hero--position-top-left .gallery-hero-copy { align-content: start; align-items: start; align-self: start; }
    .cover-hero--position-bottom-left { align-items: end; justify-items: start; text-align: left; }
    .cover-hero--position-center { align-items: center; justify-items: center; text-align: center; }
    .cover-hero--position-center-high { align-items: center; justify-items: center; text-align: center; }
    .cover-hero--position-center-low { align-items: center; justify-items: center; text-align: center; }
    .cover-hero--position-center .cover-hero-copy,
    .cover-hero--position-center-high .cover-hero-copy,
    .cover-hero--position-center-low .cover-hero-copy { justify-items: center; }
    .cover-hero--position-center .cover-hero-text,
    .cover-hero--position-center-high .cover-hero-text,
    .cover-hero--position-center-low .cover-hero-text { justify-items: center; }
    .cover-hero--position-center .portfolio-cover-identity,
    .cover-hero--position-center-high .portfolio-cover-identity,
    .cover-hero--position-center-low .portfolio-cover-identity { justify-items: center; }
    .cover-hero--position-center .public-portfolio-logo,
    .cover-hero--position-center-high .public-portfolio-logo,
    .cover-hero--position-center-low .public-portfolio-logo { object-position: center; }
    .cover-hero--position-center .cover-hero-copy h1,
    .cover-hero--position-center-high .cover-hero-copy h1,
    .cover-hero--position-center-low .cover-hero-copy h1 { justify-self: center; text-align: center; }
    .cover-hero--position-center .cover-hero-copy p,
    .cover-hero--position-center-high .cover-hero-copy p,
    .cover-hero--position-center-low .cover-hero-copy p { justify-self: center; text-align: center; }
    .gallery-portfolio-link { font-size: clamp(15px, 1.4vw, 21px); font-weight: 420; inset: clamp(18px, 2.5vw, 36px) auto auto clamp(18px, 2.5vw, 36px); line-height: 1.08; max-width: min(52vw, 520px); overflow-wrap: anywhere; position: absolute; z-index: 3; }
    .cover-hero--position-top-left .gallery-portfolio-link,
    .cover-hero--position-bottom-left .gallery-portfolio-link { left: var(--cover-padding-inline-start); }
    .gallery-hero-copy { gap: clamp(20px, 3vw, 54px); grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
    .cover-hero--position-center .gallery-hero-copy,
    .cover-hero--position-center-high .gallery-hero-copy,
    .cover-hero--position-center-low .gallery-hero-copy { grid-template-columns: 1fr; }
    .cover-hero--gallery.cover-hero--position-center .gallery-hero-copy,
    .cover-hero--gallery.cover-hero--position-center-high .gallery-hero-copy,
    .cover-hero--gallery.cover-hero--position-center-low .gallery-hero-copy { align-items: center; inset: 0; place-content: center; position: absolute; width: auto; }
    .cover-hero--position-center-high .cover-hero-copy,
    .cover-hero--position-center-low .cover-hero-copy { inset: 0; place-content: center; position: absolute; width: auto; }
    .cover-hero--position-center-high .cover-hero-text,
    .cover-hero--position-center-low .cover-hero-text { left: 50%; position: absolute; translate: -50% -50%; width: min(860px, calc(100% - clamp(44px, 8vw, 128px))); }
    .cover-hero--position-center-high .cover-hero-text { top: 33.333%; }
    .cover-hero--position-center-low .cover-hero-text { top: 66.667%; }
    .gallery-hero-meta { color: color-mix(in srgb, currentColor 74%, transparent); display: flex; flex-wrap: wrap; font-size: 12px; font-weight: 400; gap: 10px 16px; }
    .public-cover-copy { border-bottom: 1px solid var(--line); display: grid; gap: 18px; padding: clamp(28px, 4vw, 64px) var(--public-page-padding); }
    .public-cover-copy p { color: var(--muted); font-size: clamp(17px, 1.25vw, 22px); line-height: 1.5; margin: 0; max-width: min(62ch, 100%); overflow-wrap: break-word; }
    .gallery-photo-columns { column-count: 4; column-gap: clamp(4px, .55vw, 8px); padding: clamp(4px, .55vw, 8px); }
    body[data-layout="grid"] .gallery-photo-columns,
    body[data-layout="contained_grid"] .gallery-photo-columns { column-count: auto; display: grid; gap: clamp(4px, .55vw, 8px); grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .gallery-photo { break-inside: avoid; display: block; margin: 0 0 clamp(4px, .55vw, 8px); }
    body[data-layout="grid"] .gallery-photo,
    body[data-layout="contained_grid"] .gallery-photo { display: grid; margin: 0; min-width: 0; }
    .gallery-photo-button { background: transparent; border: 0; cursor: zoom-in; display: block; padding: 0; text-align: inherit; width: 100%; }
    body[data-layout="grid"] .gallery-photo-button,
    body[data-layout="contained_grid"] .gallery-photo-button { aspect-ratio: 4 / 3; display: grid; place-items: center; }
    .gallery-photo-button:focus, .gallery-photo-button:focus-visible, .gallery-photo-button:active { outline: 0; }
    .gallery-photo img { background: var(--image-placeholder); display: block; height: auto; object-fit: contain; width: 100%; }
    body[data-layout="grid"] .gallery-photo img,
    body[data-layout="contained_grid"] .gallery-photo img { aspect-ratio: 4 / 3; height: 100%; width: 100%; }
    body[data-layout="grid"] .gallery-photo img { object-fit: cover; }
    body[data-layout="contained_grid"] .gallery-photo img { object-fit: contain; }
    .photo-viewer-open { overflow: hidden; }
    .photo-viewer { --photo-viewer-background-opacity: 0; --photo-viewer-copy-bottom: clamp(20px, 4svh, 46px); --photo-viewer-copy-gap: clamp(20px, 3svh, 32px); background: transparent; color: var(--ink); display: none; inset: 0; position: fixed; z-index: 40; }
    .photo-viewer[aria-hidden="false"] { display: grid; }
    .photo-viewer::before { background: var(--paper); content: ""; inset: 0; opacity: var(--photo-viewer-background-opacity); pointer-events: none; position: fixed; transition: opacity 260ms cubic-bezier(.2, .7, .2, 1); z-index: 0; }
    .photo-viewer[data-background-visible="true"] { --photo-viewer-background-opacity: 1; }
    .photo-viewer-frame { align-items: center; display: grid; height: 100svh; min-height: 0; padding: clamp(64px, 8svh, 96px) clamp(18px, 3vw, 42px) clamp(30px, 5svh, 64px); place-items: center; position: relative; width: 100%; z-index: 1; }
    .photo-viewer-stage { height: 100%; justify-items: center; min-width: 0; pointer-events: none; position: relative; width: 100%; z-index: 2; }
    .photo-viewer-image-shell { align-items: center; display: grid; inset: 0; justify-items: center; min-height: 0; position: fixed; }
    .photo-viewer-stage img { -webkit-user-drag: none; background: var(--image-placeholder); height: auto; max-height: calc(100svh - clamp(168px, 22svh, 230px)); object-fit: contain; pointer-events: none; user-select: none; width: auto; max-width: min(1680px, calc(100vw - clamp(72px, 14vw, 220px))); }
    .photo-viewer[data-delayed-image-load="true"] .photo-viewer-stage img { opacity: 0; }
    .photo-viewer-image-protector { background: transparent; height: var(--photo-viewer-image-height, 0px); left: var(--photo-viewer-image-left, 0px); pointer-events: auto; position: fixed; top: var(--photo-viewer-image-top, 0px); user-select: none; width: var(--photo-viewer-image-width, 0px); z-index: 2; }
    .photo-viewer-details { display: grid; gap: 6px; justify-items: center; min-width: 0; text-align: center; }
    .photo-viewer-copy { display: grid; gap: 6px; justify-items: center; left: clamp(34px, 7vw, 110px); max-height: calc(100svh - var(--photo-viewer-image-top, 50svh) - var(--photo-viewer-image-height, 0px) - var(--photo-viewer-copy-gap) - var(--photo-viewer-copy-bottom)); min-width: 0; overflow: hidden; position: fixed; right: clamp(34px, 7vw, 110px); text-align: center; top: calc(var(--photo-viewer-image-top, 50svh) + var(--photo-viewer-image-height, 0px) + var(--photo-viewer-copy-gap)); }
    .photo-viewer-title { font-size: 14px; font-weight: 420; line-height: 1.2; margin: 0; max-width: min(760px, 86vw); overflow-wrap: anywhere; }
    .photo-viewer-caption { color: var(--muted); font-size: 12px; line-height: 1.45; margin: 0; max-width: min(760px, 86vw); overflow-wrap: break-word; }
    .photo-viewer-close:focus, .photo-viewer-close:focus-visible, .photo-viewer-close:active, .photo-viewer-info-toggle:focus, .photo-viewer-info-toggle:focus-visible, .photo-viewer-info-toggle:active { outline: 0; }
    .photo-viewer-close, .photo-viewer-info-toggle { background: transparent; border: 0; color: var(--muted); cursor: pointer; font-size: 24px; font-weight: 300; inset: 16px 18px auto auto; line-height: 1; min-height: 44px; min-width: 44px; opacity: .72; padding: 0; position: absolute; z-index: 3; }
    .photo-viewer-info-toggle { display: grid; font-size: 13px; font-weight: 400; inset: 18px auto auto 18px; place-items: center; }
    .photo-viewer-info-toggle svg { display: block; height: 18px; width: 18px; }
    .photo-viewer-close:hover { color: var(--ink); opacity: 1; }
    .photo-viewer-info-toggle:hover, .photo-viewer-info-toggle[aria-expanded="true"] { color: var(--ink); opacity: 1; }
    .photo-viewer-info-panel { background: var(--paper); border: 1px solid var(--line); color: var(--ink); display: grid; font-size: 12px; gap: 14px; inset: 68px auto auto 18px; line-height: 1.45; max-height: calc(100svh - 92px); max-width: min(340px, calc(100vw - 36px)); opacity: 0; overflow: auto; padding: 16px; pointer-events: none; position: absolute; transform: translateY(-6px); transition: opacity 160ms ease-out, transform 160ms ease-out; z-index: 4; }
    .photo-viewer-info-panel[data-open="true"] { opacity: 1; pointer-events: auto; transform: translateY(0); }
    .photo-viewer-info-panel[hidden] { display: none; }
    .photo-viewer-info-panel p { margin: 0; }
    .photo-viewer-info-panel dl { display: grid; gap: 8px; grid-template-columns: auto minmax(0, 1fr); margin: 0; }
    .photo-viewer-info-panel dt { color: var(--muted); font-weight: 400; }
    .photo-viewer-info-panel dd { margin: 0; overflow-wrap: anywhere; }
    .sensitive-photo { display: grid; position: relative; }
    .sensitive-photo img { filter: blur(28px); transform: scale(1.03); transition: filter .18s ease, transform .18s ease; }
    .sensitive-photo::after { align-self: center; background: rgba(5, 5, 5, .76); color: #ffffff; content: "Sensitive content - click to show"; font-size: 13px; font-weight: 420; justify-self: center; padding: 12px 14px; position: absolute; z-index: 2; }
    .show-sensitive-content .sensitive-photo img { filter: none; transform: none; }
    .show-sensitive-content .sensitive-photo::after { content: none; }
    .sr-only { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }
    @keyframes cover-copy-reveal { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes gallery-page-enter { from { opacity: .84; } to { opacity: 1; } }
    @media (prefers-color-scheme: dark) {
      body[data-public-theme="system"] { --public-background: #050505; --public-surface: #101010; --public-foreground: #ffffff; --public-muted-foreground: #b8b8b8; --public-border: #343434; --public-border-soft: #242424; --public-image-placeholder: #171717; --paper: var(--public-background); --ink: var(--public-foreground); --muted: var(--public-muted-foreground); --line: var(--public-border); --line-soft: var(--public-border-soft); --image-placeholder: var(--public-image-placeholder); }
    }
    @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } html[data-gallery-transition] body, .cover-hero-copy, html[data-gallery-transition="entering"] .gallery-hero-photo { animation-duration: 1ms; transition-duration: 1ms; } .cover-scroll-link, .gallery-card-photo, .gallery-card-title, .gallery-pagination button, .photo-viewer-info-panel { transition-duration: 1ms; } }
    @media (max-width: 760px) {
      h1 { font-size: 48px; line-height: .94; }
      .portfolio-gallery-grid { grid-template-columns: 1fr; }
      .gallery-password-gate { grid-template-columns: 1fr; padding-block: 42px; }
      .gallery-password-row { grid-template-columns: 1fr; }
      .gallery-pagination { gap: 10px; padding-left: 18px; padding-right: 18px; }
      .gallery-pagination button { font-size: 16px; min-height: 48px; min-width: 48px; padding: 0 12px; }
      .cover-hero { --cover-padding-block-end: 42px; --cover-padding-inline-end: 18px; --cover-padding-inline-start: 18px; padding: 92px 18px 42px; }
      .cover-hero--height-20 { min-height: 42svh; }
      .cover-hero--layout-compact { min-height: clamp(220px, var(--cover-height, 20svh), 360px); }
      .cover-hero--layout-compact.cover-hero--position-center { padding-block: 42px; }
      .cover-hero-copy, .cover-hero-text { width: 100%; max-width: 100%; }
      .cover-hero-copy h1 { font-size: calc(clamp(40px, 11vw, 58px) * var(--cover-title-scale, 1)); max-width: 100%; }
      .cover-hero--layout-compact .cover-hero-copy h1 { font-size: calc(clamp(30px, 9vw, 42px) * var(--cover-title-scale, 1)); }
      .gallery-portfolio-link { max-width: calc(100% - 36px); }
      .gallery-hero-copy { gap: 18px; grid-template-columns: 1fr; }
      .cover-hero-copy a { justify-self: start; }
      .gallery-photo-columns { column-count: 1; }
      body[data-layout="grid"] .gallery-photo-columns,
      body[data-layout="contained_grid"] .gallery-photo-columns { grid-template-columns: 1fr; }
      .photo-viewer-frame { padding: 66px 14px 24px; }
      .photo-viewer-stage { height: 100%; }
      .photo-viewer-stage img { max-height: calc(100svh - 148px); max-width: calc(100vw - 68px); }
      .photo-viewer-copy { left: 34px; right: 34px; }
      .public-brand-footer-inner { align-items: flex-start; display: grid; gap: 14px; }
      .public-brand-footer--paid .public-brand-footer-inner { align-items: center; justify-content: center; text-align: center; }
      .public-brand-footer-made { justify-content: flex-start; }
    }
    @media (min-width: 761px) and (max-width: 1160px) {
      .portfolio-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (min-width: 761px) and (max-width: 1120px) {
      .gallery-photo-columns { column-count: 2; }
      body[data-layout="grid"] .gallery-photo-columns,
      body[data-layout="contained_grid"] .gallery-photo-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

  