/* Frame: header 90px; content max 1360px; hero 760px; catalogue 3 columns.
   At 1100px navigation collapses; at 760px split layouts become one column.
   UI uses Astryx layout components and its tokens. */
html{scroll-behavior:smooth;color-scheme:light}
body{margin:0;background:var(--color-background-surface);color:var(--color-text-primary);font:var(--font-size-base)/1.7 var(--font-family-body);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}img,video{display:block;max-width:100%}img{height:auto}figure,p,h1,h2,h3,ol,ul,dl,dd{margin:0}button{color:inherit}h1,h2,h3{font-family:var(--font-family-heading);font-weight:var(--font-weight-normal);line-height:1.13;text-wrap:balance}h1{font-size:clamp(var(--font-size-5xl),5.1vw,calc(var(--font-size-5xl)*1.62))}h2{font-size:clamp(var(--font-size-3xl),3.1vw,var(--font-size-5xl))}h3{font-size:var(--font-size-2xl)}[hidden]{display:none!important}:focus-visible{outline:var(--spacing-0-5) solid var(--color-accent);outline-offset:var(--spacing-1)}.container{width:100%;max-width:calc(var(--spacing-10)*34);padding-inline:var(--spacing-10);margin-inline:auto}.section{padding-block:calc(var(--spacing-10)*2.5)}.no-top{padding-top:0}.pale{background:var(--color-background-wash)}.dark,.site-footer,.contact-band{background:var(--color-background-surface);color:var(--color-text-primary)}.muted{color:var(--color-text-secondary)}.eyebrow{font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.17em;line-height:1.5;text-transform:uppercase}.section-heading{margin-bottom:var(--spacing-12)}.section-heading h2{max-width:24ch}.section-description{max-width:65ch}.text-link{display:inline-flex;align-items:center;gap:var(--spacing-4);font-size:var(--font-size-base);white-space:nowrap;background:transparent;border:0;padding:0}.text-link:hover{text-decoration:underline;text-underline-offset:var(--spacing-1)}svg{flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-6);min-height:calc(var(--spacing-12) + var(--spacing-1));padding:var(--spacing-4) var(--spacing-7);background:var(--color-text-primary);border:var(--border-width) solid var(--color-text-primary);color:var(--color-background-surface);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5;letter-spacing:.035em;width:fit-content;transition:opacity var(--duration-fast)}.button:hover{opacity:.78}.button-light{background:var(--color-text-primary);color:var(--color-background-surface);border-color:var(--color-text-primary)}.button-outline{background:transparent;color:var(--color-text-primary);border-color:var(--color-border)}.button svg,.text-link svg{transition:transform var(--duration-fast)}.button:hover svg,.text-link:hover svg{transform:translateX(var(--spacing-1))}.skip-link{position:fixed;z-index:1000;left:var(--spacing-4);top:var(--spacing-4);background:var(--color-background-surface);padding:var(--spacing-4);transform:translateY(-200%)}.skip-link:focus{transform:none}
.site-header{height:calc(var(--spacing-10)*2.25);border-bottom:var(--border-width) solid var(--color-border);background:var(--color-background-surface)}.header-inner{height:100%;max-width:calc(var(--spacing-10)*40)}.brand{display:inline-flex;flex-direction:column;white-space:nowrap;line-height:1}.brand strong{font:var(--font-weight-normal) var(--font-size-2xl)/1 var(--font-family-heading);letter-spacing:.18em}.brand small{margin-top:var(--spacing-3);font-size:var(--font-size-2xs);letter-spacing:.19em}.desktop-nav a{position:relative;font-size:var(--font-size-sm);line-height:2.4}.desktop-nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:var(--border-width);background:var(--color-accent);transform:scaleX(0);transition:transform var(--duration-fast)}.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after{transform:scaleX(1)}.header-contact{display:inline-flex;align-items:center;gap:var(--spacing-3);font-size:var(--font-size-sm);white-space:nowrap}.menu-toggle{display:none;align-items:center;justify-content:center;background:transparent;border:var(--border-width) solid var(--color-border);width:var(--spacing-12);height:var(--spacing-12)}.mobile-nav{position:absolute;inset-inline:0;background:var(--color-background-surface);color:var(--color-text-primary);border-bottom:var(--border-width) solid var(--color-border);padding:var(--spacing-5) var(--spacing-6);max-height:80dvh;overflow-y:auto;box-shadow:var(--shadow-med)}.mobile-nav a{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-bottom:var(--border-width) solid var(--color-border)}.page-home .astryx-app-shell-header{position:fixed;inset-inline:0;z-index:30;background:transparent}.page-home .site-header{color:var(--color-text-primary);background:transparent;border-color:var(--color-border)}.page-home .site-header,.hero,.category-strip{color-scheme:dark}
.hero{position:relative;background:var(--color-background-surface);color:var(--color-text-primary)}.hero-slide{position:relative;min-height:calc(var(--spacing-10)*19);isolation:isolate}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;z-index:-2}.hero-slide::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--color-background-surface) 91%,transparent) 0%,color-mix(in srgb,var(--color-background-surface) 68%,transparent) 33%,color-mix(in srgb,var(--color-background-surface) 8%,transparent) 78%),linear-gradient(0deg,color-mix(in srgb,var(--color-background-surface) 60%,transparent),transparent 45%)}.hero-content{min-height:inherit;justify-content:center;padding-block:calc(var(--spacing-10)*3.5) calc(var(--spacing-10)*3)}.hero-copy{max-width:calc(var(--spacing-10)*16)}.hero-copy h1,.hero-copy h2{font-size:clamp(var(--font-size-5xl),4.8vw,calc(var(--font-size-5xl)*1.6));line-height:1.05;letter-spacing:-.018em;text-wrap:balance}.hero-copy>p{max-width:52ch;line-height:1.85;color:var(--color-text-secondary)}.gold-line{display:block;width:var(--spacing-12);height:var(--border-width);background:var(--color-accent)}.hero-controls{position:absolute;bottom:var(--spacing-8);left:0;right:0}.slide-count{font-size:var(--font-size-xs);letter-spacing:.2em;margin-right:var(--spacing-3)}.slide-button{width:var(--spacing-10);height:var(--spacing-10);background:transparent;color:var(--color-text-primary);border:var(--border-width) solid var(--color-border)}.slide-button:hover{border-color:var(--color-accent)}.hero-scroll{margin-left:auto;font-size:var(--font-size-xs);letter-spacing:.2em;color:var(--color-text-secondary)}
.category-strip{border-block:var(--border-width) solid var(--color-accent);background:var(--color-background-surface);color:var(--color-text-primary)}.category-tile{position:relative;min-height:calc(var(--spacing-10)*8);overflow:hidden;isolation:isolate;border-right:var(--border-width) solid var(--color-border)}.category-tile>img{position:absolute;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform var(--duration-slow)}.category-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,color-mix(in srgb,var(--color-background-surface) 96%,transparent),color-mix(in srgb,var(--color-background-surface) 12%,transparent));z-index:-1}.category-tile:hover>img{transform:scale(1.04)}.category-caption{padding:var(--spacing-8);min-height:inherit}.category-caption h2{font-size:var(--font-size-2xl)}.category-caption p:not(.eyebrow){font-size:var(--font-size-sm);color:var(--color-text-secondary);min-height:3.5em;max-width:30ch}.short-line{display:inline-block;margin-left:var(--spacing-4);vertical-align:middle;width:var(--spacing-10);height:var(--border-width);background:var(--color-accent)}
.featured-products{border-block:var(--border-width) solid var(--color-border);align-items:stretch}.featured-image{position:relative;flex:1.1;min-height:calc(var(--spacing-10)*14);overflow:hidden;isolation:isolate}.featured-image>img{width:100%;height:100%;position:absolute;object-fit:cover}.featured-caption{position:absolute;inset-inline:0;bottom:0;padding:var(--spacing-9);color:var(--color-text-primary);color-scheme:dark;background:linear-gradient(0deg,var(--color-background-surface),transparent)}.featured-caption h3{font-size:var(--font-size-4xl)}.featured-list{flex:1;border-left:var(--border-width) solid var(--color-border)}.featured-list>a{padding:var(--spacing-8);border-bottom:var(--border-width) solid var(--color-border);flex:1;align-content:center}.featured-list>a:last-child{border:0}.featured-list>a:hover{background:var(--color-background-surface)}.featured-list h3{font-size:var(--font-size-2xl)}.stats-section{border-block:var(--border-width) solid var(--color-border)}.stat{padding:var(--spacing-10) var(--spacing-6);border-right:var(--border-width) solid var(--color-border)}.stat:last-child{border:0}.stat strong{font:var(--font-size-4xl)/1.2 var(--font-family-heading)}.stat p{font-size:var(--font-size-sm)}.stat small{line-height:1.7;font-size:var(--font-size-sm)}
.section-grid{margin-top:var(--spacing-12)}.case-card{position:relative;isolation:isolate;overflow:hidden;min-height:calc(var(--spacing-10)*12);color-scheme:dark;color:var(--color-text-primary)}.case-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform var(--duration-slow)}.case-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,color-mix(in srgb,var(--color-background-surface) 95%,transparent),color-mix(in srgb,var(--color-background-surface) 5%,transparent) 100%);z-index:-1}.case-card:hover>img{transform:scale(1.035)}.case-caption{min-height:inherit;justify-content:end;padding:var(--spacing-8)}.case-caption h3{font-size:var(--font-size-3xl)}.case-caption p:not(.eyebrow){color:var(--color-text-secondary);line-height:1.8;font-size:var(--font-size-sm)}.split-section{align-items:stretch}.split-section>*{flex:1;min-width:0}.process-image img{width:100%;height:100%;object-fit:cover}.process-list{list-style:none;flex:1.15}.process-list li{padding-block:var(--spacing-5);border-bottom:var(--border-width) solid var(--color-border)}.process-list li:first-child{padding-top:0}.process-list h3{font-size:var(--font-size-xl)}.process-list p{font-size:var(--font-size-sm);line-height:1.8}.process-list .eyebrow{padding-top:var(--spacing-1)}.heritage-copy{justify-content:center}.heritage-copy>p{max-width:58ch}.heritage-image{width:48%;object-fit:cover;max-height:calc(var(--spacing-10)*13)}.news-list{list-style:none}.news-list li{border-top:var(--border-width) solid var(--color-border)}.news-list li:last-child{border-bottom:var(--border-width) solid var(--color-border)}.news-row{padding-block:var(--spacing-8)}.news-row>time{font-size:var(--font-size-sm);width:calc(var(--spacing-10)*4);flex-shrink:0;color:var(--color-text-secondary)}.news-copy{flex:1}.news-copy h3{font-size:var(--font-size-2xl)}.news-copy p{max-width:85ch}.news-row>svg{margin-top:var(--spacing-5)}.news-list a:hover h3{text-decoration:underline;text-decoration-thickness:var(--border-width);text-underline-offset:var(--spacing-1)}.contact-band{padding-block:calc(var(--spacing-10)*2.5);border-top:var(--border-width) solid var(--color-border)}.contact-band h2{font-size:clamp(var(--font-size-4xl),4vw,calc(var(--font-size-5xl)*1.35))}.site-footer{padding-top:calc(var(--spacing-10)*2);border-top:var(--border-width) solid var(--color-border);font-size:var(--font-size-sm)}.site-footer a{width:fit-content}.site-footer a:hover{color:var(--color-accent)}.site-footer a svg{vertical-align:middle;width:var(--spacing-4);height:var(--spacing-4)}.footer-label{font:var(--font-weight-normal) var(--font-size-sm)/1.5 var(--font-family-body);color:var(--color-text-secondary)}.footer-bottom{padding-block:var(--spacing-6);margin-top:calc(var(--spacing-10)*1.5);border-top:var(--border-width) solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.footer-bottom small{max-width:75ch;font-size:inherit}
.page-intro{padding-block:calc(var(--spacing-10)*2.2) calc(var(--spacing-10)*1.8);background:var(--color-background-surface)}.page-intro h1{max-width:22ch}.intro-copy{color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:1.85;max-width:66ch}.about-photo{height:calc(var(--spacing-10)*13);margin-bottom:calc(var(--spacing-10)*2)}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.rich-text{max-width:80ch;line-height:1.9;font-size:var(--font-size-base)}.rich-text h2,.rich-text h3{margin-top:var(--spacing-8);margin-bottom:var(--spacing-5);font-size:var(--font-size-2xl)}.rich-text p{margin-bottom:var(--spacing-6);color:var(--color-text-secondary)}.rich-text a,.consent a{text-decoration:underline;text-underline-offset:var(--spacing-1);overflow-wrap:anywhere}.rich-text ul{padding-left:var(--spacing-6)}.rich-text> :first-child{margin-top:0}.timeline{list-style:none;margin-top:var(--spacing-12)}.timeline li{border-top:var(--border-width) solid var(--color-border);padding-block:var(--spacing-7)}.timeline strong{font:var(--font-size-3xl)/1.3 var(--font-family-heading);min-width:calc(var(--spacing-10)*3);color:var(--color-text-secondary)}.recognition> *{border-top:var(--border-width) solid var(--color-border);padding-top:var(--spacing-6)}
.catalog-section{padding-bottom:calc(var(--spacing-10)*2.5)}.catalog-controls{max-width:calc(var(--spacing-10)*17);margin-bottom:var(--spacing-8)}.catalog-controls>label{display:block;margin-bottom:var(--spacing-3)}input,textarea{width:100%;min-width:0;border:var(--border-width) solid var(--color-border);padding:var(--spacing-4);background:var(--color-background-surface);color:var(--color-text-primary);border-radius:var(--radius-none)}input{min-height:var(--spacing-12)}textarea{resize:vertical}.catalog-controls input{flex:1}.filter-bar{padding-block:var(--spacing-6);border-block:var(--border-width) solid var(--color-border)}.filter-bar>a,.filter-bar>button{display:inline-flex;gap:var(--spacing-3);align-items:center;border:var(--border-width) solid transparent;padding:var(--spacing-3) var(--spacing-4);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5}.filter-bar>a[aria-current],.filter-bar>button[aria-pressed="true"]{background:var(--color-text-primary);color:var(--color-background-surface)}.filter-bar>a:hover,.filter-bar>button:hover{border-color:var(--color-border)}.filter-bar span{font-size:var(--font-size-xs);opacity:.7}.catalog-meta{padding-block:var(--spacing-6);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.product-grid{row-gap:var(--spacing-12)}.product-card figure{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-background-wash)}.product-card figure img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow)}.product-card:hover img{transform:scale(1.035)}.product-caption{padding-top:var(--spacing-5)}.product-caption h3{font-size:var(--font-size-2xl)}.product-caption p{font-size:var(--font-size-sm)}.product-caption .eyebrow{font-size:var(--font-size-xs)}.image-arrow{position:absolute;right:var(--spacing-4);bottom:var(--spacing-4);width:var(--spacing-10);height:var(--spacing-10);display:flex;align-items:center;justify-content:center;background:var(--color-background-surface)}.catalog-note{margin-top:var(--spacing-12);padding-top:var(--spacing-6);border-top:var(--border-width) solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.empty-state{padding-block:calc(var(--spacing-10)*2);align-items:center;text-align:center}.breadcrumbs{display:flex;flex-wrap:wrap;gap:var(--spacing-3);padding-block:var(--spacing-6);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.breadcrumbs a:hover{text-decoration:underline}.product-detail{padding-top:var(--spacing-6);padding-bottom:calc(var(--spacing-10)*2);align-items:start}.product-main-image{width:52%;position:sticky;top:calc(var(--spacing-10)*3);background:var(--color-background-wash)}.product-main-image img{width:100%;max-height:calc(var(--spacing-10)*16);object-fit:contain;aspect-ratio:1}.gallery-open{padding:0;border:0;display:block;position:relative;width:100%;background:var(--color-background-wash);text-align:left;cursor:zoom-in}.zoom-hint{position:absolute;bottom:var(--spacing-4);right:var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);font-size:var(--font-size-xs);background:var(--color-background-surface)}.product-info{flex:1;min-width:0;padding-top:var(--spacing-5)}.product-info h1{font-size:var(--font-size-5xl);overflow-wrap:anywhere}.product-info h2{font-size:var(--font-size-2xl);color:var(--color-text-secondary)}.spec-list{display:grid;grid-template-columns:1fr 1.6fr;border-top:var(--border-width) solid var(--color-border);font-size:var(--font-size-sm)}.spec-list dt,.spec-list dd{padding-block:var(--spacing-4);border-bottom:var(--border-width) solid var(--color-border)}.spec-list dt{color:var(--color-text-secondary);padding-right:var(--spacing-5)}.gallery-grid img{height:auto;width:100%;aspect-ratio:4/3;object-fit:cover}.gallery-grid figcaption{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-4)}.section-return{margin-block:var(--spacing-10) calc(var(--spacing-10)*2)}.process-full{list-style:none}.process-full li{border-top:var(--border-width) solid var(--color-border);padding-block:var(--spacing-10)}.process-step> *{flex:1;min-width:0}.process-step>img{width:35%;max-width:35%;max-height:calc(var(--spacing-10)*7);object-fit:cover}.process-step>section,.process-step>.astryx-stack{justify-content:center}.video-grid{margin-top:var(--spacing-12)}.video-grid video{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--color-text-primary)}.video-grid h3{font-size:var(--font-size-xl)}.article-container{max-width:calc(var(--spacing-10)*25)}.article-container h1{font-size:clamp(var(--font-size-4xl),4vw,calc(var(--font-size-5xl)*1.35))}.article-container>.rich-text{margin-top:var(--spacing-12);max-width:none}.contact-layout{align-items:start}.contact-details{width:38%;position:sticky;top:calc(var(--spacing-10)*3)}.contact-email{font-size:var(--font-size-lg);text-decoration:underline;text-underline-offset:var(--spacing-1);overflow-wrap:anywhere}.inquiry-form{flex:1;min-width:0;border:var(--border-width) solid var(--color-border);padding:var(--spacing-9);display:flex;flex-direction:column;gap:var(--spacing-6);background:var(--color-background-wash)}.inquiry-form h2{font-size:var(--font-size-3xl)}.inquiry-form label{display:flex;flex-direction:column;gap:var(--spacing-3);font-size:var(--font-size-sm)}.inquiry-form .consent{display:flex;flex-direction:row;align-items:start;gap:var(--spacing-3);line-height:1.7}.consent input{width:var(--spacing-5);height:var(--spacing-5);min-height:0;flex-shrink:0;margin-top:var(--spacing-1);accent-color:var(--color-text-primary)}.honeypot{position:absolute!important;left:-10000%;width:var(--spacing-1);height:var(--spacing-1);overflow:hidden}.inquiry-form button:disabled{cursor:wait;opacity:.65}#form-status:not(:empty){padding:var(--spacing-5);border:var(--border-width) solid var(--color-border);background:var(--color-background-surface);font-size:var(--font-size-sm);white-space:pre-line;overflow-wrap:anywhere}.wechat summary{cursor:pointer}.wechat p{padding-top:var(--spacing-4)}.error-actions{padding-bottom:calc(var(--spacing-10)*3)}
#image-dialog{max-width:92vw;max-height:92dvh;border:0;padding:var(--spacing-6);background:var(--color-background-surface);color:var(--color-text-primary)}#image-dialog::backdrop{background:color-mix(in srgb,var(--color-text-primary) 80%,transparent)}#dialog-image{max-height:72dvh;max-width:85vw;object-fit:contain}#dialog-caption{margin-top:var(--spacing-4);font-size:var(--font-size-sm)}.dialog-close{display:block;margin-left:auto;margin-bottom:var(--spacing-4);background:transparent;border:var(--border-width) solid var(--color-border);padding:var(--spacing-3) var(--spacing-5)}
@media(min-width:100rem){.hero-slide{min-height:80dvh}.hero-copy{max-width:calc(var(--spacing-10)*17)}}
@media(max-width:68.75rem){.desktop-nav,.header-contact{display:none}.menu-toggle{display:inline-flex}.container{padding-inline:var(--spacing-8)}.site-header{height:calc(var(--spacing-10)*2)}.hero-slide{min-height:calc(var(--spacing-10)*18)}.hero-copy{max-width:calc(var(--spacing-10)*15)}.hero-copy h1,.hero-copy h2{font-size:var(--font-size-5xl)}.contact-details{width:35%}.inquiry-form{padding:var(--spacing-6)}}
@media(max-width:47.5rem){.container{padding-inline:var(--spacing-6)}.section{padding-block:calc(var(--spacing-10)*1.5)}.no-top{padding-top:0}.brand strong{font-size:var(--font-size-xl)}.brand small{font-size:var(--font-size-2xs)}.site-header{height:calc(var(--spacing-10)*1.8)}.hero-slide{min-height:calc(var(--spacing-10)*18)}.hero-copy{gap:var(--spacing-6)}.hero-copy h1,.hero-copy h2{font-size:clamp(var(--font-size-4xl),9vw,var(--font-size-5xl))}.hero-content{padding-top:calc(var(--spacing-10)*3.5);padding-bottom:calc(var(--spacing-10)*3.5);justify-content:end}.hero-copy>p{font-size:var(--font-size-sm);line-height:1.8}.hero-slide::after{background:linear-gradient(90deg,color-mix(in srgb,var(--color-background-surface) 79%,transparent),color-mix(in srgb,var(--color-background-surface) 27%,transparent)),linear-gradient(0deg,var(--color-background-surface),transparent)}.hero-image{object-position:65% center}.hero-copy .button{padding-inline:var(--spacing-5)}.hero-scroll{display:none}.hero-controls{bottom:var(--spacing-7)}.category-tile{min-height:calc(var(--spacing-10)*8)}.featured-products,.split-section,.product-detail,.contact-layout{flex-direction:column}.featured-image{flex:auto;width:100%;min-height:calc(var(--spacing-10)*10)}.featured-list{border-left:0}.featured-list>a{padding:var(--spacing-6)}.stat{border-right:0;border-bottom:var(--border-width) solid var(--color-border)}.stat:last-child{border-bottom:0}.section-heading{margin-bottom:var(--spacing-8)}.case-card{min-height:calc(var(--spacing-10)*11)}.process-image{height:calc(var(--spacing-10)*9)}.heritage-image{width:100%;max-height:none}.news-row{gap:var(--spacing-5);flex-wrap:wrap}.news-row>time{width:100%}.news-copy h3{font-size:var(--font-size-xl)}.news-copy p{font-size:var(--font-size-sm)}.contact-band{padding-block:calc(var(--spacing-10)*1.5)}.contact-band-inner{gap:var(--spacing-8)}.footer-bottom{flex-direction:column;align-items:start}.page-intro{padding-block:calc(var(--spacing-10)*1.4)}.page-intro h1{font-size:var(--font-size-4xl)}.intro-copy{font-size:var(--font-size-base)}.about-photo{height:calc(var(--spacing-10)*9);margin-bottom:calc(var(--spacing-10)*1.5)}.timeline li>.astryx-stack{gap:var(--spacing-6)}.timeline strong{min-width:calc(var(--spacing-10)*1.6);font-size:var(--font-size-2xl)}.timeline h3{font-size:var(--font-size-xl)}.filter-bar{gap:var(--spacing-2)}.filter-bar>a,.filter-bar>button{padding:var(--spacing-3);font-size:var(--font-size-xs)}.catalog-controls .button{padding-inline:var(--spacing-5)}.product-main-image{width:100%;position:static}.product-info h1{font-size:var(--font-size-4xl)}.product-info{padding-top:0}.product-info .button{width:100%}.product-detail{padding-bottom:calc(var(--spacing-10)*1.5)}.process-step{flex-direction:column}.process-step>img{width:100%;max-width:100%}.process-step h2{font-size:var(--font-size-3xl)}.contact-details{width:100%;position:static}.inquiry-form{width:100%;padding:var(--spacing-6)}.article-container h1{font-size:var(--font-size-4xl)}.section-return{margin-bottom:calc(var(--spacing-10)*1.5)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.page-home .site-header[data-scrolled="true"]{color-scheme:light;background:color-mix(in srgb,var(--color-background-surface) 96%,transparent);backdrop-filter:blur(var(--spacing-4))}

/* Explicit schemes keep the original white and charcoal section rhythm. */
[data-theme="dark"]{color-scheme:dark}
/* Full-width tracks on small screens; avoid clipping a component minimum. */
@media(max-width:47.5rem){.astryx-grid{grid-template-columns:minmax(0,1fr)!important}.astryx-grid>*{min-width:0}.category-tile{border-right:0}.product-grid{row-gap:var(--spacing-10)}}

/* Shared social links: monochrome brand icons, generous tap targets, gold focus. */
.social-links { min-width: 0; }
.social-link { display: inline-flex; align-items: center; gap: var(--spacing-3); color: var(--color-text-primary); min-height: var(--spacing-12); border: var(--border-width) solid var(--color-border); padding: var(--spacing-3) var(--spacing-5); transition: border-color var(--duration-fast), background-color var(--duration-fast), color var(--duration-fast); }
.social-link:hover, .social-link:focus-visible { border-color: var(--color-accent); color: var(--color-accent); background: color-mix(in srgb, var(--color-accent) 7%, transparent); }
.social-icon-frame { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.social-link .social-icon { width: var(--spacing-5); height: var(--spacing-5); }
.social-link-copy { min-width: 0; }
.social-link-name { font-size: var(--font-size-base); line-height: 1.5; }
.social-link-detail { color: var(--color-text-secondary); font-size: var(--font-size-sm); line-height: 1.6; }
.social-links-rows .social-link { width: 100%; padding: var(--spacing-5) 0; border-inline: 0; border-top: 0; gap: var(--spacing-5); }
.social-links-rows { border-top: var(--border-width) solid var(--color-border); }
.social-links-rows .social-icon-frame { width: var(--spacing-12); height: var(--spacing-12); border: var(--border-width) solid var(--color-border); transition: border-color var(--duration-fast); }
.social-links-rows .social-link:hover .social-icon-frame { border-color: var(--color-accent); }
.social-links-rows .social-link-name { font-size: var(--font-size-lg); }
.social-links-rows .social-arrow { margin-left: auto; width: var(--spacing-5); height: var(--spacing-5); }
.social-links-icons .social-link { width: var(--spacing-11); min-height: var(--spacing-11); padding: 0; justify-content: center; border-radius: var(--radius-full); }
.hero-social { margin-left: auto; }
.hero-social-label { font-size: var(--font-size-sm); color: var(--color-text-secondary); }
.hero-social-label:hover { color: var(--color-text-primary); }
.social-showcase { scroll-margin-top: calc(var(--spacing-10) * 2.5); }
.social-showcase-photo { position: relative; flex: 0.9; min-width: 0; align-self: stretch; isolation: isolate; }
.social-showcase-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 48% center; }
.social-showcase-photo figcaption { position: absolute; inset-inline: 0; bottom: 0; padding: var(--spacing-10) var(--spacing-6) var(--spacing-6); font-size: var(--font-size-xs); letter-spacing: .12em; text-transform: uppercase; color-scheme: dark; color: var(--color-text-primary); background: linear-gradient(0deg, color-mix(in srgb, var(--color-background-surface) 86%, transparent), transparent); }
.social-showcase-content { flex: 1.1; min-width: 0; padding-left: var(--spacing-8); }
.social-showcase-content > .eyebrow { color: var(--color-accent); }
.social-showcase-content h2 { font-size: clamp(var(--font-size-4xl), 3.8vw, calc(var(--font-size-5xl) * 1.2)); }
.social-showcase-intro { max-width: 59ch; color: var(--color-text-secondary); line-height: 1.85; }
.footer-social { margin-top: var(--spacing-12); padding-block: var(--spacing-8); border-top: var(--border-width) solid var(--color-border); }
.footer-social-title { color: var(--color-text-primary); font-family: var(--font-family-heading); font-size: var(--font-size-2xl); }
.site-footer .footer-bottom { margin-top: 0; }
.contact-social { padding-top: var(--spacing-6); border-top: var(--border-width) solid var(--color-border); }
.contact-social > .astryx-stack > p { font-size: var(--font-size-sm); line-height: 1.8; }
.contact-social .social-links-rows .social-link { gap: var(--spacing-4); }
@media(max-width: 68.75rem) { .social-showcase-content { padding-left: 0; } .hero-social-label { display: none; } }
@media(max-width: 47.5rem) {
  .social-showcase-layout { flex-direction: column; gap: var(--spacing-8); }
  .social-showcase-photo { width: 100%; flex: auto; aspect-ratio: 5 / 4; }
  .social-showcase-content { flex: auto; width: 100%; }
  .social-showcase-content h2 { font-size: var(--font-size-4xl); }
  .social-showcase-intro { font-size: var(--font-size-sm); }
  .social-links-rows .social-link { gap: var(--spacing-4); }
  .social-links-rows .social-icon-frame { width: var(--spacing-10); height: var(--spacing-10); }
  .social-links-rows .social-link-name { font-size: var(--font-size-base); }
  .hero-controls > .astryx-stack { flex-wrap: wrap; row-gap: var(--spacing-5); }
  .hero-social { width: 100%; margin-left: 0; flex-direction: column; align-items: start; gap: var(--spacing-3); }
  .hero-social-label { display: block; font-size: var(--font-size-xs); }
  .hero-social .social-links-icons { width: 100%; max-width: calc(var(--spacing-10) * 9); flex-wrap: nowrap; justify-content: space-between; gap: var(--spacing-2); }
  .hero-social .social-link { flex-shrink: 0; }
  .hero-content { padding-bottom: calc(var(--spacing-11) * 5); }
  .footer-social { align-items: start; flex-direction: column; gap: var(--spacing-6); }
  .footer-social .social-links { width: 100%; }
  .footer-social .social-link { padding-inline: var(--spacing-4); flex: 0 0 calc((100% - var(--spacing-3)) / 2); }
  .footer-social .social-link-name { font-size: var(--font-size-sm); }
  .contact-social .social-links-rows .social-link { gap: var(--spacing-3); }
}

/* Header uses separate desktop/mobile budgets. Compact editorial footer with a separate social row.
   Include after site.css. Theme values come from theme.mjs; local color-scheme selects its palette. */
.luxury-header,
.luxury-footer {
  --luxury-chrome-gutter: clamp(var(--spacing-6), 5vw, calc(var(--spacing-10) * 2));
  --luxury-chrome-width: calc(var(--spacing-10) * 40);
  --luxury-header-layer: 20;
  width: 100%;
  flex: none;
}

.luxury-chrome-container {
  width: 100%;
  max-width: var(--luxury-chrome-width);
  margin-inline: auto;
  padding-inline: var(--luxury-chrome-gutter);
}

.luxury-header {
  position: relative;
  z-index: var(--luxury-header-layer);
  color-scheme: light;
  color: var(--color-text-primary);
  background: var(--color-background-surface);
  border-bottom: var(--border-width) solid var(--color-border);
}

.luxury-header--home {
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  color-scheme: light;
  background: var(--color-background-surface);
  border-color: var(--color-border);
}

.luxury-header-inner {
  min-height: calc(var(--spacing-10) * 2.5);
  padding-block: var(--spacing-5);
}

.luxury-brand {
  flex: none;
  width: fit-content;
  color: inherit;
  white-space: nowrap;
  text-decoration: none;
}

.luxury-brand-name {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-normal);
  letter-spacing: .16em;
  line-height: 1.1;
}

.luxury-brand-line {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-2xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: .17em;
  line-height: 1.5;
  color: var(--color-text-secondary);
}

.luxury-desktop-nav,
.luxury-footer-nav {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-sm);
  line-height: 1.5;
}

.luxury-desktop-nav {
  flex: none;
  white-space: nowrap;
}

.luxury-desktop-nav a,
.luxury-footer-nav a,
.luxury-privacy-link {
  padding-block: var(--spacing-2);
  color: inherit;
  text-decoration: none;
  text-underline-offset: var(--spacing-2);
  text-decoration-thickness: var(--border-width);
}

.luxury-desktop-nav a:hover,
.luxury-desktop-nav a[aria-current="page"],
.luxury-footer-nav a:hover,
.luxury-privacy-link:hover {
  text-decoration: underline;
  text-decoration-color: var(--color-accent);
}

.luxury-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-3);
  min-width: var(--spacing-11);
  min-height: var(--spacing-11);
  padding: var(--spacing-2);
  border: 0;
  border-radius: var(--radius-none);
  color: inherit;
  background: transparent;
}

.luxury-menu-symbol {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--spacing-1-5);
  width: var(--spacing-6);
  min-height: var(--spacing-6);
}

.luxury-menu-symbol span {
  display: block;
  width: 100%;
  height: var(--border-width);
  background: currentColor;
  transition: transform var(--duration-fast);
}

.luxury-menu-toggle[aria-expanded="true"] .luxury-menu-symbol span:first-child {
  transform: translateY(calc((var(--spacing-1-5) + var(--border-width)) / 2)) rotate(45deg);
}

.luxury-menu-toggle[aria-expanded="true"] .luxury-menu-symbol span:last-child {
  transform: translateY(calc((var(--spacing-1-5) + var(--border-width)) / -2)) rotate(-45deg);
}

.luxury-menu-label {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-sm);
}

.luxury-mobile-menu {
  position: absolute;
  inset-block-start: 100%;
  inset-inline: 0;
  max-height: calc(100dvh - var(--spacing-10) * 2.2);
  padding: var(--spacing-4) var(--luxury-chrome-gutter) var(--spacing-8);
  overflow-y: auto;
  overscroll-behavior: contain;
  color-scheme: light;
  color: var(--color-text-primary);
  background: var(--color-background-surface);
  border-bottom: var(--border-width) solid var(--color-border);
}

.luxury-mobile-menu[hidden] {
  display: none;
}

.luxury-mobile-nav a {
  padding-block: var(--spacing-4);
  border-bottom: var(--border-width) solid var(--color-border);
  font-family: var(--font-family-heading);
  font-size: var(--font-size-2xl);
  line-height: 1.4;
}

.luxury-mobile-nav a[aria-current="page"] {
  color: var(--color-text-accent);
}

.luxury-mobile-social > p {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
}

.luxury-footer {
  color-scheme: dark;
  color: var(--color-text-primary);
  background: var(--color-background-surface);
  border-top: var(--border-width) solid var(--color-border);
}

.luxury-footer-main {
  padding-block: var(--spacing-8);
}

.luxury-chinese-link {
  padding-inline-start: var(--spacing-6);
  border-inline-start: var(--border-width) solid var(--color-border);
  color: var(--color-text-secondary);
}

.luxury-footer-bottom {
  padding-block: var(--spacing-5);
  border-top: var(--border-width) solid var(--color-border);
  font-family: var(--font-family-body);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  color: var(--color-text-secondary);
}

.luxury-footer-bottom small {
  font-size: inherit;
}

.luxury-footer .social-links,
.luxury-mobile-social .social-links {
  gap: var(--spacing-3);
}

.luxury-footer .social-link,
.luxury-mobile-social .social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--spacing-11);
  min-width: var(--spacing-11);
  min-height: var(--spacing-11);
  padding: var(--spacing-2);
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: var(--radius-none);
}

.luxury-footer .social-icon-frame,
.luxury-mobile-social .social-icon-frame {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--spacing-5);
  height: var(--spacing-5);
  color: inherit;
  background: transparent;
  border: 0;
}

.luxury-footer .social-icon,
.luxury-mobile-social .social-icon {
  width: 100%;
  height: 100%;
}

.luxury-footer .social-link:hover,
.luxury-mobile-social .social-link:hover {
  color: var(--color-accent);
  background: transparent;
}

.luxury-header a:focus-visible,
.luxury-header button:focus-visible,
.luxury-footer a:focus-visible {
  outline: var(--spacing-0-5) solid var(--color-accent);
  outline-offset: var(--spacing-1);
}

/* Header switches independently of the footer so all six labels remain complete. */
@media (max-width: 70rem) {
  .luxury-header-inner {
    min-height: calc(var(--spacing-10) * 2.2);
    gap: var(--spacing-4);
  }

  .luxury-desktop-nav {
    display: none;
  }

  .luxury-menu-toggle {
    display: inline-flex;
  }
}

@media (max-width: 52rem) {
  .luxury-footer-main {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--spacing-6);
  }

  .luxury-footer-nav {
    gap: var(--spacing-4) var(--spacing-6);
  }

  .luxury-footer-bottom {
    justify-content: flex-start;
    gap: var(--spacing-4) var(--spacing-6);
  }

  .luxury-footer-bottom small {
    flex-basis: 100%;
  }

  .luxury-footer .social-links,
  .luxury-mobile-social .social-links {
    gap: var(--spacing-2);
  }
}

@media (max-width: 26rem) {
  .luxury-brand-name {
    font-size: var(--font-size-xl);
  }

  .luxury-brand-line {
    letter-spacing: .1em;
  }

  .luxury-menu-label {
    display: none;
  }

  .luxury-chinese-link {
    padding-inline-start: 0;
    border-inline-start: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .luxury-menu-symbol span {
    transition: none;
  }
}

/* Selected direction: design/concepts/selected-home-social.png.
   Frame at 1440: hero 760, manifesto 560, craft 560,
   artist collaboration 720, contact 390. All literal dimension budgets resolve through tokens. */
html{--lux-gutter:clamp(var(--spacing-6),5vw,calc(var(--spacing-10)*2));--lux-display:clamp(calc(var(--font-size-5xl)*1.4),7.4vw,calc(var(--font-size-5xl)*2.65));--lux-title:clamp(var(--font-size-5xl),4.8vw,calc(var(--font-size-5xl)*1.65));--lux-paragraph:clamp(var(--font-size-lg),1.5vw,var(--font-size-xl));--lux-layer-header:30}
body{font-size:var(--font-size-base);background:var(--color-background-surface)}
.astryx-app-shell{overflow:clip}
.astryx-app-shell-main,.astryx-app-shell-content{min-width:0}
.page-home .astryx-app-shell-header{position:absolute;inset-inline:0;inset-block-start:0;z-index:var(--lux-layer-header);background:transparent}
body:not(.page-home) .astryx-app-shell-header{position:relative}
.lux-home{width:100%;overflow:clip}
.lux-home h1,.lux-home h2,.lux-home h3{font-weight:var(--font-weight-normal);letter-spacing:-.025em;text-wrap:initial}
.lux-home p{font-family:var(--font-family-body);font-size:var(--lux-paragraph);line-height:1.55}
.lux-link{display:inline-flex;align-items:center;gap:var(--spacing-6);align-self:flex-start;width:fit-content;min-height:var(--spacing-11);font-family:var(--font-family-body);font-size:var(--font-size-lg);line-height:1.4;border-bottom:var(--border-width) solid var(--color-accent);padding-block:var(--spacing-2);color:inherit}
.lux-link svg{width:var(--spacing-5);height:var(--spacing-5);transition:transform var(--duration-fast)}
.lux-link:hover svg{transform:translateX(var(--spacing-1))}
.lux-rule{border:0;border-top:var(--border-width) solid var(--color-accent);width:var(--spacing-12);height:0;margin:0;flex:none}
.lux-hero{position:relative;min-height:calc(var(--spacing-10)*19);height:calc(var(--spacing-10)*19);color-scheme:dark;color:var(--color-text-primary);background:var(--color-background-surface);isolation:isolate}
.lux-hero>picture{position:absolute;inset:0;display:block;width:100%;height:100%}
.lux-hero-image{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.lux-hero-copy{position:absolute;inset-inline-start:var(--lux-gutter);inset-block-end:calc(var(--spacing-10)*2.25);max-width:calc(var(--spacing-10)*17)}
.lux-hero h1{font-family:var(--font-family-heading);font-size:var(--lux-display);line-height:.98;color:var(--color-text-primary)}
@media(min-width:47.501rem){.lux-hero h1{font-size:calc(var(--lux-display)*1.17)}}
.lux-hero .lux-link{margin-top:var(--spacing-4)}
.lux-manifesto{min-height:calc(var(--spacing-10)*14);position:relative;isolation:isolate;background:var(--color-background-surface);overflow:hidden;align-items:center}
.lux-manifesto-copy{position:relative;z-index:1;padding:calc(var(--spacing-10)*2.1) var(--lux-gutter);width:45%;align-self:center}
.lux-manifesto h2{font-size:var(--lux-display);line-height:1.01}
.lux-manifesto-copy p{color:var(--color-text-secondary)}
.lux-manifesto-object{display:block;position:static;flex:none;width:55%;min-width:0;height:auto;align-self:center;object-fit:contain}
.lux-craft{height:calc(var(--spacing-10)*14);min-height:calc(var(--spacing-10)*14);align-items:stretch;background:var(--color-background-surface)}
.lux-craft-photo{width:61%;min-width:0;flex:none;overflow:hidden}
.lux-craft-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 53%}
.lux-craft-copy{flex:1;min-width:0;padding:calc(var(--spacing-10)*2) var(--spacing-12);justify-content:center}
.lux-craft h2{font-size:var(--lux-title);line-height:1.1}
.lux-craft p{color:var(--color-text-secondary)}

.lux-contact-ending{min-height:calc(var(--spacing-10)*9.75);position:relative;overflow:hidden;isolation:isolate;color-scheme:dark;color:var(--color-text-primary);background:var(--color-background-surface)}
.lux-contact-ending>img{position:absolute;inset-block:0;inset-inline-end:0;width:72%;height:100%;object-fit:cover;object-position:60% 43%;z-index:-2}
.lux-contact-ending::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--color-background-surface) 30%,transparent 80%);z-index:-1}
.lux-contact-ending-copy{padding:calc(var(--spacing-10)*1.7) var(--lux-gutter);max-width:60%}
.lux-contact-ending h2{font-size:var(--lux-title);line-height:1.04}
.lux-contact-ending .lux-link{font-size:var(--font-size-lg)}
.page-intro{background:var(--color-background-surface);padding-block:calc(var(--spacing-10)*2.5) calc(var(--spacing-10)*1.8)}
.page-intro h1{font-size:clamp(var(--font-size-5xl),6.5vw,calc(var(--font-size-5xl)*2.3));line-height:1.05;max-width:20ch;letter-spacing:-.03em}
.page-intro .eyebrow{display:none}
.page-intro .intro-copy{font-family:var(--font-family-heading);font-size:var(--font-size-xl);line-height:1.65;max-width:60ch}
.container{max-width:calc(var(--spacing-10)*39);padding-inline:var(--lux-gutter)}
.product-grid{column-gap:var(--spacing-8);row-gap:var(--spacing-12)}
.product-card{border:0;background:transparent}
.product-card img{aspect-ratio:4/5}
.product-card h3{font-size:var(--font-size-2xl)}
.filter-bar{border-block:var(--border-width) solid var(--color-border)}
.filter-bar>a,.filter-bar>button{border:0;border-bottom:var(--border-width) solid transparent;border-radius:var(--radius-none)}
.filter-bar [aria-current],.filter-bar [aria-pressed="true"]{border-bottom-color:var(--color-text-primary);background:transparent}
.contact-social .social-link-name{font-family:var(--font-family-heading);font-size:var(--font-size-xl)}
.contact-details h2{font-size:var(--font-size-3xl)}
.contact-direct{flex:1;min-width:0;padding-block:var(--spacing-8);border-top:var(--border-width) solid var(--color-border)}
.contact-direct h2{font-size:clamp(var(--font-size-3xl),3.2vw,var(--font-size-5xl));line-height:1.15}
.contact-direct p{max-width:43ch;line-height:1.8}
.contact-direct-person{padding-top:var(--spacing-6);font-size:var(--font-size-base)}
.contact-direct-layout>.contact-details{position:static;min-width:0}
.button{font-weight:var(--font-weight-normal);letter-spacing:0}
.luxury-menu-toggle svg{width:var(--spacing-6);height:var(--spacing-6)}
.luxury-menu-close{display:none}
.luxury-menu-toggle[aria-expanded="true"] .luxury-menu-open{display:none}
.luxury-menu-toggle[aria-expanded="true"] .luxury-menu-close{display:block}
@media(min-width:100rem){.lux-hero{height:84svh}.lux-hero-copy{inset-block-end:calc(var(--spacing-10)*3)}}
@media(max-width:68.75rem){.lux-craft-photo{width:55%}.lux-craft-copy{padding:var(--spacing-10)}.lux-desktop-break{display:none}.lux-manifesto{flex-direction:column;min-height:0;align-items:stretch}.lux-manifesto-copy{width:100%;padding-block:var(--spacing-12)}.lux-manifesto-copy p{max-width:60ch}.lux-manifesto-object{width:100%;height:auto}}
@media(max-width:47.5rem){
  html{--lux-display:clamp(calc(var(--font-size-5xl)*1.2),12vw,calc(var(--font-size-5xl)*1.7));--lux-title:clamp(var(--font-size-4xl),10vw,calc(var(--font-size-5xl)*1.3))}
  .lux-hero{min-height:calc(var(--spacing-10)*17);height:90svh;max-height:calc(var(--spacing-10)*22)}
  .lux-hero-image{object-position:50% 50%}
  .lux-hero-copy{inset-block-end:calc(var(--spacing-10)*2.1);inset-inline-end:var(--lux-gutter);gap:var(--spacing-6)}
  .lux-hero h1{font-size:var(--lux-display);line-height:1.04}
  .lux-hero .lux-link{margin-top:var(--spacing-2)}
  .lux-manifesto{min-height:0;align-items:stretch}
  .lux-manifesto-copy{width:100%;padding-block:var(--spacing-12);align-self:flex-start;gap:var(--spacing-6)}
  .lux-manifesto h2{font-size:clamp(var(--font-size-5xl),12vw,calc(var(--font-size-5xl)*1.5))}
  .lux-manifesto-copy p{max-width:none}
  .lux-manifesto-object{width:100%;height:auto}
  .lux-craft{flex-direction:column;min-height:0;height:auto}
  .lux-craft-photo{width:100%;aspect-ratio:1.2}
  .lux-craft-copy{padding:var(--spacing-12) var(--lux-gutter);gap:var(--spacing-6)}
  .lux-craft p{max-width:30ch}
  
  
  
  
  
  
  
  
  
  
  .contact-direct-layout{gap:var(--spacing-12)}
  .contact-direct{width:100%;padding-top:var(--spacing-6)}
  .contact-direct-actions{width:100%}
  .contact-direct-actions .button{width:100%;max-width:100%}
  .lux-contact-ending{min-height:calc(var(--spacing-10)*10)}
  .lux-contact-ending-copy{max-width:100%;padding-block:var(--spacing-12);gap:var(--spacing-6)}
  .lux-contact-ending>img{width:100%;object-position:65% 50%;opacity:.7}
  .lux-contact-ending::after{background:linear-gradient(90deg,var(--color-background-surface),color-mix(in srgb,var(--color-background-surface) 20%,transparent))}
}
@media(prefers-reduced-motion:reduce){.lux-link svg{transition:none}}

html.lux-menu-open{overflow:hidden}

.luxury-brand-name{font-size:calc(var(--font-size-3xl)*1.1)}

.luxury-desktop-nav{font-size:var(--font-size-base)}
@media(max-width:26rem){.luxury-brand-name{font-size:var(--font-size-2xl)}.luxury-brand-line{font-size:calc(var(--font-size-xs)*.68)}}

.luxury-desktop-nav,.luxury-footer-nav{font-family:var(--font-family-body)}
.lux-hero-actions{max-width:100%;column-gap:var(--spacing-8);row-gap:var(--spacing-4)}
.lux-hero-actions .lux-link{font-size:var(--font-size-lg)}
@media(max-width:47.5rem){.lux-hero-actions{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}}

/* Open editorial pages: shared reading width, large headings and restrained rules.
   Load after the legacy site stylesheet. The full page remains inside AppShell. */
.editorial-page {
  --editorial-gutter: clamp(var(--spacing-6), 5vw, calc(var(--spacing-10) * 2));
  --editorial-width: calc(var(--spacing-10) * 34);
  --editorial-rhythm: clamp(var(--spacing-12), 7vw, calc(var(--spacing-10) * 2.8));
  width: 100%;
  background: var(--color-background-surface);
  color: var(--color-text-primary);
  color-scheme: light;
}

.editorial-container {
  width: 100%;
  max-width: var(--editorial-width, calc(var(--spacing-10) * 34));
  margin-inline: auto;
  padding-inline: var(--editorial-gutter, clamp(var(--spacing-6), 5vw, calc(var(--spacing-10) * 2)));
}

.editorial-intro {
  padding-block: var(--editorial-rhythm) calc(var(--editorial-rhythm) * .8);
}

.editorial-eyebrow {
  color: var(--color-text-secondary);
  font-family: var(--font-family-body);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: .15em;
  line-height: 1.6;
  text-transform: uppercase;
}

.editorial-page h1,
.editorial-page h2,
.editorial-page h3,
.editorial-contact-band h2 {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-normal);
  text-wrap: balance;
  letter-spacing: -.025em;
}

.editorial-page h1 {
  max-width: 18ch;
  font-size: clamp(var(--font-size-5xl), 7.5vw, calc(var(--font-size-5xl) * 2.1));
  line-height: 1.02;
}

.editorial-page h2,
.editorial-contact-band h2 {
  font-size: clamp(var(--font-size-3xl), 4.1vw, calc(var(--font-size-5xl) * 1.22));
  line-height: 1.09;
}

.editorial-page h3 {
  font-size: clamp(var(--font-size-xl), 2.4vw, var(--font-size-3xl));
  line-height: 1.2;
}

.editorial-intro-copy {
  max-width: 60ch;
  color: var(--color-text-secondary);
  font-size: var(--font-size-lg);
  line-height: 1.85;
}

.editorial-section {
  padding-block: var(--editorial-rhythm);
}

.editorial-split {
  column-gap: clamp(var(--spacing-10), 6vw, calc(var(--spacing-10) * 2.4));
}

.editorial-split > * {
  flex: 1;
  min-width: 0;
}

.editorial-split--lead > .editorial-section-lead {
  flex: .72;
}

.editorial-section-lead {
  max-width: 42ch;
}

.editorial-prose > p:not(.editorial-source):not(.editorial-caption),
.editorial-section-lead > p:not(.editorial-eyebrow),
.editorial-open-story > p:not(.editorial-eyebrow):not(.editorial-source),
.editorial-film-copy > p:not(.editorial-eyebrow):not(.editorial-source),
.editorial-press-copy > p:not(.editorial-source):not(.editorial-eyebrow),
.editorial-process-copy > p {
  color: var(--color-text-secondary);
  font-size: var(--font-size-base);
  line-height: 1.85;
}

.editorial-rule {
  display: block;
  width: var(--spacing-12);
  height: var(--border-width);
  background: var(--color-accent);
}

.editorial-photograph {
  min-width: 0;
  margin: 0;
}

.editorial-photograph img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.editorial-photograph figcaption,
.editorial-caption {
  padding-block-start: var(--spacing-4);
  color: var(--color-text-secondary);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}

.editorial-atelierscape img {
  aspect-ratio: 2.1;
  object-position: center 42%;
}

.editorial-teaching-photo img {
  aspect-ratio: 1;
  object-position: center;
}

.editorial-craft-hero img {
  max-height: calc(var(--spacing-10) * 15);
  aspect-ratio: 2;
  object-position: center 55%;
}

.editorial-text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-4);
  width: fit-content;
  max-width: 100%;
  padding-block: var(--spacing-2);
  color: inherit;
  font-family: var(--font-family-heading);
  font-size: var(--font-size-base);
  line-height: 1.5;
  border-bottom: var(--border-width) solid var(--color-accent);
  text-decoration: none;
}

.editorial-text-link:hover {
  border-bottom-color: currentColor;
}

.editorial-arrow {
  display: inline-block;
  width: var(--spacing-5);
  height: var(--spacing-5);
  flex: none;
  vertical-align: middle;
}

.editorial-milestones {
  padding-block: var(--spacing-10);
  list-style: none;
  border-block: var(--border-width) solid var(--color-border);
}

.editorial-milestones > li {
  flex: 1;
  min-width: 0;
}

.editorial-milestones strong {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-normal);
  line-height: 1;
}

.editorial-milestones h3 {
  font-size: var(--font-size-xl);
}

.editorial-milestones p {
  max-width: 36ch;
  font-size: var(--font-size-sm);
  line-height: 1.8;
  color: var(--color-text-secondary);
}

.editorial-open-stories,
.editorial-archive-list {
  min-width: 0;
}

.editorial-open-story,
.editorial-official-film {
  padding-block: var(--spacing-8);
  border-top: var(--border-width) solid var(--color-border);
}

.editorial-open-story:first-child,
.editorial-official-film:first-child {
  padding-block-start: 0;
  border-top: 0;
}

.editorial-open-story:last-child,
.editorial-official-film:last-child {
  padding-block-end: 0;
}

.editorial-source {
  color: var(--color-text-secondary);
  font-family: var(--font-family-body);
  font-size: var(--font-size-xs);
  line-height: 1.7;
}

.editorial-source time {
  white-space: nowrap;
}

.editorial-source .editorial-text-link {
  font-size: inherit;
  gap: var(--spacing-2);
  padding-block: 0;
  border: 0;
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: var(--spacing-1);
}

.editorial-source .editorial-arrow {
  width: var(--spacing-4);
  height: var(--spacing-4);
}

.editorial-gift-note {
  padding-block: var(--spacing-10);
  border-block: var(--border-width) solid var(--color-border);
}

.editorial-gift-note h2 {
  font-size: var(--font-size-3xl);
}

.editorial-gift-note h3 {
  font-size: var(--font-size-2xl);
}

.editorial-process-list,
.editorial-press-list,
.editorial-archive-list {
  padding: 0;
  list-style: none;
}

.editorial-process-row {
  padding-block: var(--spacing-8);
  border-top: var(--border-width) solid var(--color-border);
  scroll-margin-top: var(--spacing-10);
}

.editorial-process-row:last-child {
  border-bottom: var(--border-width) solid var(--color-border);
}

.editorial-step-number {
  width: var(--spacing-12);
  flex: none;
  font-family: var(--font-family-heading);
  font-size: var(--font-size-2xl);
  line-height: 1.5;
  color: var(--color-text-secondary);
}

.editorial-process-copy {
  flex: 1;
  min-width: 0;
}

.editorial-process-copy .editorial-quality-note {
  font-size: var(--font-size-sm);
}

.editorial-step-photo {
  width: 24%;
  flex: none;
}

.editorial-step-photo img {
  aspect-ratio: 1.5;
}

.editorial-play-link {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: calc(var(--spacing-10) * 1.5);
  height: calc(var(--spacing-10) * 1.5);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-full);
}

.editorial-play-link svg {
  width: var(--spacing-6);
  height: var(--spacing-6);
}

.editorial-play-link:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.editorial-film-copy {
  min-width: 0;
  flex: 1;
}

.editorial-film-copy h3 .editorial-arrow,
.editorial-press-copy h3 .editorial-arrow {
  margin-inline-start: var(--spacing-3);
}

.editorial-page .editorial-list-heading {
  font-size: var(--font-size-3xl);
}

.editorial-press-row {
  padding-block: var(--spacing-8);
  border-top: var(--border-width) solid var(--color-border);
}

.editorial-press-row:last-child {
  border-bottom: var(--border-width) solid var(--color-border);
}

.editorial-press-meta {
  width: calc(var(--spacing-10) * 4.5);
  flex: none;
  font-family: var(--font-family-body);
  font-size: var(--font-size-xs);
  line-height: 1.8;
  color: var(--color-text-secondary);
}

.editorial-press-meta span {
  font-size: var(--font-size-2xs);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.editorial-press-copy {
  min-width: 0;
  flex: 1;
}

.editorial-press-copy > p {
  max-width: 86ch;
}

.editorial-archive {
  padding-block-start: 0;
}

.editorial-archive-row {
  padding-block: var(--spacing-5);
  border-top: var(--border-width) solid var(--color-border);
}

.editorial-archive-row time {
  width: calc(var(--spacing-10) * 2.8);
  flex: none;
  font-size: var(--font-size-xs);
  line-height: 1.8;
  color: var(--color-text-secondary);
}

.editorial-archive-row a {
  flex: 1;
  font-family: var(--font-family-heading);
  font-size: var(--font-size-lg);
  line-height: 1.5;
}

.editorial-archive-row a .editorial-arrow {
  margin-inline-start: var(--spacing-3);
  width: var(--spacing-4);
  height: var(--spacing-4);
}

.editorial-archive-row a:hover,
.editorial-press-copy h3 a:hover,
.editorial-film-copy h3 a:hover {
  text-decoration: underline;
  text-decoration-thickness: var(--border-width);
  text-underline-offset: var(--spacing-1);
}

.editorial-contact-band {
  position: relative;
  min-height: calc(var(--spacing-10) * 9);
  width: 100%;
  overflow: hidden;
  isolation: isolate;
  color-scheme: dark;
  color: var(--color-text-primary);
  background: var(--color-background-surface);
}

.editorial-contact-band::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, var(--color-background-surface), color-mix(in srgb, var(--color-background-surface) 90%, transparent) 32%, color-mix(in srgb, var(--color-background-surface) 8%, transparent) 78%);
}

.editorial-contact-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% 48%;
}

.editorial-contact-copy {
  min-height: inherit;
  justify-content: center;
  padding-block: var(--spacing-10);
}

.editorial-contact-copy h2 {
  max-width: 18ch;
}

.editorial-contact-copy .editorial-text-link {
  font-size: var(--font-size-lg);
}

.editorial-page a:focus-visible,
.editorial-contact-band a:focus-visible,
.editorial-page video:focus-visible {
  outline: var(--spacing-0-5) solid var(--color-accent);
  outline-offset: var(--spacing-1);
}

.editorial-archive-intro {
  max-width: 78ch;
  font-family: var(--font-family-body);
  font-size: var(--font-size-sm);
  line-height: 1.8;
  color: var(--color-text-secondary);
}

.editorial-studio-notes {
  padding-block-start: 0;
}

.editorial-studio-note {
  padding-block: var(--spacing-8);
  scroll-margin-top: var(--spacing-10);
}

.editorial-studio-note--reverse {
  flex-direction: row-reverse;
}

.editorial-note-photo img {
  aspect-ratio: 1.18;
  object-position: center;
}

.editorial-note-copy > h3 {
  font-size: clamp(var(--font-size-3xl), 3.5vw, var(--font-size-5xl));
  line-height: 1.15;
}

.editorial-note-copy > p {
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  line-height: 1.85;
  color: var(--color-text-secondary);
}

.editorial-note-copy > .editorial-note-intro {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-xl);
  line-height: 1.6;
  color: var(--color-text-primary);
}

.editorial-source-archive,
.editorial-interview-archive {
  padding-block-start: 0;
}

.editorial-disclosure {
  width: 100%;
  border-block: var(--border-width) solid var(--color-border);
}

.editorial-disclosure > summary {
  padding-block: var(--spacing-6);
  font-family: var(--font-family-heading);
  font-size: var(--font-size-lg);
  line-height: 1.6;
  color: var(--color-text-secondary);
  cursor: pointer;
}

.editorial-disclosure > summary::marker {
  color: var(--color-accent);
}

.editorial-disclosure > summary:hover,
.editorial-disclosure[open] > summary {
  color: var(--color-text-primary);
}

.editorial-disclosure > summary:focus-visible {
  outline: var(--spacing-0-5) solid var(--color-accent);
  outline-offset: var(--spacing-1);
}

.editorial-disclosure-body {
  padding-block: var(--spacing-5) var(--spacing-10);
}

.editorial-disclosure:not([open]) > .editorial-disclosure-body {
  display: none;
}

.editorial-source-archive-section {
  width: 100%;
}

@media (max-width: 52rem) {
  .editorial-split {
    flex-direction: column;
    gap: var(--spacing-10);
  }

  .editorial-split > *,
  .editorial-split--lead > .editorial-section-lead {
    width: 100%;
    flex: none;
  }

  .editorial-section-lead {
    max-width: 56ch;
  }

  .editorial-milestones {
    gap: var(--spacing-6);
  }

  .editorial-milestones strong {
    font-size: var(--font-size-3xl);
  }

  .editorial-press-row {
    gap: var(--spacing-6);
  }

  .editorial-press-meta {
    width: calc(var(--spacing-10) * 3.2);
  }

  .editorial-process-row {
    gap: var(--spacing-5);
  }

  .editorial-step-photo {
    width: 25%;
  }

  .editorial-contact-band {
    min-height: calc(var(--spacing-10) * 8.5);
  }
}

@media (max-width: 36rem) {
  .editorial-intro {
    padding-block-start: calc(var(--spacing-10) * 1.8);
  }

  .editorial-intro-copy {
    font-size: var(--font-size-base);
  }

  .editorial-atelierscape img,
  .editorial-craft-hero img {
    aspect-ratio: 1.25;
  }

  .editorial-milestones {
    flex-direction: column;
    gap: var(--spacing-8);
  }

  .editorial-milestones p {
    max-width: none;
  }

  .editorial-press-row {
    flex-direction: column;
    gap: var(--spacing-4);
  }

  .editorial-press-meta {
    width: 100%;
  }

  .editorial-process-row {
    flex-wrap: wrap;
  }

  .editorial-step-number {
    width: var(--spacing-8);
  }

  .editorial-process-copy {
    flex-basis: calc(100% - var(--spacing-8) - var(--spacing-5));
  }

  .editorial-step-photo {
    width: calc(100% - var(--spacing-8) - var(--spacing-5));
    margin-inline-start: calc(var(--spacing-8) + var(--spacing-5));
  }

  .editorial-official-film {
    gap: var(--spacing-5);
  }

  .editorial-play-link {
    width: var(--spacing-11);
    height: var(--spacing-11);
  }

  .editorial-archive-row {
    flex-direction: column;
    gap: var(--spacing-2);
  }

  .editorial-archive-row time {
    width: auto;
  }

  .editorial-contact-band::after {
    background: linear-gradient(90deg, color-mix(in srgb, var(--color-background-surface) 90%, transparent), color-mix(in srgb, var(--color-background-surface) 45%, transparent));
  }
}

/* Art-led collaboration page. AppShell, navigation and the lightbox are shared with the site. */
.collaboration-page {
  --collaboration-gutter: clamp(var(--spacing-6), 5vw, calc(var(--spacing-10) * 1.8));
  --collaboration-width: calc(var(--spacing-10) * 36);
  --collaboration-rhythm: clamp(var(--spacing-12), 6.7vw, calc(var(--spacing-10) * 2.4));
  width: 100%;
  min-width: 0;
  color-scheme: light;
  color: var(--color-text-primary);
  background: var(--color-background-surface);
}

.collaboration-container {
  width: 100%;
  max-width: var(--collaboration-width);
  margin-inline: auto;
  padding-inline: var(--collaboration-gutter);
}

.collaboration-intro {
  padding-block: calc(var(--spacing-10) * 1.8) var(--spacing-10);
}

.collaboration-rule {
  display: block;
  flex: none;
  width: var(--spacing-10);
  height: var(--border-width);
  background: var(--color-accent);
}

.collaboration-eyebrow {
  margin-block-start: var(--spacing-2);
  font-family: var(--font-family-body);
  font-size: var(--font-size-xs);
  line-height: 1.5;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.collaboration-page h1,
.collaboration-page h2 {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-normal);
  letter-spacing: -.025em;
  text-wrap: balance;
}

.collaboration-page h1 {
  max-width: 22ch;
  font-size: clamp(var(--font-size-5xl), 6.7vw, calc(var(--font-size-5xl) * 2.1));
  line-height: 1.05;
}

.collaboration-credit {
  font-family: var(--font-family-heading);
  font-size: clamp(var(--font-size-xl), 2.6vw, var(--font-size-3xl));
  line-height: 1.3;
}

.collaboration-summary {
  max-width: 60ch;
  font-family: var(--font-family-body);
  font-size: var(--font-size-lg);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

.collaboration-link {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-4);
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
  min-height: var(--spacing-11);
  padding-block: var(--spacing-2);
  border-bottom: var(--border-width) solid var(--color-accent);
  color: inherit;
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  line-height: 1.5;
  text-decoration: none;
}

.collaboration-link svg {
  flex: none;
  width: var(--spacing-5);
  height: var(--spacing-5);
}

.collaboration-link:hover {
  border-bottom-color: currentColor;
}

.collaboration-artworks {
  gap: var(--spacing-12);
}

.collaboration-film {
  width: 100%;
  max-width: calc(var(--spacing-10) * 28.8);
  margin-inline: auto;
  margin-block-end: var(--spacing-4);
}

.collaboration-film video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: var(--color-on-light);
}

.collaboration-film figcaption,
.collaboration-photo figcaption {
  font-family: var(--font-family-body);
  font-size: var(--font-size-sm);
  line-height: 1.65;
  color: var(--color-text-secondary);
}

.collaboration-film figcaption,
.collaboration-triptych figcaption {
  text-align: center;
}

.collaboration-photo {
  min-width: 0;
  margin: 0;
}

.collaboration-photo-button {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-none);
  color: var(--color-text-primary);
  background: var(--color-background-surface);
  cursor: zoom-in;
}

.collaboration-photo-button img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--collaboration-photo-position, 50% 50%);
}

/* The full width is retained; this frame only trims empty wall above and below the triptych. */
.collaboration-triptych .collaboration-photo-button {
  aspect-ratio: 2.05;
}

.collaboration-triptych .collaboration-photo-button img {
  object-position: 50% 50%;
}

.collaboration-study-pair {
  width: 100%;
  max-width: calc(var(--spacing-10) * 28.8);
  margin-inline: auto;
}

.collaboration-study-pair > * {
  flex: 1;
  min-width: 0;
}

.collaboration-surface-study .collaboration-photo-button {
  aspect-ratio: 3 / 4;
}

.collaboration-photo-zoom {
  position: absolute;
  inset-inline-end: var(--spacing-4);
  inset-block-end: var(--spacing-4);
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  padding: var(--spacing-2) var(--spacing-3);
  color: var(--color-text-primary);
  background: color-mix(in srgb, var(--color-background-surface) 92%, transparent);
  font-family: var(--font-family-body);
  font-size: var(--font-size-xs);
  line-height: 1.5;
}

.collaboration-photo-zoom svg {
  width: var(--spacing-4);
  height: var(--spacing-4);
}

.collaboration-photo-zoom > span {
  display: none;
}

.collaboration-objects {
  padding-block-start: var(--collaboration-rhythm);
}

.collaboration-section-heading h2,
.collaboration-conversation h2 {
  font-size: clamp(var(--font-size-3xl), 4.6vw, calc(var(--font-size-5xl) * 1.45));
  line-height: 1.12;
}

.collaboration-section-heading > p {
  max-width: 60ch;
  font-family: var(--font-family-heading);
  font-size: var(--font-size-xl);
  line-height: 1.6;
  color: var(--color-text-secondary);
}

.collaboration-object-group > * {
  flex: 1;
  min-width: 0;
}

.collaboration-object-photo .collaboration-photo-button {
  aspect-ratio: 3 / 4;
}

.collaboration-conversation {
  padding-block: var(--collaboration-rhythm);
}

.collaboration-contact-links .collaboration-link {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-xl);
}

.collaboration-page a:focus-visible,
.collaboration-page button:focus-visible,
.collaboration-page video:focus-visible {
  outline: var(--spacing-0-5) solid var(--color-accent);
  outline-offset: var(--spacing-1);
}

/* Keep the shared full-image viewer inside the viewport, including its padding. */
#dialog-image {
  max-width: min(85vw, calc(92vw - var(--spacing-6) * 2));
  margin-inline: auto;
}

@media (max-width: 47.5rem) {
  #image-dialog {
    max-width: 94vw;
    padding: var(--spacing-4);
  }

  #dialog-image {
    max-width: calc(94vw - var(--spacing-4) * 2);
    max-height: 58dvh;
  }

  #dialog-caption {
    font-size: var(--font-size-xs);
    line-height: 1.6;
  }

  .collaboration-intro {
    padding-block: var(--spacing-12) var(--spacing-8);
  }

  .collaboration-intro > h1 {
    max-width: 12ch;
    font-size: clamp(var(--font-size-4xl), 12vw, var(--font-size-5xl));
  }

  .collaboration-summary {
    font-size: var(--font-size-base);
  }

  .collaboration-artworks {
    gap: var(--spacing-8);
  }

  .collaboration-study-pair,
  .collaboration-object-group {
    flex-direction: column;
    gap: var(--spacing-8);
  }

  .collaboration-study-pair > *,
  .collaboration-object-group > * {
    width: 100%;
    flex: none;
  }

  .collaboration-photo-zoom {
    inset-inline-end: var(--spacing-3);
    inset-block-end: var(--spacing-3);
    padding: var(--spacing-2);
  }

  .collaboration-photo-zoom > span {
    display: none;
  }

  .collaboration-photo figcaption,
  .collaboration-film figcaption {
    font-size: var(--font-size-xs);
  }
}

/* Artist feature: 1440 × 720; 36% copy, 64% native film player.
   Preserve the complete 16:9 frame and the shared gallery-page soundtrack. */
.lux-collaboration{width:100%;min-height:calc(var(--spacing-10)*18);align-items:stretch;color:var(--color-text-primary);background:var(--color-background-surface)}
.lux-collaboration-copy{width:36%;flex:none;min-width:0;justify-content:center;padding:calc(var(--spacing-10)*2) var(--spacing-8) calc(var(--spacing-10)*2) var(--lux-gutter)}
.lux-collaboration .lux-collaboration-label{font-family:var(--font-family-body);font-size:var(--font-size-2xs);letter-spacing:.22em;text-transform:uppercase;line-height:1.6}
.lux-collaboration h2{font-size:clamp(var(--font-size-5xl),6.2vw,calc(var(--font-size-5xl)*2.4));line-height:1.02;letter-spacing:-.025em}
.lux-collaboration .lux-collaboration-credit{font-family:var(--font-family-body);font-size:var(--font-size-base);line-height:1.7;margin-top:var(--spacing-2)}
.lux-collaboration .lux-collaboration-summary{max-width:39ch;font-size:var(--font-size-lg);line-height:1.7;color:var(--color-text-secondary)}
.lux-collaboration .lux-link{font-size:var(--font-size-lg);gap:var(--spacing-4);margin-top:var(--spacing-2)}
.lux-collaboration-film{flex:1;min-width:0;margin:0;justify-content:center}
.lux-collaboration-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:var(--color-background-surface)}
.lux-collaboration-film video:focus-visible{outline:var(--spacing-0-5) solid var(--color-accent);outline-offset:calc(var(--spacing-1)*-1)}
@media(max-width:68.75rem){
  .lux-collaboration{min-height:calc(var(--spacing-10)*16)}
  .lux-collaboration-copy{width:42%;padding-inline-end:var(--spacing-8)}
  .lux-collaboration .lux-collaboration-credit{font-size:var(--font-size-base)}
  .lux-collaboration .lux-collaboration-summary{font-size:var(--font-size-lg)}
  .lux-collaboration .lux-link{font-size:var(--font-size-base)}
}
@media(max-width:47.5rem){
  .lux-collaboration{flex-direction:column;min-height:0}
  .lux-collaboration-copy{width:100%;padding:var(--spacing-12) var(--lux-gutter);gap:var(--spacing-6)}
  .lux-collaboration h2{font-size:var(--lux-display)}
  .lux-collaboration .lux-collaboration-credit{font-size:var(--font-size-base)}
  .lux-collaboration-film{width:100%;flex:none}
}

/* Material origins extends the existing white editorial split.
   Equal photograph/copy regions become one column at the editorial breakpoint. */
.material-origins {
  color: var(--color-text-primary);
  background: var(--color-background-surface);
  scroll-margin-block-start: calc(var(--spacing-10) * 2.5);
}

.material-origins-photograph img {
  aspect-ratio: 1;
  object-fit: cover;
  object-position: 73% 50%;
}

.material-origins-copy > p {
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  line-height: 1.85;
  color: var(--color-text-secondary);
}

.material-origins-unbroken {
  white-space: nowrap;
}

.material-origins-heading h2 {
  max-width: 16ch;
  font-family: var(--font-family-heading);
  font-size: clamp(var(--font-size-3xl), 4.1vw, calc(var(--font-size-5xl) * 1.22));
  font-weight: var(--font-weight-normal);
  line-height: 1.09;
  letter-spacing: -.025em;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  text-wrap: balance;
}

@media (max-width: 52rem) {
  .material-origins {
    flex-direction: column;
    gap: var(--spacing-10);
  }

  .material-origins > * {
    width: 100%;
    flex: none;
  }

  .material-origins-photograph img {
    aspect-ratio: auto;
    height: auto;
  }
}

/* Programme overview: open editorial sections; shared AppShell and theme tokens. */
.artist-programme-page{--programme-gutter:clamp(var(--spacing-6),5vw,calc(var(--spacing-10)*1.8));--programme-width:calc(var(--spacing-10)*36);--programme-rhythm:clamp(var(--spacing-12),7vw,calc(var(--spacing-10)*2.5));width:100%;min-width:0;color:var(--color-text-primary);background:var(--color-background-surface)}
.programme-container{width:100%;max-width:var(--programme-width);margin-inline:auto;padding-inline:var(--programme-gutter)}
.programme-intro{padding-block:calc(var(--spacing-10)*1.8) var(--spacing-12)}
.programme-rule{display:block;flex:none;width:var(--spacing-10);height:var(--border-width);background:var(--color-accent)}
.programme-eyebrow{font-family:var(--font-family-body);font-size:var(--font-size-xs);line-height:1.6;letter-spacing:.19em;text-transform:uppercase}
.artist-programme-page h1,.artist-programme-page h2,.artist-programme-page h3,.programme-entry h2{font-family:var(--font-family-heading);font-weight:var(--font-weight-normal);letter-spacing:-.025em}
.artist-programme-page h1{font-size:clamp(var(--font-size-5xl),6.7vw,calc(var(--font-size-5xl)*2.1));line-height:1.02;margin-block:var(--spacing-2) var(--spacing-4)}
.programme-lead{max-width:64ch;font-size:var(--font-size-xl);line-height:1.7}
.programme-description{max-width:69ch;color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:1.75}
.programme-artwork{display:block;width:100%;overflow:hidden}
.programme-artwork img{display:block;width:100%;height:auto;aspect-ratio:2.05;object-fit:cover;object-position:50% 50%}
.programme-artwork:focus-visible{outline:var(--spacing-0-5) solid var(--color-accent);outline-offset:var(--spacing-1)}
.programme-feature-caption{padding-block:var(--spacing-10) var(--programme-rhythm)}
.programme-feature h2{font-size:clamp(var(--font-size-3xl),3.7vw,var(--font-size-5xl));line-height:1.15}
.programme-link{display:inline-flex;align-items:center;align-self:flex-start;gap:var(--spacing-4);width:fit-content;max-width:100%;min-height:var(--spacing-11);padding-block:var(--spacing-2);border-bottom:var(--border-width) solid var(--color-accent);color:inherit;font-family:var(--font-family-body);font-size:var(--font-size-base);line-height:1.5;text-decoration:none}
.programme-link svg{flex:none;width:var(--spacing-5);height:var(--spacing-5)}
.programme-link:hover{border-color:currentColor}
.programme-link:focus-visible{outline:var(--spacing-0-5) solid var(--color-accent);outline-offset:var(--spacing-1)}
.programme-principles{width:100%}
.programme-principle{flex:1;min-width:0}
.programme-principle h2{font-size:clamp(var(--font-size-2xl),2.65vw,var(--font-size-4xl));line-height:1.2}
.programme-principle p,.programme-step p,.programme-invitation>p{color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:1.75}
.programme-process{padding-top:var(--programme-rhythm)}
.programme-process h2,.programme-invitation h2{font-size:clamp(var(--font-size-4xl),4.5vw,calc(var(--font-size-5xl)*1.5));line-height:1.1}
.programme-steps{list-style:none;width:100%;padding:0;margin:0}
.programme-step{width:100%;padding-block:var(--spacing-8);border-top:var(--border-width) solid var(--color-border)}
.programme-step-number{padding-top:var(--spacing-2);font-size:var(--font-size-xs);color:var(--color-text-secondary);letter-spacing:.08em}
.programme-step h3{flex:1;min-width:0;font-size:clamp(var(--font-size-2xl),3.2vw,var(--font-size-4xl));line-height:1.2}
.programme-step p{flex:1;min-width:0}
.programme-invitation{padding-block:var(--programme-rhythm);}
.programme-invitation>p{max-width:65ch}
.programme-entry{width:100%;padding-block:var(--spacing-10);margin-bottom:var(--spacing-12);border-block:var(--border-width) solid var(--color-border)}
.programme-entry>.astryx-stack{flex:1;min-width:0}
.programme-entry h2{font-size:clamp(var(--font-size-3xl),3.2vw,var(--font-size-5xl));line-height:1.1}
.programme-entry p:not(.programme-eyebrow){max-width:64ch;color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:1.7}
.programme-entry>.programme-link{flex:none;align-self:center}
@media(max-width:47.5rem){
  .programme-intro{padding-block:var(--spacing-12);gap:var(--spacing-5)}
  .artist-programme-page h1{font-size:clamp(var(--font-size-4xl),10.5vw,calc(var(--font-size-5xl)*1.4));line-height:1.08}
  .programme-eyebrow{font-size:var(--font-size-2xs);letter-spacing:.14em}
  .programme-lead{font-size:var(--font-size-lg)}
  .programme-description,.programme-principle p,.programme-step p,.programme-invitation>p{font-size:var(--font-size-base)}
  .programme-feature-caption{padding-block-start:var(--spacing-8)}
  .programme-principles{flex-direction:column;gap:var(--spacing-10)}
  .programme-principle{width:100%;flex:none}
  .programme-principle h2{font-size:var(--font-size-3xl)}
  .programme-process h2,.programme-invitation h2{font-size:clamp(var(--font-size-3xl),9vw,var(--font-size-5xl))}
  .programme-step{flex-wrap:wrap;column-gap:var(--spacing-4);row-gap:var(--spacing-4);padding-block:var(--spacing-6)}
  .programme-step h3{font-size:var(--font-size-2xl)}
  .programme-step p{flex-basis:100%}
  .programme-entry{flex-direction:column;align-items:flex-start;gap:var(--spacing-6);padding-block:var(--spacing-8)}
  .programme-entry>.programme-link{align-self:flex-start}
}

/* Selected B specimen: EB Garamond / Manrope / Overpass Mono.
   The existing AppShell, 100px desktop header and editorial frames are retained.
   H1 64/67.2, H2 40/46, body 17/28.9, nav 13/20.02 at a 16px root.
   At <=760px: H1 44/46.2, H2 32/36.8. Body stays readable at 17px.
   Load last so all page types share the selected typography rather than the
   earlier Caslon-specific sizes. Font files and licenses are local. */
@font-face {
  font-family: "EB Garamond";
  src: url("/assets/fonts/eb-garamond-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

@font-face {
  font-family: "Manrope";
  src: url("/assets/fonts/manrope-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: "Overpass Mono";
  src: url("/assets/fonts/overpass-mono-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}

html[data-astryx-theme="db-shells"] :is(h1, h2, h3) {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-editorial);
  letter-spacing: var(--tracking-heading);
  text-transform: none;
}

html[data-astryx-theme="db-shells"] h1 {
  font-size: var(--font-size-display);
  line-height: var(--line-height-display);
}

html[data-astryx-theme="db-shells"] h2 {
  font-size: var(--font-size-section);
  line-height: var(--line-height-section);
}

html[data-astryx-theme="db-shells"] h3 {
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-subheading);
}

html[data-astryx-theme="db-shells"][data-theme] :is(p, .intro-copy) {
  font-family: var(--font-family-body);
  font-size: var(--font-size-reading);
  line-height: var(--line-height-reading);
}

html[data-astryx-theme="db-shells"] .rich-text {
  font-family: var(--font-family-body);
  font-size: var(--font-size-reading);
  line-height: var(--line-height-reading);
}

/* A product descriptor stays subordinate to its title within the split frame. */
html[data-astryx-theme="db-shells"] .product-info h2 {
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-subheading);
}

html[data-astryx-theme="db-shells"] :is(.lux-link, .programme-link, .collaboration-link, .text-link, .editorial-text-link, .button, .editorial-archive-row a, .editorial-disclosure > summary, .collaboration-contact-links .collaboration-link, .contact-social .social-link-name) {
  font-family: var(--font-family-body);
  font-size: var(--font-size-reading);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-label);
}

html[data-astryx-theme="db-shells"] .luxury-brand-name {
  font-family: var(--font-family-body);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-brand);
}

html[data-astryx-theme="db-shells"] .luxury-brand-line {
  font-family: var(--font-family-body);
}

html[data-astryx-theme="db-shells"] :is(.luxury-desktop-nav, .luxury-footer-nav) {
  font-family: var(--font-family-body);
  font-size: var(--font-size-navigation);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-navigation);
  letter-spacing: normal;
  text-transform: none;
}

html[data-astryx-theme="db-shells"] .luxury-mobile-nav a {
  font-family: var(--font-family-body);
  font-weight: var(--font-weight-normal);
  letter-spacing: normal;
  text-transform: none;
}

html[data-astryx-theme="db-shells"] .luxury-menu-label {
  font-family: var(--font-family-body);
}

html[data-astryx-theme="db-shells"][data-theme] :is(.eyebrow, .editorial-eyebrow, .programme-eyebrow, .collaboration-eyebrow, .lux-collaboration-label) {
  font-family: var(--font-family-label);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

@media (max-width: 47.5rem) {
  html[data-astryx-theme="db-shells"] h1 {
    font-size: var(--font-size-display-mobile);
  }

  html[data-astryx-theme="db-shells"] h2 {
    font-size: var(--font-size-section-mobile);
  }
}

/* Chinese edition of the selected B composition. Original page frames remain.
   Local CJK faces complement the Latin EB Garamond / Manrope letterforms. */
@font-face{font-family:"Noto Serif SC";src:url("/assets/fonts/noto-serif-sc-variable.woff2") format("woff2");font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:"Noto Sans SC";src:url("/assets/fonts/noto-sans-sc-variable.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
html[lang="zh-CN"] :is(h1,h2,h3){word-break:normal;overflow-wrap:break-word;line-break:strict}
html[lang="zh-CN"] .luxury-brand-name{font-family:var(--font-family-heading);font-weight:var(--font-weight-editorial)}
html[lang="zh-CN"] .luxury-brand-line{letter-spacing:var(--tracking-label)}
.contact-wechat-qr{display:block;width:min(100%,calc(var(--spacing-10)*6));height:auto;aspect-ratio:1;object-fit:contain;background:var(--color-background-surface)}
#wechat{scroll-margin-top:var(--spacing-8)}
@media(max-width:26rem){html[lang="zh-CN"] .luxury-brand-name{font-size:var(--font-size-2xl)}}

/* Latest user direction: one slim row, brand left, six links right, no menu.
   Desktop 56px plus hairline; mobile 52px plus hairline.
   Only the navigation scrolls on small screens; the page never scrolls sideways. */
html[data-astryx-theme] .luxury-header {
  --slim-row-height: var(--header-row-height);
  --luxury-chrome-gutter: clamp(var(--spacing-4), 5vw, calc(var(--spacing-10) * 2));
}
html[data-astryx-theme] .luxury-header .luxury-header-inner {
  min-height: var(--slim-row-height);
  padding-block: 0;
  gap: var(--spacing-8);
  max-width: none;
  flex-wrap: nowrap;
}
html[data-astryx-theme] .luxury-header .luxury-brand {
  flex: none;
  align-items: flex-start;
  width: fit-content;
  min-width: 0;
}
html[data-astryx-theme] .luxury-header .luxury-brand-name {
  font-family: var(--font-family-body);
  font-size: var(--header-brand-size);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--header-tracking-brand);
  line-height: var(--line-height-subheading);
}
html[lang="zh-CN"][data-astryx-theme] .luxury-header .luxury-brand-name {
  font-family: var(--font-family-heading);
  font-size: var(--header-brand-size-zh);
  font-weight: var(--font-weight-editorial);
}
html[data-astryx-theme] .luxury-header .luxury-brand-line { display: none; }
html[data-astryx-theme] .luxury-header .luxury-desktop-nav {
  display: flex;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  min-height: var(--slim-row-height);
  margin-inline-start: auto;
  padding: 0;
  gap: var(--header-navigation-gap);
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  font-family: var(--font-family-body);
  font-size: var(--header-navigation-size);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-navigation);
  letter-spacing: var(--header-tracking-navigation);
}
html[data-astryx-theme] .luxury-header .luxury-desktop-nav::-webkit-scrollbar { display: none; }
html[lang="zh-CN"][data-astryx-theme] .luxury-header .luxury-desktop-nav { letter-spacing: var(--header-tracking-navigation-zh); }
html[data-astryx-theme] .luxury-header .luxury-desktop-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: none;
  min-height: var(--slim-row-height);
  padding: 0;
  white-space: nowrap;
  text-decoration: none;
}
html[data-astryx-theme] .luxury-header .luxury-desktop-nav a::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: var(--spacing-2);
  height: var(--border-width);
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--duration-normal);
}
html[data-astryx-theme] .luxury-header .luxury-desktop-nav a:is(:hover, :focus-visible, [aria-current="page"])::after { transform: scaleX(1); }
html[data-astryx-theme] .luxury-header .luxury-desktop-nav a:focus-visible { outline-offset: calc(var(--spacing-0-5) * -1); }
@media (max-width: 47.5rem) {
  html[data-astryx-theme] .luxury-header { --slim-row-height: var(--header-row-height-mobile); }
  html[data-astryx-theme] .luxury-header .luxury-header-inner { gap: var(--spacing-4); }
  html[data-astryx-theme] .luxury-header .luxury-brand-name { font-size: var(--header-brand-mobile-size); }
  html[lang="zh-CN"][data-astryx-theme] .luxury-header .luxury-brand-name { font-size: var(--header-brand-mobile-size-zh); }
  html[data-astryx-theme] .luxury-header .luxury-desktop-nav { gap: var(--header-navigation-gap-mobile); }
}
@media (prefers-reduced-motion: reduce) {
  html[data-astryx-theme] .luxury-header .luxury-desktop-nav a::after { transition: none; }
}
