/* One reading hierarchy: label → heading → supporting copy → action. */
:root { --text-body:1rem; --text-small:.875rem; --text-label:.6875rem; --section-heading:clamp(2rem,3.6vw,3.4rem); }
.section { padding-block:76px; }
.section .index,.eyebrow { display:block; font-family:'DM Sans',sans-serif; font-size:var(--text-label); line-height:1.5; font-weight:800; letter-spacing:.11em; margin:0 0 12px; }
.section-title,.arcade-title { align-items:end; gap:32px; margin-bottom:30px; }
.section-title h2,.gift-studio-section h2,.arcade-title h2,.manifesto h2,.faq h2 { font-size:var(--section-heading); line-height:1.1; letter-spacing:-.035em; margin:0; text-wrap:balance; }
.section-title p,.studio-invitation > p,.arcade-title > p { max-width:40ch; font-size:var(--text-body); line-height:1.65; font-weight:400; margin:0; }
.section-title h2 em,.gift-studio-section h2 em { font-style:normal; color:#075ccc; }
.section-title > div,.arcade-title > div { min-width:0; }
.section .pixel-button,.section .under-button { font-family:'DM Sans',sans-serif; font-weight:800; font-size:.9375rem; min-height:48px; line-height:1.35; border-width:2px; }
.section .save-text { font-family:'DM Sans',sans-serif; font-weight:600; }
.product-info .product-kicker { font-family:'DM Sans',sans-serif; font-weight:600; font-size:.6875rem; line-height:1.55; letter-spacing:.025em; }
.shop .product-info h3 { font-family:'DM Sans',sans-serif; font-size:1.25rem; line-height:1.25; font-weight:800; letter-spacing:-.02em; }
.shop .product-info .card-gift-fit { font-weight:400; font-size:.875rem; line-height:1.6; }
.shop .filters { gap:8px; }
.shop .filter { font-family:'DM Sans',sans-serif; font-size:.75rem; font-weight:700; padding:10px 14px; min-height:44px; line-height:1.35; }
.shop-toolbar { margin-bottom:8px; }
.shortlist-link { margin-bottom:20px; }
.experience-button { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; border:2px solid #111; border-radius:6px; background:var(--yellow); color:#111; padding:13px 18px; min-height:48px; font:800 .9375rem/1.35 'DM Sans',sans-serif; box-shadow:3px 3px #111; text-align:left; transition:transform .16s,box-shadow .16s; }
.experience-button:hover { transform:translate(-1px,-1px); box-shadow:4px 4px #111; }
.experience-button.dark { background:#171721; color:#fff; box-shadow:3px 3px #0878ff; }
.experience-button:disabled { opacity:.55; box-shadow:none; transform:none; cursor:not-allowed; }
.quiet-link { display:inline-flex; gap:8px; align-items:center; min-height:44px; border:0; padding:6px 0; background:none; color:inherit; font:600 .875rem/1.45 'DM Sans',sans-serif; text-decoration:underline; text-underline-offset:4px; text-align:left; }
.quiet-link:disabled { opacity:.5; cursor:not-allowed; }
.experience-button:focus-visible,.quiet-link:focus-visible,.character-card:focus-visible,.rail-controls button:focus-visible,.studio-choice:focus-visible,.unbox-panel:focus-visible { outline:3px solid #0878ff; outline-offset:4px; }
.box-intro { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 22px; background:#e0f3ff; border:1px solid #1115; border-left:5px solid #0878ff; border-radius:6px; margin-bottom:26px; }
.box-intro .eyebrow { margin:0 0 6px; }
.box-intro h3 { font:800 1.125rem/1.35 'DM Sans',sans-serif; }
.box-intro p { font-size:.875rem; line-height:1.5; margin-top:5px; }
.box-intro .experience-button { flex-shrink:0; }

/* Replace the absolute-positioned poster stack with a normal-flow photo rail. */
.gift-studio-section { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:5vw; align-items:center; background:var(--yellow); border-block:2px solid #111; }
.studio-invitation,.character-browser { min-width:0; }
.studio-invitation > p { margin:20px 0; }
.studio-overview { list-style:none; padding:0; margin:24px 0; display:grid; gap:12px; }
.studio-overview li { display:flex; align-items:center; gap:12px; font-size:.875rem; line-height:1.5; }
.studio-overview li span { color:#164b86; font-size:.6875rem; font-weight:800; letter-spacing:.04em; }
.studio-entry-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; }
.studio-invitation > small { display:block; margin-top:18px; max-width:40ch; font-size:.8125rem; line-height:1.6; color:#414027; }
.rail-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:12px; }
.rail-heading .eyebrow { margin-bottom:4px; }
.rail-heading p,.rail-caption { font-size:.8125rem; line-height:1.5; }
.rail-caption { margin-top:12px; color:#414027; }
.rail-controls { display:flex; gap:6px; }
.rail-controls button { width:44px; height:44px; background:transparent; border:1px solid #111; border-radius:50%; font-size:18px; }
.rail-controls button:disabled { opacity:.3; cursor:default; }
.character-rail { display:grid; grid-template-rows:auto; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 28px)/3); gap:14px; align-items:start; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; padding:4px 5px 9px 0; scrollbar-width:thin; }
.character-card { display:flex; flex-direction:column; position:static; min-width:0; width:100%; height:auto; padding:9px; gap:0; border:2px solid #111; border-radius:8px; background:#e9dfff; box-shadow:4px 4px #111; color:#111; text-align:left; scroll-snap-align:start; transition:transform .2s; }
.character-card[data-mood=soft] { background:#bfeaff; }
.character-card[data-mood=sweet] { background:#ffc2d6; }
.character-card:hover { transform:translateY(-3px); }
.character-card img { display:block; position:static; width:100%; height:auto; aspect-ratio:1; object-fit:contain; border:1px solid #1116; border-radius:3px; }
.character-card .character-copy { display:grid; gap:5px; padding:12px 2px 4px; }
.character-copy .character-mood { font-size:.625rem; line-height:1.5; font-weight:700; letter-spacing:.05em; }
.character-copy strong { position:static; font:800 1rem/1.3 'DM Sans',sans-serif; overflow-wrap:anywhere; }
.character-copy .character-price { font-size:.8125rem; line-height:1.5; font-weight:600; margin-top:3px; }

/* Play has one primary reward game; supporting activities stay compact. */
.arcade-grid { grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:24px; align-items:start; }
.memory-feature { padding:28px; border-radius:10px; border-width:2px; box-shadow:4px 4px #000; }
.memory-feature h3 { font-size:clamp(1.75rem,3vw,2.5rem); line-height:1.15; margin:22px 0; letter-spacing:-.03em; }
.arcade-label { font:700 .6875rem/1.5 'DM Sans',sans-serif; gap:10px; }
.arcade-label b { font-size:.625rem; }
.arcade-pairs { margin:0 0 24px; }
.memory-feature .prize-grid { width:100%; margin:0 0 24px; gap:12px; }
.memory-feature .prize-grid > div { padding:16px; display:flex; flex-direction:column; gap:7px; }
.memory-feature .prize-grid strong { font-size:1.45rem; line-height:1.2; }
.memory-feature .prize-grid span { font:400 .875rem/1.5 'DM Sans',sans-serif; }
.memory-feature > small { font-size:.8125rem; line-height:1.6; margin-top:16px; }
.arcade-side { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
.reveal-feature { background:#d4baff; color:#171721; padding:26px; border:2px solid #111; border-radius:10px; box-shadow:4px 4px #000; }
.reveal-feature h3 { font-size:1.375rem; line-height:1.25; letter-spacing:-.025em; margin:18px 0 10px; }
.reveal-feature p { font-size:1rem; line-height:1.6; max-width:38ch; margin-bottom:18px; }
.reveal-feature small { display:block; font-size:.8125rem; line-height:1.5; margin-top:14px; }
.mini-seals { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-width:270px; }
.mini-seals > span { display:grid; place-items:center; aspect-ratio:1; border:2px dashed #1118; border-radius:10px; background:#ecdeff; font:800 1rem 'DM Sans',sans-serif; }
.mini-seals > span:nth-child(2) { background:var(--yellow); border-style:solid; transform:rotate(-8deg); font-size:2rem; }
.more-play { background:#242431; border:1px solid #ffffff55; border-radius:8px; }
.more-play summary { display:flex; justify-content:space-between; gap:16px; padding:16px 20px; font-size:.9375rem; font-weight:700; cursor:pointer; }
.more-play[open] summary { border-bottom:1px solid #fff4; }
.more-play summary::-webkit-details-marker { display:none; }
.more-play > div { padding:8px 20px 14px; }
.more-play button { display:grid; gap:5px; padding:12px 0; border:0; background:none; color:inherit; width:100%; text-align:left; }
.more-play button + button { border-top:1px solid #fff3; }
.more-play button b { font-size:.875rem; }
.more-play button span { font-size:.8125rem; line-height:1.5; color:#dad9e5; }
.manifesto { min-height:0; padding-block:56px; gap:40px; }
.manifesto-list { border-width:1px; }
.manifesto-list p { font-family:'DM Sans',sans-serif; font-size:.9375rem; font-weight:500; line-height:1.5; border-width:1px; padding:18px 0; }
.manifesto-list span { border:0; padding:0; background:none; font-size:.6875rem; font-weight:800; }
.faq-list { border-width:1px; }
.faq-list details { border-bottom-width:1px; }
.faq-list summary { font-family:'DM Sans',sans-serif; font-size:1rem; line-height:1.45; font-weight:700; padding:18px 0; }
.faq-list p { font-size:.9375rem; line-height:1.7; max-width:60ch; }
.final-cta { padding-block:64px; }
.final-cta h2 { font-size:clamp(2.5rem,5vw,5rem); line-height:1.1; letter-spacing:-.035em; }
.final-cta > span { font:700 .6875rem/1.5 'DM Sans',sans-serif; letter-spacing:.1em; }

/* Dialogs follow the same hierarchy, including account, bag and checkout. */
#modal .modal-title,#modal .checkout-title,#modal .arcade-heading .modal-title,#modal .reward-ticket .modal-title { font-size:clamp(1.65rem,3vw,2.2rem); line-height:1.17; letter-spacing:-.025em; max-width:26ch; text-wrap:balance; margin-bottom:16px; }
#modal .modal-kicker { font:700 .6875rem/1.5 'DM Sans',sans-serif; letter-spacing:.09em; margin-bottom:10px; }
#modal .modal-intro { font-size:.9375rem; line-height:1.65; max-width:62ch; margin-bottom:22px; }
#modal .pixel-button,#modal .add-button { font-family:'DM Sans',sans-serif; font-weight:800; font-size:.9375rem; line-height:1.35; min-height:48px; }
#modal .save-text { font-family:'DM Sans',sans-serif; font-weight:600; font-size:.8125rem; line-height:1.5; min-height:44px; }
.detail-extra-actions { display:flex; flex-wrap:wrap; gap:4px 24px; }
.box-facts { align-items:center; }
.box-facts .quiet-link { font-size:.8125rem; }
#modal .checkout-section { border:1px solid #1113; border-radius:8px; padding:18px; margin:20px 0; background:#fff; }
#modal .checkout-section legend { padding:0 8px; font:800 1rem/1.4 'DM Sans',sans-serif; }
.checkout-fields label,.gift-purpose legend,.gift-fields legend { font-family:'DM Sans',sans-serif; line-height:1.5; }
.checkout-fields input,.checkout-fields textarea,.checkout-fields select { border-width:1px; box-shadow:none; border-radius:5px; }
.checkout-fields .field-error { min-height:18px; margin-bottom:10px; }
.checkout-lead { font-size:.9375rem; line-height:1.6; }
.checkout-progress-label { font-size:.6875rem; font-weight:600; letter-spacing:.03em; }
.purpose-options b { font:800 .875rem/1.4 'DM Sans',sans-serif; }
.purpose-options small { font-size:.8125rem; line-height:1.5; }

/* Gift Studio: deliberate steps with a live, honest one-box budget. */
#modal[data-view=studio] { max-width:940px; }
.studio-progress { display:flex; list-style:none; padding:0; margin:0 0 24px; gap:0; border-bottom:1px solid #1113; }
.studio-progress li { flex:1; display:flex; align-items:center; gap:7px; padding:0 8px 14px 0; font-size:.8125rem; color:#62616c; }
.studio-progress li[aria-current=step] { color:#111; border-bottom:3px solid #0878ff; }
.studio-progress li b { width:24px; height:24px; display:grid; place-items:center; border:1px solid #aaa; border-radius:50%; font-size:.6875rem; }
.studio-progress li[aria-current=step] b { background:var(--yellow); border-color:#111; }
.studio-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.studio-field { min-width:0; }
.studio-field.wide { grid-column:1/-1; }
.studio-field label { display:flex; justify-content:space-between; gap:10px; align-items:baseline; font-size:.875rem; line-height:1.5; font-weight:700; margin-bottom:7px; }
.studio-field label > span { font-size:.75rem; font-weight:400; }
.studio-field input,.studio-field select,.studio-field textarea { width:100%; min-height:48px; border:1px solid #777; border-radius:6px; padding:12px; color:#171721; background:#fff; font:400 1rem/1.5 'DM Sans',sans-serif; }
.studio-field textarea { resize:vertical; min-height:115px; }
.studio-field input:focus,.studio-field select:focus,.studio-field textarea:focus { outline:3px solid #0878ff; outline-offset:2px; }
.studio-field small,.studio-footnote { display:block; font-size:.8125rem; line-height:1.6; color:#575660; margin-top:7px; }
.studio-budget-note { padding:16px; background:#dff4ff; border-left:4px solid #0878ff; border-radius:5px; margin:22px 0; font-size:.9375rem; line-height:1.6; }
.studio-budget-note[data-empty=true] { background:#fff0cb; border-color:#9e5a09; }
.studio-budget-note strong { display:block; }
.studio-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:24px; padding-top:18px; border-top:1px solid #1113; }
.studio-actions > .experience-button:only-child { margin-left:auto; }
.studio-plan-summary { display:flex; gap:8px 20px; flex-wrap:wrap; align-items:center; font-size:.8125rem; line-height:1.5; padding:12px 0; border-block:1px solid #1113; margin:0 0 22px; }
.studio-plan-summary .quiet-link { margin-left:auto; }
.studio-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.studio-choice { display:flex; flex-direction:column; align-items:stretch; gap:10px; padding:10px; border:2px solid #1114; border-radius:8px; background:#fff; color:#111; text-align:left; position:relative; }
.studio-choice[aria-pressed=true] { border-color:#111; background:#fff8be; box-shadow:3px 3px #0878ff; }
.studio-choice img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:4px; }
.studio-choice strong { font-size:.9375rem; line-height:1.35; }
.studio-choice > span { font-size:.8125rem; line-height:1.5; }
.studio-choice > small { font-size:.75rem; line-height:1.5; color:#53525f; }
.studio-choice .choice-mark { position:absolute; top:16px; right:16px; width:26px; height:26px; border:1px solid #111; border-radius:50%; background:#fff; display:grid; place-items:center; }
.studio-choice[aria-pressed=true] .choice-mark { background:var(--yellow); }
.studio-compose { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:28px; align-items:start; }
.studio-compose .studio-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
.studio-prompt-buttons { display:flex; flex-wrap:wrap; gap:7px; margin:4px 0 10px; }
.studio-prompt-buttons button { background:#eee9ff; color:#111; border:1px solid #aaa0cf; padding:9px 12px; min-height:44px; border-radius:20px; font-size:.75rem; }
.studio-preview { background:#eee6ff; border:1px solid #c3abd8; border-radius:10px; padding:18px; }
.studio-preview > .eyebrow { color:#524164; margin-bottom:12px; }
.studio-picked-product { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.studio-picked-product img { width:60px; height:60px; object-fit:contain; border-radius:4px; border:1px solid #1114; }
.studio-picked-product strong { display:block; font-size:.875rem; line-height:1.4; }
.studio-picked-product small { display:block; font-size:.75rem; margin-top:5px; }
.message-preview { position:relative; background:#fffcf3; border:1px solid #d3c9b5; padding:22px 18px; box-shadow:3px 4px #baa4d244; border-radius:3px; }
.message-preview > span { display:block; font-size:.625rem; letter-spacing:.13em; margin-bottom:22px; color:#8a3170; font-weight:800; }
.message-preview h3 { font:800 1.2rem/1.4 'DM Sans',sans-serif; margin-bottom:12px; overflow-wrap:anywhere; }
.message-preview p { font-size:.9375rem; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.message-preview small { display:block; font-size:.8125rem; margin-top:20px; overflow-wrap:anywhere; }
.studio-preview .quote-totals { margin:18px 0 0; }
.studio-preview .quote-totals > div { font-size:.8125rem; }
.studio-preview .quote-total strong { font-size:1.2rem; }
.studio-cart-notice { font-size:.875rem; line-height:1.65; margin-top:20px; background:#e7f3ff; padding:14px; border-radius:5px; }
.studio-error { font-size:.875rem; line-height:1.5; color:#a4201b; margin-top:14px; }

/* A tactile preview. Illustrated symbols never stand in for actual contents. */
#modal[data-view=unbox] { max-width:780px; }
.unbox-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.55fr); gap:26px; align-items:start; }
.unbox-demo-label { display:inline-block; color:#51436c; background:#eee7ff; padding:7px 10px; border-radius:4px; font-size:.75rem; line-height:1.5; margin-bottom:16px; }
.unbox-box { --seal:#d0afff; background:var(--seal); padding:16px; border:2px solid #111; border-radius:10px; box-shadow:5px 5px #111; }
.unbox-box[data-mood=soft] { --seal:#95dfff; }
.unbox-box[data-mood=sweet] { --seal:#ffa7c8; }
.unbox-box-top { display:flex; justify-content:space-between; gap:12px; padding-bottom:12px; font-size:.6875rem; font-weight:800; line-height:1.5; letter-spacing:.06em; }
.unbox-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.unbox-panel { display:block; width:100%; aspect-ratio:1; padding:0; background:#fff9e4; border:1px solid #1117; border-radius:8px; position:relative; perspective:500px; isolation:isolate; color:#111; overflow:visible; }
.unbox-surprise { position:absolute; inset:0; display:grid; place-content:center; gap:1px; text-align:center; font-size:2rem; color:#534091; }
.unbox-surprise small { font-size:.5rem; font-weight:700; line-height:1.3; color:#6c6081; }
.unbox-seal { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:2px dashed #1118; border-radius:7px; background:var(--seal); transform-origin:50% 0; backface-visibility:hidden; transition:transform .38s,opacity .32s; }
.unbox-panel:nth-child(2n) .unbox-seal { background:color-mix(in srgb,var(--seal) 65%,white); }
.unbox-seal b { font-family:'Archivo Black',sans-serif; font-size:1.2rem; }
.unbox-seal small { font-size:.5rem; letter-spacing:.09em; }
.unbox-panel:active:not(.is-open) .unbox-seal { transform:scale(.9); }
.unbox-panel.is-open .unbox-seal { transform:rotateX(110deg); opacity:0; pointer-events:none; }
.unbox-panel.is-open .unbox-surprise { animation:reveal-pop .4s ease-out; }
.unbox-status { font-size:.875rem; line-height:1.5; margin-top:18px; min-height:42px; }
.unbox-meter { height:4px; background:#ddd4eb; border-radius:5px; margin-top:12px; overflow:hidden; }
.unbox-meter span { display:block; height:100%; width:0; background:#7650b8; transition:width .3s; }
.unbox-product { display:grid; gap:12px; }
.unbox-product img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; border:1px solid #1114; border-radius:6px; }
.unbox-product h3 { font:800 1rem/1.35 'DM Sans',sans-serif; }
.unbox-product p { font-size:.875rem; line-height:1.6; }
.unbox-product .experience-button { font-size:.8125rem; padding:12px; gap:10px; }
.unbox-product .quiet-link { font-size:.8125rem; }
.unbox-footer { border-top:1px solid #1113; margin-top:20px; padding-top:12px; display:flex; gap:12px; justify-content:space-between; align-items:center; flex-wrap:wrap; }
.unbox-footer p { font-size:.8125rem; line-height:1.6; max-width:40ch; }
@keyframes reveal-pop { from { transform:scale(.7); opacity:.3; } to { transform:scale(1); opacity:1; } }

@media(max-width:1000px) {
  .gift-studio-section { grid-template-columns:minmax(0,1fr); gap:36px; }
  .studio-invitation > p { max-width:52ch; }
  .character-rail { grid-auto-columns:calc((100% - 32px)/3); }
}
@media(max-width:720px) {
  :root { --section-heading:clamp(1.75rem,7.5vw,2.1rem); }
  .section { padding:44px 20px; }
  header .account-button { font-size:.75rem; font-weight:600; max-width:76px; border-bottom-width:1px; }
  header nav a { font-size:.8125rem; font-weight:700; }
  .section-title,.arcade-title { display:grid; gap:16px; margin-bottom:24px; }
  .section-title p,.arcade-title > p { margin:0; font-size:.9375rem; line-height:1.65; max-width:40ch; }
  .section .index { margin-bottom:10px; }
  .shop .product-info h3 { font-size:1.0625rem; line-height:1.3; }
  .box-intro { display:block; padding:16px; margin-bottom:20px; }
  .box-intro h3 { font-size:1rem; }
  .box-intro .experience-button { margin-top:14px; padding:11px 14px; font-size:.875rem; }
  .gift-studio-section { gap:28px; }
  .studio-invitation > p { font-size:.9375rem; margin:16px 0; }
  .studio-overview { margin:20px 0; gap:10px; }
  .studio-entry-actions { gap:10px 20px; }
  .character-rail { grid-auto-columns:minmax(0,78%); grid-template-columns:none; grid-template-rows:auto; gap:16px; }
  .character-card { padding:12px; }
  .character-copy strong { font-size:1.125rem; }
  .character-copy .character-mood { font-size:.6875rem; }
  .character-copy .character-price { font-size:.875rem; }
  .arcade-grid { grid-template-columns:minmax(0,1fr); gap:22px; }
  .memory-feature,.reveal-feature { padding:20px; }
  .memory-feature h3 { font-size:1.7rem; margin:20px 0; }
  .memory-feature .prize-grid strong { font-size:1.2rem; }
  .memory-feature .prize-grid > div { padding:13px; }
  .memory-feature .prize-grid span { font-size:.8125rem; }
  .reveal-feature h3 { font-size:1.25rem; }
  .reveal-feature p { font-size:.9375rem; }
  .manifesto { gap:24px; }
  .faq { gap:24px; }
  .faq-list summary { font-size:.9375rem; }
  .final-cta { padding:44px 20px; }
  .final-cta h2 { font-size:clamp(2rem,9vw,3rem); }
  #modal .modal-title,#modal .checkout-title { font-size:1.7rem; }
  #modal .checkout-section { padding:14px; }
  .studio-fields { grid-template-columns:minmax(0,1fr); gap:16px; }
  .studio-choices { grid-template-columns:minmax(0,1fr); gap:12px; }
  .studio-choice { display:grid; grid-template-columns:82px minmax(0,1fr); gap:4px 14px; padding:12px; }
  .studio-choice img { grid-row:1/5; }
  .studio-choice > strong { margin-right:30px; }
  .studio-choice > small,.studio-choice > span:not(.choice-mark) { grid-column:2; }
  .studio-choice .choice-mark { top:10px; right:10px; width:23px; height:23px; }
  .studio-compose { grid-template-columns:minmax(0,1fr); gap:22px; }
  .studio-preview { padding:16px; }
  .studio-progress li { font-size:.75rem; gap:6px; }
  .studio-progress li b { width:21px; height:21px; }
  .studio-actions { gap:14px; }
  .studio-actions .experience-button { font-size:.875rem; padding:12px 14px; }
  .unbox-layout { grid-template-columns:minmax(0,1fr); gap:20px; }
  .unbox-box { max-width:360px; width:100%; margin:auto; padding:14px; }
  .unbox-panel { min-height:58px; }
  .unbox-seal b { font-size:1.35rem; }
  .unbox-seal small,.unbox-surprise small { font-size:.625rem; }
  .unbox-product { grid-template-columns:76px minmax(0,1fr); gap:6px 14px; }
  .unbox-product > img { grid-row:1/4; }
  .unbox-product > .experience-button,.unbox-product > .quiet-link { grid-column:1/-1; margin-top:6px; }
  .unbox-footer { gap:0; }
}
@media(max-width:360px) {
  .section { padding-inline:16px; }
  .studio-progress li { font-size:.6875rem; }
  .studio-actions { align-items:stretch; flex-direction:column-reverse; }
  .studio-actions > .experience-button:only-child { margin:0; }
  .unbox-box { padding:10px; }
  .unbox-board { gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .experience-button,.character-card,.unbox-panel .unbox-seal,.unbox-meter span { transition:none; }
  .unbox-panel.is-open .unbox-surprise { animation:none; }
  .experience-button:hover,.character-card:hover { transform:none; }
}

/* Explain the physical product before asking for a purchase. */
.product-explainer{margin:22px 0;border:1px solid rgba(20,20,20,.2);border-radius:12px;background:rgba(255,255,255,.45);padding:18px}
.product-explainer h3{font:800 18px/1.3 'DM Sans',sans-serif;margin:0 0 10px;letter-spacing:-.02em}
.product-explainer>p{font-size:16px;line-height:1.65;margin:0 0 18px}
.product-explainer ol{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.product-explainer li{display:flex;gap:12px;align-items:flex-start}
.product-explainer li>span{width:28px;min-width:28px;height:28px;display:grid;place-items:center;background:#171721;color:#fff;border-radius:50%;font-size:10px;font-weight:800}
.product-explainer li strong{display:block;font-size:14px;line-height:1.4;margin-bottom:4px}
.product-explainer li small{display:block;font-size:14px;line-height:1.6;color:#414149}
.product-explainer details{border-top:1px solid rgba(20,20,20,.18);margin:18px 0 0;padding-top:6px}
.product-explainer summary{font-size:14px;line-height:1.5;padding:12px 0;font-weight:700;cursor:pointer}
.product-explainer details p{font-size:14px;line-height:1.7;margin:6px 0}
