/* Storefront additions. Original palette, typography and landing-page styles remain in styles.css. */
:focus-visible { outline: 3px solid var(--terracotta); outline-offset: 5px; }
[hidden] { display: none !important; }
.store-page .site-header { background: var(--paper); border-bottom: 1px solid var(--line); }
.preview-notice { position: relative; z-index: 30; margin-top: 88px; padding: 9px 20px; text-align: center; background: var(--navy); color: var(--paper-light); font-size: .78rem; }
.preview-notice a { margin-left: 1rem; text-underline-offset: 3px; }
.is-preview .site-header { background: var(--paper); }
.store-shell { width: min(1280px, calc(100% - 64px)); margin: 140px auto 90px; }
.is-preview .store-shell { margin-top: 48px; }
.is-preview .hero { min-height: 800px; padding-top: 6rem; }
.page-heading { max-width: 850px; margin: 20px 0 44px; }
.page-heading h1 { font-size: clamp(2.6rem, 5.6vw, 5rem); line-height: 1.08; font-weight: 400; letter-spacing: -.035em; margin-bottom: 24px; }
.page-heading h1 em,.related em { color: var(--terracotta); font-weight: 400; }
.page-heading .lead { font-size: 1.05rem; max-width: 650px; }
.store-shell h2 { font-family: var(--serif); font-size: 1.75rem; line-height: 1.25; font-weight: 400; }
.store-shell h3 { font-family: var(--serif); font-size: 1.25rem; }
button,input,select,textarea { font: inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
.store-shell .button { border: 1px solid var(--olive); text-decoration: none; min-height: 44px; font-size: .86rem; text-transform: none; letter-spacing: .02em; padding: .75rem 1.25rem; }
.store-shell .button:not(.button-primary) { background: transparent; color: var(--ink); }
.store-shell label { display: grid; gap: 5px; font-size: .83rem; font-weight: 600; }
.store-shell input:not([type=radio]):not([type=checkbox]),.store-shell select,.store-shell textarea { width: 100%; min-width: 0; min-height: 46px; border: 1px solid #8f917c; border-radius: 3px; padding: 10px 12px; background: var(--paper-light); color: var(--ink); font-weight: 400; }
.store-shell textarea { min-height: 115px; resize: vertical; }
.store-shell form { display: grid; gap: 18px; }
.catalogue-controls { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 26px; border-block: 1px solid var(--line); background: var(--toolbar-surface); align-items: end; }
.catalogue-controls .search-field { grid-column: span 2; }
.catalogue-controls > a { align-self: center; font-size: .9rem; }
.results-bar { display:flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0 12px; font-size: .85rem; }
.filter-chips { display:flex; gap: 6px; flex-wrap: wrap; }
.chip { border-radius: 20px; border: 1px solid var(--line); padding: 3px 12px; overflow-wrap:anywhere; }
.art-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 38px 28px; align-items: start; }
.art-card { min-width: 0; }
.art-card > a { text-decoration: none; display: block; }
.card-image { background: var(--media-surface); }
.card-image img { display: block; width: 100%; height: auto; object-fit: contain; }
.art-card h2 { font-size: 1.4rem; margin: 0 0 10px; }
.card-kicker { font-size: .72rem; letter-spacing: .05em; color: var(--olive); margin: 17px 0 5px; }
.card-price { font-size: .82rem; margin: 0; }
.example-label { display: block; color: #695b43; font-size: .73rem; }
.art-card a:hover h2 { text-decoration: underline; text-underline-offset: 4px; }
.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 50px 0; }
.pagination a { min-width: 44px; min-height: 44px; padding: 9px 15px; text-align: center; text-decoration: none; border: 1px solid var(--line); border-radius: 50px; }
.pagination [aria-current=page] { color: var(--paper-light); background: var(--olive); }
.empty-state { padding: 70px 20px; text-align: center; border: 1px solid var(--line); }
.collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.collection-card { text-decoration:none; padding:20px; border:1px solid var(--line); background:var(--paper-light); }
.collection-card img { width:100%; height:280px; object-fit:contain; }
.collection-card h2 { margin:20px 0 10px; }
.breadcrumbs { font-size:.78rem; margin-bottom:30px; overflow-wrap:anywhere; }
.product-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(30px,5vw,80px); align-items:start; }
.product-copy h1 { font-family:var(--serif); font-weight:400; line-height:1.1; font-size:clamp(2.3rem,4vw,3.5rem); margin:0 0 25px; }
.art-stage { width:100%; aspect-ratio:1; display:grid; place-items:center; background:var(--media-surface); padding:18px; }
.art-stage img { display:block; width:100%; height:100%; max-height:100%; min-height:0; object-fit:contain; }
.media-caption,.muted { font-size:.82rem; color:#5d644f; }
.media-caption { text-align:center; margin-top:10px; }
.thumbnail { width:76px; height:76px; padding:5px; border:1px solid var(--olive); background:var(--paper-light); }
.thumbnail img { width:100%; height:100%; object-fit:contain; }
.fixture-label,.draft-notice { border-left:3px solid var(--terracotta); padding:10px 15px; background:#b6532c0b; font-size:.87rem; }
fieldset { min-width:0; border:0; margin:0; padding:0; }
legend { font-size:.85rem; margin-bottom:10px; font-weight:600; }
.format-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.format-tabs label { cursor:pointer; position:relative; }
.format-tabs input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.format-tabs span { display:flex; text-align:center; justify-content:center; align-items:center; padding:12px 8px; min-height:58px; border:1px solid #91947d; font-size:.76rem; border-radius:3px; }
.format-tabs input:checked + span { background:var(--olive); border-color:var(--olive); color:white; }
.format-tabs input:focus-visible + span { outline:3px solid var(--terracotta); outline-offset:3px; }
.format-tabs input:disabled + span { opacity:.5; text-decoration:line-through; }
#physical-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.product-price { font-family:var(--serif); font-size:2rem; line-height:1.2; margin:8px 0; }
.purchase-summary p { margin-bottom:5px; }
details { padding:16px 0; border-bottom:1px solid var(--line); }
summary { cursor:pointer; font-weight:600; min-height:30px; }
details p { margin-top:16px; }
.related { margin-top:70px; }
.related > h2 { font-size:2.5rem; margin-bottom:30px; }
.panel { padding:30px; background:var(--paper-light); border:1px solid var(--line); border-radius:4px; }
.cart-line { display:grid; grid-template-columns:96px minmax(0,1fr) 90px 110px; gap:24px; align-items:center; border-bottom:1px solid var(--line); padding:22px 0; }
.cart-line img { width:96px; height:100px; object-fit:contain; }
.cart-line h2 { margin:0 0 8px; font-size:1.3rem; }
.cart-line p { margin:0 0 6px; font-size:.85rem; }
.cart-line .remove { border:0; background:transparent; text-decoration:underline; padding:10px 0; font-size:.8rem; }
.cart-totals { max-width:440px; margin:30px 0 30px auto; }
.totals-row { display:flex; justify-content:space-between; gap:20px; margin-bottom:12px; }
.totals-row.total { padding-top:16px; border-top:1px solid var(--line); font-size:1.25rem; }
.checkout-layout { display:grid; grid-template-columns:1fr 1fr; gap:45px; align-items:start; }
.prose { max-width:850px; font-size:1.05rem; }
.prose h2 { margin-top:35px; }
.guide-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; margin-bottom:35px; }
.footer-links { display:flex; flex-wrap:wrap; gap:10px 20px; font-size:.72rem; justify-content:center; }
.toast { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); z-index:100; max-width:calc(100% - 30px); width:max-content; background:var(--navy); color:white; border-radius:4px; padding:15px 25px; box-shadow:var(--shadow); }
.error { color:#8b281e; font-weight:600; }
.image-failed { min-height:150px; border:1px solid var(--terracotta); }
.owner-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:15px; margin:30px 0; }
.owner-layout { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr); gap:30px; align-items:start; }
#owner-list { max-height:850px; overflow:auto; margin-top:20px; }
.owner-item { width:100%; background:transparent; border:0; border-bottom:1px solid var(--line); text-align:left; padding:14px 8px; display:block; }
.owner-item:hover,.owner-item:focus { background:#555b3710; }
.owner-item small { display:block; color:var(--olive); }
.owner-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.owner-variant { display:grid; grid-template-columns:minmax(0,1fr) 110px 70px; gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.owner-variant small { display:block; }
.owner-preview-image { width:140px; height:140px; object-fit:contain; }
.owner-operations { margin-top:55px; }
.operation { padding:16px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
@media(max-width:1050px) { .site-nav {gap:15px;} .site-nav a {font-size:.68rem;} .catalogue-controls {grid-template-columns:repeat(3,minmax(0,1fr));} .art-grid {grid-template-columns:repeat(2,minmax(0,1fr));} .collection-grid {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:780px) { .preview-notice {margin-top:74px;font-size:.69rem;} .preview-notice a {display:inline-block;} .store-shell {width:calc(100% - 36px);margin-top:105px;} .is-preview .store-shell {margin-top:25px;} .catalogue-controls {grid-template-columns:repeat(2,minmax(0,1fr));padding:18px 0;gap:14px;} .product-layout,.checkout-layout,.owner-layout {grid-template-columns:1fr;} .product-copy {margin-top:10px;} .guide-grid {grid-template-columns:1fr;gap:10px;} .panel {padding:22px;} .results-bar {display:block;} .filter-chips {margin-bottom:15px;} .site-nav a {font-size:1rem;} .site-nav {visibility:hidden;} .site-nav.open {visibility:visible;} .cart-line {grid-template-columns:65px minmax(0,1fr) 75px;gap:14px;} .cart-line img {width:65px;height:85px;} .cart-line .line-total {grid-column:2 / -1;} .collection-grid {grid-template-columns:1fr;} .art-grid {gap:30px 18px;} .owner-form-grid {grid-template-columns:1fr;} .owner-variant {grid-template-columns:1fr;} }
@media(max-width:480px) { .art-grid {grid-template-columns:1fr;} .brand-copy strong {font-size:1.02rem;} .brand-mark {width:36px;} .brand-mark::after {inset:14px;} .page-heading {margin-bottom:30px;} .catalogue-controls .search-field {grid-column:1 / -1;} .format-tabs span {font-size:.7rem;} .cart-line {grid-template-columns:60px minmax(0,1fr);} .cart-line > label {grid-column:2;} .cart-line .line-total {grid-column:2;} .site-header {padding-inline:16px;} }
@media(prefers-reduced-motion:reduce) { * {scroll-behavior:auto!important;} }
/* Remove closed menu from layout and focus order, including rapid close/reopen. */
@media (max-width:780px) {
  .js-ready .site-nav { display:none; }
  .js-ready .site-nav.open { display:grid; }
}
/* A botanical pen-stroke arrow echoes the gallery's circular and leaf motifs. */
.pagination { align-items:center; gap:18px; }
.pagination-numbers { display:flex; align-items:center; justify-content:center; gap:8px; }
.pagination .pagination-direction { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:8px 16px; border:1px solid var(--line); border-radius:36px 12px 36px 12px; font-size:.85rem; color:var(--olive); }
.pagination-direction[aria-disabled=true] { opacity:.42; }
.pagination a.pagination-direction:hover { color:var(--terracotta); background:var(--paper-light); border-color:var(--terracotta); }
.pagination-arrow { width:58px; height:28px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.pagination-arrow .arrow-leaf { fill:var(--gold); stroke:var(--gold); }
.pagination-arrow circle { fill:var(--terracotta); stroke:none; }
.pagination-previous .pagination-arrow { transform:scaleX(-1); }
.pagination-gap { padding:4px; color:var(--olive); }
@media(max-width:600px) {
 .pagination { gap:12px; }
 .pagination-numbers { order:3; flex-basis:100%; gap:5px; }
 .pagination .pagination-direction { padding:8px 12px; gap:4px; }
 .pagination-arrow { width:42px; }
}
.pagination[aria-label$="top"] { margin:12px 0 28px; }
.pagination[aria-label$="bottom"] { margin:32px 0 20px; }
.artwork-browsing { border-block:1px solid var(--line); margin:22px 0 32px; padding:12px 0; }
.artwork-browsing .pagination { margin:8px 0; }
.browsing-position { text-align:center; color:var(--olive); font-size:.8rem; margin:0; }
.thumbnail-sizing { margin-left:auto; flex-shrink:0; }
.thumbnail-sizing legend { font-size:.75rem; margin-bottom:5px; }
.thumbnail-sizing > div { display:flex; border:1px solid #91947d; border-radius:30px; overflow:hidden; }
.thumbnail-sizing label { position:relative; cursor:pointer; }
.thumbnail-sizing input { position:absolute; width:100%; height:100%; opacity:0; margin:0; cursor:pointer; }
.thumbnail-sizing span { display:block; padding:8px 13px; min-height:40px; font-size:.75rem; }
.thumbnail-sizing input:checked + span { color:var(--paper-light); background:var(--olive); }
.thumbnail-sizing input:focus-visible + span { outline:3px solid var(--terracotta); outline-offset:-3px; }
.gallery-grid[data-thumbnail-size=small] { grid-template-columns:repeat(4,minmax(0,1fr)); }
.gallery-grid[data-thumbnail-size=large] { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:1050px) {
 .results-bar {flex-wrap:wrap;}
 .gallery-grid[data-thumbnail-size=small] {grid-template-columns:repeat(3,minmax(0,1fr));}
 .gallery-grid[data-thumbnail-size=large] {grid-template-columns:1fr;}
}
@media(max-width:780px) { .thumbnail-sizing {margin:14px 0;} }
@media(max-width:600px) { .gallery-grid[data-thumbnail-size=small] {grid-template-columns:repeat(2,minmax(0,1fr));} }

.room-preview {margin:48px 0;padding:28px;}
.room-preview canvas {display:block;width:100%;height:auto;border-radius:5px;background:#e3d4bc;}
/* Manual room carousel: no auto-advance or motion; keep touch scrolling/zoom. */
.room-carousel canvas {touch-action:pan-y pinch-zoom;cursor:grab;}
.room-carousel canvas:active {cursor:grabbing;}
.room-carousel-nav {display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:16px;}
.room-carousel-nav[hidden] {display:none;}
.room-scene-caption {margin:0;text-align:center;font-size:.9rem;color:var(--ink);}
.room-scene-step {display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 16px;border:0;color:var(--ink);background:var(--nav-direction-pill-default) center/100% 100% no-repeat;cursor:pointer;}
.room-scene-step:hover {background-image:var(--nav-direction-pill-hover);}
.room-scene-arrow {width:40px;height:24px;background:var(--nav-arrow-next) center/contain no-repeat;}
[data-room-previous] .room-scene-arrow {background-image:var(--nav-arrow-previous);}
.room-scene-dots {grid-column:1/-1;display:flex;justify-content:center;flex-wrap:wrap;gap:6px;}
.room-scene-dots button {width:44px;height:44px;padding:0;border:0;background:var(--nav-page-ring-default) center/contain no-repeat;color:var(--ink);cursor:pointer;}
.room-scene-dots button:hover {background-image:var(--nav-page-ring-hover);}
.room-scene-dots button[aria-current=true] {background-image:var(--nav-page-ring-current);color:var(--on-olive);font-weight:700;text-decoration:underline;}
@media(max-width:600px){.room-carousel-nav{grid-template-columns:1fr 1fr;}.room-scene-caption{grid-column:1/-1;grid-row:1;}.room-scene-step{padding:8px;}.room-scene-arrow{width:32px;}}
.room-controls {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0;}
.room-controls label {min-width:0;align-content:start;}
.room-preview > .room-controls > label:first-child {grid-column:1/-1;}
.room-controls input[type=range] {width:100%;padding:0;}
.room-controls output {display:block;margin-top:.5rem;font-weight:700;font-variant-numeric:tabular-nums;}
.room-size-help {display:block;margin-top:.35rem;font-size:.85rem;font-weight:400;line-height:1.5;}
.room-preview details {margin:20px 0;}
.room-preview .owner-toolbar {flex-wrap:wrap;}
@media(max-width:600px){.room-preview{padding:16px;}.room-controls{grid-template-columns:1fr;}}

/* Quiet gallery hierarchy. Native details keeps filters available without scripting. */
.gallery-shell .page-heading { margin:0 0 14px; }
.gallery-shell .page-heading h1 { font-size:clamp(2rem,3.4vw,2.8rem); margin:0 0 8px; line-height:1.12; }
.gallery-shell .page-heading .section-kicker { margin-bottom:8px; }
.gallery-shell .page-heading .lead { margin:0; font-size:.94rem; }
.is-preview .gallery-shell { margin-top:20px; }
.store-shell .catalogue-controls { grid-template-columns:minmax(0,1fr) auto 145px; gap:12px 18px; padding:10px 0; }
.catalogue-controls .search-field { grid-column:1; }
.catalogue-controls .search-submit { grid-column:2; grid-row:1; }
.catalogue-controls .page-size-field { grid-column:3; grid-row:1; }
.catalogue-controls .advanced-filters { grid-column:1 / -1; padding:0; border:0; }
.advanced-filters summary { min-height:44px; padding:10px 0; font-size:.85rem; }
.advanced-filter-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 18px; padding:10px 0; }
.advanced-filter-fields .filter-submit { align-self:end; }
.results-bar { padding:12px 0; gap:12px; flex-wrap:wrap; }
.results-bar > p { margin:0; }
.filter-chips:empty { display:none; }
.thumbnail-sizing legend { float:left; padding:10px 12px 0 0; margin:0; }
.clear-filters { font-size:.83rem; text-underline-offset:3px; }
.pagination[aria-label$="top"] { margin:6px 0 22px; }
.artwork-browsing { padding:8px 0; margin:12px 0 24px; }
.breadcrumbs { margin-bottom:14px; }
.product-story { margin-bottom:22px; max-width:60ch; }
.product-copy .section-kicker { margin-bottom:10px; }
.product-copy h1 { margin-bottom:18px; }
/* Existing editorial identity is restrained, with no replacement artwork. */
.home-page .hero { min-height:0; grid-template-columns:1fr; padding:64px max(24px,calc((100% - 1180px)/2)); gap:0; }
.home-page:not(.is-preview) .hero { padding-top:150px; }
.home-page .hero h1 { font-size:clamp(2.6rem,5vw,4.5rem); margin-bottom:20px; }
.home-page .hero-copy { max-width:760px; }
.home-page .hero-intro { max-width:620px; margin-bottom:22px; }
.home-page .opening-note { margin-top:22px; }
.home-page .hero .scroll-cue { display:none; }
/* Restore the original leaf sprig in the open editorial margin only. */
.home-page .hero { overflow:hidden; }
.home-page .hero .botanical { display:block; left:auto; right:5%; top:22%; z-index:0; opacity:.32; pointer-events:none; }
.home-page .hero-copy { position:relative; z-index:1; }
@media(max-width:1100px) { .home-page .hero .botanical { display:none; } }
.home-page .story { padding-top:40px; padding-bottom:40px; }
.home-page .story-grid { padding-bottom:24px; }
.home-page .formats,.home-page .journey,.home-page .opening { padding-block:60px; }
.home-page .section-heading { margin-bottom:32px; }
.home-page .interlude { min-height:0; }
.home-page .interlude-copy { padding:48px 24px; }
.home-page .interlude-copy strong { font-size:clamp(2rem,4vw,3.5rem); }
.home-page .artist-note { grid-template-columns:180px minmax(0,1fr); min-height:0; padding:48px max(24px,calc((100% - 1180px)/2)); gap:40px; }
.home-page .artist-emblem { width:180px; min-height:180px; height:180px; align-self:center; border-radius:50%; }
.home-page .artist-emblem::before { width:160px; border-width:10px; }
.home-page .artist-emblem::after { width:110px; border-width:7px; }
.home-page .emblem-dot { width:45px; box-shadow:0 0 0 10px var(--sand),0 0 0 12px var(--paper-light); }
.home-page .artist-copy { padding:0; max-width:760px; }
.home-page .artist-copy blockquote { font-size:clamp(1.5rem,2.5vw,2rem); }
.home-page .opening-card { padding:40px 24px; box-shadow:none; }
@media(max-width:780px) {
 .preview-notice { padding:6px 12px; font-size:.75rem; line-height:1.4; }
 .preview-notice a { margin-left:.5rem; }
 .is-preview .gallery-shell { margin-top:18px; }
 .gallery-shell .page-heading { margin-bottom:14px; }
 .gallery-shell .page-heading .section-kicker { display:none; }
 .gallery-shell .page-heading h1 { font-size:2rem; margin-bottom:6px; }
 .gallery-shell .page-heading .lead { font-size:.85rem; }
 .store-shell .catalogue-controls { grid-template-columns:minmax(0,1fr) 124px; gap:10px; padding:10px 0; }
 .catalogue-controls .search-field { grid-column:1; }
 .catalogue-controls .search-submit { grid-column:2; grid-row:1; padding-inline:10px; }
 .catalogue-controls .advanced-filters { grid-column:1; grid-row:2; align-self:end; }
 .catalogue-controls .page-size-field { grid-column:2; grid-row:2; }
 .advanced-filters[open] { grid-column:1 / -1; grid-row:3; }
 .advanced-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .results-bar { display:flex; gap:6px 12px; padding:12px 0 8px; }
 .filter-chips { flex-basis:100%; margin:0; }
 .thumbnail-sizing { margin:0; flex-basis:100%; }
 .thumbnail-sizing legend { float:left; padding:10px 12px 0 0; margin:0; }
 .thumbnail-sizing > div { width:max-content; }
 .thumbnail-sizing span { padding:8px 11px; }
 .pagination { gap:8px; }
 .pagination .pagination-direction { min-height:44px; }
 .pagination[aria-label$="top"] { margin:6px 0 16px; }
 .pagination-numbers { gap:6px; }
 .pagination a { padding:8px 12px; }
 .home-page .hero { padding:32px 24px; text-align:left; }
 .home-page:not(.is-preview) .hero { padding-top:110px; }
 .home-page .hero-copy { justify-self:start; }
 .home-page .eyebrow,.home-page .hero-actions { justify-content:flex-start; }
 .home-page .hero-actions { flex-direction:row; }
 .home-page .hero .eyebrow { font-size:.66rem; letter-spacing:.13em; }
 .home-page .hero .eyebrow span { width:22px; }
 .home-page .artist-note { grid-template-columns:1fr; padding:32px 24px; }
 .home-page .artist-emblem { display:none; }
 .home-page .story,.home-page .formats,.home-page .journey,.home-page .opening { padding-block:32px; }
 .home-page .section-heading h2,.home-page .story h2,.home-page .opening h2 { font-size:2.5rem; }
}
.home-page .story h2 { font-size:clamp(2.5rem,4vw,3.5rem); }
@media(min-width:1200px) {
 .advanced-filter-fields { grid-template-columns:repeat(8,minmax(0,1fr)); gap:12px; }
 .advanced-filter-fields select,.advanced-filter-fields input { padding-inline:8px; }
 .advanced-filter-fields .filter-submit { padding-inline:8px; }
}

/* Studio welcome: personal editorial content; viewing and purchase surfaces stay neutral. */
.home-page .welcome-signoff { margin-top:24px; }
.home-page .welcome-signoff .signature { width:220px; max-width:100%; }
.home-page .welcome-signoff p { margin:8px 0 0; font-size:.8rem; }
.home-page .opening-note { line-height:1.7; }
.home-page .welcome-status { font-weight:400; text-transform:none; letter-spacing:normal; }
.home-page .format-guide-link { margin:24px 0 0; }
.home-page #studio-note { scroll-margin-top:110px; }
.home-page #studio-note-title { font-family:var(--sans); font-size:.72rem; line-height:1.6; }
.purchase-help { font-size:.85rem; line-height:1.7; margin:20px 0; }
.purchase-help a,.cart-guidance a { text-underline-offset:3px; }
.cart-guidance { max-width:72ch; margin-block:24px; }
@media(max-width:780px) {
 .home-page .hero-actions { gap:18px; }
 .home-page .welcome-signoff { margin-top:20px; }
 .home-page .welcome-signoff .signature { width:180px; }
 .home-page .opening-note { font-size:.66rem; letter-spacing:.025em; }
}

/* Owner-requested scattered dot accents, confined to the open studio welcome margin. */
.studio-dots { display:none; position:absolute; width:130px; height:90px; pointer-events:none; z-index:0; }
.studio-dots i { position:absolute; display:block; width:5px; height:5px; border-radius:50%; }
.studio-dots i:nth-child(3n) { width:3px; height:3px; }
.studio-dots i:nth-child(5n) { width:7px; height:7px; }
.studio-dots-high { right:20%; top:11%; transform:rotate(-17deg); }
.studio-dots-low { right:9%; bottom:6%; transform:rotate(31deg) scale(.8); }
@media(min-width:1200px) { .home-page .hero .studio-dots { display:block; } }
.studio-dots i:nth-child(1) { left:5px; top:38px; }
.studio-dots i:nth-child(2) { left:13px; top:19px; }
.studio-dots i:nth-child(3) { left:31px; top:9px; }
.studio-dots i:nth-child(4) { left:54px; top:5px; }
.studio-dots i:nth-child(5) { left:78px; top:14px; }
.studio-dots i:nth-child(6) { left:95px; top:31px; }
.studio-dots i:nth-child(7) { left:103px; top:55px; }
.studio-dots i:nth-child(8) { left:88px; top:74px; }
.studio-dots i:nth-child(9) { left:63px; top:81px; }
.studio-dots i:nth-child(10) { left:40px; top:69px; }
.studio-dots i:nth-child(11) { left:28px; top:49px; }
.studio-dots i:nth-child(12) { left:38px; top:32px; }
.studio-dots i:nth-child(13) { left:58px; top:25px; }
.studio-dots i:nth-child(14) { left:73px; top:40px; }
.studio-dots i:nth-child(15) { left:67px; top:57px; }
.studio-dots i:nth-child(16) { left:120px; top:12px; }

/* Customer information pages retain the shared light/dark theme tokens. */
.policy-copy { max-width:76ch; line-height:1.85; overflow-wrap:anywhere; }
.policy-copy h2 { line-height:1.25; }
.policy-copy li + li { margin-top:12px; }
.policy-copy ul { padding-left:1.4em; }
.policy-links { display:flex; flex-wrap:wrap; gap:4px 20px; margin-bottom:28px; padding-block:12px; border-block:1px solid var(--line); font-size:.9rem; }
.policy-links a { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.policy-links a[aria-current=page] { font-weight:700; text-decoration-thickness:2px; }
.policy-byline { margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:.85rem; }
@media(max-width:600px) { .policy-copy { font-size:1rem; line-height:1.75; } .policy-links { gap:2px 16px; } }

/* Supplied artist portraits: curved display masks, with ornaments outside the photo. */
.artist-portrait { margin:0; width:100%; max-width:380px; position:relative; z-index:1; }
.portrait-frame { position:relative; padding:0; border:1px solid var(--line); border-radius:75px 25px 70px 25px; background:var(--paper-light); }
.portrait-window { aspect-ratio:3/4; border-radius:inherit; overflow:hidden; background:var(--paper-light); }
.portrait-window img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; filter:none; }
.portrait-dots { position:absolute; width:40px; height:64px; left:-38px; bottom:-10px; border:5px dotted var(--terracotta); border-radius:50%; transform:rotate(-24deg); opacity:.5; pointer-events:none; }
.portrait-curve { position:absolute; width:64px; height:105px; right:-9px; top:-13px; border-right:4px double var(--olive); border-radius:50%; transform:rotate(-27deg); opacity:.65; pointer-events:none; }
.artist-portrait figcaption { margin-top:22px; font-size:.88rem; line-height:1.7; text-align:center; }
.artist-portrait figcaption span { display:block; font-size:.72rem; color:var(--muted); }
.home-page .hero { grid-template-columns:minmax(0,1fr) minmax(260px,360px); gap:54px; align-items:center; }
.home-page .hero > .artist-portrait { justify-self:end; }
.home-page .story-title > .artist-portrait { max-width:250px; margin:32px auto 8px 0; }
.contact-with-portrait { display:grid; grid-template-columns:minmax(0,76ch) minmax(220px,320px); gap:70px; align-items:start; }
.contact-portrait { padding-top:12px; }
.contact-portrait > p { margin-top:22px; text-align:center; line-height:1.8; font-size:.88rem; }
.footer-artist { display:flex; gap:22px; align-items:center; }
.footer-artist-link { display:block; margin-top:10px; font-size:.76rem; text-underline-offset:4px; }
.artist-portrait-small { width:72px; flex:0 0 72px; }
.artist-portrait-small .portrait-frame { padding:0; border-radius:20px 8px 22px 8px; }
.artist-portrait-small .portrait-dots { width:22px; height:30px; border-width:3px; left:-6px; bottom:-6px; }
.artist-portrait-small .portrait-curve { display:none; }
@media(max-width:1100px) { .contact-with-portrait { gap:35px; grid-template-columns:minmax(0,1fr) 240px; } .home-page .hero { gap:30px; grid-template-columns:minmax(0,1fr) 280px; } }
@media(max-width:780px) {
 .home-page .hero { grid-template-columns:1fr; gap:32px; }
 .home-page .hero > .artist-portrait { max-width:280px; justify-self:center; }
 .home-page .story-title > .artist-portrait { max-width:220px; margin-inline:auto; }
 .contact-with-portrait { grid-template-columns:1fr; gap:36px; }
 .contact-portrait { max-width:280px; justify-self:center; }
 .footer-artist { text-align:left; }
}

/* Size guide: accessible editorial illustrations and exact numeric references. */
.size-guide-links { display:flex; flex-wrap:wrap; gap:8px 20px; margin:24px 0 36px; font-size:.85rem; }
.size-guide-links a { min-height:44px; display:flex; align-items:center; text-underline-offset:4px; }
.prose section[id] { scroll-margin-top:110px; }
.size-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.size-facts > div { background:var(--editorial-surface); border-radius:24px 8px; padding:24px 18px; }
.size-facts strong { font-family:var(--serif); font-size:2.5rem; line-height:1.15; display:block; }
.size-facts strong span { display:block; font-family:var(--sans); font-size:.8rem; margin-top:7px; }
.size-facts p { font-size:.8rem; line-height:1.65; margin-bottom:0; }
.resolution-explainer { padding:20px 24px; margin:26px 0; border:1px solid var(--line); border-radius:12px 36px; text-align:center; }
.resolution-explainer svg { width:100%; max-width:500px; height:auto; stroke:var(--terracotta); fill:none; stroke-width:1.5; }
.resolution-explainer svg text { stroke:none; fill:var(--ink); font:14px var(--sans); }
.resolution-explainer .diagram-detail { stroke:var(--olive); opacity:.4; }
.resolution-explainer p { font-size:.9rem; line-height:1.8; }
.print-calculator { padding:4px 28px 28px; margin-top:36px; background:var(--editorial-surface); border:1px solid var(--line); border-radius:24px; }
.size-calculator-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0; }
.size-result { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:24px; margin-top:26px; }
.size-result svg { width:100%; height:auto; }
.size-result rect { stroke:var(--terracotta); fill:var(--paper-light); stroke-width:2; }
.size-result path { fill:none; stroke:var(--muted); }
.size-result text { fill:var(--muted); font:11px var(--sans); }
.size-result strong { font-size:1.5rem; }
.size-result p { font-size:.9rem; line-height:1.7; }
.shape-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0; }
.shape-card { border:1px solid var(--line); border-radius:22px 8px; padding:16px; background:var(--paper-light); }
.shape-card svg { display:block; width:100%; height:auto; }
.shape-card rect { fill:var(--editorial-surface); stroke:var(--terracotta); stroke-width:2; }
.shape-card .shape-baseline { stroke:var(--line); }
.shape-card h3 { font-size:1rem; line-height:1.5; margin:16px 0 10px; }
.shape-card p { font-size:.82rem; line-height:1.7; margin:0; }
.size-guide-note { border-left:3px solid var(--terracotta); padding:8px 24px; margin-block:26px; background:var(--notice-surface); }
.size-guide-note h3 { font-size:1.2rem; }
.size-table-wrap { overflow-x:auto; }
.size-reference { width:100%; border-collapse:collapse; font-size:.9rem; }
.size-reference caption { text-align:left; font-size:.8rem; margin:0 0 14px; }
.size-reference th,.size-reference td { text-align:left; border-bottom:1px solid var(--line); padding:14px 10px; }
.size-reference thead { background:var(--editorial-surface); }
.wall-measure-steps { list-style:none; margin:28px 0; padding:0; }
.wall-measure-steps li { display:flex; align-items:flex-start; gap:22px; margin:24px 0; }
.wall-measure-steps li > span { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border:1px solid var(--terracotta); border-radius:50%; font-size:.8rem; color:var(--terracotta); }
.wall-measure-steps h3 { font-size:1.2rem; margin:0 0 10px; }
.wall-measure-steps p { margin:0; }
.print-checklist { padding-left:1.3em; }
.print-checklist li { margin-top:18px; }
.size-guide-questions summary { padding-block:8px; line-height:1.5; }
.wall-size-illustration { margin:28px 0; }
.wall-size-illustration img { display:block; width:100%; height:auto; border-radius:32px 8px; }
.wall-size-illustration figcaption { color:var(--muted); font-size:.8rem; margin-top:12px; line-height:1.65; }
@media(max-width:600px) {
 .size-facts { gap:8px; } .size-facts > div { padding:18px 10px; } .size-facts strong { font-size:1.6rem; }
 .size-facts strong span,.size-facts p { font-size:.7rem; }
 .shape-guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .print-calculator { padding-inline:18px; } .size-calculator-fields { grid-template-columns:1fr; }
 .size-result { grid-template-columns:1fr; gap:16px; } .size-result svg { max-width:170px; justify-self:center; }
 .size-reference { font-size:.8rem; } .size-reference th,.size-reference td { padding:12px 6px; }
}

/* Supplied format-category illustrations: theme variants preserve the original artwork colours. */
.format-illustration { width:100%; max-width:360px; aspect-ratio:4/3; margin:1.6rem auto 1.4rem; pointer-events:none; }
.format-illustration img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; filter:none; }
.format-illustration .format-illustration-dark { display:none; }
:root[data-theme=dark] .format-illustration-light { display:none; }
:root[data-theme=dark] .format-illustration-dark { display:block; }
.format-illustration-caption { max-width:760px; margin:1.5rem auto 0; color:var(--muted); font-size:.82rem; text-align:center; }

/* Artwork package media retains each image's complete composition. */
.artwork-media-thumbnails { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }
.artwork-media-thumbnails .thumbnail { margin:0; flex:0 0 72px; min-width:44px; min-height:44px; }
.artwork-media-thumbnails .thumbnail[aria-pressed=true] { outline:3px solid var(--olive); outline-offset:2px; }
.artwork-media-thumbnails img,.media-fallback { object-fit:contain; width:100%; height:auto; }
.artwork-video { margin:24px 0; }
.artwork-video video { display:block; width:100%; max-height:520px; background:var(--media-surface); }
.artwork-video figcaption { color:var(--muted); font-size:.85rem; margin-top:8px; }
.preserve-lines { white-space:pre-line; overflow-wrap:anywhere; }
.owner-media-entry { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }
.owner-media-entry img { object-fit:contain; }
@media(max-width:600px) { .owner-media-entry { grid-template-columns:1fr; } }

/* Saved-draft review controls share the existing theme tokens. */
.owner-release fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.5rem; margin-bottom: 1rem; }
.owner-release label { display: flex; align-items: flex-start; gap: .65rem; margin-block: .6rem; }
.owner-release input[type="checkbox"] { width: 1rem; height: 1rem; min-width: 1rem; margin-top: .2rem; padding: 0; }
.owner-release .button { margin: .35rem .35rem .35rem 0; }
#release-review, #release-result { overflow-wrap: anywhere; }
@media (max-width: 640px) { .owner-release fieldset { grid-template-columns: 1fr; } .owner-release .button { width: 100%; } }

/* Size checker: one readable dimension summary and three simple controls. */
.room-intro {display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;}
.room-intro h2 {margin-top:8px;margin-bottom:12px;}
.room-intro p:last-child {margin-bottom:0;max-width:55ch;}
.room-guide-link {flex:none;font-size:.85rem;margin-top:8px;}
.room-scene-note {color:var(--muted);font-size:.85rem;margin:12px 0;}
.room-size-summary {padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:5px;margin:20px 0;}
.room-size-heading {font-size:.8rem;font-weight:600;}
.room-size-summary output {display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 24px;margin:6px 0;font-variant-numeric:tabular-nums;}
.room-size-summary [data-room-cm] {font-size:clamp(1.2rem,2.4vw,1.7rem);font-weight:600;line-height:1.3;}
.room-size-summary [data-room-inches] {font-size:1rem;color:var(--muted);}
.room-size-summary .room-size-help {margin-bottom:0;}
.room-control-hint {font-size:.8rem;font-weight:400;color:var(--muted);line-height:1.5;}
.room-preview input[type=range] {min-height:36px;}
.room-action-status:empty {display:none;}
.room-action-status {font-size:.85rem;}
.room-help {border-top:1px solid var(--line);padding-top:18px;}
.room-help-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:20px;}
.room-help h3 {font-family:inherit;font-size:1rem;margin-bottom:8px;}
.room-help p {font-size:.9rem;}
@media(max-width:600px){.room-intro{display:block;}.room-guide-link{display:inline-block;margin-top:12px;}.room-help-grid{grid-template-columns:1fr;gap:0;}.room-size-summary{padding:14px;}.room-size-summary output{display:block;}.room-size-summary [data-room-inches]{display:block;margin-top:6px;}}

/* Digital selections contain a title and size, without the physical cart columns. */
.cart-line.digital-cart-line { grid-template-columns: minmax(0, 1fr); }
.digital-cart-line > div { min-width: 0; }
.digital-cart-line h2 { overflow-wrap: anywhere; }

/* Compact room workspace: controls remain beside the complete preview on tablets and desktop. */
.room-preview-compact {padding:20px;margin:16px 0;scroll-margin-top:100px;}
.room-preview-compact .room-intro {gap:16px;margin:0 0 16px;align-items:center;}
.room-preview-compact .room-intro h2 {font-size:clamp(1.35rem,2.2vw,1.8rem);line-height:1.15;margin:0 0 5px;}
.room-preview-compact .room-intro p {font-size:.85rem;margin:0;}
.room-preview-compact .room-guide-link {margin:0;font-size:.8rem;}
.room-workspace {display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:24px;align-items:center;}
.room-tools,.room-carousel {min-width:0;}
.room-preview-compact .room-scene-picker {font-size:.8rem;display:grid;gap:5px;}
.room-preview-compact select {width:100%;min-height:44px;padding:8px 10px;}
.room-preview-compact .room-size-summary {margin:12px 0;padding:12px;}
.room-preview-compact .room-size-summary output {display:block;margin:5px 0;}
.room-preview-compact [data-room-cm] {font-size:1.2rem;display:block;}
.room-preview-compact [data-room-inches] {font-size:.85rem;display:block;margin-top:2px;}
.room-preview-compact .room-size-heading,.room-preview-compact .room-size-help {font-size:.75rem;line-height:1.35;}
.room-preview-compact .room-controls {grid-template-columns:1fr;gap:8px;margin:10px 0;}
.room-preview-compact .room-controls label {font-size:.8rem;display:grid;gap:0;}
.room-preview-compact [data-room-long-edge] {font-size:.85rem;margin:2px 0 0;}
.room-preview-compact .room-controls input {margin:0;min-height:32px;}
.room-preview-compact .room-control-hint {font-size:.72rem;}
.room-actions {display:flex;gap:8px;}
.room-preview-compact .room-actions .button {padding:9px 12px;font-size:.8rem;min-height:44px;}
.room-preview-compact .room-carousel canvas {width:auto;height:auto;max-width:100%;max-height:min(480px,calc(100svh - 270px));aspect-ratio:4/3;margin:0 auto;}
.room-preview-compact .room-carousel-nav {grid-template-columns:44px minmax(0,1fr) 44px;gap:4px 8px;margin-top:6px;}
.room-preview-compact .room-scene-step {min-height:44px;padding:4px;background:none;}
.room-preview-compact .room-scene-caption {grid-column:auto;grid-row:auto;font-size:.8rem;}
.room-preview-compact .room-scene-dots {gap:2px;}
.room-preview-compact .room-scene-dots button {width:36px;height:36px;}
.room-carousel-help {font-size:.7rem;color:var(--muted);text-align:center;margin:4px 0 0;}
.room-preview-compact .room-scene-note {font-size:.75rem;margin:12px 0 8px;line-height:1.4;}
.room-preview-compact .room-help {margin:0;padding-top:8px;font-size:.8rem;}
.room-preview-compact .room-help p {font-size:.85rem;max-width:90ch;}
@media(min-width:701px) and (max-height:740px){
 .room-preview-compact {padding:14px;scroll-margin-top:80px;}
 .room-preview-compact .room-intro {margin-bottom:10px;}
 .room-preview-compact .room-size-summary {padding:8px 10px;margin:8px 0;}
 .room-preview-compact .room-controls {gap:3px;margin:7px 0;}
 .room-preview-compact .room-controls input {min-height:28px;}
 .room-preview-compact .room-scene-note {margin-top:8px;}
}
@media(max-width:900px) and (min-width:701px){.room-workspace{grid-template-columns:220px minmax(0,1fr);gap:16px;}.room-preview-compact{padding:14px;}.room-preview-compact .room-guide-link{max-width:120px;}}
@media(max-width:700px){
 .room-preview-compact {padding:12px;scroll-margin-top:112px;}
 .room-preview-compact .room-intro {display:block;margin-bottom:12px;}
 .room-preview-compact .room-guide-link {display:inline-block;margin-top:6px;}
 .room-workspace {display:flex;flex-direction:column;gap:12px;}
 .room-tools,.room-carousel {width:100%;}
 .room-carousel {order:-1;}
 .room-preview-compact .room-carousel canvas {max-height:38svh;width:auto;max-width:100%;}
 .room-preview-compact .room-scene-dots button {width:40px;height:40px;}
 .room-preview-compact .room-controls {grid-template-columns:1fr 1fr;column-gap:14px;row-gap:5px;}
 .room-preview-compact .room-controls label:first-child {grid-column:1/-1;}
 .room-preview-compact .room-controls input {min-height:40px;}
 .room-preview-compact .room-size-summary {padding:10px;margin:10px 0;}
 .room-preview-compact .room-size-summary output {display:flex;align-items:baseline;gap:8px;margin:4px 0;}
 .room-preview-compact .room-size-summary [data-room-inches] {margin:0;}
 .room-preview-compact .room-scene-note {margin-top:12px;}
}
.room-preview-compact .room-controls input[type=range] {padding:0;height:32px;border:0;box-shadow:none;}
.room-preview-compact .room-size-summary {line-height:1.35;}
.room-preview-compact .room-size-help {margin:5px 0 0;}
.room-preview-compact .room-help {padding-bottom:0;}
.room-preview-compact .room-carousel canvas {max-height:min(480px,calc(100svh - 400px));}
@media(min-width:701px) and (max-height:740px){.room-preview-compact .room-controls input[type=range]{height:28px;}.room-preview-compact .room-controls label{line-height:1.25;}.room-preview-compact .room-scene-picker{line-height:1.25;}.room-preview-compact .room-actions .button{min-height:40px;padding:6px 10px;}}
@media(max-width:700px){.room-preview-compact .room-carousel canvas{max-height:38svh;}.room-preview-compact .room-controls input[type=range]{height:40px;}}
.room-preview-compact .room-controls input[type=range] {min-height:32px;}
.room-preview-compact .room-size-summary {padding:8px 10px;margin:8px 0;}
.room-preview-compact .room-size-summary output {margin:3px 0;}
.room-preview-compact .room-intro {margin-bottom:10px;}
.room-preview-compact .room-help summary {min-height:24px;}
@media(min-width:701px) and (max-height:740px){.room-preview-compact .room-controls input[type=range]{min-height:28px;}}
@media(max-width:700px){.room-preview-compact .room-controls input[type=range]{min-height:40px;}}
/* Video controls stay within the actual encoded shape, with no surrounding mat. */
.artwork-video video.gallery-video,.viewer-stage video.gallery-video {display:block;max-width:100%;max-height:none;object-fit:contain;border:0;border-radius:0;background:transparent;box-shadow:none;margin-inline:auto;padding:0;}
.viewer-stage:has(video.gallery-video) {display:flex;justify-content:center;align-items:center;background:transparent;border:0;}
.artwork-video {background:transparent;border:0;box-shadow:none;padding:0;}

/* Official Google sign-in artwork keeps its approved proportions and clear focus. */
.account-auth-google[hidden]{display:none!important;}
.google-signin-button{display:block;width:198px;height:44px;padding:0;margin-block:18px;background:transparent;border:0;border-radius:4px;line-height:0;}
.google-signin-button img{display:block;width:198px;height:44px;max-width:none;}
.google-signin-button:focus-visible{outline:3px solid var(--ink);outline-offset:5px;}
.google-signin-button:disabled{background:transparent;opacity:.55;}
