/* Shirt Moxy / cinematic studio. Local assets, system sans serif, accessible motion. */
:root {
  color-scheme: dark; --paper: #090a0e; --paper-deep: #111217; --white: #191a21;
  --ink: #f5f5f7; --ink-soft: #b5b7c2; --muted: #a2a5b1; --line: #ffffff20;
  --pink: #e61c5d; --pink-dark: #ca174f; --surface: #16171e; --glass: #0c0d12d9;
  --gradient-start: #a9dcff; --gradient-end: #c9b5ff; --max-width: 1500px;
  --gutter: clamp(24px, 5vw, 100px); --ease: cubic-bezier(.22,1,.36,1);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  letter-spacing: 0; scroll-behavior: smooth;
}
html[data-theme="light"] {
  color-scheme: light; --paper: #f5f6f9; --paper-deep: #e9edf4; --white: #fff;
  --ink: #202127; --ink-soft: #555b6b; --muted: #636979; --line: #19243b20;
  --surface: #e9edf4; --glass: #f5f6f9e6; --gradient-start: #365f8c; --gradient-end: #73558e;
}
body { color: var(--ink); background: var(--paper); font-size: 16px; line-height: 1.55; letter-spacing: 0; overflow-x: clip; }
body, .site-header, .site-footer, .catalog-image, .feature-card { transition: background-color .45s ease, color .45s ease; }
button, input, textarea, select { font: inherit; letter-spacing: 0; }
h1,h2,h3,h4 { font-family: inherit; letter-spacing: -.025em; font-weight: 650; line-height: 1.08; text-wrap: balance; }
p { text-wrap: pretty; }
.page-width { width: min(var(--max-width), calc(100% - var(--gutter) * 2)); }
.section-space { padding-block: clamp(76px, 9vw, 140px); }
.eyebrow { display: block; font-size: 12px; letter-spacing: .09em; font-weight: 650; color: var(--muted); margin: 0 0 22px; }
.gradient-type { color: var(--gradient-start); background: linear-gradient(115deg,var(--gradient-start),var(--gradient-end)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.button { min-height: 48px; padding: 0 23px; border-radius: 100px; font-size: 14px; font-weight: 600; letter-spacing: 0; cursor: pointer; }
.button-primary { background: #e61c5d; color: #fff; box-shadow: none; }
.button-primary:hover { background: #ca174f; box-shadow: 0 8px 30px #e61c5d25; }
.text-link { color: var(--ink); font-size: 14px; font-weight: 550; letter-spacing: 0; background: none; border: 0; cursor: pointer; }
.text-link:hover { color: var(--pink); }
.quiet-note { color: var(--muted); font-size: 12px; line-height: 1.6; letter-spacing: 0; }
.site-header, .site-header.is-scrolled { top: 0; background: var(--glass); border-bottom: 1px solid var(--line); backdrop-filter: blur(24px) saturate(140%); box-shadow: none; }
.header-inner { width: calc(100% - var(--gutter) * 2); max-width: 1800px; margin: auto; display: flex; justify-content: space-between; min-height: 78px; gap: 25px; }
.is-scrolled .header-inner { min-height: 68px; }
.brand-horizontal { display: inline-flex; align-items: center; gap: 11px; flex-shrink: 0; color: var(--ink); }
.brand-horizontal img { width: 46px; height: 36px; object-fit: contain; }
.brand-horizontal > span { display: block; font-size: 24px; font-weight: 750; letter-spacing: -.025em; white-space: nowrap; }
.brand-horizontal b { color: var(--pink); font-weight: inherit; }
.brand-horizontal sup { position: relative; top: -7px; font-size: 9px; color: var(--pink); margin-left: 2px; }
.main-nav { gap: 32px; }
.main-nav a { color: var(--ink-soft); font-size: 13px; font-weight: 500; letter-spacing: 0; }
.main-nav a:hover { color: var(--ink); }
.main-nav a::after { display: none; }
.header-actions { gap: 12px; }
.icon-button { color: var(--ink); }
.theme-toggle { border: 1px solid var(--line); width: 36px; height: 36px; }
.theme-toggle svg { width: 18px; height: 18px; }
.theme-toggle .moon-icon { display: none; }
[data-theme="light"] .theme-toggle .moon-icon { display: block; }
[data-theme="light"] .theme-toggle .sun-icon { display: none; }
.bag-count { width: 14px; height: 14px; top: -1px; font-size: 8px; }
.preview-banner { color: var(--muted); background: var(--paper-deep); padding: 8px 24px; border: 0; font-size: 11px; text-align: center; }
.flagship { position: relative; overflow: clip; min-height: 980px; padding: 68px var(--gutter) 24px; isolation: isolate; }
.hero-aura { position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse at 50% 78%, #4759a52e 0%, transparent 50%),radial-gradient(ellipse at 12% 24%, #49bfd910 0%,transparent 45%); }
[data-theme="light"] .hero-aura { background: radial-gradient(ellipse at 50% 76%,#94abe857,transparent 58%),linear-gradient(160deg,#fff,#edf3fc 65%,#ebe8f5); }
.flagship-copy { position: relative; z-index: 4; text-align: center; }
.flagship-copy h1 { margin: 0; font-size: clamp(48px,6.6vw,108px); letter-spacing: -.03em; line-height: 1.04; }
.flagship-copy > p:not(.eyebrow) { font-size: 18px; line-height: 1.5; color: var(--ink-soft); margin: 23px 0 27px; }
.hero-actions { display: flex; justify-content: center; align-items: center; gap: 28px; }
.hero-products { position: relative; height: clamp(380px,42vw,670px); max-width: 1500px; margin: -12px auto 0; perspective: 1200px; }
.hero-shirt { position: absolute; width: min(46vw,650px); height: auto; left: 50%; top: 0; margin-left: min(-23vw,-325px); will-change: transform; }
.hero-shirt img { width: 100%; height: auto; filter: drop-shadow(0 38px 26px #0007); }
.hero-shirt-main { width: min(44vw,630px); margin-left: max(-22vw,-315px); z-index: 3; transform: translateY(12px); animation: shirt-enter 1.5s var(--ease) backwards; }
.hero-shirt-left { width: min(35vw,500px); margin-left: max(-38vw,-545px); top: 53px; z-index: 2; transform: rotate(-13deg); animation: shirt-left-enter 1.7s var(--ease) backwards; }
.hero-shirt-right { width: min(35vw,500px); margin-left: min(3vw,48px); top: 58px; z-index: 1; transform: rotate(12deg); animation: shirt-right-enter 1.9s var(--ease) backwards; }
.hero-floor { position: absolute; bottom: -10px; width: 60%; height: 5%; left: 20%; border-radius: 50%; background: #7286c120; filter: blur(20px); }
.flagship-bottom { display: flex; justify-content: space-between; align-items: center; color: var(--muted); gap: 20px; font-size: 11px; position: relative; z-index: 4; }
.scroll-prompt { display: flex; align-items: center; gap: 14px; color: var(--ink-soft); }
.scroll-prompt span { animation: scroll-hint 2s ease-in-out infinite; font-size: 20px; }
.studio-scene { position: relative; height: 95svh; min-height: 670px; overflow: clip; background: #090a0e; color: white; isolation: isolate; }
.studio-image { position: absolute; inset: -8% 0; z-index: -2; }
.studio-image img { height: 100%; width: 100%; object-fit: cover; object-position: 66% center; }
.studio-scrim { position: absolute; inset: 0; background: linear-gradient(90deg,#000e 0%,#0009 42%,#0000 85%),linear-gradient(0deg,#000a,transparent 35%); z-index: -1; }
.studio-copy { position: absolute; left: var(--gutter); top: 50%; translate: 0 -50%; max-width: 590px; }
.studio-copy .eyebrow { color: #c7c9d3; }
.studio-copy h2 { font-size: clamp(64px,7.5vw,122px); margin: 0; letter-spacing: -.03em; line-height: 1.02; }
.studio-copy p:not(.eyebrow) { color: #c6c8d2; max-width: 420px; font-size: 18px; margin: 30px 0; }
.scene-caption { position: absolute; bottom: 28px; left: var(--gutter); font-size: 10px; letter-spacing: .06em; color: #c9c9d0; }
.print-journey { position: relative; min-height: 220svh; background: var(--paper); }
.journey-sticky { position: sticky; top: 68px; height: calc(100svh - 68px); min-height: 720px; display: grid; grid-template-columns: 1fr 1fr; align-content: center; padding: 40px var(--gutter); overflow: clip; }
.journey-heading { align-self: center; z-index: 3; }
.journey-heading h2 { font-size: clamp(48px,5.5vw,86px); line-height: 1.06; margin: 0; }
.journey-stage { position: relative; height: min(55svh,590px); align-self: center; display: flex; justify-content: center; align-items: center; }
.journey-shirt { height: 120%; max-width: none; width: auto; position: relative; z-index: 2; transform: rotate(-14deg) scale(.83); filter: saturate(.15); will-change: transform,filter; }
.journey-orbit { position: absolute; width: 95%; height: 70%; border-radius: 50%; background: radial-gradient(ellipse,#638bcc20,transparent 68%); }
.print-scan { position: absolute; z-index: 3; top: 28%; left: 4%; right: 4%; height: 2px; background: linear-gradient(90deg,transparent,#b7d7ff,transparent); box-shadow: 0 0 32px 4px #8ec8ff44; opacity: 0; }
.stage-label { position: absolute; bottom: -18px; color: var(--muted); font-size: 10px; letter-spacing: .1em; z-index: 4; }
.journey-steps { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 48px; }
.journey-step { opacity: .32; transition: opacity .6s ease; border-top: 1px solid var(--line); padding-top: 20px; }
.journey-step.is-active { opacity: 1; }
.journey-step span { font-size: 11px; letter-spacing: .05em; color: var(--muted); }
.journey-step h3 { font-size: 24px; margin: 12px 0; }
.journey-step p { font-size: 14px; color: var(--ink-soft); margin: 0; max-width: 320px; }
.journey-meter { position: absolute; left: var(--gutter); right: var(--gutter); bottom: 20px; height: 2px; background: var(--line); }
.journey-meter span { display: block; height: 100%; background: var(--gradient-start); transform: scaleX(0); transform-origin: left; }
.lineup-section, .features-section { background: var(--paper-deep); }
.wide-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; padding-inline: var(--gutter); margin-bottom: 26px; }
.wide-heading h2 { font-size: clamp(34px,4vw,60px); letter-spacing: -.025em; line-height: 1.09; margin: 0; }
.wide-heading .eyebrow { margin-bottom: 15px; }
.wide-heading > .text-link { flex-shrink: 0; margin-bottom: 5px; }
.section-intro { font-size: 18px; color: var(--ink-soft); margin: 0 0 42px; padding-inline: var(--gutter); }
.premium-rail { display: flex; overflow-x: auto; gap: 24px; padding: 0 var(--gutter) 20px; scroll-padding-inline: var(--gutter); scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.premium-rail::-webkit-scrollbar { display: none; }
.premium-rail .catalog-card { flex: 0 0 clamp(310px,31vw,510px); scroll-snap-align: start; min-width: 0; }
.catalog-image, .catalog-image.sun, .catalog-image.wave, .catalog-image.flower { background: radial-gradient(ellipse at 50% 30%,#424b6838,transparent 75%),linear-gradient(160deg,#242735,#101116); color: #f5f5f7; border-radius: 30px; border: 1px solid #ffffff08; position: relative; overflow: hidden; aspect-ratio: 1/1.16; }
.catalog-image.wave { background: linear-gradient(155deg,#668d9c,#1d354a); }
.catalog-image.flower { background: linear-gradient(155deg,#82738e,#3c334e); }
[data-theme="light"] .catalog-image.sun { background: linear-gradient(150deg,#d9dfef,#afb8d0); }
[data-theme="light"] .catalog-image.wave { background: linear-gradient(155deg,#d5e7f0,#91bdcc); }
[data-theme="light"] .catalog-image.flower { background: linear-gradient(155deg,#e2dbee,#bcaacb); }
.catalog-tee.product-render { width: 98%; height: auto; max-height: none; max-width: none; position: absolute; left: 1%; top: 11%; object-fit: contain; filter: drop-shadow(0 25px 25px #0004); transform: scale(.94); transition: transform 1.6s var(--ease); }
.catalog-image:hover .product-render { transform: scale(1.04); }
.catalog-image:focus-visible .product-render { transform: scale(1.04); }
.catalog-tag { position: absolute; left: 28px; top: 27px; z-index: 3; color: #ffffffb8; font-size: 10px; letter-spacing: .05em; background: none; padding: 0; }
[data-theme="light"] .catalog-tag { color: #263448; }
.catalog-open { position: absolute; left: 26px; right: 26px; bottom: 23px; color: white; font-size: 13px; display: flex; justify-content: space-between; transform: translateY(8px); opacity: 0; transition: .5s var(--ease); }
.catalog-image:hover .catalog-open, .catalog-image:focus-visible .catalog-open { opacity: 1; transform: none; }
.catalog-card-copy { display: flex; gap: 20px; justify-content: space-between; align-items: flex-start; padding: 26px 5px 0; color: var(--ink); }
.catalog-card-copy h2 { font-size: 28px; margin: 0 0 12px; letter-spacing: -.02em; }
.catalog-card-copy p { font-size: 14px; line-height: 1.55; color: var(--ink-soft); max-width: 280px; margin: 0; }
.catalog-card-copy strong { font-size: 18px; text-align: right; padding-top: 4px; white-space: nowrap; }
.catalog-card-copy small { font-size: 9px; display: block; font-weight: 400; color: var(--muted); margin-top: 5px; }
.card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; padding: 26px 5px 0; }
.card-actions .button { font-size: 13px; min-height: 42px; }
.card-actions .text-link { font-size: 12px; }
.rail-bottom { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding-inline: var(--gutter); margin-top: 32px; }
.round-control, .round-control-dark { width: 38px; height: 38px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); cursor: pointer; border-radius: 50%; }
.round-control:hover { color: white; background: var(--pink); border-color: var(--pink); }
.round-control:disabled { opacity: .3; cursor: default; }
.purpose-list { margin-top: 50px; padding-inline: var(--gutter); }
.purpose-row { display: grid; grid-template-columns: 50px 1fr .8fr 30px; gap: 30px; align-items: center; padding: 38px 0; border-top: 1px solid var(--line); }
.purpose-number { font-size: 12px; color: var(--muted); }
.purpose-row h3 { font-size: clamp(22px,2.3vw,35px); margin: 0; transition: translate .5s var(--ease); }
.purpose-row p { color: var(--ink-soft); font-size: 15px; margin: 0; max-width: 300px; }
.purpose-row > span:last-child { font-size: 28px; color: var(--muted); }
.purpose-row:hover h3 { translate: 6px 0; }
.final-scene { position: relative; isolation: isolate; overflow: clip; text-align: center; padding: 150px 24px; }
.final-aura { position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 50% 70%,#5965b02e,transparent 65%); }
.final-scene h2 { font-size: clamp(60px,8vw,132px); line-height: 1.02; letter-spacing: -.03em; margin: 0; }
.final-scene p:not(.eyebrow) { color: var(--ink-soft); margin: 25px 0; font-size: 18px; }
.site-footer { background: var(--paper-deep); border-top: 1px solid var(--line); color: var(--ink); }
.footer-main { display: flex; justify-content: space-between; gap: 80px; padding-block: 65px; }
.footer-brand p { color: var(--ink-soft); font-size: 16px; letter-spacing: 0; margin: 16px 0; }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.footer-links a { color: var(--muted); font-size: 13px; }
.footer-label { color: var(--ink); font-size: 13px; letter-spacing: 0; font-weight: 600; text-transform: none; }
.footer-bottom { color: var(--muted); padding-block: 23px; border-top: 1px solid var(--line); font-size: 10px; }
.preview-notice { background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 12px 50px #0004; }
/* Feature cards and the native, focus-trapped detail sheet. */
.features-section { padding-block: 100px; }
.feature-card { flex: 0 0 clamp(310px,28vw,430px); min-height: 560px; position: relative; overflow: hidden; border-radius: 28px; scroll-snap-align: start; background: #171b24; color: #f5f5f7; isolation: isolate; }
.feature-card-copy { position: relative; z-index: 2; padding: 30px; }
.feature-card-copy p { font-size: 13px; font-weight: 600; margin: 0 0 12px; color: #d0d3dc; }
.feature-card-copy h3 { font-size: 28px; line-height: 1.13; letter-spacing: -.02em; margin: 0; }
.feature-photo { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; transition: scale 1.5s var(--ease); }
.feature-card::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,#0001 50%,#000b 100%); }
.feature-card:hover .feature-photo { scale: 1.045; }
.feature-fabric .feature-photo { width: 180%; height: 125%; max-width: none; left: -40%; top: 5%; object-fit: cover; }
.feature-dtg .feature-photo { object-position: 75% center; }
.feature-print .feature-photo { width: 195%; max-width: none; height: 150%; left: -45%; top: 5%; }
.feature-fit { background: linear-gradient(160deg,#466e8b,#172636); }
.feature-fit .feature-photo { width: 125%; max-width: none; height: auto; left: -12%; top: 25%; }
.feature-care { background: linear-gradient(160deg,#5f5174,#242136); }
.feature-care .feature-photo { width: 125%; height: auto; max-width: none; top: 30%; left: -12%; }
.feature-plus { position: absolute; bottom: 21px; right: 21px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f5f5f7; color: #171820; display: grid; place-items: center; font-size: 26px; cursor: pointer; transition: rotate .4s ease,scale .4s ease; }
.feature-plus:hover { rotate: 90deg; scale: 1.08; }
.feature-dialog { color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 30px; padding: 60px; width: min(1000px,calc(100% - 40px)); max-height: calc(100svh - 60px); overflow-y: auto; box-shadow: 0 30px 120px #0008; }
.feature-dialog[open] { animation: dialog-enter .4s var(--ease); }
.feature-dialog::backdrop { background: #090b126e; backdrop-filter: blur(16px); }
.feature-dialog h2 { font-size: clamp(32px,4vw,52px); margin: 0 45px 30px 0; }
.feature-dialog .eyebrow { margin-bottom: 12px; }
.dialog-close { position: sticky; top: 0; float: right; margin: -35px -35px 0 0; z-index: 5; width: 35px; height: 35px; border: 0; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: 23px; cursor: pointer; }
.feature-detail-block { background: var(--surface); border-radius: 24px; padding: 38px; margin-top: 20px; overflow: hidden; }
.feature-detail-block p { color: var(--ink-soft); font-size: 18px; line-height: 1.6; margin: 0 0 16px; }
.feature-detail-block p:last-child { margin-bottom: 0; }
.feature-detail-block strong { color: var(--ink); }
.feature-detail-photo { width: 100%; max-height: 500px; object-fit: contain; margin-top: 30px; }
.feature-detail-photo.studio { object-fit: cover; border-radius: 18px; }
.modal-open { overflow: hidden; }
/* Product page: a product story, then the buy panel. */
.product-detail-section { width: 100%; padding: 0; }
.product-subnav { position: sticky; z-index: 20; top: 68px; width: min(1040px,calc(100% - 40px)); margin: 18px auto 0; display: flex; align-items: center; justify-content: space-between; padding: 11px 20px; background: var(--glass); border: 1px solid var(--line); border-radius: 20px; backdrop-filter: blur(22px); }
.product-subnav strong { font-size: 17px; font-weight: 650; }
.product-subnav > div { display: flex; gap: 20px; align-items: center; }
.product-subnav a { font-size: 12px; }
.product-subnav .button { min-height: 32px; padding-inline: 15px; }
.product-cinematic { text-align: center; position: relative; padding: 72px 20px 60px; overflow: clip; }
.product-cinematic-copy h1 { font-size: clamp(68px,10vw,154px); line-height: 1.02; letter-spacing: -.035em; margin: 0; }
.product-cinematic-copy > p:last-child { color: var(--ink-soft); font-size: 19px; max-width: 520px; margin: 25px auto 0; }
.product-cinematic-image { position: relative; height: min(66vw,770px); max-width: 1200px; margin: 20px auto; }
.product-cinematic-image .product-render { width: min(70vw,800px); left: 50%; top: 0; transform: translateX(-50%); filter: drop-shadow(0 40px 40px #0005); }
.product-halo { position: absolute; inset: 5% 0; background: radial-gradient(ellipse,#475c9d30,transparent 68%); }
.product-statement { text-align: center; padding-inline: 24px; }
.product-statement h2 { font-size: clamp(40px,5vw,76px); margin: 0; letter-spacing: -.025em; }
.product-statement > p:last-child { font-size: 20px; max-width: 620px; margin: 32px auto 0; color: var(--ink-soft); }
.product-detail-layout { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: clamp(35px,6vw,100px); }
.product-gallery-main { min-height: 0; aspect-ratio: 1/1.1; }
.product-gallery-main .product-render { width: 100%; left: 0; top: 5%; }
.product-gallery-main.is-zoomed .product-render { transform: scale(1.8); }
.gallery-zoom { position: absolute; right: 22px; bottom: 22px; z-index: 4; background: #f5f5f7; color: #171820; font-size: 23px; }
.gallery-caption { font-size: 10px; letter-spacing: .04em; color: var(--muted); margin-top: 15px; }
.product-buy h2 { font-size: clamp(40px,4.5vw,64px); margin: 0; letter-spacing: -.025em; }
.product-buy .eyebrow { font-size: 10px; }
.product-price { color: var(--ink); font-size: 24px; margin-top: 23px; }
.product-price small { color: var(--muted); font-size: 11px; margin-left: 12px; }
.product-description, .product-handoff, .sample-disclaimer { color: var(--ink-soft); font-size: 15px; letter-spacing: 0; }
.sample-disclaimer { color: var(--muted); font-size: 11px; }
.garment-color { display: flex; align-items: center; gap: 10px; margin-block: 26px; font-size: 14px; }
.color-dot { width: 18px; height: 18px; border-radius: 50%; border: 1px solid #ffffff35; background: #35353a; }
.color-dot.wave { background: #fff; border-color: #aaa; }.color-dot.flower { background: #b7a5cb; }
.choice-group { border: 0; padding: 0; margin: 30px 0; }
.choice-group legend { color: var(--ink); font-size: 14px; margin-bottom: 15px; }
.choice-group legend .text-link { color: var(--muted); font-size: 12px; margin-left: 30px; }
.size-option { background: var(--paper-deep); color: var(--ink); border-color: var(--line); border-radius: 10px; min-width: 55px; min-height: 48px; }
.size-option[aria-pressed="true"] { color: white; background: var(--pink); border-color: var(--pink); }
.buy-actions { flex-wrap: wrap; }.buy-actions input { color: var(--ink); background: var(--surface); border-color: var(--line); border-radius: 10px; width: 64px; }
.product-details-lower { display: none; }
/* Supporting pages share the same visual language. */
.subpage-hero h1, .info-page h1, .empty-cart h1, .cart-title-row h1 { letter-spacing: -.025em; font-size: clamp(44px,6vw,86px); line-height: 1.06; }
.subpage-hero p:not(.eyebrow), .info-page .lede { color: var(--ink-soft); font-size: 18px; letter-spacing: 0; }
.subpage-hero { padding-block: 55px 50px; }.shop-page { padding-bottom: 100px; }
.breadcrumbs { color: var(--muted); letter-spacing: 0; }.breadcrumbs a { color: var(--ink-soft); }
.catalog-grid { gap: 30px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.shop-toolbar { color: var(--ink-soft); border-color: var(--line); }.shop-search input { color: var(--ink); }
.shop-search { background: var(--surface); border: 1px solid var(--line); border-radius: 100px; }
.shop-sort select { background: var(--surface); color: var(--ink); border-color: var(--line); }
.filter-chip { background: var(--surface); color: var(--ink-soft); border-color: var(--line); border-radius: 100px; }
.filter-chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.info-page p, .info-page li, .info-page label { color: var(--ink-soft); letter-spacing: 0; }
.info-page h2 { color: var(--ink); letter-spacing: -.02em; }.info-page a.button { color: white; }
.info-page .text-link { color: var(--ink); }.info-page .form-note { color: var(--muted); font-size: 12px; }
.contact-form input, .contact-form textarea { background: var(--surface); color: var(--ink); border-color: var(--line); border-radius: 12px; }
.draft-notice, .policy-block, .custom-preview, .cart-summary, .checkout-panel { background: var(--surface); color: var(--ink-soft); border-color: var(--line); border-radius: 20px; }
.cart-thumb { width: 120px; aspect-ratio: 1; }.cart-thumb .product-render { top: 0; }
.cart-line-copy p,.summary-note,.cart-sample,.cart-title-row > span { color: var(--muted); }
.cart-line,.summary-row { border-color: var(--line); }.cart-line h2 { color: var(--ink); letter-spacing: -.02em; }
.cart-line select { background: var(--surface); color: var(--ink); border-color: var(--line); }.remove-item { color: var(--muted); }
.custom-landing { padding-top: 65px; }.custom-landing-copy { padding-inline: var(--gutter); text-align: center; }
.custom-landing-copy h1 { font-size: clamp(48px,7vw,106px); margin: 0; letter-spacing: -.03em; }
.custom-landing-copy > p:not(.eyebrow) { color: var(--ink-soft); font-size: 19px; max-width: 620px; margin: 28px auto; }
.custom-landing-visual { width: 100%; max-height: 850px; overflow: hidden; margin-top: 60px; }
.custom-landing-visual img { width: 100%; max-height: 850px; object-fit: cover; }
.custom-next { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 80px; padding-inline: var(--gutter); }
.custom-next h2 { font-size: clamp(36px,4vw,58px); margin: 0 0 25px; }.custom-next p { color: var(--ink-soft); max-width: 450px; }
.custom-next ol { padding: 0; list-style: none; margin: 0; counter-reset: custom-step; }
.custom-next li { padding: 25px 0; border-top: 1px solid var(--line); counter-increment: custom-step; }
.custom-next li::before { content: '0' counter(custom-step); color: var(--muted); font-size: 12px; }.custom-next h3 { font-size: 25px; margin: 10px 0; }.custom-next li p { font-size: 15px; }
.integration-status { display: inline-flex; gap: 8px; font-size: 11px; color: var(--muted); align-items: center; padding-top: 22px; }
.integration-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #acb0bb; }
.catalog-image { min-height: 0; height: auto; }
.catalog-image::before { background: none; }
.catalog-open { background: #1217259c; padding: 12px 16px; border-radius: 12px; backdrop-filter: blur(16px); }
.sample-disclaimer { background: var(--surface); border-radius: 12px; }
.catalog-card-copy h2 { font-family: inherit; }
.cart-summary h2, .info-card h2, .policy-block h2 { letter-spacing: -.02em; }
.catalog-card-copy small { text-align: inherit; }
.footer-brand > p { color: var(--ink-soft); font-size: 15px; letter-spacing: 0; text-transform: none; margin: 16px 0; }
.shop-search { padding-inline: 15px; }.sort-select { color: var(--muted); }.sort-select select { border-radius: 9px; }
.info-card,.checkout-status { background: var(--surface); border-radius: 20px; color: var(--ink-soft); }
.info-card p,.checkout-status p,.checkout-status ol { color: var(--ink-soft); }
.reveal { opacity: 1; transform: none; }
.js .reveal:not(.is-visible) { opacity: 0; transform: translateY(34px); }
.js .reveal { transition: opacity .9s var(--ease),transform 1.1s var(--ease); }
@keyframes shirt-enter { from { opacity: 0; transform: translateY(85px) scale(.9) rotate(5deg); } to { opacity: 1; transform: translateY(12px); } }
@keyframes shirt-left-enter { from { opacity: 0; transform: translateX(90px) translateY(90px) rotate(0deg); } to { opacity: 1; transform: rotate(-13deg); } }
@keyframes shirt-right-enter { from { opacity: 0; transform: translateX(-90px) translateY(90px) rotate(0deg); } to { opacity: 1; transform: rotate(12deg); } }
@keyframes scroll-hint { 0%,100% { translate: 0 -2px; } 50% { translate: 0 4px; } }
@keyframes dialog-enter { from { opacity: 0; transform: translateY(24px) scale(.97); } to { opacity: 1; transform: none; } }
@media (min-width:1700px) { .flagship { min-height: 1120px; }.hero-products { margin-top: 0; } }
@media (max-width:1100px) {
  .main-nav { gap: 20px; }.header-inner { gap: 20px; }.brand-horizontal > span { font-size: 21px; }
  .flagship { min-height: 850px; }.hero-products { height: 450px; margin-top: 15px; }
  .journey-sticky { min-height: 670px; }.journey-heading h2 { font-size: 54px; }
  .purpose-row { grid-template-columns: 35px 1.2fr 1fr 25px; gap: 20px; }
  .feature-card { min-height: 500px; }.catalog-card-copy { flex-direction: column; gap: 16px; }.catalog-card-copy strong { text-align: left; }
}
@media (max-width:760px) {
  :root { --gutter: 24px; }html { scroll-padding-top: 80px; }
  .header-inner { min-height: 68px; width: calc(100% - 32px); gap: 10px; }.brand-horizontal img { width: 38px; height: 30px; }.brand-horizontal > span { font-size: 20px; }.header-actions { gap: 7px; }
  .menu-toggle { display: grid; }.main-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--paper); border-bottom: 1px solid var(--line); padding: 26px; flex-direction: column; align-items: stretch; gap: 8px; opacity: 1; pointer-events: auto; transform: none; box-shadow: none; }.main-nav.is-open { display: flex; }.main-nav a { padding: 13px 0; font-size: 17px; }
  .flagship { min-height: 0; padding: 54px 20px 25px; }.flagship-copy h1 { font-size: clamp(40px,8.7vw,64px); }.flagship-copy .eyebrow { font-size: 10px; }.flagship-copy > p:not(.eyebrow) { font-size: 16px; }
  .hero-actions { gap: 18px; }.hero-actions .button { min-height: 44px; padding: 0 17px; font-size: 12px; }.hero-actions .text-link { font-size: 12px; }
  .hero-products { height: 90vw; margin-top: 20px; }.hero-shirt-main { width: 76vw; margin-left: -38vw; top: 15px; }.hero-shirt-left { width: 55vw; margin-left: -52vw; top: 75px; }.hero-shirt-right { width: 55vw; margin-left: -4vw; top: 80px; }
  .flagship-bottom { font-size: 10px; }.flagship-bottom > span:last-child { display: none; }
  .studio-scene { min-height: 650px; height: 85svh; }.studio-copy { right: 24px; }.studio-copy h2 { font-size: 68px; }.studio-copy p:not(.eyebrow) { font-size: 16px; max-width: 320px; }.studio-scrim { background: linear-gradient(90deg,#000b,#0006); }.studio-image img { object-position: 65% center; }
  .print-journey { min-height: 190svh; }.journey-sticky { top: 68px; min-height: 650px; padding: 30px 24px; display: flex; flex-direction: column; align-items: stretch; justify-content: center; }.journey-heading { align-self: stretch; text-align: center; }.journey-heading h2 { font-size: 43px; }.journey-heading .eyebrow { font-size: 9px; margin-bottom: 12px; }
  .journey-stage { height: 36svh; min-height: 220px; width: 100%; margin: 12px 0; }.journey-shirt { height: 110%; }.stage-label { bottom: -4px; font-size: 8px; }.journey-steps { gap: 12px; margin-top: 15px; }.journey-step { padding-top: 12px; }.journey-step span { font-size: 8px; letter-spacing: 0; }.journey-step h3 { font-size: 15px; margin-block: 9px; }.journey-step p { font-size: 11px; }.journey-meter { bottom: 14px; }
  .wide-heading { flex-direction: column; align-items: flex-start; gap: 20px; }.wide-heading h2 { font-size: 36px; }.section-intro { font-size: 16px; }.premium-rail { gap: 16px; }.premium-rail .catalog-card { flex-basis: 82vw; }.catalog-card-copy { flex-direction: row; gap: 15px; }.catalog-card-copy h2 { font-size: 25px; }.catalog-card-copy strong { text-align: right; font-size: 17px; }.card-actions { gap: 20px; }.rail-bottom { margin-top: 22px; gap: 20px; }.rail-bottom .quiet-note { max-width: 220px; font-size: 10px; }
  .feature-card { flex-basis: 82vw; min-height: 530px; }.feature-card-copy { padding: 26px; }.feature-card-copy h3 { font-size: 27px; }.features-section { padding-block: 70px; }
  .feature-dialog { padding: 35px 22px; border-radius: 24px; width: calc(100% - 20px); max-height: calc(100svh - 24px); }.dialog-close { margin: -17px -6px 0 0; }.feature-dialog h2 { font-size: 34px; margin-right: 20px; }.feature-detail-block { padding: 25px; }.feature-detail-block p { font-size: 16px; }
  .purpose-row { grid-template-columns: 26px 1fr 25px; padding-block: 30px; }.purpose-row h3 { font-size: 23px; }.purpose-row p { grid-column: 2; grid-row: 2; font-size: 14px; }.purpose-row > span:last-child { grid-column: 3; grid-row: 1; }.purpose-list { margin-top: 30px; }
  .final-scene { padding-block: 100px; }.final-scene h2 { font-size: 72px; }.final-scene p:not(.eyebrow) { font-size: 16px; }
  .footer-main { flex-direction: column; gap: 40px; }.footer-links { gap: 40px; }.footer-bottom { flex-direction: column; gap: 12px; align-items: flex-start; }
  .product-subnav { margin-top: 12px; top: 68px; }.product-subnav > div { gap: 12px; }.product-subnav > div > a:first-child { display: none; }
  .product-cinematic { padding-top: 60px; }.product-cinematic-copy h1 { font-size: 68px; }.product-cinematic-copy > p:last-child { font-size: 16px; max-width: 320px; }.product-cinematic-image { height: 95vw; margin-top: 30px; }.product-cinematic-image .product-render { width: 105vw; }.product-statement h2 { font-size: 42px; }.product-statement > p:last-child { font-size: 17px; }.product-detail-layout { grid-template-columns: 1fr; gap: 45px; }.product-buy h2 { font-size: 42px; }
  .catalog-grid { grid-template-columns: 1fr; gap: 55px; }.shop-toolbar { gap: 18px; }.subpage-hero { padding-block: 35px; }.custom-landing-copy h1 { font-size: 50px; }.custom-landing-copy > p:not(.eyebrow) { font-size: 17px; }.custom-next { grid-template-columns: 1fr; gap: 45px; }.custom-landing-visual { margin-top: 45px; }.custom-landing-visual img { min-height: 390px; object-fit: cover; object-position: 65% center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }*,*::before,*::after { animation: none !important; transition-duration: .01ms !important; }
  .js .reveal:not(.is-visible) { opacity: 1; transform: none; }.print-journey { min-height: 0; }.journey-sticky { position: relative; top: 0; height: auto; min-height: 760px; }.journey-shirt { transform: none; filter: none; }.journey-step { opacity: 1; }.journey-meter { display: none; }
}

/* Smooth enlargement in both directions; independent scale preserves parallax. */
.catalog-image .catalog-tee.product-render { transition: transform 1.65s cubic-bezier(.22,1,.36,1); }
.catalog-image:hover .catalog-tee.product-render { transform: scale(.94); }
.feature-card .feature-photo, .hero-shirt img { transition: scale 1.65s cubic-bezier(.22,1,.36,1); }
@media (hover: hover) and (pointer: fine) {
  .catalog-image:hover .catalog-tee.product-render, .catalog-image:focus-visible .catalog-tee.product-render { transform: scale(1.055); }
  .feature-card:hover .feature-photo, .feature-card:focus-within .feature-photo { scale: 1.055; }
  .hero-shirt:hover img { scale: 1.045; }
}
.product-gallery-main.is-zoomed .catalog-tee.product-render { transform: scale(1.8); }
[hidden] { display: none !important; }

/* Full-width studio chapters. Static, readable sections are the default. */
.studio-sequence { color: #fff; background: #090a0e; }
.studio-pin { position: relative; }
.studio-panel { position: relative; height: calc(100svh - 68px); min-height: 650px; overflow: hidden; perspective: 1200px; }
.studio-visual { position: absolute; inset: 0; overflow: hidden; transform-origin: center center; }
.studio-photo > img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
.studio-overlay { position: absolute; inset: 0; background: linear-gradient(90deg,#000e,#0009 42%,#0001 90%),linear-gradient(0deg,#0008,transparent 40%); }
.studio-panel .studio-copy { z-index: 4; }
.studio-panel .studio-copy h2 { font-size: clamp(64px,6.8vw,108px); }
.studio-panel .studio-copy p:not(.eyebrow) { color: #d2d4df; }
.studio-brand { background: radial-gradient(ellipse at 76% 50%,#332d52 0%,#141623 46%,#090a0e 85%); }
.studio-team { background: radial-gradient(ellipse at 76% 50%,#20313e 0%,#111922 45%,#090a0e 85%); }
.studio-art { background: radial-gradient(ellipse at 80% 45%,#342e49 0%,#141521 50%,#090a0e 85%); }
.studio-glow { position: absolute; left: 57%; top: 20%; width: 40%; height: 65%; border-radius: 50%; background: radial-gradient(ellipse,#abb6ff24,transparent 70%); }
.studio-visual:not(.studio-photo) > img { position: absolute; object-fit: contain; max-width: none; width: 54vw; height: 90%; left: 46%; top: 4%; filter: drop-shadow(0 40px 40px #0005); }
.studio-team > img.team-shirt-back { width: 40vw; left: 46%; top: -11%; rotate: -13deg; }
.studio-team > img.team-shirt-mid { width: 40vw; left: 67%; top: -6%; rotate: 12deg; }
.studio-team > img.team-shirt-front { width: 42vw; left: 54%; top: 17%; rotate: -3deg; }
.studio-art > img.art-shirt-back { width: 42vw; left: 61%; top: -10%; rotate: 12deg; }
.studio-art > img.art-shirt-front { width: 47vw; left: 45%; top: 15%; rotate: -12deg; }
.studio-navigation { display: none; }
.studio-is-pinned .studio-pin { height: calc(100svh - 68px); overflow: hidden; }
.studio-is-pinned .studio-panel { position: absolute; inset: 0; height: 100%; min-height: 0; overflow: visible; pointer-events: none; }
.studio-is-pinned .studio-copy { pointer-events: auto; }
.studio-is-pinned .studio-navigation { position: absolute; bottom: 0; left: 0; right: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; padding: 26px var(--gutter); background: linear-gradient(0deg,#090a0ef0,transparent); }
.studio-navigation nav { display: flex; gap: clamp(12px,2.4vw,40px); }
.studio-navigation button { border: 0; color: #aaadba; background: none; padding: 12px 0; font: inherit; font-size: 13px; cursor: pointer; transition: color .3s; }
.studio-navigation button span { font-size: 10px; padding-right: 8px; }
.studio-navigation button[aria-current], .studio-navigation button:hover { color: white; }
.studio-continue { font-size: 12px; color: #d2d4df; padding: 12px; }
.studio-progress { position: absolute; left: 0; bottom: 0; right: 0; height: 2px; background: #ffffff19; }
.studio-progress span { display: block; height: 100%; background: #e61c5d; transform: scaleX(0); transform-origin: left; }

/* Customer accounts share the storefront's graphite, type, and cool gradients. */
.account-link { position: relative; }
.account-link.is-signed-in::after { content: ''; position: absolute; right: 5px; top: 4px; width: 6px; height: 6px; border-radius: 50%; background: var(--pink); }
.save-tee { color: var(--ink-soft); background: transparent; border: 1px solid var(--line); border-radius: 100px; font: inherit; font-size: 13px; padding: 10px 15px; cursor: pointer; transition: color .3s, border-color .3s, background .3s; }
.save-tee:hover, .save-tee[aria-pressed="true"] { color: var(--pink); border-color: var(--pink); }
.save-tee:disabled, .account-page button:disabled { opacity: .55; cursor: wait; }
.product-save { margin-top: 22px; }
.account-intro { text-align: center; padding: 70px var(--gutter) 45px; }
.account-intro h1 { font-size: clamp(48px,6.5vw,90px); letter-spacing: -.03em; line-height: 1.04; margin: 0; }
.account-intro > p:last-child { color: var(--ink-soft); font-size: 18px; margin-top: 25px; }
.account-loading { text-align: center; color: var(--ink-soft); padding: 25px; }
.account-access { display: grid; grid-template-columns: 1fr 1fr; max-width: 1080px; margin: 15px auto 110px; border: 1px solid var(--line); border-radius: 30px; overflow: hidden; background: var(--surface); }
.account-art { background: radial-gradient(ellipse at center,#3f3652,#121420 75%); position: relative; min-height: 670px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; }
.account-art img { width: 110%; max-width: none; filter: drop-shadow(0 25px 25px #0006); rotate: -7deg; }
.account-art span { position: absolute; left: 0; right: 0; text-align: center; bottom: 40px; font-size: 17px; }
.account-form-panel { padding: 42px; }
.account-form-panel h2, .account-settings-card h2 { font-size: 33px; margin: 0 0 12px; letter-spacing: -.02em; }
.account-form-panel > p, .account-welcome p, .account-order-note p { color: var(--ink-soft); }
.account-tabs { display: flex; border-bottom: 1px solid var(--line); margin: 30px 0; gap: 25px; }
.account-tabs button { border: 0; border-bottom: 2px solid transparent; padding: 12px 0; color: var(--muted); background: none; font: inherit; font-size: 14px; cursor: pointer; }
.account-tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--pink); }
.account-page form { display: grid; gap: 19px; }
.account-page label { display: grid; gap: 9px; font-size: 13px; font-weight: 500; color: var(--ink-soft); }
.account-page input { width: 100%; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 14px; color: var(--ink); font: inherit; font-size: 15px; min-height: 48px; }
.account-page input:focus { outline: 2px solid var(--pink); outline-offset: 2px; }
.account-page input[readonly] { opacity: .65; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 68px; }
.password-field button { position: absolute; top: 0; right: 5px; height: 100%; padding: 10px; color: var(--ink-soft); border: 0; background: none; font: inherit; font-size: 12px; cursor: pointer; }
.account-page .field-hint { font-size: 12px; color: var(--muted); line-height: 1.5; margin: -8px 0 0; }
.account-message { font-size: 13px; color: var(--pink); margin: 0; min-height: 0; line-height: 1.5; }
.account-message:empty { display: none; }
.account-message.is-success { color: var(--ink-soft); }
.account-page form .button { justify-self: start; margin-top: 4px; }
.account-dashboard { max-width: 1360px; margin: 20px auto 100px; padding: 0 var(--gutter); }
.account-welcome { display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--line); padding-bottom: 40px; }
.account-welcome h2 { font-size: clamp(28px,3.5vw,48px); letter-spacing: -.025em; margin: 0; overflow-wrap: anywhere; }
.account-welcome p { margin-bottom: 0; }
.account-saved { margin: 70px 0; }
.account-saved .wide-heading { padding: 0; }
.account-saved .wide-heading h2 { font-size: 36px; }
.account-saved-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 35px; }
.account-empty { border: 1px solid var(--line); border-radius: 24px; padding: 45px 25px; text-align: center; margin-top: 30px; background: var(--surface); }
.account-empty > span { font-size: 42px; color: var(--muted); }
.account-empty h3 { font-size: 26px; margin: 12px 0; letter-spacing: -.02em; }
.account-empty p { color: var(--ink-soft); margin-bottom: 25px; }
.account-settings { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.account-settings-card { background: var(--surface); border: 1px solid var(--line); border-radius: 24px; padding: 35px; }
.account-settings-card h2 { margin-bottom: 30px; }
.account-order-note { margin-top: 40px; border-top: 1px solid var(--line); padding-top: 30px; }
.account-order-note h3 { font-size: 23px; letter-spacing: -.02em; }
.account-order-note p { max-width: 650px; }
@media (max-width:1023px) {
  .studio-panel { height: auto; min-height: 800px; }
  .studio-panel .studio-copy { left: var(--gutter); right: var(--gutter); top: 65px; translate: none; }
  .studio-panel .studio-copy h2 { font-size: 64px; }
  .studio-panel .studio-copy p:not(.eyebrow) { max-width: 420px; margin: 22px 0; }
  .studio-visual:not(.studio-photo) > img { width: 66vw; height: 60%; top: 42%; left: 32%; }
  .studio-team > img.team-shirt-back { width: 55vw; left: 12%; top: 40%; }
  .studio-team > img.team-shirt-mid { width: 55vw; left: 49%; top: 42%; }
  .studio-team > img.team-shirt-front { width: 58vw; left: 29%; top: 55%; }
  .studio-art > img.art-shirt-back { width: 60vw; left: 42%; top: 43%; }
  .studio-art > img.art-shirt-front { width: 64vw; left: 12%; top: 53%; }
  .account-access { margin-inline: 24px; }
  .account-art { min-height: 0; }
  .account-form-panel { padding: 30px; }
  .account-saved-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .header-actions { gap: 2px; }.header-actions .icon-button { width: 32px; height: 36px; }.brand-horizontal > span { font-size: 18px; }.brand-horizontal img { width: 32px; }
  .studio-panel { min-height: 760px; }
  .studio-panel .studio-copy h2 { font-size: clamp(44px,10.5vw,64px); }
  .studio-panel .studio-copy .eyebrow { font-size: 9px; }
  .studio-panel .studio-copy p:not(.eyebrow) { font-size: 16px; }
  .studio-photo > img { object-position: 68% center; }
  .studio-overlay { background: linear-gradient(180deg,#000c,#0005),linear-gradient(90deg,#0007,transparent); }
  .studio-visual:not(.studio-photo) > img { width: 95vw; height: 54%; left: 5%; top: 48%; }
  .studio-team > img.team-shirt-back { width: 72vw; left: -9%; top: 40%; }
  .studio-team > img.team-shirt-mid { width: 72vw; left: 39%; top: 43%; }
  .studio-team > img.team-shirt-front { width: 82vw; left: 8%; top: 57%; }
  .studio-art > img.art-shirt-back { width: 77vw; left: 29%; top: 44%; }
  .studio-art > img.art-shirt-front { width: 86vw; left: -6%; top: 58%; }
  .account-intro { padding-top: 45px; }.account-intro > p:last-child { font-size: 16px; }
  .account-access { grid-template-columns: 1fr; margin-bottom: 70px; }
  .account-art { display: none; }.account-form-panel { padding: 28px; }
  .account-welcome { flex-direction: column; align-items: flex-start; }
  .account-settings, .account-saved-grid { grid-template-columns: 1fr; }
  .account-settings-card { padding: 25px; }.account-saved { margin-top: 45px; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-image .catalog-tee.product-render, .feature-card .feature-photo, .hero-shirt img { transition: none; }
}
@media (max-width:380px) {
  .header-inner { gap: 6px; }.brand-horizontal { gap: 7px; }.brand-horizontal > span { font-size: 16px; }.brand-horizontal img { width: 28px; }
}

/* A restrained ripple through the fabric, with no surrounding rings. */
.product-cinematic-image { --shirt-display-width: min(70vw,800px); isolation: isolate; }
.product-cinematic-image > .product-render { z-index: 1; }
.product-ripple-canvas { position: absolute; top: 0; left: 50%; width: var(--shirt-display-width); aspect-ratio: 1; height: auto; transform: translateX(-50%); pointer-events: none; z-index: 2; opacity: 0; filter: drop-shadow(0 40px 40px #0005); }
.ripple-rendering > .product-render { opacity: 0; }
.ripple-rendering > .product-ripple-canvas { opacity: 1; }
@media (max-width:760px) { .product-cinematic-image { --shirt-display-width: 105vw; } }
@media (prefers-reduced-motion: reduce) {
  .product-ripple-canvas { display: none; }
  .ripple-rendering > .product-render { opacity: 1; }
}

/* Compact product selection from the persistent Add to cart button. */
.quick-cart-dialog { width: min(440px,calc(100% - 32px)); max-height: calc(100svh - 32px); margin: auto; padding: 28px; border: 1px solid var(--line); border-radius: 26px; background: var(--surface); color: var(--ink); box-shadow: 0 30px 100px #0005; overflow-y: auto; }
.quick-cart-dialog[open] { animation: quick-cart-enter .45s cubic-bezier(.22,1,.36,1) both; }
.quick-cart-dialog::backdrop { background: #0007; backdrop-filter: blur(8px); }
.quick-cart-close { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--paper); color: var(--ink-soft); font: inherit; font-size: 23px; line-height: 1; cursor: pointer; transition: background .25s,color .25s; }
.quick-cart-close:hover { color: var(--ink); background: var(--line); }
.quick-cart-product { display: grid; grid-template-columns: 102px 1fr; gap: 15px; align-items: center; margin: 10px 0 24px; }
.quick-cart-product img { width: 102px; height: 102px; object-fit: contain; border-radius: 16px; background: radial-gradient(ellipse,#68739a20,transparent); }
.quick-cart-product .eyebrow { font-size: 9px; margin: 0 0 8px; }
.quick-cart-product h2 { font-size: 27px; line-height: 1.08; letter-spacing: -.025em; margin: 0 0 10px; }
.quick-cart-product p:last-child { margin: 0; font-size: 15px; color: var(--ink-soft); }
.quick-cart-product p:last-child span { display: block; font-size: 11px; color: var(--muted); margin-top: 4px; }
.quick-cart-sizes { border: 0; padding: 0; margin: 0 0 22px; }
.quick-cart-sizes legend { font-size: 13px; color: var(--ink-soft); margin-bottom: 12px; }
.quick-cart-sizes .size-options { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.quick-cart-sizes .size-option { width: 100%; min-width: 0; height: 46px; padding: 0; border-radius: 12px; }
.quick-cart-options { display: grid; grid-template-columns: 1fr 100px; gap: 14px; margin-bottom: 22px; }
.quick-cart-options label { display: grid; gap: 9px; color: var(--ink-soft); font-size: 13px; }
.quick-cart-options select { min-width: 0; width: 100%; height: 46px; padding: 0 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 12px; font: inherit; font-size: 14px; }
.quick-cart-total { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding: 18px 0; font-size: 14px; }
.quick-cart-total strong { font-size: 24px; letter-spacing: -.02em; }
.quick-cart-submit { width: 100%; justify-content: center; }
.quick-cart-error { font-size: 12px; color: var(--pink); line-height: 1.5; margin: 0 0 12px; }
.quick-cart-error:empty { display: none; }
.quick-cart-note { font-size: 10px; line-height: 1.5; text-align: center; color: var(--muted); margin: 14px 0 0; }
@keyframes quick-cart-enter { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width:380px) { .quick-cart-dialog { padding: 24px 20px; }.quick-cart-product { grid-template-columns: 82px 1fr; gap: 12px; }.quick-cart-product img { width: 82px; height: 82px; }.quick-cart-product h2 { font-size: 24px; } }

.ripple-interactive > .product-render { cursor: pointer; }
.ripple-interactive > .product-render:focus-visible { outline: 2px solid var(--pink); outline-offset: 6px; border-radius: 18px; }

/* Product photographs occupy an editorial composition, with shared positions. */
.product-detail-layout { align-items: start; gap: clamp(32px,4vw,72px); }
.product-detail-layout .product-buy { position: sticky; top: 150px; padding-top: 64px; }
.product-media-gallery, .product-media-dialog { --gallery-top: #626b86; --gallery-bottom: #25283b; }
.product-media-gallery { position: relative; top: auto; min-width: 0; }
[data-gallery-tone="flower"] { --gallery-top: #a399b6; --gallery-bottom: #423752; }
[data-gallery-tone="wave"] { --gallery-top: #9daec4; --gallery-bottom: #334158; }
[data-gallery-tone="sun"] { --gallery-top: #696d82; --gallery-bottom: #222633; }
.media-gallery-heading { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 9px; letter-spacing: .05em; padding: 0 4px 16px; }
.product-media-gallery .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.media-composition { position: relative; width: 100%; aspect-ratio: .92; isolation: isolate; }
.gallery-media-card { position: absolute; border: 0; padding: 0; background: transparent; color: white; font: inherit; cursor: pointer; transform-origin: 0 0; }
.gallery-media-card[data-slot="0"] { left: 8%; top: 12%; width: 83%; height: 76%; z-index: 8; --photo-angle: -1deg; }
.gallery-media-card[data-slot="1"] { left: 73%; top: 0; width: 26%; height: 25%; z-index: 4; --photo-angle: 3deg; }
.gallery-media-card[data-slot="2"] { left: 0; top: 76%; width: 31%; height: 24%; z-index: 4; --photo-angle: -4deg; }
.gallery-photo { position: absolute; inset: 0; display: block; border-radius: 25px; overflow: hidden; background: linear-gradient(150deg,var(--gallery-top),var(--gallery-bottom)); border: 1px solid #ffffff1c; box-shadow: 0 20px 40px #0003,0 2px 5px #0002; rotate: var(--photo-angle,0deg); transition: rotate .95s cubic-bezier(.22,1,.36,1),translate .8s cubic-bezier(.22,1,.36,1),box-shadow .8s; }
.gallery-media-card:not([data-slot="0"]) .gallery-photo { border-radius: 18px; }
.media-visual { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 50% 25%,#ffffff15,transparent 60%),linear-gradient(150deg,var(--gallery-top),var(--gallery-bottom)); }
.media-visual .media-image { width: 100%; height: 100%; max-width: none; position: absolute; inset: 0; transform: translate(var(--media-pan-x,0%),var(--media-pan-y,0%)) scale(var(--media-scale,1)); transform-origin: center; }
.gallery-media-card[data-slot="0"] .media-image { filter: drop-shadow(0 20px 20px #0003); }
.gallery-photo-copy { position: absolute; bottom: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 38px 22px 20px; background: linear-gradient(0deg,#0009,transparent); text-align: left; }
.gallery-photo-copy strong { font-weight: 500; font-size: 16px; letter-spacing: -.01em; }
.gallery-photo-action { display: grid; place-items: center; flex-shrink: 0; width: 30px; height: 30px; border: 1px solid #ffffff70; border-radius: 50%; font-size: 18px; background: #0002; }
.gallery-media-card:not([data-slot="0"]) .gallery-photo-copy { padding: 28px 13px 12px; }
.gallery-media-card:not([data-slot="0"]) .gallery-photo-copy strong { font-size: 11px; }
.gallery-media-card:not([data-slot="0"]) .gallery-photo-action { width: 22px; height: 22px; font-size: 14px; }
.gallery-media-card[data-slot="1"] .gallery-photo-copy { top: 0; bottom: auto; padding-top: 12px; padding-bottom: 28px; background: linear-gradient(180deg,#0008,transparent); }
.gallery-media-card:focus-visible { outline: none; }
.gallery-media-card:focus-visible .gallery-photo { outline: 2px solid var(--pink); outline-offset: 4px; }
@media (hover:hover) and (pointer:fine) {
  .gallery-media-card:hover .gallery-photo { translate: 0 -6px; box-shadow: 0 28px 48px #0004,0 2px 5px #0002; }
}
.media-gallery-caption { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 4px 0; }
.media-gallery-caption > div { display: grid; gap: 7px; }
.media-gallery-caption strong { font-size: 14px; font-weight: 500; color: var(--ink-soft); }
.media-gallery-caption > div > span { color: var(--muted); font-size: 9px; letter-spacing: .02em; }
.media-active-count { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.media-extra { margin-top: 24px; min-width: 0; }
.media-extra-heading { display: flex; justify-content: space-between; gap: 12px; padding: 0 4px 10px; font-size: 9px; letter-spacing: .04em; color: var(--muted); }
.media-thumbnail-rail { display: flex; gap: 10px; overflow-x: auto; padding: 4px 4px 12px; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.media-thumbnail { position: relative; flex: 0 0 98px; height: 92px; border: 1px solid var(--line); border-radius: 15px; overflow: hidden; padding: 0; font: inherit; background: var(--surface); color: white; cursor: pointer; transition: border-color .3s,box-shadow .3s; }
.media-thumbnail .media-visual { transition: scale 1.2s cubic-bezier(.22,1,.36,1); }
.media-thumbnail-number { position: absolute; left: 8px; top: 7px; padding: 3px 5px; border-radius: 6px; background: #0005; font-size: 8px; font-variant-numeric: tabular-nums; }
.media-thumbnail-name { position: absolute; inset: auto 0 0; padding: 22px 8px 8px; background: linear-gradient(transparent,#0009); font-size: 9px; text-align: left; line-height: 1.2; }
.media-thumbnail .media-play-mark { width: 28px; height: 28px; font-size: 10px; }
.media-thumbnail[aria-pressed="true"], .media-thumbnail:focus-visible { outline: 2px solid var(--pink); outline-offset: 2px; }
.media-gallery-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin-top: 16px; }
.media-style-toggle { padding: 12px 0; border: 0; color: var(--muted); background: none; font: inherit; font-size: 12px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line); transition: color .3s,text-decoration-color .3s; }
.media-style-toggle:hover { color: var(--ink); text-decoration-color: var(--ink-soft); }
.media-style-toggle:focus-visible, .media-view-all:focus-visible { outline: 2px solid var(--pink); outline-offset: 4px; }
@media (hover:hover) { .media-thumbnail:hover .media-visual { scale: 1.07; }.media-thumbnail:hover { border-color: var(--ink-soft); } }
/* The conventional layout keeps the same selection and media collection. */
.product-media-gallery[data-gallery-style="traditional"] .media-composition { aspect-ratio: .92; }
.product-media-gallery[data-gallery-style="traditional"] .gallery-media-card { inset: 0; width: 100%; height: 100%; --photo-angle: 0deg; }
.product-media-gallery[data-gallery-style="traditional"] .gallery-photo { rotate: 0deg; translate: none; }
.media-view-all { font: inherit; font-size: 12px; border: 1px solid var(--line); border-radius: 100px; padding: 10px 14px; background: var(--surface); color: var(--ink-soft); cursor: pointer; white-space: nowrap; transition: color .25s,border-color .25s; }
.media-view-all:hover { color: var(--ink); border-color: var(--ink-soft); }
.media-play-mark { position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #fff8; border-radius: 50%; color: white; background: #0005; backdrop-filter: blur(10px); font-size: 16px; padding-left: 3px; }
.media-visual video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #090a0e; }

/* An expanded image view and a full editorial layout share one native dialog. */
.product-media-dialog { width: calc(100% - 32px); max-width: 1600px; height: calc(100svh - 32px); max-height: none; margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 28px; color: var(--ink); background: var(--paper); overflow: hidden; box-shadow: 0 30px 100px #0008; }
.product-media-dialog[open] { display: flex; flex-direction: column; animation: media-dialog-arrive .35s ease-out both; }
.product-media-dialog::backdrop { background: #000a; backdrop-filter: blur(14px); }
.media-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-shrink: 0; padding: 24px 30px 16px; }
.media-dialog-header .eyebrow { font-size: 9px; margin: 0 0 7px; }
.media-dialog-header h2 { font-size: 24px; letter-spacing: -.02em; line-height: 1.1; margin: 0; }
.media-dialog-actions { display: flex; align-items: center; gap: 10px; }
.media-dialog-actions > button { border: 1px solid var(--line); background: var(--surface); color: var(--ink-soft); font: inherit; font-size: 12px; padding: 10px 15px; border-radius: 100px; cursor: pointer; }
.media-dialog-actions > .media-dialog-close { width: 38px; height: 38px; padding: 0; font-size: 25px; line-height: 1; display: grid; place-items: center; }
.media-dialog-actions button:hover, .media-dialog-actions button[aria-pressed="true"] { color: var(--ink); border-color: var(--ink-soft); }
.media-dialog-content { flex: 1; min-height: 0; overflow: auto; padding: 12px 28px; }
.product-media-dialog[data-view="detail"] .media-dialog-content { display: grid; place-items: center; }
.media-inspect-stage { position: relative; overflow: hidden; border-radius: 20px; width: min(100%,calc(100svh - 220px)); aspect-ratio: 1; max-height: 100%; }
.media-inspect-inner { position: absolute; inset: 0; transform: scale(1); transform-origin: var(--inspect-x,50%) var(--inspect-y,50%); transition: transform .75s cubic-bezier(.22,1,.36,1),transform-origin .12s linear; }
.media-inspect-stage.is-inspecting { cursor: zoom-out; touch-action: none; }
.media-inspect-stage.is-inspecting .media-inspect-inner { transform: scale(2.2); }
.media-opening-clone { position: fixed; inset: auto; z-index: 5; pointer-events: none; transform-origin: 0 0; box-shadow: 0 20px 40px #0004; }
.media-editorial-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-rows: clamp(180px,22vw,300px); gap: 16px; max-width: 1300px; margin: 12px auto 30px; }
.media-editorial-tile { position: relative; padding: 0; border: 0; overflow: hidden; border-radius: 22px; background: var(--surface); grid-column: span 5; color: white; font: inherit; cursor: pointer; text-align: left; }
.media-editorial-tile:first-child { grid-column: span 7; grid-row: span 2; }
.media-editorial-tile:nth-child(4n+4) { grid-column: span 7; }
.media-editorial-tile > span { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(0deg,#000a,transparent); padding: 50px 24px 22px; font-size: 14px; }
.media-editorial-tile .media-visual { transition: scale 1.4s cubic-bezier(.22,1,.36,1); }
@media (hover:hover) { .media-editorial-tile:hover .media-visual { scale: 1.035; } }
.media-dialog-footer { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 18px 30px; border-top: 1px solid var(--line); }
.media-dialog-footer p { margin: 0; font-size: 10px; color: var(--muted); white-space: nowrap; }
.media-dialog-footer nav { display: flex; overflow-x: auto; gap: 20px; }
.media-dialog-footer nav button { flex-shrink: 0; padding: 9px 0; border: 0; border-bottom: 1px solid transparent; background: none; color: var(--muted); font: inherit; font-size: 11px; cursor: pointer; }
.media-dialog-footer nav button[aria-current], .media-dialog-footer nav button:hover { color: var(--ink); border-bottom-color: var(--ink-soft); }
@keyframes media-dialog-arrive { from { opacity: 0; } to { opacity: 1; } }
@media (max-width:1100px) {
  .gallery-photo-copy { padding-inline: 16px; }.gallery-photo-copy strong { font-size: 14px; }
  .gallery-media-card:not([data-slot="0"]) .gallery-photo-copy { padding-inline: 10px; gap: 5px; }
  .gallery-media-card:not([data-slot="0"]) .gallery-photo-copy strong { font-size: 10px; }
}
@media (max-width:760px) {
  .product-detail-layout .product-buy { position: static; padding-top: 0; }
  .media-gallery-heading { padding-bottom: 12px; }
  .gallery-photo { border-radius: 22px; }.gallery-media-card:not([data-slot="0"]) .gallery-photo { border-radius: 15px; }
  .gallery-photo-copy { padding: 28px 14px 14px; }
  .gallery-media-card:not([data-slot="0"]) .gallery-photo-copy strong { font-size: 9px; }
  .gallery-media-card:not([data-slot="0"]) .gallery-photo-action { width: 18px; height: 18px; font-size: 12px; }
  .product-media-dialog { width: calc(100% - 16px); height: calc(100svh - 16px); border-radius: 22px; }
  .media-dialog-header { align-items: flex-start; padding: 20px 18px 12px; gap: 12px; }
  .media-dialog-header h2 { font-size: 20px; }.media-dialog-header .eyebrow { font-size: 8px; }
  .media-dialog-actions { gap: 6px; flex-wrap: wrap; justify-content: flex-end; max-width: 180px; }
  .media-dialog-actions > button { font-size: 10px; padding: 9px 11px; }
  .media-dialog-actions > .media-dialog-close { width: 32px; height: 32px; font-size: 22px; }
  .media-dialog-content { padding: 10px 14px; }
  .media-inspect-stage { width: min(100%,calc(100svh - 245px)); }
  .media-dialog-footer { display: block; padding: 14px 18px; }
  .media-dialog-footer nav { margin-top: 10px; gap: 18px; }
  .media-dialog-footer nav button { font-size: 10px; }
  .media-editorial-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 190px; gap: 12px; }
  .media-editorial-tile, .media-editorial-tile:nth-child(4n+4) { grid-column: span 1; }
  .media-editorial-tile:first-child { grid-column: span 2; grid-row: span 2; }
  .media-editorial-tile > span { font-size: 11px; padding: 35px 14px 14px; }
}

/* Featured collections: an opening cinematic frame, separate from the studio. */
.featured-collections { background: radial-gradient(ellipse at 50% 20%,#6483b010,transparent 65%),var(--paper); padding-bottom: 40px; }
.featured-section-heading { margin: 0 auto 72px; }
.featured-section-heading h2 { margin: 0 0 16px; font-size: clamp(36px,4.3vw,68px); }
.featured-section-heading > p:last-child { margin: 0; color: var(--ink-soft); font-size: clamp(15px,1.3vw,19px); }
.collection-spotlight + .collection-spotlight { margin-top: clamp(80px,10vw,160px); }
.collection-title-row { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); align-items: end; gap: clamp(24px,5vw,90px); margin: 0 auto 40px; }
.collection-title-row .eyebrow { display: flex; align-items: center; gap: 22px; font-size: 10px; margin-bottom: 18px; }
.collection-title-row .eyebrow span { padding-left: 20px; border-left: 1px solid var(--line); }
.collection-title-row h1, .collection-title-row h3 { margin: 0; max-width: 850px; font-size: clamp(42px,5.7vw,92px); font-weight: 650; line-height: 1.03; letter-spacing: -.025em; }
.collection-title-row > p { margin: 0 0 5px; max-width: 380px; color: var(--ink-soft); font-size: clamp(15px,1.4vw,20px); line-height: 1.6; }
.collection-perspective { perspective: 1600px; width: calc(100% - 32px); margin: auto; }
.collection-frame { position: relative; aspect-ratio: 1672/941; width: 100%; overflow: hidden; border-radius: 24px; background: #151619; color: #fff; transform-origin: center; isolation: isolate; }
.collection-picture { display: block; position: absolute; inset: 0; }
.collection-picture img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.collection-shade { position: absolute; inset: 0; background: linear-gradient(90deg,#03040555,transparent 48%),linear-gradient(0deg,#03040580,transparent 18%); pointer-events: none; }
.collection-cinema-copy { position: absolute; top: 29%; left: 5%; width: 38%; max-width: 650px; }
.collection-film-label { font-size: clamp(8px,.7vw,12px); font-weight: 600; letter-spacing: .06em; margin: 0 0 22px; }
.collection-cinema-copy :is(h2,h4) { margin: 0 0 32px; font-size: clamp(30px,4.4vw,80px); line-height: 1.06; font-weight: 650; letter-spacing: -.025em; }
.collection-cinema-copy .button { color: white; }
.collection-film-footer { position: absolute; left: 5%; right: 5%; bottom: 4%; display: flex; justify-content: space-between; gap: 24px; font-size: clamp(8px,.75vw,12px); color: #ffffffcc; }
.collection-breadcrumbs { margin: 45px auto 38px; }
.collection-page .collection-title-row { margin-bottom: 44px; }
.collection-design-story { scroll-margin-top: 100px; }
.collection-design-heading { margin-bottom: 42px; }
.collection-design-heading h2 { margin: 0 0 18px; font-size: clamp(36px,4.5vw,72px); }
.collection-design-heading > p:last-child { color: var(--ink-soft); margin: 0; font-size: 18px; }
.collection-still-life { margin: 0; }
.collection-still-life img { display: block; width: 100%; height: auto; border-radius: 24px; }
.collection-still-life figcaption { color: var(--muted); font-size: 11px; margin-top: 12px; }
.collection-design-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-top: 54px; }
.collection-design-notes article { position: relative; border-top: 1px solid var(--line); padding-top: 28px; }
.collection-design-number { position: absolute; right: 0; top: 26px; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.collection-design-notes .eyebrow { font-size: 10px; margin-bottom: 16px; padding-right: 35px; }
.collection-design-notes h3 { max-width: 510px; margin: 0 0 20px; font-size: clamp(25px,2.4vw,38px); }
.collection-design-notes article > p:last-child { color: var(--ink-soft); max-width: 480px; margin: 0; font-size: 16px; line-height: 1.7; }
.collection-preview-note { color: var(--muted); font-size: 12px; max-width: 680px; margin: 42px 0 0; line-height: 1.7; }
.collection-group-callout { border-top: 1px solid var(--line); padding-block: clamp(60px,7vw,110px); margin: auto; }
.collection-group-callout h2 { margin: 0 0 20px; font-size: clamp(36px,4vw,64px); }
.collection-group-callout > p:not(.eyebrow) { max-width: 500px; color: var(--ink-soft); margin: 0 0 32px; }
.collection-group-callout > .text-link { display: block; width: fit-content; margin-top: 24px; }
@media (min-width:768px) and (max-width:1100px) { .collection-film-label { margin-bottom: 12px; }.collection-cinema-copy :is(h2,h4) { margin-bottom: 22px; }.collection-cinema-copy .button { font-size: 12px; min-height: 44px; padding-inline: 18px; } }
@media (max-width:767px) {
  .featured-section-heading { margin-bottom: 48px; }
  .collection-title-row { grid-template-columns: 1fr; gap: 20px; margin-bottom: 28px; }
  .collection-title-row h1, .collection-title-row h3 { font-size: clamp(38px,9.5vw,66px); max-width: 560px; }
  .collection-title-row > p { max-width: 440px; font-size: 15px; }
  .collection-title-row .eyebrow { font-size: 9px; margin-bottom: 16px; }
  .collection-perspective { width: calc(100% - 24px); }
  .collection-frame { aspect-ratio: 941/1672; }
  .collection-cinema-copy { top: 4%; left: 6%; width: 88%; max-width: none; }
  .collection-film-label { font-size: 8px; margin-bottom: 14px; }
  .collection-cinema-copy :is(h2,h4) { font-size: clamp(29px,8.6vw,54px); margin-bottom: 20px; }
  .collection-cinema-copy .button { font-size: 12px; min-height: 44px; padding-inline: 18px; }
  .collection-film-footer { left: 6%; right: 6%; font-size: 8px; gap: 10px; }
  .collection-shade { background: linear-gradient(180deg,#03040540,transparent 30%),linear-gradient(0deg,#03040555,transparent 14%); }
  .collection-breadcrumbs { margin-top: 28px; font-size: 10px; flex-wrap: wrap; }
  .collection-design-heading > p:last-child { font-size: 16px; }
  .collection-design-notes { grid-template-columns: 1fr; gap: 40px; margin-top: 36px; }
  .collection-still-life img { border-radius: 18px; }
}

/* Editorial curtain: compact collection identity and a direct shopping layout. */
.featured-collections { padding-top: 48px; padding-bottom: 48px; }
.featured-section-heading { margin-bottom: 22px; }
.featured-section-heading h2 { font-size: clamp(34px,4vw,60px); margin: 0; letter-spacing: -.025em; line-height: 1.09; font-weight: 650; }
.collection-perspective { width: min(1600px,calc(100% - var(--gutter) * 2)); perspective: none; }
.collection-frame { height: clamp(360px,32vw,520px); aspect-ratio: auto; background: #141519; }
.collection-media-layer { position: absolute; inset: 0 0 0 35%; overflow: hidden; }
.collection-picture { inset: 0; }.collection-picture img { object-position: right top; }
.collection-curtain-ripple { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; }
.collection-shade { background: linear-gradient(90deg,#141519 25%,#141519ed 36%,#14151966 53%,transparent 73%); }
.collection-cinema-copy { left: 5%; top: 50%; translate: 0 -50%; width: 45%; max-width: 660px; }
.collection-cinema-copy :is(h1,h3) { font-size: clamp(36px,4vw,64px); line-height: 1.06; letter-spacing: -.025em; margin: 0 0 18px; font-weight: 650; }
.collection-film-label { font-size: 10px; margin-bottom: 18px; color: #dddde2; }
.collection-summary { color: #dddde2; font-size: 16px; margin: 0 0 26px; max-width: 370px; }
.collection-count { position: absolute; bottom: 24px; right: 28px; background: #090a0eb3; color: #fff; border: 1px solid #ffffff30; border-radius: 100px; padding: 6px 12px; font-size: 11px; }
.collection-breadcrumbs { margin: 24px auto; }
.collection-shopping-hero .collection-frame { height: clamp(290px,23vw,370px); }
.collection-shopping-hero .collection-cinema-copy :is(h1,h3) { font-size: clamp(32px,3.3vw,52px); }
.collection-shopping-hero .collection-summary { font-size: 14px; margin-bottom: 20px; }
.collection-shop { padding-top: 38px; padding-bottom: 64px; scroll-margin-top: 100px; }
.collection-shop-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; }
.collection-shop-heading h2 { font-size: clamp(24px,2.3vw,36px); margin: 0; }.collection-shop-heading > span { color: var(--muted); font-size: 12px; }
.collection-shop-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; padding: 14px 0; margin-bottom: 24px; border-block: 1px solid var(--line); }
.collection-shop-toolbar label { display: flex; align-items: center; gap: 10px; color: var(--ink-soft); font-size: 13px; }
.collection-shop-toolbar select { background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 10px; padding: 10px; min-height: 42px; max-width: 180px; }
.collection-shop-toolbar > span { margin-left: auto; font-size: 12px; color: var(--muted); }
.collection-products-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px 22px; }
.collection-product-card { min-width: 0; }
.collection-product-photo { display: block; min-height: 0; border-radius: 22px; aspect-ratio: 4/5; }
.collection-product-copy { padding: 16px 2px 0; }.collection-product-copy h3 { font-size: 17px; margin: 0 0 7px; line-height: 1.3; }
.collection-product-copy > p { color: var(--muted); font-size: 12px; margin: 0 0 10px; }.collection-product-copy > strong { font-size: 14px; font-weight: 550; }
.collection-product-copy > .text-link { display: inline-block; font-size: 12px; margin-top: 7px; }
.collection-color-options { display: flex; gap: 3px; margin-top: 9px; flex-wrap: wrap; }
.collection-color-options button { display: grid; place-items: center; width: 32px; height: 32px; border: 0; padding: 4px; border-radius: 50%; background: transparent; cursor: pointer; }
.collection-color-options button > span { width: 15px; height: 15px; border-radius: 50%; background: var(--swatch); border: 1px solid #8888; }
.collection-color-options button[aria-pressed="true"] { outline: 1px solid var(--ink-soft); outline-offset: -4px; }
.collection-no-results { padding: 30px 0; color: var(--muted); }
.collection-editorial { margin: 0 auto 70px; }.collection-editorial-heading h2 { font-size: clamp(28px,3vw,48px); margin: 0 0 28px; }
.collection-editorial-heading .eyebrow { font-size: 10px; margin-bottom: 14px; }
.collection-editorial-media { display: grid; gap: 20px; }.collection-editorial-item { position: relative; aspect-ratio: 1672/941; overflow: hidden; border-radius: 24px; }
.collection-editorial-item .collection-picture img { object-fit: contain; }.collection-video { width: 100%; height: 100%; object-fit: contain; background: #141519; }
.collection-frame.has-video .collection-media-layer { z-index: 3; }.collection-frame.has-video .collection-cinema-copy { width: 30%; z-index: 4; }.collection-frame.has-video .collection-cinema-copy :is(h1,h3) { font-size: clamp(28px,3vw,44px); }
.collection-related { padding: 44px 0 64px; border-top: 1px solid var(--line); }.collection-related h2 { font-size: 30px; margin: 0 0 20px; }.collection-related > a { display: block; margin-top: 12px; width: fit-content; }
.campaign-product-frame { display: block; position: absolute; inset: 0; width: 100% !important; height: 100% !important; border-radius: inherit; overflow: hidden; }
.campaign-product-frame img { position: absolute; left: 50%; width: auto; max-width: none; }
.catalog-image .campaign-product-frame { left: 0 !important; top: 0 !important; transform: none; transition: scale 1.3s var(--ease); }
.catalog-image:hover .campaign-product-frame { transform: none; scale: 1.04; }
.campaign-product-page .product-cinematic-copy h1 { font-size: clamp(44px,5vw,76px); max-width: 1000px; margin: auto; }
.campaign-product-page .product-cinematic-image { width: min(550px,85vw); height: min(690px,106vw); margin-top: 40px; border-radius: 28px; overflow: hidden; }
.campaign-product-page .product-cinematic-image .campaign-product-frame { left: 0; top: 0; transform: none; filter: none; }
.campaign-product-page .product-halo { display: none; }
.button:disabled, .size-option:disabled { opacity: .55; cursor: default; }
.color-dot.teacher-coffee { background: #f5f5f5; border-color: #999; }
@media (max-width:1100px) { .collection-products-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.collection-cinema-copy { width: 48%; }.collection-cinema-copy :is(h1,h3) { font-size: 40px; } }
@media (max-width:767px) {
  .featured-collections { padding-block: 36px; }.featured-section-heading { margin-bottom: 18px; }
  .collection-perspective { width: calc(100% - 32px); }.collection-frame,.collection-shopping-hero .collection-frame { height: 330px; aspect-ratio: auto; }
  .collection-media-layer { left: 43%; }.collection-shade { background: linear-gradient(90deg,#141519 23%,#141519cc 43%,transparent 76%); }
  .collection-cinema-copy { left: 6%; top: 50%; width: 55%; max-width: none; }.collection-cinema-copy :is(h1,h3),.collection-shopping-hero .collection-cinema-copy :is(h1,h3) { font-size: clamp(27px,6.3vw,42px); margin-bottom: 14px; }
  .collection-film-label { font-size: 9px; margin-bottom: 14px; max-width: 180px; }.collection-summary,.collection-shopping-hero .collection-summary { font-size: 12px; margin-bottom: 18px; max-width: 170px; }
  .collection-cinema-copy .button { font-size: 11px; min-height: 44px; padding-inline: 14px; }.collection-count { right: 16px; bottom: 16px; font-size: 10px; }
  .collection-shop { padding-top: 28px; }.collection-shop-toolbar { gap: 12px; }.collection-shop-toolbar label { gap: 6px; font-size: 12px; }.collection-shop-toolbar select { max-width: 146px; font-size: 13px; }
  .collection-shop-toolbar > span { margin-left: 0; width: 100%; }.collection-products-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 14px; }
  .collection-product-photo { border-radius: 16px; }.collection-product-copy h3 { font-size: 14px; }.collection-product-copy > strong { font-size: 12px; }
  .collection-color-options button { width: 44px; height: 44px; }.collection-preview-note { font-size: 11px; }
  .collection-editorial { margin-bottom: 40px; }.collection-editorial-item { border-radius: 16px; }
  .collection-frame.has-video { height: auto; overflow: visible; background: var(--paper); color: var(--ink); }
  .collection-frame.has-video .collection-media-layer { position: relative; inset: auto; height: 240px; border-radius: 20px; overflow: hidden; }
  .collection-frame.has-video .collection-cinema-copy { position: relative; left: auto; top: auto; translate: none; width: 100%; padding: 24px 0 0; }
  .collection-frame.has-video .collection-shade,.collection-frame.has-video .collection-count { display: none; }
  .collection-frame.has-video .collection-film-label,.collection-frame.has-video .collection-summary { color: var(--muted); max-width: none; }
}
@media (prefers-reduced-motion:reduce) { .catalog-image .campaign-product-frame { transition: none; }.collection-curtain-ripple { display: none; } }

/* Keep the header's host in the sticky flow, so its child is not constrained
   to the height of a short wrapper when the document scrolls. */
[data-shared-header] { position: sticky; top: 0; z-index: 60; }
[data-shared-header] .site-header { position: relative; }
.collection-shirt-availability { padding-top: 22px; }
.collection-shirt-availability > p { margin: 0 0 12px; color: var(--ink-soft); font-size: 14px; }
.collection-shirt-availability > div { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.collection-shirt-color { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 13px; }
.collection-shirt-color i, .shirt-color-choice > span { display: inline-block; width: 19px; height: 19px; border-radius: 50%; background: var(--swatch); border: 1px solid #8889; }
.artwork-preview-frame,.shirt-mockup-frame { position: absolute; inset: 0; display: block; width: 100% !important; height: 100%; overflow: hidden; background: #191a1b; }
.artwork-preview-frame img,.shirt-mockup-frame img { display: block; width: 100%; height: 100%; object-fit: contain; }
.artwork-preview-frame img { padding: 22px 18px 42px; }
.catalog-image .artwork-preview-frame,.catalog-image .shirt-mockup-frame { left: 0; top: 0; transform: none; transition: scale 1.5s var(--ease); }
.catalog-image:hover :is(.artwork-preview-frame,.shirt-mockup-frame),.catalog-image:focus-visible :is(.artwork-preview-frame,.shirt-mockup-frame) { transform: none; scale: 1.035; }
.collection-artwork-label { position: absolute; bottom: 12px; left: 16px; font-size: 10px; color: #fff9; }
.catalog-product-page .product-cinematic-image { width: min(600px,85vw); height: min(700px,100vw); overflow: hidden; border-radius: 24px; }
.catalog-product-page .product-cinematic-image :is(.artwork-preview-frame,.shirt-mockup-frame) { left: 0; top: 0; transform: none; filter: none; }
.catalog-product-page .product-cinematic-copy h1 { font-size: clamp(42px,5vw,76px); max-width: 1100px; margin: auto; }
.catalog-product-page .product-halo { display: none; }
.product-shirt-colors { margin: 18px 0 28px; }
.product-shirt-colors p { margin: 0 0 12px; color: var(--ink-soft); font-size: 13px; }
.product-shirt-colors > div { display: flex; flex-wrap: wrap; gap: 8px; }
.shirt-color-choice { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; min-height: 44px; border: 1px solid var(--line); border-radius: 100px; color: var(--ink-soft); font-size: 12px; }
.shirt-color-choice[aria-current] { border-color: var(--ink); color: var(--ink); }
.shirt-color-choice:hover { border-color: var(--pink); }
.product-shirt-colors small { display: block; margin-top: 12px; color: var(--muted); font-size: 11px; }
.product-media-gallery[data-gallery-tone="teacher-artwork"] { --gallery-top:#242526; --gallery-bottom:#141516; }
@media (max-width:767px) {
  .collection-shirt-availability { padding-top: 18px; }
  .collection-shirt-availability > p { font-size: 12px; }
  .collection-shirt-availability > div { gap: 10px 16px; }
  .collection-shirt-color { font-size: 11px; }
  .artwork-preview-frame img { padding: 16px 12px 34px; }
}
@media (prefers-reduced-motion:reduce) { .catalog-image :is(.artwork-preview-frame,.shirt-mockup-frame) { transition: none; } }

/* A compact design index beneath the campaign, with room for the model photo. */
.collection-spotlight-footer { width: min(1600px,calc(100% - var(--gutter) * 2)); margin: 22px auto 0; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.3fr); gap: 36px; align-items: start; }
.collection-spotlight-footer .collection-shirt-availability { width: auto; margin: 0; padding-top: 4px; }
.collection-design-browser { width: 100%; max-width: 780px; justify-self: end; min-width: 0; }
.collection-design-browser-heading { margin: 0 52px 10px; font-size: 11px; color: var(--muted); }
.collection-design-browser-row { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; gap: 8px; align-items: center; }
.collection-design-rail { display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 14px; }
.collection-design-rail::-webkit-scrollbar { display: none; }
.collection-design-thumbnail { display: block; flex: 0 0 var(--design-thumbnail-width,calc((100% - 16px)/3)); min-width: 0; aspect-ratio: 4/5; background: #191a1b; border: 1px solid #ffffff20; border-radius: 12px; overflow: hidden; scroll-snap-align: start; }
.collection-design-thumbnail img { width: 100%; height: 100%; object-fit: contain; padding: 5px; transition: transform 1s var(--ease); }
.collection-design-thumbnail:hover img { transform: scale(1.06); }
.collection-design-thumbnail:focus-visible { outline-offset: -3px; }
.collection-design-arrow { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink); cursor: pointer; }
.collection-design-arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.collection-design-arrow:hover { border-color: var(--ink-soft); }
.collection-design-arrow:disabled { opacity: .25; cursor: default; }
.collection-design-dots { display: flex; justify-content: center; gap: 2px; margin-top: 6px; }
.collection-design-dots button { width: 28px; height: 28px; padding: 0; display: grid; place-items: center; background: transparent; border: 0; cursor: pointer; border-radius: 50%; }
.collection-design-dots span { display: block; width: 5px; height: 5px; border-radius: 50%; background: var(--muted); opacity: .45; transition: opacity .25s ease,transform .25s ease; }
.collection-design-dots [aria-current="true"] span { background: var(--pink); opacity: 1; transform: scale(1.4); }
@media (max-width:1000px) {
  .collection-spotlight-footer { grid-template-columns: 1fr; gap: 22px; }
  .collection-design-browser { max-width: 780px; }
}
@media (max-width:767px) {
  .collection-spotlight-footer { width: calc(100% - 32px); margin-top: 18px; gap: 20px; }
  .collection-design-browser { max-width: none; }
  .collection-design-browser-row { grid-template-columns: 44px minmax(0,1fr) 44px; }
  .collection-design-thumbnail { border-radius: 10px; }
  .collection-design-dots button { width: 32px; height: 36px; }
}
@media (prefers-reduced-motion:reduce) {
  .collection-design-thumbnail img,.collection-design-dots span { transition: none; }
}

/* Official artwork replaces the generated wordmark throughout the store. */
.brand-official { display: inline-flex; align-items: center; flex-shrink: 0; }
.brand-official img { width: clamp(170px,15vw,228px); height: auto; }
.logo-for-light { display: none; }
[data-theme="light"] .logo-for-dark { display: none; }
[data-theme="light"] .logo-for-light { display: block; }
.brand-vertical { display: block; width: 185px; }
.brand-vertical img { width: 100%; height: auto; object-fit: contain; }
.footer-brand .footer-origin { font-size: 13px; line-height: 1.7; color: var(--ink-soft); margin-top: 18px; }
.footer-origin strong { font-weight: 550; color: var(--ink); }
.footer-links { grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(24px,5vw,80px); }
.site-footer .footer-main { align-items: start; gap: 55px; }
@media(max-width:760px) { .brand-official img { width: 150px; }.footer-links { width: 100%; gap: 24px; }.brand-vertical { width: 155px; } }
@media(max-width:380px) { .brand-official img { width: clamp(112px,35vw,135px); }.footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); } }

.partner-product-credit{padding:18px 20px;border:1px solid #c8aa6e55;border-radius:14px;margin:20px 0;background:#c8aa6e09}.partner-product-credit>a{color:#d4b67d;font-weight:650}.partner-product-credit p{font-size:13px;margin:7px 0}.partner-product-cta{padding-top:30px;padding-bottom:60px}.partner-product-cta h2{font-size:clamp(30px,5vw,58px)}
html[data-theme="light"] .partner-product-credit>a{color:#684a15}

.marketplace-customer-orders .account-order{padding:24px;border:1px solid var(--border,#5554);border-radius:16px;margin:20px 0}.customer-order-line{display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-top:1px solid var(--border,#5554);flex-wrap:wrap}.customer-order-thumb{width:120px;height:140px;object-fit:contain;border-radius:10px;background:#f5f5f8}.customer-order-line>div{flex:1;min-width:min(100%,220px)}.customer-order-action{padding:12px 0}.customer-order-action summary{cursor:pointer;color:#ee1766}.customer-order-action label{display:block;margin:12px 0}.customer-order-action input:not([type=checkbox]),.customer-order-action textarea,.customer-order-action select{display:block;width:100%;margin-top:6px;padding:12px;background:var(--panel,#15161d);border:1px solid var(--border,#555);border-radius:9px;color:inherit;font:inherit}.customer-order-message{color:#e95c8d}.customer-order-action textarea{min-height:100px}@media(max-width:600px){.customer-order-thumb{width:90px;height:110px}.marketplace-customer-orders .account-order{padding:18px}}

/* Keep the shared navigation comfortable when all six destinations are shown. */
@media(max-width:1100px){
 .site-header .menu-toggle{display:grid}
 .site-header .main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:26px;flex-direction:column;align-items:stretch;gap:8px;opacity:1;pointer-events:auto;transform:none;box-shadow:none}
 .site-header .main-nav.is-open{display:flex}
 .site-header .main-nav a{padding:13px 0;font-size:17px}
}

.partner-checkout-summary .cart-line{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;margin:0;padding:18px 0;border-bottom:1px solid var(--line);align-items:center}.partner-checkout-summary .cart-thumb{width:72px;aspect-ratio:7/8;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:var(--paper-deep)}.partner-checkout-summary .cart-thumb img{width:100%;height:100%;object-fit:contain}.partner-checkout-summary .cart-line-copy h2{font-size:15px;margin:0 0 8px;line-height:1.3}.partner-checkout-summary .cart-line-copy p{font-size:12px;margin:0;line-height:1.6;color:var(--muted)}.partner-order-totals{margin-top:20px}.partner-order-totals>p{font-size:12px;color:var(--muted);line-height:1.6}.partner-order-totals .summary-row:last-of-type{border-top:1px solid var(--line);padding-top:16px;font-weight:700}.checkout-layout.partner-receipt-layout{grid-template-columns:1fr;max-width:1000px;margin-inline:auto}.partner-receipt-layout .pm-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:28px 0}.partner-receipt-layout .pm-preview-grid article{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--white)}.partner-receipt-layout .pm-preview-grid h2{font-size:20px}.partner-receipt-layout .pm-preview-grid img{display:inline-block;max-width:45%!important;height:auto}
