/* Interface foundations: readable type, dark surfaces and angular controls. */
:root {
  --muted: #b6afbf;
  --control-bg: #17131c;
  --control-hover: #241b2e;
  --control-line: #64516f;
  --control-focus: #e6cbff;
  --text-body: 16px;
  --text-label: 12px;
}

body { font-size:var(--text-body); line-height:1.75; }
button, input, select { font-size:16px; }
button, a, input, select, summary { outline-offset:4px; }
:is(button,a,input,select,summary):focus-visible { outline:2px solid var(--control-focus); }
button:disabled { opacity:1; }
.announcement { min-height:40px; font-size:12px; line-height:1.6; letter-spacing:.7px; }
.signal-top-link { font-size:12px; line-height:1.6; letter-spacing:.7px; }
.desktop-nav a { font-size:14px; font-weight:bold; letter-spacing:.6px; }
.eyebrow, .section-heading .eyebrow { font-size:12px; line-height:1.7; letter-spacing:1.4px; }
.hero .eyebrow { color:#d9baf7; }
.hero-description { font-size:17px; line-height:1.85; max-width:390px; color:#cbc2d4; }
.hero-bottom { font-size:12px; line-height:1.6; letter-spacing:1px; }
.hero-side-label { font-size:12px; letter-spacing:2px; }
.section-link { display:inline-flex; gap:12px; min-height:40px; align-items:center; font:700 13px/1.6 var(--mono); letter-spacing:.5px; border-bottom-color:#9470ad; }
.section-link:hover { color:#d2adff; }
.section-heading { flex-wrap:wrap; }
.home-fit-links { gap:10px; margin-bottom:28px; }
.home-fit-links a { display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; font:700 12px/1.6 var(--mono); color:#dbc7ec; border-color:var(--control-line); letter-spacing:.3px; }
.home-fit-links a:hover { color:#fff; background:var(--control-hover); }
.product-tag { font-size:12px; font-weight:bold; line-height:1.5; letter-spacing:.6px; background:#100c14ed; border-color:#83718f; color:#f1e5fc; padding:7px 10px; max-width:calc(100% - 74px); white-space:normal; }
.product-meta { flex-wrap:wrap; gap:3px 14px; font-size:12px; line-height:1.7; letter-spacing:.5px; color:#bbb1c6; }
.product-name, .home-grid .product-name { font-size:22px; line-height:1.3; font-weight:600; }
.product-price { font:700 18px/1.6 var(--mono); color:#f4eafc; }
.product-info { padding-top:20px; }
.product-line { margin-top:12px; }
.product-color { width:14px; height:14px; }
.quick-view { min-height:48px; font:700 13px/1.5 var(--mono); letter-spacing:.8px; background:#dfcef1; color:#1d1028; }
.quick-view:hover { background:#caa2f5; }
.manifesto-copy p, .pillar p, .newsletter p { font-size:16px; line-height:1.85; }
.manifesto-copy .eyebrow { font-size:12px; }
.manifesto-art:after, .pillar-num { font-size:12px; }
.pillar h3 { font-size:31px; }
.community-section>p { font-size:15px; line-height:1.8; }
.newsletter-social .eyebrow { font-size:12px; }
.newsletter-social p { font-size:14px; line-height:1.8; }
.footer-top h3 { font-size:13px; line-height:1.65; letter-spacing:.6px; }
.footer-brand p { font-size:15px; line-height:1.9; }
.footer-top>div>a:not(.text-brand), .footer-top>div>button { min-height:40px; font-size:15px; line-height:1.8; padding:5px 0; }
.footer-bottom { flex-wrap:wrap; font-size:12px; line-height:1.8; letter-spacing:.2px; gap:18px 30px; }
.footer-bottom>div { flex-wrap:wrap; gap:14px 25px; }
.footer-bottom a { min-height:32px; display:inline-flex; align-items:center; }
.menu-dialog>p { font-size:12px; line-height:1.8; }
.footer-social .social-coming { font-size:12px!important; line-height:1.8!important; color:#c9a7e3!important; }
.network-icon, .footer-networks .network-icon { width:44px; height:44px; border-color:#59475f; background:#141017; }
.network-card { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:18px; border-color:#514058; }
.network-card small { font-size:12px; line-height:1.7; letter-spacing:.1px; }
.network-card .network-state { font-size:12px; line-height:1.6; color:#d4b8e9; }
.community-page .social-note { font-size:14px!important; line-height:1.85!important; }
.breadcrumb { font-size:13px; line-height:1.8; padding-block:28px; }
.page-head p { font-size:16px; line-height:1.85; }
.result-count { font-size:13px; line-height:1.8; letter-spacing:.6px; margin:24px 0; }
.product-type { font-size:13px; line-height:1.7; }
.detail-price { font-size:29px; font-weight:bold; }
.detail-description { font-size:16px; line-height:1.9; }
.color-label, .size-heading, .size-heading button { font-size:13px; line-height:1.7; }
.size-heading { gap:12px; flex-wrap:wrap; margin-top:26px; }
.size-heading button { min-height:36px; color:#d0b5e5; }
.detail-note { font:14px/1.85 Arial,Helvetica,sans-serif; }
.size-error { font-size:13px; line-height:1.7; min-height:28px; }
.accordion summary { min-height:60px; font-size:14px; line-height:1.7; gap:20px; }
.accordion summary:after { font-size:21px; }
.accordion p { font-size:15px; line-height:1.9; }
.content-page p, .content-page li { font-size:16px; }
.content-page .accordion summary { font-size:15px; }
.empty-state p { font-size:16px; line-height:1.8; }
.info-dialog>p { font-size:16px; line-height:1.85; }
table { font-size:14px; line-height:1.8; }
th, td { font-size:14px; padding:16px 12px; }
caption { font-size:12px; line-height:1.7; }
.muted { font-size:14px; line-height:1.85; }
.notice { font-size:13px; line-height:1.9; }
.checkout-card p { font-size:16px; line-height:1.85; }
.checkout-explanation { font-size:14px!important; line-height:1.85!important; }
.checkout-success p { font-size:16px; line-height:1.85; }
.saved-selection span { font-size:16px; }
.saved-selection small { font-size:13px; line-height:1.7; }
.universe-hero p, .universe-body p { font-size:17px; line-height:1.95; }

/* A single button language, including plain text actions and small controls. */
.button {
  min-height:54px;
  max-width:100%;
  padding:16px 24px;
  font:700 14px/1.5 var(--mono);
  letter-spacing:.7px;
  border-color:var(--control-line);
  white-space:normal;
  text-align:center;
  transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s;
}
.button.primary { background:linear-gradient(115deg,#bd89ff,#a36ae8); border-color:#c9a6f2; color:#180c24; box-shadow:inset 0 1px 0 #e3cfff66; }
.button.primary:hover { background:linear-gradient(115deg,#d4b1ff,#bb87f5); box-shadow:inset 0 1px 0 #fff7,0 5px 20px #8c42d52b; transform:translateY(-1px); }
.button.primary:focus-visible { outline:0; box-shadow:inset 0 0 0 3px #fff2ff; }
.button.secondary { background:#18131e; border-color:#796187; color:#e5d3f2; }
.button.secondary:hover { background:#2f203c; border-color:#be87f4; color:#fff; }
.button:active { transform:translateY(1px); }
.button.text { min-height:44px; color:#d9b8f5; }
.button.text:hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.button:disabled, .checkout-card .button:disabled { background:#18141d; color:#aca0b7; border:1px dashed #5b4b65; box-shadow:none; transform:none; font-size:13px; line-height:1.6; opacity:1; clip-path:none; }
.hero-buttons .button { font-size:14px; padding:16px 22px; gap:18px; }
.icon-button { width:44px; height:44px; border:1px solid #51405c; background:#16111bcc; border-radius:0; transition:background .18s,border-color .18s,color .18s; }
.icon-button:hover { background:#302039; border-color:#bf86f6; color:#d6acff; }
.header-actions .icon-button { width:44px; height:44px; }
.favorite-button { width:42px; height:42px; right:12px; top:12px; background:#110d16e8; border-color:#786382; }
.favorite-button svg { width:20px; height:20px; }
.favorite-button[aria-pressed=true], .detail-favorite[aria-pressed=true] { background:#30203c; border-color:#c99bff; color:#d3aaff; }
.detail-favorite { width:58px; height:58px; }
.close-button { font-size:30px; }
.bag-button { min-height:44px; height:44px; font-size:13px; padding-right:8px; }
#cart-count { width:25px; height:25px; font-size:13px; }
.mini-count { min-width:18px; font-size:12px; line-height:1.5; }
.gallery-actions { display:flex; flex-wrap:wrap; gap:6px; padding:6px; border:1px solid #54415f; background:#100d14; margin-top:16px; }
.gallery-actions button { flex:1 1 100px; min-height:48px; padding:11px 12px; border:1px solid transparent; background:#18121f; color:#bfb1ca; font:700 13px/1.5 var(--mono); white-space:normal; letter-spacing:.25px; transition:background .18s,color .18s,border-color .18s; }
.gallery-actions button:hover { background:#2b1b36; border-color:#78528e; color:#fff; }
.gallery-actions button[aria-pressed=true] { border-color:#ae7ad5; background:#352044; color:#efdfff; box-shadow:inset 0 -2px 0 #c391f4; }
.size-options label { position:relative; }
.size-options input { inset:0; margin:0; width:100%; height:100%; cursor:pointer; }
.size-options span { min-height:54px; background:#16121b; border-color:#74617e; font:700 16px/1.5 var(--mono); transition:background .18s,border-color .18s,color .18s; }
.size-options label:hover span { background:#2a1c35; border-color:#cc9bff; }
.size-options input:checked+span { background:#b47cf1; color:#180d23; border-color:#dcbaff; }
.size-options input:focus-visible+span { outline:2px solid #fff0ff; outline-offset:3px; }
.quantity { min-height:44px; border-color:#74617e; background:#17121d; }
.quantity button { width:44px; height:44px; color:#e1c5f8; border:0; background:#21172a; font-size:22px; }
.quantity button:hover:not(:disabled) { background:#3a2549; color:#fff; }
.quantity button:disabled { background:#18141d; color:#776c80; }
.quantity output { font-size:15px; min-width:35px; }
.cart-item-bottom { flex-wrap:wrap; gap:12px; }
.cart-item-top { flex-wrap:wrap; gap:8px 14px; }
.cart-item-top a { font-size:16px; line-height:1.5; }
.remove-item { font:700 12px/1.7 var(--mono); min-height:36px; color:#c0a9d2; text-decoration:underline; text-underline-offset:4px; }
.remove-item:hover { color:#f2d1ff; }
.cart-row p { font-size:13px; line-height:1.7; }
.cart-line-price { font-size:15px; font-weight:bold; }
.summary-line { font-size:16px; line-height:1.7; }
.summary-line.small { font-size:13px; line-height:1.8; }
.cart-summary .button { font-size:14px; }
.toast { font:14px/1.7 var(--mono); border-left:3px solid #9d57e8; }

/* Search inputs share the same dark material and focus treatment. */
.catalog-search { max-width:500px; background:#15101b; border:1px solid #6d547e; }
.catalog-search:focus-within { border-color:#cc9aff; box-shadow:0 0 0 2px #a86aff29; }
.catalog-search input { font-size:16px; padding:14px 16px; }
.catalog-search input:focus-visible { outline:0; }
.catalog-search .icon-button { border:0; border-left:1px solid #574165; height:54px; width:54px; }
input::placeholder { color:#a99aB6; opacity:1; }
.search-form input { min-height:56px; font-size:16px; border-color:#77558e; background:#1a1223; padding:15px 18px; }
.search-form input:focus-visible { border-color:#d5a7ff; outline-color:#d5a7ff; }
.search-result strong { font-size:16px; line-height:1.6; }
.search-result small { font-size:13px; line-height:1.8; }

/* Select-only comboboxes: native selects remain as the form/data fallback. */
.filter-bar { align-items:flex-end; gap:20px; position:relative; z-index:10; padding:24px 0; overflow:visible; }
.filter-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:end; flex:1; min-width:0; }
.filter-fields>.filter-label, .sort-select:has(.select-control)>.filter-label { display:none; }
.sort-select { display:block; flex:0 0 205px; min-width:0; }
.select-control { position:relative; min-width:0; width:100%; }
.select-label { display:block; margin-bottom:9px; color:#c7b5d5; font:700 12px/1.5 var(--mono); letter-spacing:.9px; text-transform:uppercase; }
.select-trigger { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; min-height:54px; padding:13px 14px; background:#17121e; border:1px solid #695077; color:#e9dcf4; text-align:left; font:15px/1.5 Arial,Helvetica,sans-serif; transition:background .18s,border-color .18s,box-shadow .18s; }
.select-value { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.select-chevron { display:grid; place-items:center; flex-shrink:0; width:22px; height:22px; color:#cda6ee; transition:transform .18s; }
.select-chevron svg { width:20px; height:20px; stroke-width:1.8; }
.select-trigger:hover { background:#261a31; border-color:#ba86df; }
.select-trigger:focus-visible { outline:2px solid #e3c6ff; outline-offset:3px; }
.select-control.has-value .select-trigger { border-color:#b280df; color:#f2e1ff; box-shadow:inset 3px 0 0 #aa6ae8; }
.select-control.is-open { z-index:40; }
.select-control.is-open .select-trigger { border-color:#cc98fc; background:#2a1b36; }
.select-control.is-open .select-chevron { transform:rotate(180deg); }
.select-menu { position:absolute; top:calc(100% + 8px); left:0; width:max(100%,220px); max-width:calc(100vw - 32px); max-height:320px; overflow:auto; overscroll-behavior:contain; border:1px solid #b080d2; background:#17101e; padding:6px; box-shadow:0 16px 36px #0009; scrollbar-width:thin; scrollbar-color:#9862b7 #211528; }
.select-control[data-align=end] .select-menu { right:0; left:auto; }
.select-control[data-position=above] .select-menu { bottom:calc(100% - 18px); top:auto; }
.select-option { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:48px; padding:12px; border:1px solid transparent; background:transparent; color:#d7c9e2; font:15px/1.5 Arial,Helvetica,sans-serif; text-align:left; }
.select-option.is-active, .select-option:hover { background:#352044; color:#fff; border-color:#78518e; }
.select-option[aria-selected=true] { color:#e2bbff; font-weight:bold; }
.select-option[aria-selected=true].is-active { background:#432651; }
.select-check { visibility:hidden; color:#cf9cff; font-size:18px; }
.select-option[aria-selected=true] .select-check { visibility:visible; }
.select-control select[hidden], .select-menu[hidden] { display:none!important; }

@media(max-width:1100px) {
  .desktop-nav a { font-size:13px; }
  .filter-bar { gap:14px; }
  .filter-fields { gap:10px; }
  .sort-select { flex-basis:190px; }
  .footer-top { gap:30px 24px; }
}
@media(max-width:900px) {
  .filter-bar { display:block; }
  .sort-select { width:100%; max-width:280px; margin-top:18px; }
}
@media(max-width:760px) {
  .announcement { min-height:38px; }
  .signal-top-link { font-size:12px; }
  .site-header { min-height:82px; height:82px; }
  .header-actions { gap:5px; }
  .header-actions .icon-button { width:44px; height:44px; }
  .bag-button { padding-left:9px; padding-right:0; gap:7px; }
  .hero-description { font-size:16px; max-width:330px; }
  .hero .eyebrow { font-size:12px; }
  .hero-buttons { align-items:stretch; gap:12px; }
  .hero-buttons .button { font-size:13px; min-height:52px; padding:15px 17px; }
  .hero-bottom { font-size:12px; letter-spacing:0; gap:12px; }
  .hero-side-label { display:none; }
  .section-heading { display:block; margin-bottom:28px; }
  .section-heading .eyebrow { font-size:12px; letter-spacing:1px; }
  .section-heading h2 { font-size:46px; line-height:1; }
  .section-heading>.section-link { margin-top:18px; font-size:13px; white-space:normal; }
  .home-fit-links { gap:8px; }
  .home-fit-links a { font-size:12px; letter-spacing:0; padding:10px 12px; min-height:44px; }
  .product-tag { font-size:12px; padding:5px 7px; left:10px; top:10px; max-width:calc(100% - 68px); letter-spacing:0; }
  .favorite-button { width:40px; height:40px; right:9px; top:9px; }
  .product-meta { font-size:12px; letter-spacing:0; line-height:1.7; }
  .product-meta span:last-child { display:block; }
  .product-name, .home-grid .product-name { font-size:20px; line-height:1.3; letter-spacing:-.4px; }
  .product-price { font-size:17px; }
  .product-info { padding-top:15px; }
  .quick-view { min-height:44px; font-size:12px; letter-spacing:.5px; padding:12px 8px; }
  .manifesto-copy p, .pillar p, .newsletter p { font-size:16px; }
  .manifesto-copy .eyebrow, .pillar-num, .manifesto-art:after { font-size:12px; }
  .pillar h3 { font-size:30px; }
  .community-section .section-heading h2 { font-size:46px; }
  .community-section .section-link { font-size:13px; }
  .community-section>p { font-size:15px; max-width:100%; }
  .newsletter-social .eyebrow { font-size:12px; }
  .newsletter-social p { font-size:14px; }
  .footer-brand p { font-size:15px; }
  .footer-top h3 { font-size:13px; letter-spacing:.3px; }
  .footer-top>div>a:not(.text-brand), .footer-top>div>button { font-size:15px; line-height:1.8; }
  .footer-bottom { font-size:12px; line-height:1.8; }
  .footer-networks { gap:10px; }
  .network-card { gap:14px; grid-template-columns:28px minmax(0,1fr) auto; padding:22px 17px; }
  .network-card small { font-size:12px; line-height:1.6; }
  .network-card .network-state { font-size:12px; }
  .breadcrumb { font-size:13px; padding-block:23px; }
  .page-head p { font-size:16px; }
  .filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px; width:100%; }
  .filter-fields .select-control:last-child { grid-column:1/-1; }
  .sort-select { max-width:none; margin-top:18px; }
  .filter-bar { padding:24px 0; }
  .select-trigger { font-size:15px; min-height:56px; }
  .select-option { font-size:16px; min-height:50px; }
  .select-label { font-size:12px; }
  .product-type, .color-label, .size-heading, .size-heading button { font-size:13px; }
  .detail-description { font-size:16px; }
  .gallery-actions button { font-size:12px; flex:1 1 90px; padding:12px 10px; white-space:normal; }
  .detail-note { font-size:14px; }
  .accordion summary, .content-page .accordion summary { font-size:14px; }
  .accordion p { font-size:15px; }
  .content-page p, .content-page li { font-size:16px; }
  .cart-summary .button { font-size:14px; }
  .cart-item-top a { font-size:16px; }
  .cart-line-price { font-size:14px; }
  .cart-row p { font-size:13px; }
  .summary-line { font-size:15px; }
  .summary-line.small { font-size:13px; }
  .info-dialog>p { font-size:16px; }
  th,td { font-size:14px; padding:14px 10px; }
  .toast { font-size:13px; padding:14px 18px; width:auto; min-width:240px; }
  .checkout-card .button:disabled { font-size:12px; padding:15px 16px; }
  .universe-hero p, .universe-body p { font-size:16px; }
}
@media(max-width:500px) {
  .search-form { flex-direction:column; gap:14px; }
  .search-form .button { width:100%; font-size:14px; }
  .network-card .network-state { font-size:12px; }
}
@media(max-width:400px) {
  .brand { width:142px; }
  .logo-art { width:142px; height:40px; }
  .logo-art img { width:142px; height:142px; top:-80.5px; }
  .hero-bottom { align-items:flex-start; }
  .hero-bottom>span:first-child { max-width:220px; }
  .product-meta { display:block; }
}
@media(max-width:360px) {
  .brand { width:116px; }
  .logo-art { width:116px; height:33px; }
  .logo-art img { width:116px; height:116px; top:-65.8px; }
  .header-actions { gap:2px; }
  .mobile-menu-button { margin-left:0; }
  .product-tag { display:none; }
  .section-heading h2 { font-size:42px; }
  .product-name, .home-grid .product-name { font-size:18px; }
  .product-price { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .button, .icon-button, .select-trigger, .select-chevron, .gallery-actions button, .size-options span { transition:none; }
  .button.primary:hover, .button:active { transform:none; }
}

/* Preserve the approved artwork; blend its black ground into the header. */
.site-header { background:radial-gradient(ellipse at 12% 50%,#25153255,transparent 34%),#09090bf5; }
.logo-art { width:100%; height:auto; aspect-ratio:3.85; background:transparent; mix-blend-mode:screen; mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent),linear-gradient(0deg,transparent,#000 3%,#000 97%,transparent); mask-composite:intersect; }
.logo-art img { width:100%; height:auto; left:0; top:0; transform:translateY(-56.5%); }

/* Filters change only this collection, retaining the visitor's place. */
.home-fit-links button { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; min-height:50px; padding:12px 16px; border:1px solid #6d537f; background:#17111e; color:#d1bcdf; font:700 13px/1.6 var(--mono); text-align:left; transition:background .18s,border-color .18s,color .18s; }
.home-fit-links button>span { color:#aa88c2; font-size:12px; }
.home-fit-links button:hover { border-color:#c398e8; background:#30203d; color:#fff; }
.home-fit-links button[aria-pressed=true] { background:#372047; border-color:#c091e8; color:#f2dfff; box-shadow:inset 0 -3px #bd8ce5; }
.home-fit-links button[aria-pressed=true]>span { color:#e1baff; }
.home-result-count { font:12px/1.8 var(--mono); letter-spacing:.5px; color:#b4a3c1; margin:0 0 22px; }
.home-grid:has(>.product-card:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:960px; }
.product-line { gap:10px; flex-wrap:wrap; align-items:center; }
.product-color-info { display:inline-flex; align-items:center; gap:8px; color:#b9a9c5; font:12px/1.6 var(--mono); cursor:default; }
.product-color-info .product-color { width:10px; height:10px; border:1px solid #afa1ba; outline:0; box-shadow:none; flex-shrink:0; }
.color-label .product-color { border-radius:1px; outline:0; width:12px; height:12px; border:1px solid #afa1ba; }
.product-card:focus-within .quick-view { opacity:1; transform:none; }
.quick-view { pointer-events:none; }
.product-card:hover .quick-view,.product-card:focus-within .quick-view { pointer-events:auto; }

/* A real photo gallery: separate angles, thumbnails, and an enlarged view. */
.product-gallery { min-width:0; }
.product-main-image { position:relative; aspect-ratio:4/5; overflow:hidden; background:#151219; }
.gallery-open { display:block; width:100%; height:100%; padding:0; border:0; background:none; position:relative; cursor:zoom-in; touch-action:pan-y; }
.product-main-image .gallery-open img { width:100%; height:100%; object-fit:cover; aspect-ratio:auto; transform:none; padding:0; }
.product-main-image.print-view .gallery-open img { object-fit:contain; padding:5%; }
.gallery-open:focus-visible { outline:3px solid #d4a6ff; outline-offset:-5px; }
.gallery-zoom-label { position:absolute; bottom:23px; right:18px; background:#110c18e8; border:1px solid #877094; padding:9px 12px; color:#e3ccf3; font:700 12px/1.6 var(--mono); pointer-events:none; }
.gallery-open:hover .gallery-zoom-label { background:#3c254c; border-color:#c393e8; color:#fff; }
.gallery-navigation { display:flex; align-items:center; gap:8px; position:absolute; bottom:18px; left:18px; }
.gallery-navigation .icon-button { width:44px; height:44px; font-size:22px; background:#130d1be8; border-color:#8c749c; }
#gallery-position { font:13px/1.6 var(--mono); background:#130d1be8; border:1px solid #6f577f; min-height:44px; display:flex; align-items:center; justify-content:center; min-width:60px; padding:8px; }
.gallery-thumbnails { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:14px; }
.gallery-thumbnails button { padding:5px; min-width:0; border:1px solid #5e486c; background:#16101d; color:#bda7cc; text-align:left; font:12px/1.5 var(--mono); transition:background .18s,border-color .18s,color .18s; }
.gallery-thumbnails button>span:last-child { display:block; padding:9px 4px 5px; }
.thumbnail-image { display:block; aspect-ratio:4/5; overflow:hidden; background:#110c17; }
.thumbnail-image img { width:100%; height:100%; object-fit:cover; }
.thumbnail-image.is-art img { object-fit:contain; padding:7%; }
.gallery-thumbnails button:hover { background:#2a1936; border-color:#bc8bde; color:#fff; }
.gallery-thumbnails button[aria-pressed=true] { border-color:#d3a2f5; background:#352141; color:#f0dfff; box-shadow:inset 0 -3px #c692ec; }
.photo-dialog { width:min(1000px,96vw); max-width:96vw; height:94dvh; max-height:94dvh; padding:18px 22px; background:#110d16; border:1px solid #8e65a8; overflow:hidden; }
.photo-dialog[open] { display:flex; flex-direction:column; }
.photo-dialog .dialog-top { margin:0 0 12px; padding-bottom:12px; flex-shrink:0; }
.enlarged-frame { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; overflow:auto; background:#09080b; }
.enlarged-photo { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.photo-dialog.print-view .enlarged-photo { padding:2%; }
.zoom-toggle { margin-left:auto; flex-shrink:0; border:1px solid #9470ad; background:#291a35; padding:9px 12px; min-height:44px; color:#ebd2ff; font:700 12px/1.6 var(--mono); }
.zoom-toggle:hover,.zoom-toggle[aria-pressed=true] { background:#4b2b61; border-color:#dbb0ff; color:#fff; }
.photo-dialog.is-magnified .enlarged-frame { display:block; scrollbar-color:#a470c9 #17101d; }
.photo-dialog.is-magnified .enlarged-photo { max-width:none; max-height:none; width:var(--zoom-width); height:auto; padding:0; }
.photo-dialog-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:12px; flex-shrink:0; }
#photo-caption { color:#d0b5e3; font:13px/1.6 var(--mono); text-align:center; }
@media(max-width:760px) {
  .home-fit-links button { font-size:12px; min-height:48px; padding:11px 12px; gap:12px; }
  .home-result-count { font-size:12px; }
  .quick-view { pointer-events:auto; }
  .product-line { align-items:flex-start; flex-direction:column; gap:8px; }
  .product-color-info { font-size:12px; }
  .gallery-thumbnails { gap:7px; }
  .gallery-thumbnails button { padding:3px; font-size:12px; }
  .gallery-thumbnails button>span:last-child { padding:7px 2px 5px; }
  .gallery-navigation { left:10px; bottom:10px; gap:5px; }
  .gallery-zoom-label { bottom:15px; right:10px; padding:8px; font-size:12px; }
  .photo-dialog { padding:14px; height:96dvh; max-height:96dvh; }
  .photo-dialog .dialog-top { gap:9px; }
  .photo-dialog .dialog-top h2 { font-size:23px; }
  .zoom-toggle { font-size:12px; padding:9px 8px; }
  #photo-caption { font-size:12px; }
}
@media(max-width:360px) {
  .gallery-thumbnails { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .thumbnail-image { aspect-ratio:1; }
  .gallery-zoom-label { font-size:11px; padding:7px; }
}
