/* Gallery typography and spacing. No remote fonts or framework dependencies. */
:root {
    --paper:#f8f7f4;
    --ink:#252522;
    --muted:#686861;
    --line:#deddd6;
    --wash:#efeee9;
    --serif:Georgia,'Times New Roman',serif;
    --sans:Arial,Helvetica,sans-serif;
    --gutter:clamp(22px,4.5vw,80px);
    --header-height:94px;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:120px;
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:16px/1.65 var(--sans);
    -webkit-font-smoothing:antialiased;
}

body.viewer-open {
    overflow:hidden;
}

a {
    color:inherit;
    text-decoration:none;
}

button {
    font:inherit;
    color:inherit;
    border:0;
    border-radius:0;
    cursor:pointer;
    background:none;
}

a,button {
    -webkit-tap-highlight-color:transparent;
}

button:disabled {
    cursor:default;
    opacity:.4;
}

img {
    display:block;
    max-width:100%;
    height:auto;
}

/* Dimensions remain reserved while the decoded image fades in. */
.image-loading-enabled img[data-fade] {
    opacity:0;
    transition:opacity .6s ease;
}
.image-loading-enabled img[data-fade].is-image-loaded {
    opacity:1;
}

figure,h1,h2,h3,p {
    margin:0;
}

h1,h2,h3 {
    font-family:var(--serif);
    font-weight:400;
    line-height:1.12;
}

h2 {
    font-size:clamp(38px,4.2vw,64px);
    letter-spacing:-.045em;
}

h3 {
    font-size:24px;
    letter-spacing:-.02em;
}

p+p {
    margin-top:20px;
}

::selection {
    background:#deddd3;
}

a:focus-visible,button:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:6px;
}

[hidden] {
    display:none!important;
}

.page-width {
    max-width:1540px;
    padding-inline:var(--gutter);
    margin-inline:auto;
}

.eyebrow {
    text-transform:uppercase;
    font-size:12px;
    line-height:1.5;
    letter-spacing:.16em;
    font-weight:400;
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:28px;
    font-size:14px;
    line-height:1.6;
    padding:6px 0;
    border-bottom:1px solid var(--ink);
    width:fit-content;
    transition:opacity .2s;
}

.text-link:hover {
    opacity:.6;
}

.small-note {
    font-size:13px;
    color:var(--muted);
    line-height:1.65;
}

.skip-link {
    position:fixed;
    top:12px;
    left:12px;
    z-index:100;
    padding:10px 20px;
    background:var(--ink);
    color:var(--paper);
    transform:translateY(-150%);
}

.skip-link:focus {
    transform:none;
}

.site-header {
    position:sticky;
    top:0;
    z-index:20;
    background:var(--paper);
}

.header-inner {
    min-height:var(--header-height);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    transition:min-height .25s;
    border-bottom:1px solid var(--line);
    background:var(--paper);
}

.site-header.is-scrolled .header-inner {
    min-height:74px;
}

.wordmark {
    font-family:var(--serif);
    text-transform:uppercase;
    font-size:19px;
    letter-spacing:.075em;
    line-height:1.3;
}

.site-nav,.nav-links,.language-switch {
    display:flex;
    align-items:center;
}

.site-nav {
    gap:clamp(30px,5vw,80px);
}

.nav-links {
    gap:32px;
}

.nav-links a {
    font-size:14px;
    position:relative;
}

.nav-links a::after {
    content:'';
    position:absolute;
    left:0;
    bottom:-4px;
    width:100%;
    height:1px;
    background:currentColor;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .25s;
}

.nav-links a:hover::after,.nav-links a[aria-current]::after {
    transform:scaleX(1);
}

.language-switch {
    gap:15px;
    font-size:12px;
    letter-spacing:.08em;
}

.language-switch a {
    padding:8px 0;
    color:var(--muted);
}

.language-switch [aria-current] {
    color:var(--ink);
    border-bottom:1px solid currentColor;
}

.menu-toggle {
    display:none;
    width:44px;
    height:44px;
    padding:12px 5px;
    flex-direction:column;
    justify-content:center;
    gap:6px;
}

.menu-toggle span {
    display:block;
    width:25px;
    height:1px;
    background:currentColor;
    transition:transform .2s;
}

.menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg);
}

.menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
}

.hero {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:8%;
    padding-top:56px;
    padding-bottom:112px;
    min-height:740px;
    align-items:center;
}

.hero-copy {
    align-self:stretch;
    position:relative;
    padding-top:38px;
    padding-bottom:70px;
}

.hero-intro {
    margin-bottom:42px;
    color:var(--muted);
}

.artist-name {
    font-size:clamp(58px,6.9vw,106px);
    letter-spacing:-.065em;
    line-height:1.01;
}

.artist-name span {
    display:block;
}

.artist-name span+span {
    margin-left:12%;
}

.hero-support {
    margin-top:38px;
}

.hero-statement {
    font-family:var(--serif);
    font-size:clamp(22px,2.3vw,32px);
    line-height:1.4;
    letter-spacing:-.02em;
}

.hero-medium {
    font-size:13px;
    color:var(--muted);
    margin-top:21px;
}

.hero-support .hero-cta {
    margin-top:34px;
}

.hero-edition {
    position:absolute;
    bottom:0;
    left:0;
    font-size:11px;
    letter-spacing:.13em;
    color:var(--muted);
}

.hero-artwork {
    width:100%;
    max-width:480px;
    justify-self:end;
}

.artwork-link {
    display:block;
    position:relative;
    overflow:hidden;
}

.artwork-link img {
    width:100%;
    height:auto;
}

.hero-image {
    width:100%;
}

.hero-image img,.hero-image .image-placeholder {
    max-height:540px;
    object-fit:contain;
    object-position:center;
}

.image-placeholder {
    display:flex;
    width:100%;
    min-height:180px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:25px;
    gap:12px;
    background:var(--wash);
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
    letter-spacing:.03em;
}

.image-placeholder small {
    font-size:11px;
}

.placeholder-rule {
    display:block;
    width:32px;
    height:1px;
    background:#b5b5aa;
    margin-bottom:5px;
}

.hero-image .image-placeholder {
    height:540px;
    aspect-ratio:auto!important;
}

.view-label {
    position:absolute;
    bottom:16px;
    left:50%;
    transform:translate(-50%,8px);
    white-space:nowrap;
    background:var(--paper);
    font-size:12px;
    padding:9px 16px;
    opacity:0;
    transition:opacity .3s,transform .3s;
}

.artwork-link:focus-visible .view-label {
    opacity:1;
    transform:translate(-50%,0);
}

.artwork-caption {
    margin-top:20px;
}

.artwork-caption h2 {
    font-size:24px;
    letter-spacing:-.025em;
}

.artwork-caption h3 a:hover {
    color:var(--muted);
}

.artwork-caption p,.artwork-caption>span {
    font-size:13px;
    color:var(--muted);
    line-height:1.7;
    margin-top:5px;
}

.artwork-caption p+p {
    margin-top:0;
}

.hero-caption {
    display:flex;
    justify-content:space-between;
    gap:16px;
}

.hero-caption>span {
    align-self:flex-end;
    white-space:nowrap;
}

.section-block {
    padding-block:94px;
}

.works-section {
    border-top:1px solid var(--line);
    padding-bottom:120px;
}

.section-heading {
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:56px;
}

.section-heading .eyebrow {
    margin-bottom:24px;
}

.section-note {
    font-size:14px;
    color:var(--muted);
    max-width:100%;
    line-height:1.65;
    text-align:right;
    margin-left:auto;
}

.artwork-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:64px 36px;
    align-items:start;
}

.gallery-image {
    display:grid;
    place-items:center;
    aspect-ratio:1;
    background:var(--wash);
}

.gallery-image img,.gallery-image .image-placeholder {
    width:100%;
    height:100%;
    min-height:0;
    aspect-ratio:1!important;
    object-fit:contain;
    object-position:center;
}









.empty-state {
    font-family:var(--serif);
    font-size:26px;
    color:var(--muted);
    padding:48px 0;
}

.about-section {
    background:var(--wash);
    padding-block:100px;
}

.about-inner {
    display:grid;
    grid-template-columns:1fr 1.1fr;
    gap:13%;
    align-items:center;
}

.artist-portrait {
    max-width:430px;
}

.portrait-frame {
    aspect-ratio:4/5;
    overflow:hidden;
    background:#e2e1da;
}

.artist-portrait img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:70% center;
    transform:scaleX(-1);
}

.portrait-placeholder {
    aspect-ratio:4/5;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:42px;
    background:#e2e1da;
    font-size:12px;
    color:var(--muted);
    letter-spacing:.04em;
}

.portrait-monogram {
    font-family:var(--serif);
    font-size:82px;
    letter-spacing:-.1em;
    color:#8a8a7f;
}

.artist-portrait figcaption {
    font-size:13px;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:5px;
    margin-top:18px;
}

.artist-portrait figcaption span {
    color:var(--muted);
}

.about-copy .eyebrow {
    margin-bottom:30px;
}

.about-copy h2 {
    font-size:clamp(36px,3.8vw,56px);
    line-height:1.13;
}

.biography {
    max-width:530px;
    margin-top:34px;
    color:#54544e;
    font-size:16px;
    line-height:1.85;
}

.biography p+p {
    margin-top:19px;
}

.contact-section {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13%;
    padding-block:124px 134px;
}

.contact-intro .eyebrow {
    margin-bottom:24px;
}

.contact-intro>p:last-child {
    max-width:400px;
    color:var(--muted);
    margin-top:28px;
}

.contact-details {
    align-self:center;
}

.contact-email {
    font-family:var(--serif);
    font-size:clamp(22px,2.5vw,38px);
    letter-spacing:-.02em;
    line-height:1.4;
    overflow-wrap:anywhere;
    border-bottom:1px solid var(--ink);
    display:inline-block;
    margin-top:16px;
}

.contact-details>.small-note {
    margin-top:12px;
}

.social-links {
    display:flex;
    gap:28px;
    flex-wrap:wrap;
    margin-top:35px;
}

.social-links:empty {
    display:none;
}

.social-links .text-link {
    font-size:14px;
}

.contact-pending {
    color:var(--muted);
    font-size:16px;
}

.inquiry-selection {
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:22px 0;
    margin-bottom:30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.inquiry-selection .eyebrow {
    font-size:11px;
    color:var(--muted);
}

#inquiry-title {
    font-family:var(--serif);
    font-size:26px;
    margin-top:7px;
    line-height:1.4;
}

.site-footer {
    border-top:1px solid var(--line);
    padding-block:38px 30px;
}

.footer-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.footer-top p {
    font-size:13px;
    color:var(--muted);
}

.footer-bottom {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:32px;
    margin-top:35px;
}

.footer-bottom>p {
    font-size:11px;
    max-width:560px;
    color:var(--muted);
    line-height:1.8;
}

.footer-bottom nav {
    display:flex;
    gap:20px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.footer-bottom nav a {
    font-size:11px;
    color:var(--muted);
}

.footer-bottom a:hover,.footer-bottom [aria-current] {
    color:var(--ink);
    text-decoration:underline;
    text-underline-offset:4px;
}

.button {
    min-height:50px;
    padding:13px 22px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    font-size:14px;
    line-height:1.5;
    transition:background .2s,color .2s;
    text-align:center;
}

.button-dark {
    background:var(--ink);
    color:var(--paper);
    border:1px solid var(--ink);
}

.button-dark:hover {
    background:#42423b;
}

.button-outline {
    border:1px solid #bdbdb3;
    background:transparent;
}

.button-outline:hover {
    background:var(--wash);
}

.icon-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    flex-shrink:0;
    border:1px solid var(--line);
}

.icon-button:hover {
    background:var(--wash);
}

.close-icon {
    display:block;
    position:relative;
    width:18px;
    height:18px;
}

.close-icon:before,.close-icon:after {
    content:'';
    width:21px;
    height:1px;
    background:currentColor;
    position:absolute;
    top:8px;
    left:-1px;
    transform:rotate(45deg);
}

.close-icon:after {
    transform:rotate(-45deg);
}

.artwork-viewer {
    border:0;
    padding:0;
    margin:auto;
    width:min(1440px,calc(100% - 48px));
    max-width:none;
    max-height:calc(100dvh - 48px);
    background:var(--paper);
    color:var(--ink);
    overflow-y:auto;
    overscroll-behavior:contain;
}

.artwork-viewer::backdrop {
    background:rgb(25 25 23 / .65);
}

.artwork-viewer[open] {
    animation:viewer-enter .3s ease both;
}

.viewer-topbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:20px 28px;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:0;
    z-index:3;
    background:var(--paper);
}

.viewer-brand {
    font-family:var(--serif);
    font-size:16px;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.viewer-tools {
    display:flex;
    align-items:center;
    gap:30px;
}

.viewer-layout {
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);
    gap:60px;
    padding:38px 48px 28px;
}

.viewer-stage {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:360px;
}

.viewer-stage>div {
    width:100%;
    display:flex;
    justify-content:center;
}

.viewer-stage img {
    width:auto;
    height:auto;
    max-width:100%;
    max-height:calc(100dvh - 252px);
    object-fit:contain;
}

.viewer-stage .image-placeholder {
    max-width:480px;
    max-height:calc(100dvh - 252px);
    height:520px;
    min-height:300px;
    width:auto;
    min-width:240px;
}

.viewer-info {
    align-self:center;
    padding-block:10px;
}

.viewer-info>.eyebrow {
    color:var(--muted);
    margin-bottom:20px;
}

.viewer-info h2 {
    font-size:clamp(36px,3.5vw,54px);
    line-height:1.12;
    overflow-wrap:anywhere;
}

.viewer-description {
    font-size:15px;
    color:var(--muted);
    margin-top:20px;
}

.work-details {
    margin:30px 0 0;
    line-height:1.8;
    font-size:14px;
}

.work-details>div {
    display:grid;
    grid-template-columns:94px 1fr;
    gap:16px;
    padding:5px 0;
}

.work-details dt {
    color:var(--muted);
}

.work-details dd {
    margin:0;
}

.availability {
    font-size:13px;
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:23px;
}

.availability[data-available=true]:before {
    content:'';
    width:5px;
    height:5px;
    display:block;
    background:#586654;
    border-radius:100%;
}

.viewer-actions {
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:28px;
}

.viewer-actions p {
    margin-top:0;
    text-align:center;
}

.viewer-copyright {
    font-size:11px;
    line-height:1.6;
    color:var(--muted);
    margin-top:26px;
}

.viewer-bottom {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    padding:16px 28px 22px;
    font-size:12px;
    color:var(--muted);
}

.viewer-bottom .icon-button {
    border-color:transparent;
}

.ar-panel {
    padding:30px 48px 40px;
    min-height:440px;
}

.ar-heading {
    margin:35px 0 18px;
}

.ar-heading h2 {
    font-size:42px;
}

.ar-heading p {
    font-size:14px;
    color:var(--muted);
    margin-top:10px;
}

.ar-status {
    font-size:16px;
    max-width:600px;
    color:var(--muted);
}

.ar-panel model-viewer {
    display:block;
    width:100%;
    height:min(54dvh,560px);
    min-height:280px;
    margin-bottom:20px;
    --poster-color:transparent;
}

.ar-panel [slot=ar-button] {
    position:absolute;
    bottom:16px;
    left:50%;
    transform:translateX(-50%);
    min-width:210px;
}

.ar-panel #ar-retry {
    margin-top:24px;
}

.direct-artwork {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7%;
    padding-block:60px;
}

.direct-artwork h1 {
    font-size:50px;
    margin:24px 0;
}

.direct-artwork .button {
    margin-block:30px;
}

.direct-artwork .text-link {
    display:block;
}

.direct-artwork-image {
    max-width:480px;
}

.direct-artwork-image .image-placeholder {
    max-height:600px;
}

.noscript-note {
    font-size:13px;
    color:var(--muted);
    padding-bottom:40px;
}

.not-found {
    padding-block:110px 150px;
    min-height:65vh;
}

.not-found h1 {
    font-size:clamp(42px,6vw,80px);
    margin-top:30px;
}

.not-found>p:not(.eyebrow) {
    max-width:500px;
    color:var(--muted);
    margin-top:30px;
}

.not-found .text-link {
    margin-top:35px;
}

.legal-layout {
    max-width:820px;
    margin:0 auto;
    padding:75px var(--gutter) 110px;
}

.legal-layout h1 {
    font-size:clamp(40px,5vw,66px);
    letter-spacing:-.035em;
    margin-top:30px;
    overflow-wrap:anywhere;
}

.legal-date {
    font-size:12px;
    color:var(--muted);
    margin-top:25px;
}

.legal-body {
    margin-top:45px;
    font-size:16px;
    line-height:1.85;
}

.legal-body section+section {
    margin-top:36px;
}

.legal-body h2 {
    font-size:27px;
    letter-spacing:-.025em;
    margin-bottom:14px;
    line-height:1.3;
}

.legal-body p {
    color:#54544e;
}

.legal-body a {
    text-decoration:underline;
    text-underline-offset:4px;
}

.legal-layout>.text-link {
    margin-top:50px;
}

@media(hover:hover) {
    .artwork-link:hover .view-label {
        opacity:1;
        transform:translate(-50%,0);
    }
}

@media(prefers-reduced-motion:no-preference) {
    .hero-intro,.artist-name {
        animation:arrive .65s both;
    }
    .hero-support {
        animation:arrive .65s .15s both;
    }
    .hero-image {
        animation:arrive .75s .25s both;
    }
    .hero-caption {
        animation:arrive .6s .45s both;
    }
    .reveal.is-waiting {
        opacity:0;
        transform:translateY(18px);
    }
    .reveal {
        transition:opacity .6s ease var(--stagger,0ms),transform .6s ease var(--stagger,0ms);
    }
    ::view-transition-old(artwork-image),::view-transition-new(artwork-image) {
        animation-duration:.35s;
        object-fit:contain;
    }
}

@keyframes arrive {
    from {
        opacity:0;
        transform:translateY(12px);
    }
    to {
        opacity:1;
        transform:none;
    }
}

@keyframes viewer-enter {
    from {
        opacity:0;
        transform:scale(.99);
    }
    to {
        opacity:1;
        transform:none;
    }
}

@media(min-width:1550px) {
    .hero {
        min-height:820px;
    }
    .hero-image img,.hero-image .image-placeholder {
        max-height:600px;
    }
    .hero-image .image-placeholder {
        height:600px;
    }
}

@media(max-width:1050px) {
    .site-nav {
        gap:30px;
    }
    .nav-links {
        gap:20px;
    }
    .wordmark {
        font-size:17px;
    }
    .hero {
        gap:6%;
        min-height:640px;
        padding-top:38px;
        padding-bottom:90px;
    }
    .hero-copy {
        padding-top:25px;
    }
    .artist-name {
        font-size:clamp(55px,7.1vw,78px);
    }
    .hero-image .image-placeholder {
        height:470px;
    }
    .hero-caption {
        display:block;
    }
    .hero-caption>span {
        display:block;
        margin-top:3px;
    }
    .artwork-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:50px 28px;
    }
    
    
    
    .about-inner {
        gap:8%;
    }
    .contact-section {
        gap:8%;
    }
    .footer-bottom {
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }
    .footer-bottom nav {
        justify-content:flex-start;
    }
    .viewer-layout {
        gap:30px;
        padding:30px;
    }
    .viewer-stage .image-placeholder {
        min-width:200px;
    }
    .work-details>div {
        grid-template-columns:80px 1fr;
    }
    .viewer-info h2 {
        font-size:38px;
    }
}

@media(max-width:760px) {
    :root {
        --header-height:78px;
        --gutter:24px;
    }
    html {
        scroll-padding-top:90px;
    }
    .header-inner {
        gap:15px;
        flex-wrap:wrap;
    }
    .site-header.is-scrolled .header-inner {
        min-height:68px;
    }
    .wordmark {
        font-size:16px;
        letter-spacing:.04em;
    }
    .menu-toggle:not([hidden]) {
        display:flex;
    }
    .site-nav {
        width:100%;
        padding:10px 0 26px;
        justify-content:space-between;
        gap:20px;
    }
    .nav-links {
        gap:20px;
    }
    .nav-links a {
        font-size:13px;
    }
    body.js-ready .site-nav {
        display:none;
    }
    body.js-ready .site-nav.is-open {
        display:flex;
    }
    .hero {
        grid-template-columns:1fr;
        gap:38px;
        padding-top:35px;
        padding-bottom:68px;
        min-height:0;
    }
    .hero-copy {
        padding:0;
    }
    .hero-intro {
        margin-bottom:24px;
    }
    .artist-name {
        font-size:clamp(60px,12vw,92px);
        max-width:530px;
    }
    .artist-name span+span {
        margin-left:12%;
    }
    .hero-support {
        margin-top:28px;
    }
    .hero-statement {
        font-size:25px;
    }
    .hero-medium {
        margin-top:14px;
    }
    .hero-support .hero-cta {
        margin-top:22px;
    }
    .hero-edition {
        display:none;
    }
    .hero-artwork {
        max-width:100%;
        width:100%;
        padding-left:12%;
    }
    .hero-image .image-placeholder {
        height:440px;
    }
    .hero-image img {
        max-height:520px;
    }
    .hero-caption {
        display:flex;
    }
    .hero-caption h2 {
        font-size:23px;
    }
    .hero-caption>span {
        margin-top:5px;
    }
    .section-block {
        padding-block:65px;
    }
    .section-heading {
        display:block;
        margin-bottom:35px;
    }
    .section-heading .eyebrow {
        margin-bottom:20px;
    }
    .section-note {
        text-align:left;
        max-width:none;
        margin-top:19px;
    }
    .artwork-grid {
        gap:38px 20px;
    }
    
    
    .artwork-caption h3 {
        font-size:22px;
    }
    .artwork-caption p {
        font-size:12px;
    }
    .about-inner {
        grid-template-columns:1fr;
        gap:45px;
    }
    .artist-portrait {
        max-width:360px;
        width:85%;
    }
    .about-copy h2 {
        font-size:40px;
    }
    .biography {
        max-width:600px;
    }
    .contact-section {
        grid-template-columns:1fr;
        gap:38px;
        padding-block:70px 80px;
    }
    .contact-intro>p:last-child {
        margin-top:23px;
    }
    .contact-email {
        font-size:30px;
    }
    .footer-top {
        align-items:flex-start;
        flex-direction:column;
        gap:9px;
    }
    .footer-bottom {
        margin-top:25px;
    }
    .footer-bottom nav {
        gap:10px 20px;
    }
    .artwork-viewer {
        width:100%;
        height:100dvh;
        max-height:100dvh;
        margin:0;
    }
    .viewer-topbar {
        padding:12px 20px;
    }
    .viewer-brand {
        font-size:13px;
        max-width:140px;
    }
    .viewer-tools {
        gap:18px;
    }
    .viewer-layout {
        grid-template-columns:1fr;
        gap:30px;
        padding:26px 24px;
    }
    .viewer-stage {
        min-height:250px;
    }
    .viewer-stage img {
        max-height:50dvh;
    }
    .viewer-stage .image-placeholder {
        height:50dvh;
        min-height:250px;
        max-height:none;
        max-width:100%;
        min-width:200px;
    }
    .viewer-info {
        padding:0;
        max-width:540px;
        width:100%;
        margin:auto;
    }
    .viewer-info h2 {
        font-size:38px;
    }
    .viewer-info>.eyebrow {
        margin-bottom:14px;
    }
    .work-details {
        margin-top:20px;
    }
    .viewer-copyright {
        margin-top:20px;
    }
    .viewer-bottom {
        position:sticky;
        bottom:0;
        background:var(--paper);
        border-top:1px solid var(--line);
        padding:7px 20px;
        z-index:2;
    }
    .ar-panel {
        padding:25px 24px;
    }
    .ar-heading h2 {
        font-size:36px;
    }
    .direct-artwork {
        grid-template-columns:1fr;
    }
    .direct-artwork h1 {
        font-size:40px;
    }
    .legal-layout {
        padding-block:48px 65px;
    }
    .legal-layout h1 {
        font-size:42px;
    }
    .legal-body {
        margin-top:35px;
    }
    .not-found {
        padding-block:80px;
    }
}

@media(max-width:420px) {
    .hero-image .image-placeholder {
        height:360px;
    }
    .hero-caption {
        display:block;
    }
    .artwork-grid {
        grid-template-columns:1fr;
        gap:42px;
    }
    
    
    .artwork-caption h3 {
        font-size:25px;
    }
    .about-copy h2 {
        font-size:35px;
    }
    .nav-links {
        gap:15px;
    }
    .language-switch {
        gap:12px;
    }
    .site-nav {
        gap:15px;
    }
    .viewer-topbar .language-switch {
        font-size:11px;
    }
    .viewer-tools {
        gap:14px;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*::before,*::after {
        animation:none!important;
        transition:none!important;
        scroll-behavior:auto!important;
    }
    .reveal.is-waiting {
        opacity:1;
        transform:none;
    }
}

/* The signature is an English SVG outline shared by both language versions. */
.signature {
    width:270px;
    height:auto;
    max-width:100%;
}

.viewer-brand.signature {
    width:215px;
}

@media(max-width:760px) {
    .wordmark .signature {
        width:230px;
    }
    .viewer-brand.signature {
        width:150px;
        max-width:150px;
    }
}

@media(max-width:360px) {
    .wordmark .signature {
        width:210px;
    }
}

.site-header .signature {
    width:190px;
}

.demo-label {
    font-size:11px!important;
    color:var(--muted);
    letter-spacing:.025em;
    margin-top:8px!important;
}

@media(max-width:760px) {
    .site-header .signature {
        width:190px;
    }
}

html {
    scrollbar-gutter:stable;
}


/* Keep captions aligned with the actual, uncropped artwork. */
@media (min-width: 761px) {
    .hero-artwork {
        max-width: min(480px, calc(540px * var(--art-ratio, .75)));
    }
}
.gallery-image img {
    width: auto;
}

.hero-studio .hero-image { aspect-ratio:4/5; overflow:hidden; }
.hero-studio .hero-image img { width:100%; height:100%; max-height:none; object-fit:cover; }
.hero-studio { max-width:480px; }
@media(max-width:760px) { .hero-studio { padding-left:0; max-width:480px; } }

/* The phone handoff stays visible while the desktop model loads. */
.ar-layout { display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr); gap:48px; align-items:center; }
.ar-phone { max-width:320px; }
.ar-qr { width:224px; max-width:100%; aspect-ratio:1; background:#fff; margin-bottom:22px; }
.ar-qr svg { display:block; width:100%; height:100%; }
.ar-phone p { font-size:15px; line-height:1.65; }
.ar-phone .text-link { margin-top:18px; font-size:12px; }
.ar-mobile-actions { margin-block:20px; }
.ar-status:empty,.ar-mobile-actions:has([hidden]) { display:none; }
.ar-mobile .ar-phone { display:none; }
.ar-mobile .ar-layout { display:block; }
.ar-mobile .ar-preview { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.ar-mobile model-viewer { width:1px; height:1px; min-height:0; margin:0; }
.ar-mobile { min-height:360px; }
@media(max-width:760px) {
    .ar-layout { grid-template-columns:1fr; gap:20px; }
    .ar-phone { max-width:100%; }
}

@media(min-width:761px) {
    .hero { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:6%; }
    .hero-copy { padding-top:28px; }
    .hero-studio { max-width:560px; }
    .artist-name { font-size:clamp(66px,7.7vw,116px); }
    .artist-name span+span { margin-left:6%; }
    .hero-statement { font-size:clamp(24px,2.5vw,36px); }
}

@media(min-width:761px) { .section-note { white-space:nowrap; } }
@media(max-width:760px) { .section-note { margin-left:0; } }

/* Reserve the complete dialog before images or 3D resources arrive. */
@media(min-width:761px) {
    .artwork-viewer[open] { display:flex; flex-direction:column; height:min(860px,calc(100dvh - 48px)); }
    .viewer-topbar { flex:0 0 auto; padding:12px 28px; }
    .viewer-layout { flex:1 0 auto; padding:24px 36px; gap:40px; }
    .viewer-stage { position:relative; min-height:280px; }
    .viewer-stage>div { position:absolute; inset:0; width:100%; height:100%; align-items:center; }
    .viewer-stage img { width:100%; height:100%; max-height:100%; object-fit:contain; }
    .viewer-stage .image-placeholder { min-height:0; height:100%; max-height:100%; }
    .viewer-info { padding:0; }
    .viewer-info>.eyebrow { margin-bottom:14px; }
    .viewer-info h2 { font-size:clamp(32px,3.2vw,46px); }
    .work-details { margin-top:20px; }
    .availability { margin-top:16px; }
    .viewer-actions { margin-top:20px; gap:10px; }
    .viewer-copyright { margin-top:16px; }
    .viewer-bottom { flex:0 0 auto; padding:4px 28px 10px; }
    .ar-panel { flex:1 0 auto; display:flex; flex-direction:column; min-height:0; padding:18px 36px; }
    .ar-panel>#ar-back { align-self:flex-start; }
    .ar-heading { flex:0 0 auto; margin:18px 0; }
    .ar-heading h2 { font-size:36px; }
    .ar-heading p { margin-top:6px; }
    .ar-layout { flex:1; min-height:390px; }
    .ar-preview,#ar-mount { height:100%; min-height:390px; }
    .ar-panel model-viewer { height:100%; min-height:390px; margin:0; }
    .ar-panel .ar-status { flex:0 0 30px; min-height:30px; margin:0; font-size:14px; }
    .ar-status:empty { display:block; }
}
.ar-phone { width:100%; max-width:380px; margin-inline:auto; text-align:center; display:flex; flex-direction:column; align-items:center; }
.ar-qr { width:clamp(260px,38dvh,320px); background:var(--paper); margin-bottom:16px; }
@media(min-width:761px) and (max-height:700px) {
    .viewer-topbar { padding-block:8px; }
    .viewer-layout { padding-block:16px; gap:28px; }
    .viewer-info>.eyebrow { margin-bottom:10px; }
    .viewer-info h2 { font-size:32px; }
    .work-details { margin-top:12px; }
    .work-details>div { padding-block:3px; }
    .availability,.viewer-actions { margin-top:12px; }
    .viewer-actions .button { min-height:44px; padding-block:10px; }
    .ar-qr { width:260px; }
}
