:root {
  --paper:#f8f9fb; --white:#fff; --ink:#1b1d26; --muted:#636774;
  --accent:#5845e8; --accent-soft:#efedff; --lime:#d8f899; --line:#e3e5eb;
  --sans:Arial,Helvetica,sans-serif; --radius:18px;
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:24px }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.5 var(--sans); -webkit-font-smoothing:antialiased }
button,a,input { -webkit-tap-highlight-color:transparent }
button { font:inherit; cursor:pointer; color:inherit; touch-action:manipulation }
button:disabled { cursor:default }
a { color:inherit }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid var(--accent); outline-offset:4px }
.wrap { width:min(1320px,100%); margin-inline:auto; padding-inline:48px }
.skip { position:fixed; top:0; left:24px; padding:12px 20px; background:var(--ink); color:white; transform:translateY(-110%); z-index:50 }
.skip:focus { transform:none }
.masthead { height:94px; display:flex; align-items:center; justify-content:space-between; gap:20px }
.brand { display:flex; align-items:center; gap:10px; font-size:23px; font-weight:800; text-decoration:none; letter-spacing:-1.2px }
.brand>span:not(.brand-icon) { margin-left:-10px; font-weight:400 }
.brand-icon { width:36px; height:38px; display:grid; place-items:center; background:var(--ink); color:white; border-radius:11px; margin-right:2px }
.brand-icon svg { width:23px; height:23px }
.brand small { font-size:8px; font-weight:700; letter-spacing:1px; padding:3px 5px; background:#ebeaf4; border-radius:4px; margin-left:1px }
.header-nav { display:flex; align-items:center; gap:32px; font-size:12px; font-weight:600 }
.header-nav a { text-decoration:none }
.quiet { background:none; border:0; padding:9px 0; font-size:12px }
.quiet span { margin-left:12px }
.hero { display:grid; grid-template-columns:1fr 1fr; gap:45px; align-items:center; padding-top:30px; padding-bottom:42px }
.eyebrow { display:flex; align-items:center; gap:9px; margin:0 0 20px; font-size:10px; font-weight:700; letter-spacing:1.4px; line-height:1.6 }
.live-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px #5845e80c; margin-right:4px }
.eyebrow-place { color:var(--muted); font-weight:400; letter-spacing:.8px }
h1 { font-size:clamp(48px,5.15vw,72px); font-weight:750; line-height:1.01; letter-spacing:-4px; margin:0 0 24px }
h1 em { color:var(--accent); font-style:normal }
.intro { margin:0 0 25px; color:var(--muted); font-size:15px; line-height:1.8 }
.intro strong { color:var(--ink); font-weight:700 }
.budget-options { border:0; padding:0; margin:0 0 25px; display:flex; align-items:center; gap:8px }
.budget-options legend { font-size:10px; font-weight:700; color:var(--muted); margin-bottom:10px; text-transform:uppercase; letter-spacing:1px }
.budget-options label { position:relative; cursor:pointer }
.budget-options input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer }
.budget-options label span { display:block; border:1px solid var(--line); border-radius:9px; padding:9px 23px; font-size:15px; font-weight:700; background:white; transition:background .18s,color .18s }
.budget-options input:checked+span { background:var(--ink); color:white; border-color:var(--ink) }
.budget-options input:focus-visible+span { outline:3px solid var(--accent); outline-offset:3px }
.budget-note { margin-left:8px; color:var(--muted); font-size:10px; line-height:1.6 }
.primary,.secondary { border:1px solid var(--accent); border-radius:10px; background:var(--accent); color:white; min-height:46px; padding:12px 18px; font-size:12px; font-weight:700; transition:background .18s,transform .18s }
.primary:hover:not(:disabled) { background:#4835cd }
.primary:disabled { background:#ececf1; color:#9699a5; border-color:#ececf1 }
.secondary { color:var(--ink); background:white; border-color:var(--line) }
.secondary:hover { background:var(--accent-soft) }
.hero-cta { display:flex; align-items:center; justify-content:space-between; gap:40px; width:max-content; text-decoration:none; font-size:13px; min-height:49px }
.hero-cta span { font-size:20px; line-height:1 }
.hero-fine { margin:12px 0 0; color:var(--muted); font-size:10px }
.hero-photo { margin:0; position:relative; aspect-ratio:1.14; border-radius:26px; background:#f0eee7; overflow:hidden; align-self:stretch; min-height:370px }
.hero-photo>img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0 }
.year-badge { position:absolute; top:23px; right:23px; display:block; padding:14px 16px; background:var(--lime); font-size:8px; line-height:1.1; font-weight:700; letter-spacing:1px; transform:rotate(8deg); border-radius:50%; width:91px; height:91px; text-align:center; align-content:center; box-shadow:0 2px 8px #00000005 }
.year-badge strong { display:block; font-size:28px; letter-spacing:-1.5px; margin-top:3px }
.hero-photo figcaption { position:absolute; bottom:0; left:0; right:0; display:flex; gap:7px; align-items:center; background:#ffffffdf; backdrop-filter:blur(15px); padding:14px 18px; font-size:10px; font-weight:600 }
.photo-dot { width:6px; height:6px; border-radius:50%; background:var(--accent) }
.image-disclosure { margin-left:auto; font-weight:400; font-size:9px; color:var(--muted) }
.scene-facts { display:flex; justify-content:center; align-items:center; gap:60px; padding-block:18px; border-block:1px solid var(--line); color:var(--muted); font-size:11px }
.scene-facts span { display:flex; gap:8px; align-items:center }
.scene-facts svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round }
.shop { padding-top:54px; padding-bottom:48px; scroll-margin-top:10px }
.shop-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:25px }
.shop-heading .eyebrow { color:var(--accent); margin-bottom:8px; font-size:9px }
h2 { font-size:32px; font-weight:700; line-height:1.15; letter-spacing:-1.2px; margin:0 }
.shelf-note { margin:11px 0 0; color:var(--muted); font-size:12px }
.collection-date { font-size:9px; color:var(--muted); letter-spacing:1px; padding-bottom:3px; white-space:nowrap }
.collection-date span { font-size:23px; margin-left:22px; vertical-align:middle; color:var(--ink) }
.shop-layout { display:grid; grid-template-columns:minmax(0,1fr) 292px; gap:28px; align-items:start }
.filters { display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; padding:2px 2px 22px }
.filters::-webkit-scrollbar { display:none }
.filter { flex-shrink:0; min-height:38px; border:1px solid transparent; background:transparent; color:var(--muted); border-radius:8px; padding:8px 12px; font-size:11px; transition:background .18s }
.filter.active { background:var(--ink); color:white; font-weight:600 }
.filter:not(.active):hover { background:#edeef3; color:var(--ink) }
.filter span { font-size:9px; background:#ffffff25; border-radius:4px; padding:2px 5px; margin-left:6px }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 15px }
.product { border:1px solid var(--line); border-radius:15px; background:white; overflow:hidden; display:flex; flex-direction:column; transition:border-color .18s,box-shadow .18s }
.product:hover { border-color:#c8c7d9; box-shadow:0 7px 20px #1b1d2606 }
.product.chosen { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) }
.product-visual { position:relative; aspect-ratio:1; overflow:hidden; background:#f4f4ef }
.product-visual .product-image { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s }
.product:hover .product-image { transform:scale(1.035) }
.price-tag { position:absolute; top:11px; right:11px; color:var(--ink); background:#ffffffed; border:1px solid #ffffff88; padding:5px 9px; border-radius:7px; font-size:13px; font-weight:750; letter-spacing:-.2px; backdrop-filter:blur(8px) }
.chosen-mark { position:absolute; left:11px; top:11px; background:var(--accent); color:white; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; font-size:13px }
.product-copy { padding:15px 13px 12px; display:flex; flex-direction:column; flex:1 }
.product h3 { font-size:13px; font-weight:700; line-height:1.35; letter-spacing:-.2px; margin:0 0 5px }
.unit { font-size:10px; color:var(--muted); margin:0 0 7px; min-height:15px }
.source-button { align-self:start; min-height:32px; border:0; padding:4px 0 10px; color:#727483; background:none; font-size:9px; text-decoration:underline; text-underline-offset:3px; text-decoration-color:#d1d2db; margin-bottom:4px }
.add-button { display:flex; align-items:center; justify-content:space-between; gap:5px; text-align:left; width:100%; min-height:40px; padding:8px 10px; margin-top:auto; border:1px solid var(--line); border-radius:8px; background:white; font-size:10px; font-weight:600; transition:background .18s }
.add-button>span:last-child { font-size:17px; line-height:1 }
.add-button:hover:not(:disabled) { background:var(--accent-soft); border-color:#d8d2ff }
.chosen .add-button { background:var(--accent-soft); border-color:transparent; color:#4934ce }
.add-button:disabled { color:#797c88; background:#f3f4f7; border-color:transparent; font-weight:400; font-size:9px }
.basket { position:sticky; top:24px; padding:24px 21px 20px; background:white; border:1px solid var(--line); border-radius:16px; box-shadow:0 7px 25px #1b1d2604 }
.basket-head { display:flex; align-items:center; gap:9px }
.basket-symbol { display:grid; place-items:center; width:29px; height:29px; color:var(--accent); background:var(--accent-soft); border-radius:9px; font-size:19px }
.basket h2 { font-size:21px; letter-spacing:-.7px; flex:1 }
.count { display:grid; place-items:center; min-width:23px; height:23px; background:#f0f1f5; font-size:10px; border-radius:50% }
.basket-hint { font-size:10px; color:var(--muted); margin:12px 0 20px }
.empty-basket { padding:25px 5px 29px; border-block:1px dashed var(--line); color:#888b97; text-align:center }
.empty-basket svg { width:51px; height:45px; margin:0 auto 12px; display:block; opacity:.65 }
.empty-basket p { font-size:11px; margin:0; line-height:1.7 }
.basket-row { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid #f0f1f4 }
.mini-art { display:block; overflow:hidden; background:#f4f4ef; border-radius:7px; flex-shrink:0 }
.mini-art img { width:100%; height:100%; object-fit:cover; display:block }
.basket-row .mini-art { width:38px; height:38px }
.row-name { flex:1; font-size:10px; line-height:1.4 }
.row-price { font-size:10px; font-weight:600 }
.remove { border:0; background:none; color:var(--muted); font-size:18px; min-width:24px; min-height:34px; padding:2px }
.basket-totals { padding-top:20px }
.basket-totals>div:not(.budget-track) { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:11px; margin-bottom:13px }
.basket-totals strong { font-weight:600; font-variant-numeric:tabular-nums }
.basket-totals .remaining { font-size:11px; margin-bottom:16px }
.remaining strong { font-size:28px; font-weight:700; color:var(--accent); letter-spacing:-1px }
.budget-track { height:5px; border-radius:8px; overflow:hidden; background:var(--accent-soft); margin-bottom:20px }
.budget-track i { display:block; height:100%; background:var(--accent); transition:width .2s }
.receipt-button { display:flex; align-items:center; justify-content:space-between; width:100% }
.pretend { font-size:9px; color:var(--muted); text-align:center; margin:11px 0 0 }
.reset { display:block; margin:8px auto 0; text-decoration:underline; text-underline-offset:3px; font-size:10px }
.reset[hidden] { display:none }
.illustration-note { font-size:10px; color:var(--muted); line-height:1.8; margin:20px 0 0 }
.illustration-note .text-link { font-size:10px; min-height:auto; padding:0 }
.story-strip { display:flex; align-items:center; gap:32px; padding-block:42px; border-top:1px solid var(--line); border-bottom:1px solid var(--line) }
.story-year { flex-shrink:0; display:grid; place-items:center; width:122px; height:122px; border-radius:24px; background:var(--lime); font-size:63px; font-weight:750; letter-spacing:-5px; transform:rotate(-5deg) }
.story-strip .eyebrow { color:var(--muted); font-size:9px; margin-bottom:9px }
.story-strip h2 { font-size:26px; letter-spacing:-.9px }
.story-strip p:not(.eyebrow) { color:var(--muted); font-size:12px; max-width:570px; line-height:1.8; margin:9px 0 }
.text-link { border:0; background:none; padding:5px 0; min-height:35px; text-decoration:underline; text-underline-offset:4px; color:var(--accent); font-size:11px }
.text-link span { margin-left:8px }
.story-seal { margin-left:auto; font-size:13px; font-weight:750; line-height:1.3; color:var(--accent); letter-spacing:-.3px; transform:rotate(7deg); padding:23px; border:1px solid #d3ccfc; border-radius:50%; text-align:center }
footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:30px; font-size:10px; color:var(--muted) }
.footer-brand { font-size:15px; font-weight:700; color:var(--ink); text-decoration:none; letter-spacing:-.5px }
.footer-brand span { margin-left:9px; color:var(--accent) }
.mobile-bar { display:none }
.toast { position:fixed; z-index:25; bottom:25px; left:50%; transform:translate(-50%,12px); max-width:min(90vw,460px); min-width:220px; text-align:center; border-radius:12px; background:var(--ink); color:white; padding:13px 18px; font-size:12px; opacity:0; pointer-events:none; transition:.18s; box-shadow:0 8px 28px #0002 }
.toast.visible { transform:translate(-50%,0); opacity:1 }
dialog { border:1px solid var(--line); border-radius:22px; background:var(--paper); color:var(--ink); padding:36px; max-width:530px; width:calc(100% - 28px); max-height:90dvh; overflow-y:auto; box-shadow:0 25px 100px #1b1d2633 }
dialog::backdrop { background:#1517249c; backdrop-filter:blur(6px) }
.close { position:absolute; top:11px; right:11px; display:grid; place-items:center; width:34px; height:34px; border:0; border-radius:50%; background:#e9eaf0; font-size:23px; color:var(--muted); z-index:2 }
.info-illustration { width:100%; height:210px; border-radius:12px; overflow:hidden; background:#f4f4ef; margin:0 0 24px }
.info-illustration img { width:100%; height:100%; object-fit:contain }
#info-content h2 { font-size:28px; margin-bottom:14px }
#info-content p { font-size:12px; line-height:1.8 }
.source-facts { border-block:1px solid var(--line); padding-block:12px; margin-block:20px; font-size:12px }
.source-facts div { display:flex; justify-content:space-between; gap:20px; margin-block:9px }
.source-facts dt { color:var(--muted) }
.source-facts dd { margin:0; text-align:right }
.source-explainer { color:var(--muted) }
.source-anchor { color:var(--accent); font-size:12px; text-underline-offset:4px }
.source-list { padding-left:19px; font-size:12px; line-height:1.9 }
.receipt-top { text-align:center }
.receipt-top .eyebrow { justify-content:center; color:var(--accent); font-size:9px; margin-bottom:10px }
.receipt-top h2 { font-size:32px }
.receipt-top>p:last-child { color:var(--muted); font-size:12px; margin:11px 0 23px }
.receipt-paper { position:relative; background:white; padding:25px 22px; box-shadow:0 3px 18px #1b1d2609; font-family:'Courier New',monospace; border-radius:3px }
.receipt-paper:after { content:''; position:absolute; bottom:-5px; left:0; width:100%; height:10px; background:conic-gradient(from -45deg at 50% 50%,transparent 0 90deg,#fff 90deg 180deg,transparent 180deg) 0 0/12px 12px }
.receipt-brand { text-align:center; font:750 24px var(--sans); letter-spacing:-1px; margin:0 }
.receipt-meta { text-align:center; font-size:9px; line-height:1.8; margin:9px 0 18px }
.receipt-list { border-block:1px dashed #c9cbd5; padding-block:10px }
.receipt-item { display:flex; align-items:center; gap:9px; font-size:11px; padding-block:5px }
.receipt-item .mini-art { width:39px; height:39px }
.receipt-item>span:nth-child(2) { flex:1 }
.receipt-summary { border-bottom:1px dashed #c9cbd5; padding-block:12px; font-size:12px }
.receipt-summary>div { display:flex; justify-content:space-between; margin-block:7px }
.receipt-summary>div:last-child { font-weight:700; color:var(--accent) }
.receipt-message { text-align:center; font-size:10px; line-height:1.7; margin:18px 0 0 }
.receipt-fine { font-size:8px; text-align:center; line-height:1.7; margin:10px 0 0; color:var(--muted) }
.receipt-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:26px }
.receipt-actions .text-link { grid-column:1/-1 }
.replay { text-align:center; border-top:1px solid var(--line); margin-top:16px; padding-top:17px }
.replay p { font-size:12px; color:var(--muted) }
.replay button { display:block; margin:8px auto }
.private-note { text-align:center; font-size:10px; color:var(--muted); margin:15px 0 0 }
body:has(dialog[open]) { overflow:hidden }
@media(min-width:1500px) { .wrap { max-width:1400px } h1 { font-size:78px } }
@media(max-width:1100px) {
  .wrap { padding-inline:32px } .hero { gap:30px } h1 { font-size:56px; letter-spacing:-3px } .hero-photo { min-height:380px }
  .shop-layout { grid-template-columns:minmax(0,1fr) 265px; gap:22px } .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 14px }
  .scene-facts { gap:32px } .product h3 { font-size:14px }
}
@media(max-width:760px) {
  .wrap { padding-inline:23px } .masthead { height:76px } .brand { font-size:21px } .brand-icon { width:32px; height:34px; border-radius:9px } .brand small { display:none }
  .header-nav { gap:20px } .header-nav>a { display:none } .quiet { font-size:11px }
  .hero { grid-template-columns:1fr; gap:27px; padding-top:28px; padding-bottom:25px } .eyebrow { font-size:9px; gap:8px; letter-spacing:1.1px; margin-bottom:18px } .eyebrow-place { font-size:8px; letter-spacing:.6px }
  h1 { font-size:clamp(47px,9.8vw,70px); letter-spacing:-2.8px; margin-bottom:19px; line-height:1.04 }
  .intro { font-size:14px; margin-bottom:19px; line-height:1.7 } .budget-options { margin-bottom:19px } .budget-options legend { font-size:9px; margin-bottom:8px }
  .budget-options label span { padding:8px 23px; min-height:43px } .hero-cta { min-height:47px; font-size:12px } .hero-fine { font-size:9px; margin-top:10px }
  .hero-photo { min-height:0; aspect-ratio:1.55; border-radius:18px } .hero-photo>img { object-position:50% 53% } .year-badge { width:71px; height:71px; top:15px; right:15px; padding:10px; font-size:6px } .year-badge strong { font-size:23px } .hero-photo figcaption { font-size:9px; padding:10px 13px } .image-disclosure { font-size:8px }
  .scene-facts { gap:20px; justify-content:space-between; font-size:9px; padding-block:14px } .scene-facts span { gap:6px } .scene-facts svg { width:16px; height:16px; flex-shrink:0 } .scene-facts span:last-child { display:none }
  .shop { padding-top:33px; padding-bottom:34px } .shop-heading { margin-bottom:20px } .shop-heading .eyebrow { margin-bottom:7px; font-size:8px } h2 { font-size:29px; letter-spacing:-1.2px } .shelf-note { font-size:11px; margin-top:9px; max-width:270px } .collection-date { display:none }
  .shop-layout { display:block } .filters { gap:4px; padding-bottom:18px; margin-right:-23px } .filter { font-size:10px; padding:8px 11px; min-height:37px } .filter span { font-size:8px; padding:1px 4px; margin-left:4px }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 12px } .product { border-radius:13px } .product-copy { padding:12px 11px 11px } .product h3 { font-size:13px; line-height:1.4 } .unit { font-size:10px; margin-bottom:4px } .source-button { font-size:9px; min-height:32px; margin-bottom:4px } .price-tag { top:9px; right:9px; font-size:12px; padding:4px 7px; border-radius:6px } .chosen-mark { top:9px; left:9px; width:23px; height:23px; font-size:11px }
  .add-button { min-height:43px; padding:8px; font-size:10px } .add-button:disabled { font-size:8px }
  .basket { position:relative; top:auto; margin-top:28px; padding:24px; border-radius:17px; scroll-margin-top:20px } .basket h2 { font-size:24px } .basket-hint { font-size:11px } .row-name,.row-price { font-size:12px } .remove { min-width:40px; min-height:42px } .basket-row .mini-art { width:45px; height:45px } .basket-totals>div:not(.budget-track) { font-size:12px } .remaining strong { font-size:31px }
  .mobile-bar { position:fixed; bottom:0; left:0; right:0; z-index:10; display:flex; align-items:center; justify-content:space-between; background:#fffffff2; backdrop-filter:blur(15px); border-top:1px solid var(--line); padding:12px 23px max(12px,env(safe-area-inset-bottom)) }
  .mobile-bar>div { display:flex; flex-direction:column } .mobile-bar small { font-size:9px; color:var(--muted) } .mobile-bar strong { color:var(--accent); font-size:26px; line-height:1.2; font-weight:750; letter-spacing:-1px } .mobile-bar button { display:flex; justify-content:space-between; align-items:center; gap:17px; min-width:150px; min-height:45px } .mobile-bar button span:first-child { font-size:10px; background:#ffffff24; border-radius:50%; min-width:22px; padding:2px 5px } .toast { bottom:98px }
  .illustration-note { font-size:9px; margin-top:16px } .story-strip { gap:18px; padding-block:29px; align-items:start } .story-year { width:70px; height:80px; border-radius:16px; font-size:43px; letter-spacing:-3px; margin-top:6px } .story-strip .eyebrow { font-size:7px; margin-bottom:8px } .story-strip h2 { font-size:22px; letter-spacing:-.7px } .story-strip p:not(.eyebrow) { font-size:11px; line-height:1.7 } .story-seal { display:none }
  footer { padding-top:25px; padding-bottom:115px; flex-wrap:wrap; gap:13px; font-size:9px } footer>span:last-child { display:none } footer>span { width:100% }
  dialog { padding:33px 20px 24px; border-radius:18px; max-height:92dvh } .receipt-top h2 { font-size:29px } .receipt-top .eyebrow { font-size:8px } .receipt-paper { padding:23px 16px } .receipt-item { font-size:10px } .receipt-summary { font-size:11px } .receipt-actions { grid-template-columns:1fr } .receipt-actions .text-link { grid-column:auto } .info-illustration { height:185px } .source-facts { font-size:11px }
}
@media(max-width:360px) {
  .wrap { padding-inline:18px } .brand { font-size:19px; gap:8px } .brand>span:not(.brand-icon) { margin-left:-8px } .brand-icon { width:29px; height:31px } .header-nav .quiet { font-size:10px } .quiet span { margin-left:5px }
  .eyebrow { font-size:8px; gap:6px; letter-spacing:.8px } .eyebrow-place { font-size:7px } h1 { font-size:43px; letter-spacing:-2.5px } .intro { font-size:12px } .budget-note { font-size:9px } .scene-facts { gap:10px; font-size:8px } .scene-facts svg { width:14px; height:14px } .hero-photo figcaption { font-size:8px; padding-inline:10px } .image-disclosure { font-size:7px }
  .product-grid { gap:13px 10px } .product-copy { padding:11px 9px 9px } .product h3 { font-size:12px } .unit { font-size:9px } .source-button { font-size:8px } .add-button { font-size:9px; padding:7px } .price-tag { font-size:11px; right:7px; top:7px } .filter { padding-inline:9px; font-size:9px } .filters { margin-right:-18px } .mobile-bar { padding-inline:18px } .story-year { width:58px; height:68px; font-size:35px } .story-strip h2 { font-size:20px } .source-facts div { gap:12px }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto } *,*:before,*:after { transition:none!important; animation:none!important } }

/* Theme controls reuse the existing shelf typography, links and colours. */
.memory-context{border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:20px;background:#fff}
.memory-context label{display:block;font-size:11px;font-weight:700;margin-bottom:8px}
.memory-context select{display:block;width:100%;max-width:420px;min-height:44px;border:1px solid var(--line);border-radius:9px;padding:10px;font:inherit;font-size:13px;background:#fff;color:var(--ink)}
.memory-context select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.memory-context p,.shelf-empty{font-size:12px;line-height:1.65;color:var(--muted);margin:12px 0}
.memory-context-links{display:flex;gap:12px 22px;flex-wrap:wrap;align-items:center}
.memory-context-links .text-link{font-size:11px}
.shelf-empty{padding:24px;border:1px dashed var(--line);border-radius:12px}

.receipt-tagline {text-align:center;font-size:10px;line-height:1.5;margin:5px 0 10px;color:var(--muted,#626374)}

/* Real shopping stays visually distinct from the historical game. */
.shopping-cta{margin:18px 0;padding:18px;border:1px solid #e8be48;border-radius:14px;background:#fff6d8;color:#23242d;text-align:left}
.shopping-cta h3{font-size:19px;line-height:1.2;letter-spacing:-.5px;margin:0 0 8px}
.shopping-cta p{font-size:12px;line-height:1.55;margin:0 0 12px;color:#4d493e}
.shopping-cta small{display:block;font-size:10px;line-height:1.55;margin:10px 0 0;color:#575044}
.amazon-cta{display:flex;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:13px 15px;background:#ffcf47;border:1px solid #b78b13;border-radius:10px;color:#20212a;font-size:13px;font-weight:800;line-height:1.4;text-align:center;text-decoration:none;box-shadow:0 3px 0 #d7aa2d}
.amazon-cta:hover{background:#ffd96b}
[data-shopping-cta="receipt"]{margin:0 0 22px;padding:20px}
[data-shopping-cta="receipt"] .amazon-cta{font-size:15px;min-height:54px}
@media(max-width:760px){
 .mobile-bar{flex-wrap:wrap;gap:9px 14px}
 .mobile-bar [data-shopping-mobile]{flex-basis:100%;min-height:42px;padding:9px 12px;font-size:12px}
 body:has(.mobile-bar){padding-bottom:65px}
 body:has(.mobile-bar) .toast{bottom:155px}
 .shopping-cta h3{font-size:19px}
}
