:root {
  --black: #050505;
  --white: #ffffff;
  --soft-white: #f3f0eb;
  --muted-white: rgba(255,255,255,.68);
  --line: rgba(255,255,255,.27);
  --serif: "Italiana", "Bodoni 72", Didot, Georgia, serif;
  --ornate: "Cormorant Garamond", Garamond, "Times New Roman", serif;
  --sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--black); }
body { margin: 0; background: var(--black); color: var(--white); font-family: var(--sans); overflow-x: hidden; }
body.menu-open, body.drawer-open { overflow: hidden; }
button, a { color: inherit; }
button { font: inherit; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 5000; padding: .75rem 1rem; background: var(--white); color: var(--black); }
.skip-link:focus { top: 1rem; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 1100; height: 78px; padding: 0 clamp(1rem,3vw,3rem); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; background: linear-gradient(180deg, rgba(0,0,0,.72), rgba(0,0,0,0)); transition: background .35s ease; }
.site-header.panel-visible { background: var(--soft-white); color: var(--black); }
.wordmark { justify-self: center; font-family: var(--serif); font-size: clamp(1.3rem,2.1vw,2rem); letter-spacing: .22em; text-decoration: none; }
.menu-button, .cart-button { border: 0; background: transparent; padding: .5rem 0; display: inline-flex; align-items: center; gap: .7rem; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }
.menu-button { justify-self: start; }
.cart-button { justify-self: end; }
.cart-button span { display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border: 1px solid currentColor; border-radius: 50%; font-size: .58rem; }
.menu-icon { width: 24px; display: grid; gap: 5px; }
.menu-icon i { display: block; height: 1px; background: currentColor; }

.menu-panel { position: fixed; inset: 0; z-index: 1000; pointer-events: none; visibility: hidden; }
.menu-panel.open { pointer-events: auto; visibility: visible; }
.menu-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.48); opacity: 0; transition: opacity .45s ease; }
.menu-sheet { position: absolute; inset: 0 auto 0 0; width: min(520px, 100%); padding: 8rem clamp(1.25rem,5vw,4rem) 2rem; background: var(--soft-white); color: var(--black); transform: translateX(-102%); transition: transform .65s cubic-bezier(.16,1,.3,1); display: flex; flex-direction: column; }
.menu-panel.open .menu-backdrop { opacity: 1; }
.menu-panel.open .menu-sheet { transform: translateX(0); }
.menu-close { position: absolute; top: 1.5rem; right: 1.5rem; width: 42px; height: 42px; border: 0; background: transparent; }
.menu-close span { position: absolute; left: 9px; right: 9px; top: 20px; height: 1px; background: var(--black); }
.menu-close span:first-child { transform: rotate(45deg); }
.menu-close span:last-child { transform: rotate(-45deg); }
.menu-kicker, .menu-footer { font-size: .66rem; letter-spacing: .17em; text-transform: uppercase; }
.menu-sheet nav { margin-top: clamp(2rem,8vh,6rem); border-top: 1px solid rgba(0,0,0,.28); }
.menu-sheet nav button { width: 100%; padding: 1rem 0; border: 0; border-bottom: 1px solid rgba(0,0,0,.28); background: transparent; display: grid; grid-template-columns: 2.4rem 1fr; align-items: baseline; text-align: left; font-family: var(--serif); font-size: clamp(2.1rem,7vw,4.3rem); line-height: 1; transition: padding .25s ease, opacity .25s ease; }
.menu-sheet nav button:hover, .menu-sheet nav button:focus { padding-left: .75rem; opacity: .6; }
.menu-sheet nav span { font-family: var(--sans); font-size: .58rem; letter-spacing: .08em; }
.menu-footer { display: flex; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid rgba(0,0,0,.28); }

.film-stage { height: 620vh; background: var(--black); }
.film-viewport { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; background: var(--black); isolation: isolate; }
.campaign-film { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; background: var(--black); }
.edge-shade { position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.7) 0, transparent 25%, transparent 75%, rgba(0,0,0,.7) 100%), linear-gradient(0deg, rgba(0,0,0,.56), transparent 32%, rgba(0,0,0,.16)); }

.timeline-copy { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.caption { position: absolute; opacity: 0; transform: translateY(16px); transition: opacity .32s linear, transform .5s cubic-bezier(.16,1,.3,1); max-width: 18rem; }
.caption.active { opacity: 1; transform: translateY(0); }
.caption span { display: block; margin-bottom: .65rem; color: var(--muted-white); font-size: .65rem; letter-spacing: .18em; text-transform: uppercase; }
.caption strong { display: block; font-family: var(--serif); font-size: clamp(2.1rem,3.6vw,4.6rem); line-height: .95; font-weight: 400; }
.caption-intro { left: clamp(1.25rem,4vw,4.5rem); bottom: clamp(6.5rem,12vh,9rem); }
.caption-origin { right: clamp(1.25rem,4vw,4.5rem); top: 43%; text-align: right; }
.caption-edition { left: clamp(1.25rem,4vw,4.5rem); top: 35%; }

.product-panel { position: absolute; z-index: 6; left: 0; right: 0; bottom: 0; min-height: 285px; padding: clamp(1.3rem,2.8vw,2.75rem) clamp(1.25rem,4vw,4.5rem) max(1.2rem, env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1.15fr 1.45fr .7fr; gap: clamp(1.5rem,4vw,5rem); align-items: end; color: var(--white); background: linear-gradient(180deg, rgba(5,5,5,0), rgba(5,5,5,.92) 24%, rgba(5,5,5,.98)); opacity: 0; transform: translateY(100%); pointer-events: none; transition: opacity .45s ease, transform .7s cubic-bezier(.16,1,.3,1); }
.product-panel.visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.product-heading p { margin: 0 0 .75rem; color: var(--muted-white); font-size: .64rem; letter-spacing: .17em; text-transform: uppercase; }
.product-heading h1 { margin: 0; font-family: var(--serif); font-size: clamp(2.9rem,5.2vw,6.6rem); line-height: .79; font-weight: 400; letter-spacing: -.04em; }
.product-facts dl { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 2rem; }
.product-facts dl div { border-top: 1px solid var(--line); padding-top: .65rem; }
.product-facts dt { margin-bottom: .35rem; color: var(--muted-white); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 400; }
.product-facts dd { margin: 0; font-size: .76rem; line-height: 1.45; }
.product-action { text-align: right; }
.product-price { margin: 0 0 .75rem; font-family: var(--serif); font-size: clamp(2rem,3vw,3.4rem); }
.add-button { width: 100%; min-height: 50px; padding: .8rem 1.25rem; border: 1px solid var(--white); border-radius: 0; background: var(--white); color: var(--black); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; transition: background .25s ease, color .25s ease; }
.add-button:hover, .add-button:focus { background: transparent; color: var(--white); }
.add-button.added { background: transparent; color: var(--white); }
.product-action small { display: block; margin-top: .7rem; color: var(--muted-white); font-size: .61rem; }

.scroll-status { position: absolute; z-index: 5; left: clamp(1.25rem,3vw,3rem); right: clamp(1.25rem,3vw,3rem); bottom: 1.5rem; display: grid; grid-template-columns: auto minmax(70px,180px) auto; align-items: center; gap: 1rem; font-size: .58rem; letter-spacing: .15em; text-transform: uppercase; transition: opacity .3s ease; }
.scroll-status > div { height: 1px; background: rgba(255,255,255,.28); }
.scroll-status i { display: block; width: 0; height: 1px; background: var(--white); }
.product-panel.visible + .scroll-status { opacity: 0; }
.restart-button { position: absolute; z-index: 7; top: 50%; right: clamp(1rem,3vw,3rem); transform: translateY(-50%); padding: .65rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; opacity: 0; pointer-events: none; transition: opacity .3s ease; }
.restart-button.visible { opacity: 1; pointer-events: auto; }

.statement-scene { min-height: 100vh; min-height: 100svh; padding: clamp(5rem,10vw,10rem) clamp(1.25rem,7vw,8rem); display: grid; place-content: center; justify-items: center; text-align: center; background: var(--black); color: var(--white); overflow: hidden; }
.statement-scene h2 { margin: 0; max-width: 13ch; font-family: var(--ornate); font-size: clamp(4rem,10.5vw,11.5rem); line-height: .72; font-weight: 500; letter-spacing: -.055em; text-wrap: balance; opacity: 0; transform: scale(.93) translateY(32px); transition: opacity 1.05s ease .2s, transform 1.1s cubic-bezier(.16,1,.3,1) .2s; }
.statement-scene h2 em { font-weight: 500; }
.statement-rule { width: min(220px,42vw); height: 1px; margin-top: clamp(2.5rem,6vh,5rem); background: currentColor; transform: scaleX(0); transform-origin: center; transition: transform 1s cubic-bezier(.16,1,.3,1) .55s; }
.statement-scene.in-view h2 { opacity: 1; transform: none; }
.statement-scene.in-view .statement-rule { transform: scaleX(1); }

.followup-stage { height: 520vh; }
.followup-shade { background: linear-gradient(90deg, rgba(0,0,0,.76) 0, transparent 23%, transparent 77%, rgba(0,0,0,.76) 100%), linear-gradient(0deg, rgba(0,0,0,.26), transparent 25%, rgba(0,0,0,.15)); }
.followup-mark { position: absolute; z-index: 4; left: clamp(1rem,3vw,3rem); bottom: clamp(1rem,3vw,2.5rem); display: grid; grid-template-columns: auto minmax(50px,9vw) auto; align-items: center; gap: .9rem; color: var(--muted-white); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; }
.followup-mark i { display: block; height: 1px; background: rgba(255,255,255,.55); }

.craftsmanship-stage { height: 560vh; }
.craft-shade { background: linear-gradient(90deg, rgba(0,0,0,.74) 0, transparent 22%, transparent 78%, rgba(0,0,0,.74) 100%), linear-gradient(0deg, rgba(0,0,0,.3), transparent 35%); }
.craft-copy { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.craft-caption { position: absolute; left: clamp(1.25rem,4vw,4.5rem); top: 38%; max-width: 18rem; opacity: 0; transform: translateY(18px); transition: opacity .35s ease, transform .5s cubic-bezier(.16,1,.3,1); }
.craft-caption.active { opacity: 1; transform: none; }
.craft-caption-right { left: auto; right: clamp(1.25rem,4vw,4.5rem); text-align: right; }
.craft-caption span { display: block; margin-bottom: .65rem; color: var(--muted-white); font-size: .65rem; letter-spacing: .18em; text-transform: uppercase; }
.craft-caption strong { display: block; font-family: var(--serif); font-size: clamp(2rem,3.4vw,4.3rem); line-height: .92; font-weight: 400; }

.product-portrait { position: relative; min-height: 100vh; min-height: 100svh; overflow: hidden; background: var(--black); color: var(--white); isolation: isolate; }
.product-portrait > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.portrait-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.92), transparent 34%, transparent 68%, rgba(0,0,0,.72)), linear-gradient(0deg, rgba(0,0,0,.45), transparent 42%); }
.portrait-content { min-height: inherit; padding: clamp(6rem,9vw,9rem) clamp(1.25rem,5vw,5rem) clamp(2rem,5vw,4rem); display: grid; grid-template-columns: minmax(260px,1fr) minmax(300px,.72fr); grid-template-rows: auto 1fr auto; align-items: start; opacity: 0; transform: translateY(35px); transition: opacity 1s ease, transform 1s cubic-bezier(.16,1,.3,1); }
.product-portrait.in-view .portrait-content { opacity: 1; transform: none; }
.portrait-kicker { grid-column: 1; margin: 0 0 1.15rem; color: var(--muted-white); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; }
.portrait-content h2 { grid-column: 1; margin: 0; font-family: var(--ornate); font-size: clamp(4rem,8vw,9rem); line-height: .72; font-weight: 500; letter-spacing: -.055em; }
.portrait-content h2 em { font-weight: 500; }
.portrait-facts { grid-column: 1; align-self: end; width: min(520px,100%); margin: 3rem 0 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.portrait-facts div { border-top: 1px solid var(--line); padding-top: .7rem; }
.portrait-facts dt { margin-bottom: .35rem; color: var(--muted-white); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 400; }
.portrait-facts dd { margin: 0; font-size: .78rem; }
.portrait-buy { grid-column: 2; grid-row: 2 / 4; align-self: end; justify-self: end; width: min(320px,100%); text-align: right; }
.portrait-buy > span { display: block; margin-bottom: 1rem; font-family: var(--serif); font-size: clamp(2.6rem,4vw,4.5rem); }
.reserve-button, .checkout-button { min-height: 52px; padding: .9rem 1.4rem; border: 1px solid var(--white); border-radius: 0; background: var(--white); color: var(--black); font-size: .68rem; letter-spacing: .17em; text-transform: uppercase; transition: background .25s ease, color .25s ease; }
.reserve-button { width: 100%; }
.reserve-button:hover, .reserve-button:focus { background: transparent; color: var(--white); }

.closing-scene { min-height: 100vh; min-height: 100svh; padding: clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,8rem); display: grid; place-content: center; justify-items: center; text-align: center; background: var(--black); }
.closing-scene > p { margin: 0 0 clamp(1.75rem,4vh,3rem); color: var(--muted-white); font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; opacity: 0; transition: opacity .7s ease .1s; }
.closing-scene h2 { margin: 0; max-width: 12ch; font-family: var(--ornate); font-size: clamp(4rem,10vw,10.5rem); line-height: .76; font-weight: 500; letter-spacing: -.055em; opacity: 0; transform: translateY(28px); transition: opacity 1s ease .2s, transform 1s cubic-bezier(.16,1,.3,1) .2s; }
.closing-scene h2 em { font-weight: 500; }
.closing-actions { width: min(520px,100%); margin-top: clamp(2.5rem,6vh,5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; opacity: 0; transform: translateY(18px); transition: opacity .8s ease .5s, transform .8s ease .5s; }
.closing-scene.in-view > p, .closing-scene.in-view h2, .closing-scene.in-view .closing-actions { opacity: 1; transform: none; }
.text-button { min-height: 52px; padding: .9rem 1.2rem; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: inherit; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; }
.text-button.dark { min-height: auto; padding-inline: 0; color: var(--black); }
.reserve-button-light { background: var(--white); color: var(--black); }

.cart-drawer { position: fixed; inset: 0; z-index: 2000; visibility: hidden; pointer-events: none; }
.cart-drawer.open { visibility: visible; pointer-events: auto; }
.cart-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.58); opacity: 0; transition: opacity .45s ease; }
.cart-sheet { position: absolute; inset: 0 0 0 auto; width: min(510px,100%); padding: clamp(1.25rem,4vw,2.5rem); display: flex; flex-direction: column; background: var(--soft-white); color: var(--black); transform: translateX(102%); transition: transform .65s cubic-bezier(.16,1,.3,1); }
.cart-drawer.open .cart-backdrop { opacity: 1; }
.cart-drawer.open .cart-sheet { transform: none; }
.cart-sheet-header { min-height: 60px; padding-bottom: 1.25rem; display: flex; align-items: flex-start; justify-content: space-between; border-bottom: 1px solid rgba(0,0,0,.25); }
.cart-sheet-header p { margin: 0; font-family: var(--serif); font-size: 2rem; }
.cart-sheet-header p span { font-family: var(--sans); font-size: .7rem; vertical-align: top; }
.drawer-close { position: relative; width: 42px; height: 42px; border: 0; background: transparent; }
.drawer-close span { position: absolute; left: 8px; right: 8px; top: 20px; height: 1px; background: var(--black); }
.drawer-close span:first-child { transform: rotate(45deg); }
.drawer-close span:last-child { transform: rotate(-45deg); }
.empty-cart { margin: auto 0; text-align: center; }
.empty-cart p { font-family: var(--ornate); font-size: 2.1rem; }
.cart-item { position: relative; padding: 1.5rem 0; display: grid; grid-template-columns: 132px 1fr; gap: 1.25rem; border-bottom: 1px solid rgba(0,0,0,.25); }
.cart-item[hidden], .cart-summary[hidden] { display: none; }
.cart-item-image { aspect-ratio: 4/5; overflow: hidden; background: var(--black); }
.cart-item-image img { width: 100%; height: 100%; object-fit: cover; }
.cart-item-copy p { margin: 0 0 .5rem; font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; }
.cart-item-copy h3 { margin: 0 0 .55rem; font-family: var(--serif); font-size: 1.65rem; font-weight: 400; line-height: 1; }
.cart-item-copy span, .cart-item-copy strong { display: block; font-size: .76rem; font-weight: 400; }
.cart-item-copy strong { margin-top: 1.4rem; font-family: var(--serif); font-size: 1.35rem; }
.remove-item { position: absolute; right: 0; bottom: 1.5rem; padding: .2rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: .62rem; text-transform: uppercase; }
.cart-summary { margin-top: auto; padding-top: 1.5rem; border-top: 1px solid rgba(0,0,0,.25); }
.cart-summary > div { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; font-size: .75rem; }
.cart-summary > div strong { font-weight: 500; }
.checkout-button { width: 100%; margin-top: 1rem; background: var(--black); border-color: var(--black); color: var(--white); }
.checkout-button:hover, .checkout-button:focus { background: transparent; color: var(--black); }
.cart-summary small { display: block; margin-top: .75rem; text-align: center; font-size: .68rem; color: rgba(0,0,0,.62); }

@media (max-width: 991.98px) {
  .film-stage { height: 520vh; }
  .campaign-film { object-fit: cover; }
  .edge-shade { background: linear-gradient(0deg, rgba(0,0,0,.62), transparent 36%, rgba(0,0,0,.2)); }
  .caption-origin { top: auto; bottom: 7rem; right: 1.2rem; }
  .caption-edition { top: auto; bottom: 7rem; left: 1.2rem; }
  .caption strong { font-size: clamp(2rem,7vw,3.6rem); }
  .product-panel { grid-template-columns: 1fr 1fr; min-height: 330px; }
  .product-action { grid-column: 2; text-align: right; }
  .product-heading { grid-row: span 2; align-self: end; }
  .product-facts dl { grid-template-columns: 1fr; gap: .65rem; }
  .followup-stage { height: 450vh; }
  .craftsmanship-stage { height: 480vh; }
  .followup-shade { background: linear-gradient(0deg, rgba(0,0,0,.35), transparent 30%, rgba(0,0,0,.12)); }
  .craft-shade { background: linear-gradient(0deg, rgba(0,0,0,.45), transparent 36%); }
  .craft-caption, .craft-caption-right { top: auto; bottom: 5.5rem; left: 1.2rem; right: auto; text-align: left; }
  .portrait-shade { background: linear-gradient(0deg, rgba(0,0,0,.45), transparent 38%), linear-gradient(180deg, rgba(0,0,0,.76), transparent 48%); }
  .portrait-content { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr auto; padding-top: 6.5rem; }
  .portrait-content h2 { font-size: clamp(4rem,12vw,7rem); }
  .portrait-facts { grid-column: 1; align-self: start; margin-top: 2rem; }
  .portrait-buy { grid-column: 1; grid-row: 4; justify-self: start; width: min(300px,100%); text-align: left; }
}

@media (max-width: 575.98px) {
  .site-header { height: 68px; padding: 0 1rem; }
  .wordmark { font-size: 1.2rem; }
  .menu-label { display: none; }
  .cart-button { font-size: 0; }
  .cart-button span { font-size: .58rem; }
  .menu-panel { z-index: 1300; }
  .menu-sheet { width: 100%; height: 100vh; height: 100dvh; min-height: 0; padding: max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom)); overflow: hidden; }
  .menu-close { top: max(.75rem,env(safe-area-inset-top)); right: .75rem; z-index: 2; }
  .menu-kicker { flex: 0 0 auto; margin: 3.75rem 0 0; font-size: .6rem; }
  .menu-sheet nav { flex: 1 1 auto; min-height: 0; margin-top: clamp(1rem,3dvh,1.75rem); display: grid; grid-template-rows: repeat(5,minmax(0,1fr)); }
  .menu-sheet nav button { min-height: 0; padding: .2rem 0; grid-template-columns: 2.35rem minmax(0,1fr); align-items: center; font-size: clamp(1.85rem,8.8vw,2.55rem); line-height: .88; white-space: nowrap; }
  .menu-sheet nav button:hover, .menu-sheet nav button:focus { padding-left: .35rem; }
  .menu-sheet nav span { font-size: .64rem; }
  .menu-footer { flex: 0 0 auto; margin-top: .7rem; padding-top: .7rem; font-size: .56rem; }
  .caption { max-width: 13rem; }
  .caption span { font-size: .58rem; }
  .caption strong { font-size: clamp(2rem,10.5vw,3.2rem); }
  .caption-intro { left: 1rem; bottom: 5.5rem; }
  .caption-origin { right: 1rem; bottom: 5.5rem; }
  .caption-edition { left: 1rem; bottom: 5.5rem; }
  .product-panel { min-height: 46svh; padding: 1.4rem 1rem max(1rem,env(safe-area-inset-bottom)); display: block; background: linear-gradient(180deg, rgba(5,5,5,0), rgba(5,5,5,.94) 17%, #050505 40%); }
  .product-heading { padding-top: 3.2rem; }
  .product-heading p { margin-bottom: .5rem; }
  .product-heading h1 { font-size: clamp(2.75rem,13vw,4.2rem); line-height: .82; }
  .product-facts { margin-top: 1rem; }
  .product-facts dl { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem 1rem; }
  .product-facts dd { font-size: .67rem; }
  .product-action { display: grid; grid-template-columns: 1fr 1.35fr; align-items: center; gap: 1rem; margin-top: 1rem; text-align: left; }
  .product-price { margin: 0; font-size: 2rem; }
  .add-button { min-height: 46px; }
  .product-action small { grid-column: 1 / -1; margin: -.25rem 0 0; }
  .scroll-status { left: 1rem; right: 1rem; bottom: 1.25rem; grid-template-columns: auto 1fr auto; gap: .7rem; }
  .restart-button { top: 82px; right: 1rem; transform: none; }
  .statement-scene { padding-inline: 1rem; }
  .statement-scene h2 { font-size: clamp(3.8rem,18vw,6.4rem); line-height: .76; }
  .followup-mark { bottom: max(1.25rem,env(safe-area-inset-bottom)); }
  .craft-caption { max-width: 15rem; }
  .craft-caption strong { font-size: 2.6rem; }
  .product-portrait { min-height: 112svh; }
  .product-portrait > img { object-fit: cover; object-position: center bottom; }
  .portrait-content { min-height: 112svh; padding: 5.5rem 1rem max(1.25rem,env(safe-area-inset-bottom)); }
  .portrait-content h2 { font-size: clamp(3.6rem,17vw,5.2rem); }
  .portrait-facts { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; margin-top: 1.4rem; }
  .portrait-facts dd { font-size: .67rem; }
  .portrait-buy { width: 100%; }
  .portrait-buy > span { font-size: 2.6rem; }
  .closing-scene { padding-inline: 1rem; }
  .closing-scene h2 { font-size: clamp(3.7rem,17vw,5.8rem); }
  .closing-actions { grid-template-columns: 1fr; }
  .cart-sheet { padding: 1.25rem 1rem max(1.25rem,env(safe-area-inset-bottom)); }
  .cart-item { grid-template-columns: 112px 1fr; }
}

@media (max-width: 575.98px) and (max-height: 700px) {
  .menu-kicker { margin-top: 3rem; }
  .menu-sheet nav { margin-top: .75rem; }
  .menu-sheet nav button { font-size: clamp(1.65rem,7.8vw,2.15rem); }
  .menu-footer { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .film-stage { height: 100svh; }
  .statement-scene { min-height: 100svh; }
  .statement-scene h2 { opacity: 1; transform: none; }
  .statement-rule { transform: scaleX(1); }
  .portrait-content, .closing-scene > p, .closing-scene h2, .closing-actions { opacity: 1; transform: none; }
  .caption { display: none; }
  .product-panel { opacity: 1; transform: none; pointer-events: auto; }
  .scroll-status, .restart-button { display: none; }
}
