:root {
    --blue: #1aa6ad;
    --blue-deep: #0a1a3b;
    --blue-pale: #d8eaff;
    --cream: #f6f0df;
    --paper: #fffdf7;
    --orange: #ff5b2d;
    --mint: #87e6c3;
    --ink: #09172d;
    --line: rgba(9, 23, 45, 0.18);
    --radius: 2rem;
    --container: min(92vw, 1440px);
    --space: clamp(5rem, 10vw, 9rem);
    --font-display: "Space Grotesk", system-ui, sans-serif;
    --font-pixel: "Silkscreen", monospace;
}

* { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    scroll-padding-top: 7rem;
    background: var(--ink);
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.05vw, 1.15rem);
    line-height: 1.55;
    overflow-x: clip;
}

body.nav-open, body.cart-open, body.lightbox-open { overflow: hidden; }

::selection { color: var(--paper); background: var(--orange); }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    z-index: 999;
    top: 1rem;
    left: 1rem;
    padding: .8rem 1.2rem;
    background: var(--paper);
    border: 2px solid var(--ink);
    transform: translateY(-180%);
    transition: transform .2s ease;
}

.skip-link:focus { transform: translateY(0); }

.toy-sky {
    position: fixed;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: .42;
}

.site-header {
    position: fixed;
    z-index: 100;
    top: 1.15rem;
    left: 50%;
    width: min(94vw, 1480px);
    min-height: 5.25rem;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 2rem;
    padding: .45rem .65rem .45rem 1rem;
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 999px;
    background: rgba(246, 240, 223, .82);
    backdrop-filter: blur(18px);
    box-shadow: 0 1.25rem 3rem rgba(10, 26, 59, .08);
    transform: translateX(-50%);
    transition: min-height .3s ease, background-color .3s ease, box-shadow .3s ease;
}

.site-header.is-scrolled {
    min-height: 4.65rem;
    background: rgba(255, 253, 247, .94);
    box-shadow: 0 1rem 2.5rem rgba(10, 26, 59, .13);
}

.brand {
    width: 4.65rem;
    height: 4rem;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.brand img { width: 4.45rem; height: auto; }

.main-nav {
    justify-self: center;
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2.4vw, 2.6rem);
}

.main-nav a,
.lang-switch {
    position: relative;
    font-family: var(--font-pixel);
    font-size: .67rem;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.main-nav a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -.4rem;
    left: 0;
    height: 2px;
    background: var(--orange);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .25s ease;
}

.main-nav a:hover::after,
.main-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }

.lang-switch {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .35rem .4rem .35rem 1rem;
    border-radius: 999px;
    background: var(--ink);
    color: var(--paper);
}

.lang-switch b {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 50%;
    color: var(--ink);
    background: var(--orange);
}

.nav-toggle { display: none; }

.hero {
    position: relative;
    z-index: 1;
    min-height: 100svh;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(34rem, 1.15fr);
    align-items: center;
    gap: clamp(2rem, 4vw, 6rem);
    padding: clamp(9rem, 14vh, 12rem) max(4vw, calc((100vw - 1440px) / 2)) 6rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 20%, rgba(255,255,255,.9) 0 8%, transparent 29%),
        linear-gradient(135deg, #e6f2ff 0%, #b9dbff 60%, #d6eaff 100%);
}

.hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -8vw;
    bottom: -26vw;
    width: 78vw;
    height: 52vw;
    border-radius: 50%;
    background: var(--blue);
    opacity: .14;
}

.hero-copy { position: relative; z-index: 3; max-width: 49rem; }

.eyebrow {
    margin: 0 0 1.2rem;
    color: var(--blue);
    font-family: var(--font-pixel);
    font-size: clamp(.62rem, .8vw, .78rem);
    line-height: 1.35;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.eyebrow::before { content: "[ "; color: var(--orange); }
.eyebrow::after { content: " ]"; color: var(--orange); }
.eyebrow--light { color: var(--mint); }

.hero-title,
.display-title {
    margin: 0;
    font-weight: 600;
    letter-spacing: -.065em;
    line-height: .9;
}

.hero-title {
    max-width: 12ch;
    font-size: clamp(4rem, 7.6vw, 8.6rem);
}

.hero-title span { display: block; }

.hero-title-accent {
    color: transparent;
    -webkit-text-stroke: clamp(1px, .12vw, 2px) var(--ink);
}

.hero-body {
    max-width: 36rem;
    margin: 2rem 0 0;
    font-size: clamp(1.05rem, 1.35vw, 1.3rem);
}

.hero-actions,
.form-footer {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    margin-top: 2rem;
}

.button {
    position: relative;
    display: inline-flex;
    min-height: 3.7rem;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    padding: .9rem 1.15rem .9rem 1.5rem;
    border: 0;
    border-radius: 999px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.button span {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: rgba(255,255,255,.17);
}

.button:hover,
.button:focus-visible { transform: translateY(-3px); box-shadow: 0 .9rem 2rem rgba(9,23,45,.18); }
.button--ink { color: var(--paper); background: var(--ink); }
.button--cream { color: var(--ink); background: var(--cream); }
.button--orange { color: var(--ink); background: var(--orange); }

.text-link {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    padding-bottom: .25rem;
    border-bottom: 1px solid currentColor;
    font-weight: 700;
}

.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(.3rem); }

.hero-visual { position: relative; z-index: 2; min-width: 0; }

.hero-image-shell {
    position: relative;
    aspect-ratio: 1.1;
    overflow: hidden;
    border: clamp(.7rem, 1.2vw, 1.2rem) solid var(--paper);
    border-radius: 50% 50% 3rem 3rem;
    box-shadow: 0 2rem 6rem rgba(25, 73, 150, .25);
    transform: rotate(1.8deg);
}

.hero-image-shell img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }

.hero-badge {
    position: absolute;
    top: -2.2rem;
    right: 2rem;
    width: clamp(7rem, 10vw, 9.5rem);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border: 2px solid var(--ink);
    border-radius: 50%;
    color: var(--paper);
    background: var(--orange);
    box-shadow: .55rem .55rem 0 var(--ink);
    font-family: var(--font-pixel);
    font-size: .65rem;
    line-height: 1.4;
    text-align: center;
    transform: rotate(8deg);
}

.hero-badge::before,
.hero-badge::after {
    content: "✦";
    position: absolute;
    font-size: 1.2rem;
}
.hero-badge::before { top: .8rem; }
.hero-badge::after { bottom: .8rem; }

.pixel-tag {
    position: absolute;
    padding: .65rem .85rem;
    border: 2px solid var(--ink);
    border-radius: .35rem;
    background: var(--paper);
    box-shadow: .3rem .3rem 0 var(--ink);
    font-family: var(--font-pixel);
    font-size: clamp(.48rem, .6vw, .62rem);
}

.pixel-tag--left { bottom: 14%; left: -3rem; transform: rotate(-4deg); }
.pixel-tag--right { right: -1.5rem; bottom: 3%; transform: rotate(3deg); }

.hero-orbit {
    position: absolute;
    z-index: 0;
    border: 1px solid rgba(9,23,45,.16);
    border-radius: 50%;
    pointer-events: none;
}

.hero-orbit::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -5px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--orange);
}

.hero-orbit--one { top: 12%; right: 8%; width: 44vw; height: 44vw; transform: rotate(-18deg); }
.hero-orbit--two { bottom: -20%; left: -8%; width: 32vw; height: 32vw; }

.hero-scroll {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    display: flex;
    align-items: center;
    gap: .7rem;
    font-family: var(--font-pixel);
    font-size: .55rem;
    transform: translateX(-50%) rotate(90deg);
    transform-origin: center;
}

.hero-scroll i { width: 3rem; height: 1px; background: currentColor; }

.ticker {
    position: relative;
    z-index: 3;
    overflow: hidden;
    color: var(--paper);
    background: var(--ink);
    border-top: 1px solid rgba(255,255,255,.1);
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.ticker-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: .9rem 0;
    animation: ticker 28s linear infinite;
}

.ticker span { font-family: var(--font-pixel); font-size: .72rem; white-space: nowrap; }
.ticker i { color: var(--orange); font-style: normal; }

@keyframes ticker { to { transform: translateX(-50%); } }

.section {
    position: relative;
    z-index: 2;
    padding: var(--space) max(4vw, calc((100vw - 1440px) / 2));
}

.section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .6fr);
    align-items: end;
    gap: 4rem;
    margin-bottom: clamp(3rem, 6vw, 5.5rem);
}

.display-title {
    max-width: 12ch;
    font-size: clamp(3.5rem, 6.8vw, 8rem);
}

.display-title--light { color: var(--paper); }
.section-intro { max-width: 34rem; margin: 0 0 .5rem; }

.finds { background: var(--paper); }

.category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.category-card {
    position: relative;
    min-height: 28rem;
    display: flex;
    flex-direction: column;
    padding: 1.4rem;
    overflow: hidden;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    transition: color .35s ease, background-color .35s ease;
}

.category-card:nth-child(2n) { background: var(--cream); }
.category-card:hover { color: var(--paper); background: var(--blue); }

.category-number { font-family: var(--font-pixel); font-size: .65rem; }

.category-icon {
    width: 7rem;
    height: 7rem;
    margin: auto;
    border: 2px solid currentColor;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1.2rem transparent, inset 0 0 0 1.3rem currentColor;
    transition: transform .4s cubic-bezier(.2,.7,.2,1);
}

.category-card:nth-child(2) .category-icon { border-radius: 1rem 50% 1rem 50%; transform: rotate(20deg); }
.category-card:nth-child(3) .category-icon { border-radius: .2rem; transform: rotate(45deg) scale(.8); }
.category-card:nth-child(4) .category-icon { border-radius: 45% 55% 70% 30% / 50% 35% 65% 50%; }
.category-card:hover .category-icon { transform: rotate(120deg) scale(1.1); }

.category-card h3 { margin: 0 0 .7rem; font-size: 1.45rem; line-height: 1.05; }
.category-card p { max-width: 27ch; margin: 0; font-size: .95rem; opacity: .8; }
.category-arrow { position: absolute; top: 1.1rem; right: 1.2rem; font-size: 1.4rem; }

.story { padding-top: 0; background: var(--paper); }

.story-stage {
    position: relative;
    min-height: 48rem;
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(28rem, 1.1fr);
    align-items: center;
    gap: 3rem;
    padding: clamp(3rem, 7vw, 7rem);
    overflow: hidden;
    border-radius: var(--radius);
    color: var(--paper);
    background:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
        var(--ink);
    background-size: 2.5rem 2.5rem;
}

.story-stage::after {
    content: "";
    position: absolute;
    right: -12%;
    bottom: -45%;
    width: 65%;
    aspect-ratio: 1;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 50%;
    box-shadow: 0 0 0 4rem rgba(255,255,255,.025), 0 0 0 8rem rgba(255,255,255,.02);
}

.story-copy { position: relative; z-index: 3; }
.story-copy .display-title { max-width: 9ch; font-size: clamp(3.3rem, 5.8vw, 6.7rem); }
.story-copy > p:not(.eyebrow) { max-width: 36rem; margin: 2rem 0; color: rgba(255,255,255,.76); }

.story-planet {
    position: relative;
    z-index: 2;
    width: min(38vw, 34rem);
    aspect-ratio: 1;
    justify-self: center;
}

.planet-core {
    position: absolute;
    inset: 15%;
    display: grid;
    place-items: center;
    padding: 15%;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, #fff 0, var(--cream) 45%, #d2c8af 100%);
    box-shadow: inset -2rem -2rem 3rem rgba(9,23,45,.2), 0 2rem 5rem rgba(0,0,0,.35);
}

.planet-core img { width: 85%; height:auto; filter: drop-shadow(0 .8rem .8rem rgba(9,23,45,.18)); }

.planet-ring {
    position: absolute;
    z-index: 3;
    inset: 4% -8%;
    border: 2.4rem solid var(--blue);
    border-top-color: transparent;
    border-radius: 50%;
    transform: rotate(-18deg) scaleY(.32);
}

.facts-row { display: grid; grid-template-columns: repeat(3, 1fr); margin: -4.3rem 4rem 0; }

.fact {
    position: relative;
    z-index: 4;
    min-height: 10rem;
    display: grid;
    place-items: center;
    align-content: center;
    padding: 1.5rem;
    border-right: 1px solid var(--line);
    color: var(--ink);
    background: var(--cream);
    text-align: center;
}

.fact:first-child { border-radius: 1.5rem 0 0 1.5rem; }
.fact:last-child { border-right: 0; border-radius: 0 1.5rem 1.5rem 0; }
.fact strong { font-size: clamp(1.8rem, 3vw, 3.4rem); letter-spacing: -.06em; line-height: 1; }
.fact span { font-family: var(--font-pixel); font-size: .6rem; color: var(--blue); }

.gallery { background: var(--cream); }
.featured-products { background: var(--cream); }
.section-heading--gallery { align-items: start; }
.gallery-lead p { max-width: 34rem; margin: 0 0 1.6rem; }

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 10vw;
    gap: clamp(.7rem, 1.3vw, 1.3rem);
}

.gallery-card {
    position: relative;
    grid-column: span 5;
    grid-row: span 3;
    overflow: hidden;
    border-radius: 1.5rem;
    background: var(--blue);
}

.gallery-card:nth-child(2) { grid-column: span 7; }
.gallery-card:nth-child(3) { grid-column: span 4; }
.gallery-card:nth-child(4) { grid-column: span 8; }
.gallery-card--tall { grid-row: span 4; }
.gallery-card--wide { grid-row: span 3; }

.gallery-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.gallery-card:hover img { transform: scale(1.06); filter: saturate(1.1); }

.gallery-card > span {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .55rem .75rem;
    border-radius: 999px;
    background: var(--paper);
    font-family: var(--font-pixel);
    font-size: .58rem;
    box-shadow: 0 .6rem 1.5rem rgba(9,23,45,.2);
}

.gallery-card > span b { color: var(--orange); }
.gallery-disclaimer { max-width: 60rem; margin: 1.5rem 0 0; font-size: .75rem; opacity: .62; }

.product-slider { position: relative; }
.product-slider__controls { display: flex; justify-content: flex-end; gap: .65rem; margin: 0 0 1rem; }
.product-slider__controls button { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; padding: 0; color: var(--paper); border: 1px solid var(--ink); border-radius: 50%; background: var(--ink); font-size: 1.25rem; cursor: pointer; transition: transform .2s ease, opacity .2s ease, background-color .2s ease; }
.product-slider__controls button:hover, .product-slider__controls button:focus-visible { color: var(--ink); background: var(--orange); transform: translateY(-2px); }
.product-slider__controls button:disabled { cursor: default; opacity: .28; transform: none; }
.product-slider__viewport { overflow-x: auto; padding: .2rem .55rem 1rem .15rem; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-color: var(--blue) var(--blue-pale); scrollbar-width: thin; }
.product-slider__viewport:focus-visible { outline-offset: .3rem; }
.product-slider__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3.75rem) / 4); align-items: stretch; gap: 1.25rem; }
.featured-product-card { scroll-snap-align: start; scroll-snap-stop: always; }
.featured-product-card .product-card__content { min-height: 18rem; }
.featured-product-card .product-card__title-row h3 { font-size: clamp(1.05rem, 1.15vw, 1.35rem); }

.visit { color: var(--paper); background: var(--cream); }

.visit-card {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(28rem, 1.1fr);
    min-height: 48rem;
    overflow: hidden;
    border-radius: var(--radius);
    background: var(--blue-deep);
}

.visit-content { padding: clamp(3rem, 6vw, 6rem); }
.visit-content .display-title { max-width: 9ch; font-size: clamp(3.5rem, 6.4vw, 7.1rem); }

.visit-details {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 2rem 3rem;
    margin: 3rem 0;
    padding-top: 2rem;
    border-top: 1px solid rgba(255,255,255,.22);
}

.visit-detail:last-child { grid-column: 1 / -1; }
.visit-detail h3 { margin: 0 0 .65rem; color: var(--mint); font-family: var(--font-pixel); font-size: .65rem; font-weight: 400; text-transform: uppercase; }
.visit-detail address { max-width: 20ch; font-style: normal; font-size: 1.15rem; }
.visit-detail a { font-size: 1.35rem; font-weight: 700; border-bottom: 1px solid currentColor; }
.visit-detail small { display: block; max-width: 38rem; margin-top: .75rem; color: rgba(255,255,255,.55); }

.hours-list { margin: 0; }
.hours-list div { display: flex; justify-content: space-between; gap: 2rem; padding: .32rem 0; border-bottom: 1px dashed rgba(255,255,255,.18); }
.hours-list dt, .hours-list dd { margin: 0; }
.hours-list dd { text-align: right; }

.map-wrap { position: relative; min-height: 32rem; margin: 1.1rem; overflow: hidden; border-radius: calc(var(--radius) - .7rem); }
.map-wrap iframe { width: 100%; height: 100%; min-height: 48rem; border: 0; filter: saturate(.75) contrast(1.05); }

.map-sticker {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    width: 7rem;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border: 3px solid var(--ink);
    border-radius: 50%;
    color: var(--ink);
    background: var(--orange);
    font-family: var(--font-pixel);
    font-size: .65rem;
    line-height: 1.3;
    text-align: center;
    transform: rotate(7deg);
}

.contact {
    display: grid;
    grid-template-columns: minmax(18rem, .7fr) minmax(30rem, 1.3fr);
    gap: clamp(3rem, 8vw, 9rem);
    align-items: start;
    background: var(--paper);
}

.contact-intro { position: sticky; top: 9rem; }
.contact-intro .display-title { max-width: 8ch; }
.contact-intro > p:not(.eyebrow) { max-width: 32rem; margin-top: 2rem; }

.contact-signal { position: relative; height: 13rem; margin-top: 3rem; }
.contact-signal i { position: absolute; left: 0; bottom: 0; width: 7rem; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; animation: signal 2.4s ease-out infinite; }
.contact-signal i:nth-child(2) { animation-delay: .8s; }
.contact-signal i:nth-child(3) { animation-delay: 1.6s; }
.contact-signal span { position: absolute; bottom: 3.2rem; left: 1.05rem; font-family: var(--font-pixel); font-size: .55rem; }

@keyframes signal { from { transform: scale(.2); opacity: 1; } to { transform: scale(1.8); opacity: 0; } }

.contact-form-wrap {
    padding: clamp(1.5rem, 4vw, 3.5rem);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--cream);
    box-shadow: 1rem 1rem 0 var(--blue-pale);
}

.form-alert { margin-bottom: 1.5rem; padding: 1rem 1.1rem; border-radius: .8rem; font-weight: 600; }
.form-alert--success { background: rgba(135,230,195,.55); }
.form-alert--error { color: #7d210f; background: rgba(255,91,45,.2); }

.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem; }
.field { display: flex; flex-direction: column; gap: .55rem; }
.field--full { grid-column: 1 / -1; }
.field > span { font-family: var(--font-pixel); font-size: .62rem; }

.field input,
.field select,
.field textarea {
    width: 100%;
    border: 0;
    border-bottom: 2px solid var(--ink);
    border-radius: .65rem .65rem 0 0;
    outline: 0;
    color: var(--ink);
    background: rgba(255,255,255,.58);
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.field input, .field select { min-height: 3.6rem; padding: .7rem .85rem; }
.field textarea { resize: vertical; min-height: 11rem; padding: .9rem; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue); background: var(--paper); box-shadow: 0 0 0 3px rgba(36,87,255,.12); }
.field small { align-self: flex-end; opacity: .62; }

.form-footer { justify-content: space-between; }
.form-footer p { max-width: 25rem; margin: 0; font-size: .8rem; opacity: .65; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.site-footer {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    padding: 4rem max(4vw, calc((100vw - 1440px) / 2)) 2rem;
    color: var(--paper);
    background: var(--ink);
}

.footer-brand { display: flex; align-items: center; gap: 2rem; }
.footer-brand img { width: 8rem; height:auto; }
.footer-brand p { max-width: 19ch; margin: 0; font-size: clamp(1.4rem, 2.5vw, 2.4rem); font-weight: 600; line-height: 1; letter-spacing: -.04em; }
.footer-links { display: flex; align-items: center; gap: 1.5rem; font-family: var(--font-pixel); font-size: .62rem; }
.footer-links a { padding-bottom: .2rem; border-bottom: 1px solid rgba(255,255,255,.4); }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.55); font-size: .72rem; }

/* Square-powered catalog */
.shop-page { background: var(--cream); }
.shop-page main { position: relative; z-index: 2; }
.shop-hero {
    position: relative;
    min-height: 43rem;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(20rem, .8fr);
    align-items: center;
    gap: clamp(2rem, 7vw, 8rem);
    padding: 10rem max(4vw, calc((100vw - 1440px) / 2)) 5rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 78% 35%, rgba(255,255,255,.8) 0 4%, transparent 4.3%),
        linear-gradient(135deg, var(--blue-pale), #b9d8ff 52%, #8fbfff);
}
.shop-hero::before,
.shop-hero::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(9,23,45,.16);
    border-radius: 50%;
    pointer-events: none;
}
.shop-hero::before { width: 36rem; height: 36rem; right: -8rem; top: 4rem; }
.shop-hero::after { width: 18rem; height: 18rem; right: 2rem; top: 13rem; }
.shop-hero__copy { position: relative; z-index: 2; max-width: 52rem; }
.shop-back {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 3rem;
    padding-bottom: .25rem;
    border-bottom: 1px solid currentColor;
    font-family: var(--font-pixel);
    font-size: .62rem;
    text-transform: uppercase;
}
.shop-title {
    max-width: 10ch;
    margin: .15em 0 .35em;
    font-size: clamp(4.5rem, 9vw, 9.5rem);
    font-weight: 600;
    line-height: .82;
    letter-spacing: -.085em;
}
.shop-title span { display: block; }
.shop-intro { max-width: 42rem; margin: 0; font-size: clamp(1.1rem, 1.5vw, 1.4rem); }
.shop-hero__art {
    position: relative;
    z-index: 2;
    width: min(34vw, 31rem);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    justify-self: center;
    border: 2px solid var(--ink);
    border-radius: 50%;
    background: var(--paper);
    box-shadow: 1rem 1rem 0 rgba(36,87,255,.32);
}
.shop-hero__art img { position: relative; z-index: 2; width: 64%; height:auto; filter: drop-shadow(0 1.3rem 1.1rem rgba(9,23,45,.17)); }
.shop-hero__art > span {
    position: absolute;
    right: -1.5rem;
    bottom: 14%;
    z-index: 3;
    max-width: 11rem;
    padding: .8rem 1rem;
    color: var(--paper);
    border: 2px solid var(--ink);
    background: var(--orange);
    font-family: var(--font-pixel);
    font-size: .7rem;
    text-align: center;
    text-transform: uppercase;
    transform: rotate(-5deg);
}
.shop-orbit { position: absolute; inset: 9%; border: 1px dashed rgba(9,23,45,.35); border-radius: 50%; animation: shop-spin 18s linear infinite; }
.shop-orbit::before { content: ""; position: absolute; top: 8%; left: 10%; width: 1.1rem; height: 1.1rem; border: 2px solid var(--ink); background: var(--mint); transform: rotate(20deg); }
@keyframes shop-spin { to { transform: rotate(360deg); } }

.shop-catalog { scroll-margin-top: 1rem; background: var(--paper); }
.shop-catalog__heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 3rem; margin-bottom: 3rem; }
.shop-catalog__heading .display-title { margin: .1em 0 0; }
.shop-catalog__heading .catalog-results-title { font-size: clamp(2rem, 3vw, 3.5rem); line-height: .95; letter-spacing: -.045em; }
.shop-catalog__heading > p { max-width: 31rem; margin: 0 0 .7rem auto; }
.catalog-notice {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0 0 1.5rem;
    padding: .95rem 1.2rem;
    border: 1px solid var(--ink);
    border-radius: 1rem;
    background: var(--blue-pale);
}
.catalog-notice--sandbox { background: #fff0a9; }
.catalog-notice span { flex: 0 0 auto; padding: .3rem .48rem; color: var(--paper); background: var(--ink); font-family: var(--font-pixel); font-size: .55rem; }
.catalog-empty { min-height: 18rem; display: grid; place-items: center; padding: 3rem; border: 2px dashed var(--ink); border-radius: var(--radius); background: var(--cream); font-size: clamp(1.3rem, 2vw, 2rem); text-align: center; }
.catalog-filters { display: grid; grid-template-columns: minmax(14rem, 2fr) repeat(3, minmax(9rem, 1fr)) auto; align-items: end; gap: .8rem; margin: 0 0 2.5rem; padding: 1.1rem; border: 1px solid var(--ink); border-radius: var(--radius); background: var(--blue-pale); }
.catalog-filter { min-width: 0; display: grid; gap: .35rem; }
.catalog-filter > span { font-family: var(--font-pixel); font-size: .55rem; text-transform: uppercase; }
.catalog-filter input, .catalog-filter select { width: 100%; min-height: 3.25rem; padding: .65rem .75rem; color: var(--ink); border: 1px solid var(--ink); border-radius: .75rem; outline: 0; background: var(--paper); font-family: var(--font-display); font-size: .9rem; }
.catalog-filter input:focus, .catalog-filter select:focus { box-shadow: 0 0 0 3px rgba(36,87,255,.18); }
.catalog-filter__actions { display: flex; align-items: center; gap: .75rem; }
.catalog-filter__actions .button { min-height: 3.25rem; padding: .75rem 1rem; white-space: nowrap; }
.catalog-filter__actions > a { color: var(--ink); border-bottom: 1px solid currentColor; font-size: .75rem; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 1.5vw, 1.5rem); }
.product-card { min-width: 0; overflow: hidden; display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--ink); border-radius: var(--radius); background: var(--cream); box-shadow: .45rem .45rem 0 var(--blue-pale); }
.product-card__image { position: relative; aspect-ratio: 1; overflow: hidden; border-bottom: 1px solid var(--ink); background: #ffffff; }
.product-card__zoom { position: relative; width: 100%; height: 100%; display: block; overflow: hidden; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.product-card__zoom:focus-visible { outline: 3px solid var(--orange); outline-offset: -5px; }
.product-card__zoom > span { position: absolute; right: .8rem; bottom: .8rem; width: 2.35rem; height: 2.35rem; display: grid; place-items: center; color: var(--paper); border: 1px solid var(--paper); border-radius: 50%; background: rgba(9,23,45,.78); font-size: 1.05rem; opacity: 0; transform: scale(.8); transition: opacity .2s ease, transform .2s ease; }
.product-card__zoom:hover > span, .product-card__zoom:focus-visible > span { opacity: 1; transform: scale(1); }
.product-card__photo { width: 100%; height: 100%; object-fit: contain; transition: transform .6s cubic-bezier(.22,.61,.36,1); }
.product-card:hover .product-card__photo { transform: scale(1.035); }
.product-card__placeholder { width: 100%; height: 100%; display: grid; grid-template-rows: 1fr auto; place-items: center; gap: .5rem; padding: 18% 14% 11%; background: linear-gradient(145deg, var(--blue-pale), var(--paper)); }
.product-card__placeholder img { width: min(75%, 10rem); height: 100%; min-height: 0; object-fit: contain; }
.product-card__placeholder span { font-family: var(--font-pixel); font-size: .55rem; text-align: center; text-transform: uppercase; }
.stock-pill { position: absolute; top: 1rem; left: 1rem; padding: .5rem .65rem; color: var(--ink); border: 1px solid var(--ink); border-radius: 999px; background: var(--mint); font-family: var(--font-pixel); font-size: .58rem; text-transform: uppercase; }
.stock-pill--out { color: var(--paper); background: var(--orange); }
.product-card__content { min-width: 0; display: flex; flex-direction: column; padding: clamp(1rem, 1.25vw, 1.35rem); }
.product-card__title-row { display: grid; align-items: start; gap: .45rem; }
.product-card__title-row h3 { overflow-wrap: anywhere; margin: 0; font-size: clamp(1.15rem, 1.3vw, 1.5rem); line-height: 1.05; letter-spacing: -.035em; }
.product-card__title-row > strong { color: var(--blue); font-size: clamp(1rem, 1.15vw, 1.25rem); }
.product-description { margin: .9rem 0; color: rgba(9,23,45,.72); font-size: .85rem; }
.variation-list { display: grid; gap: .35rem; margin: 1rem 0; }
.variation-row { display: flex; align-items: center; justify-content: space-between; gap: .65rem; padding: .65rem 0; border-top: 1px solid var(--line); font-size: .82rem; }
.variation-row:last-child { border-bottom: 1px solid var(--line); }
.variation-row span { min-width: 0; display: grid; gap: .15rem; }
.variation-row small { color: rgba(9,23,45,.62); font-size: .72rem; }
.variation-row > strong { white-space: nowrap; }
.checkout-note { margin: 1.3rem 0; font-size: .85rem; color: rgba(9,23,45,.65); }
.product-card .button { width: 100%; justify-content: space-between; }
.shop-page .site-header, .home-page .site-header { grid-template-columns: auto 1fr auto auto; }
.cart-launch {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .35rem .45rem .35rem .8rem;
    border: 1px solid var(--ink);
    border-radius: 999px;
    background: var(--paper);
    font-family: var(--font-pixel);
    font-size: .62rem;
    text-transform: uppercase;
    cursor: pointer;
}
.cart-launch b { min-width: 2rem; height: 2rem; display: grid; place-items: center; color: var(--paper); border-radius: 50%; background: var(--orange); }
.product-buy { display: grid; grid-template-columns: minmax(0, 1fr) 4.5rem; gap: .6rem; margin-top: auto; padding-top: 1rem; }
.product-buy .button { grid-column: 1 / -1; }
.product-option, .product-quantity { display: grid; gap: .35rem; font-family: var(--font-pixel); font-size: .58rem; text-transform: uppercase; }
.product-option select, .product-quantity input {
    min-height: 3.35rem;
    width: 100%;
    padding: .65rem .75rem;
    color: var(--ink);
    border: 1px solid var(--ink);
    border-radius: .8rem;
    outline: 0;
    background: var(--paper);
    font-family: var(--font-display);
    font-size: 1rem;
    text-transform: none;
}
.product-option select:focus, .product-quantity input:focus { box-shadow: 0 0 0 3px rgba(36,87,255,.18); }
.product-buy button:disabled, .cart-checkout:disabled { cursor: not-allowed; opacity: .48; }
.catalog-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.catalog-pagination__direction { justify-self: start; padding: .7rem 1rem; color: var(--ink); border: 1px solid var(--ink); border-radius: 999px; background: var(--paper); font-family: var(--font-pixel); font-size: .6rem; text-transform: uppercase; }
.catalog-pagination__direction:last-child { justify-self: end; }
.catalog-pagination__direction.is-disabled { opacity: .35; }
.catalog-pagination__status { font-family: var(--font-pixel); font-size: .62rem; text-align: center; text-transform: uppercase; }

.product-lightbox[hidden] { display: none; }
.product-lightbox { position: fixed; inset: 0; z-index: 600; display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem); visibility: hidden; opacity: 0; transition: visibility .22s, opacity .22s ease; }
.product-lightbox.is-open { visibility: visible; opacity: 1; }
.product-lightbox__backdrop { position: absolute; inset: 0; background: rgba(4,12,25,.88); backdrop-filter: blur(10px); cursor: zoom-out; }
.product-lightbox__dialog { position: relative; z-index: 1; max-width: min(92vw, 90rem); max-height: 92dvh; display: grid; grid-template-rows: minmax(0, 1fr) auto; place-items: center; gap: .8rem; }
.product-lightbox__dialog img { max-width: 100%; max-height: calc(92dvh - 4rem); width: auto; height: auto; object-fit: contain; border: 1px solid rgba(255,255,255,.35); border-radius: 1rem; background: var(--paper); box-shadow: 0 2rem 6rem rgba(0,0,0,.5); }
.product-lightbox__dialog p { max-width: 70ch; margin: 0; color: var(--paper); font-size: .9rem; text-align: center; }
.product-lightbox__close { position: absolute; z-index: 2; top: -.9rem; right: -.9rem; width: 3rem; height: 3rem; display: grid; place-items: center; padding: 0; color: var(--ink); border: 1px solid var(--ink); border-radius: 50%; background: var(--orange); font-size: 1.75rem; cursor: pointer; box-shadow: 0 .6rem 1.5rem rgba(0,0,0,.25); }

.cart-backdrop { position: fixed; inset: 0; z-index: 390; opacity: 0; background: rgba(9,23,45,.56); backdrop-filter: blur(4px); transition: opacity .25s ease; }
.cart-backdrop.is-open { opacity: 1; }
.cart-drawer {
    position: fixed;
    z-index: 400;
    top: 0;
    right: 0;
    width: min(94vw, 35rem);
    height: 100dvh;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    overflow-y: auto;
    color: var(--ink);
    background: var(--paper);
    box-shadow: -1.5rem 0 4rem rgba(9,23,45,.2);
    transform: translateX(105%);
    transition: transform .28s cubic-bezier(.22,.61,.36,1);
}
.cart-drawer.is-open { transform: translateX(0); }
.cart-drawer__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1.3rem; border-bottom: 1px solid var(--line); }
.cart-drawer__header .eyebrow { margin: 0 0 .15rem; }
.cart-drawer__header h2 { margin: 0; font-size: clamp(2.2rem, 5vw, 3.7rem); line-height: 1; letter-spacing: -.06em; }
.cart-close { width: 2.8rem; height: 2.8rem; flex: 0 0 auto; display: grid; place-items: center; padding: 0; color: var(--paper); border: 0; border-radius: 50%; background: var(--ink); font-size: 1.6rem; cursor: pointer; }
.cart-items { display: grid; }
.cart-empty { min-height: 9rem; display: grid; place-items: center; margin: 0; padding: 1.5rem; color: rgba(9,23,45,.62); text-align: center; }
.cart-item { display: grid; grid-template-columns: 6.3rem minmax(0, 1fr); gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.cart-item img { width: 6.3rem; height: 6.3rem; object-fit: cover; border: 1px solid var(--ink); border-radius: 1rem; background: var(--blue-pale); }
.cart-item__info { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; gap: .1rem .75rem; }
.cart-item__info h3 { overflow: hidden; margin: 0; font-size: 1rem; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.cart-item__info p { grid-column: 1; margin: 0; color: rgba(9,23,45,.62); font-size: .75rem; }
.cart-item__info > strong { grid-column: 2; grid-row: 1 / span 2; }
.cart-item__controls { grid-column: 1 / -1; display: flex; align-items: center; margin-top: .55rem; }
.cart-item__controls button, .cart-item__controls input { width: 2rem; height: 2rem; display: grid; place-items: center; padding: 0; border: 1px solid var(--ink); background: var(--paper); text-align: center; }
.cart-item__controls button { cursor: pointer; }
.cart-item__controls button:first-of-type { border-radius: .55rem 0 0 .55rem; }
.cart-item__controls button:last-child { border-radius: 0 .55rem .55rem 0; }
.cart-item__controls input { border-right: 0; border-left: 0; border-radius: 0; appearance: textfield; }
.cart-item__controls input::-webkit-inner-spin-button { appearance: none; }
.cart-item__remove { grid-column: 2; align-self: end; justify-self: end; padding: 0 0 .1rem; border: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: .68rem; cursor: pointer; }
.cart-summary { display: grid; gap: .35rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.cart-summary > div { display: flex; justify-content: space-between; gap: 1rem; font-size: 1.2rem; }
.cart-summary small { color: rgba(9,23,45,.6); }
.pickup-form { display: grid; gap: .9rem; padding-top: 1.3rem; }
.pickup-heading { display: grid; grid-template-columns: 2.5rem 1fr; gap: .8rem; padding: 1rem; border: 1px solid var(--ink); border-radius: 1rem; background: var(--blue-pale); }
.pickup-heading > span { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; color: var(--paper); border-radius: 50%; background: var(--blue); }
.pickup-heading h3, .pickup-heading p { margin: 0; }
.pickup-heading h3 { font-size: 1.05rem; }
.pickup-heading p { margin-top: .2rem; font-size: .78rem; }
.pickup-form > label { display: grid; gap: .3rem; font-size: .78rem; font-weight: 600; }
.pickup-form input { min-height: 3.15rem; width: 100%; padding: .65rem .75rem; border: 1px solid var(--ink); border-radius: .75rem; outline: 0; background: var(--paper); }
.pickup-form input:focus { box-shadow: 0 0 0 3px rgba(36,87,255,.18); }
.pickup-form label small { color: rgba(9,23,45,.58); font-weight: 400; }
.cart-error { padding: .8rem 1rem; color: #641b08; border: 1px solid var(--orange); border-radius: .75rem; background: #ffe0d7; font-size: .8rem; }
.cart-checkout { width: 100%; justify-content: space-between; }
.secure-note { display: flex; align-items: flex-start; gap: .5rem; margin: 0; color: rgba(9,23,45,.6); font-size: .72rem; }
.secure-note span { color: var(--blue); }
.thank-you-main { position: relative; z-index: 2; min-height: 100svh; display: grid; place-items: center; padding: 9rem 4vw 5rem; background: linear-gradient(145deg, var(--blue-pale), #91c2ff); }
.thank-you-card { width: min(92vw, 48rem); padding: clamp(2rem, 6vw, 5rem); border: 2px solid var(--ink); border-radius: var(--radius); background: var(--paper); box-shadow: 1rem 1rem 0 var(--blue); text-align: center; }
.thank-you-mark { width: 5.5rem; height: 5.5rem; display: grid; place-items: center; margin: 0 auto 1.5rem; color: var(--paper); border: 2px solid var(--ink); border-radius: 50%; background: var(--mint); font-size: 2.8rem; }
.thank-you-card h1 { margin: .15em 0 .3em; font-size: clamp(3.5rem, 8vw, 7rem); line-height: .86; letter-spacing: -.075em; }
.thank-you-lead { max-width: 35rem; margin: 0 auto 1.6rem; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.pickup-confirmation { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; margin: 1.4rem 0; padding: 1.1rem; border: 1px solid var(--ink); border-radius: 1rem; background: var(--cream); text-align: left; }
.pickup-confirmation > span { width: 3rem; height: 3rem; display: grid; place-items: center; color: var(--paper); border-radius: 50%; background: var(--blue); }
.pickup-confirmation p { margin: .1rem 0; }
.pickup-confirmation small { color: rgba(9,23,45,.62); }
.thank-you-card .catalog-notice { text-align: left; }
.thank-you-card > .button { margin-top: .5rem; }

:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }

@media (max-width: 1100px) {
    .hero { grid-template-columns: 1fr 1fr; }
    .category-grid { grid-template-columns: repeat(2, 1fr); }
    .category-card { min-height: 23rem; }
    .story-stage, .visit-card { grid-template-columns: 1fr; }
    .story-planet { position: absolute; right: -3%; bottom: -7%; opacity: .58; }
    .story-copy { max-width: 40rem; }
    .visit-card { min-height: 0; }
    .map-wrap, .map-wrap iframe { min-height: 35rem; }
    .contact { grid-template-columns: 1fr; }
    .contact-intro { position: static; }
    .contact-signal { display: none; }
    .shop-hero { grid-template-columns: minmax(0, 1fr) 20rem; }
    .shop-hero__art { width: 20rem; }
    .product-slider__track { grid-auto-columns: calc((100% - 2.5rem) / 3); }
    .catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .catalog-filter__actions { align-self: end; min-height: 3.25rem; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    :root { --radius: 1.35rem; --container: 92vw; }
    .site-header { top: .65rem; width: 96vw; grid-template-columns: auto 1fr auto; }
    .brand { width: 3.9rem; height: 3.6rem; }
    .brand img { width: 3.8rem; }
    .nav-toggle {
        position: relative;
        z-index: 3;
        justify-self: end;
        width: 2.8rem;
        height: 2.8rem;
        display: grid;
        place-content: center;
        gap: .25rem;
        padding: 0;
        border: 0;
        border-radius: 50%;
        color: var(--paper);
        background: var(--ink);
    }
    .nav-toggle span:not(.sr-only) { width: 1.15rem; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
    .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(.37rem) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-.37rem) rotate(-45deg); }
    .main-nav {
        position: fixed;
        inset: -.65rem -2vw auto;
        min-height: 100svh;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: stretch;
        gap: 0;
        padding: 7rem 8vw;
        visibility: hidden;
        opacity: 0;
        background: var(--cream);
        transform: translateY(-2rem);
        transition: opacity .25s ease, transform .25s ease, visibility .25s;
    }
    .main-nav.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
    .main-nav a { padding: 1.2rem 0; border-bottom: 1px solid var(--line); font-family: var(--font-display); font-size: clamp(2.2rem, 10vw, 4.2rem); font-weight: 600; letter-spacing: -.06em; }
    .lang-switch { justify-self: end; }
    .lang-switch span { display: none; }
    .lang-switch { padding: 0; background: transparent; }
    .lang-switch b { width: 2.8rem; height: 2.8rem; color: var(--paper); background: var(--blue); }
    .shop-page .site-header, .home-page .site-header { grid-template-columns: auto 1fr auto auto; gap: .35rem; }
    .shop-page .nav-toggle, .home-page .nav-toggle { grid-column: 2; grid-row: 1; }
    .shop-page .main-nav, .home-page .main-nav { grid-column: auto; }
    .cart-launch { padding: 0; border: 0; background: transparent; }
    .cart-launch span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
    .cart-launch b { width: 2.8rem; height: 2.8rem; }

    .hero {
        min-height: auto;
        grid-template-columns: 1fr;
        align-content: start;
        padding: 8.5rem 4vw 5rem;
    }
    .hero-title { font-size: clamp(3.6rem, 16vw, 7rem); }
    .hero-visual { width: 92%; margin: 1.5rem auto 0; }
    .hero-image-shell { aspect-ratio: 1.08; }
    .hero-badge { top: -1.5rem; right: -.4rem; }
    .pixel-tag--left { left: -1rem; }
    .pixel-tag--right { right: -1rem; }
    .hero-scroll { display: none; }

    .section-heading { grid-template-columns: 1fr; gap: 2rem; }
    .display-title { font-size: clamp(3.2rem, 14vw, 6.5rem); }
    .facts-row { margin: -2rem 1rem 0; }
    .fact { min-height: 8rem; padding: .7rem; }
    .fact strong { font-size: clamp(1.4rem, 6vw, 2.4rem); }

    .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 48vw; }
    .gallery-card, .gallery-card:nth-child(n), .gallery-card--tall, .gallery-card--wide { grid-column: span 1; grid-row: span 1; }
    .gallery-card:first-child, .gallery-card:last-child { grid-column: 1 / -1; }

    .visit-details { grid-template-columns: 1fr; }
    .visit-detail:last-child { grid-column: auto; }
    .form-grid { grid-template-columns: 1fr; }
    .field--full { grid-column: auto; }
    .site-footer { grid-template-columns: 1fr; }
    .footer-links { flex-wrap: wrap; }
    .footer-bottom { flex-direction: column; }
    .shop-hero { min-height: 0; grid-template-columns: 1fr; padding-top: 9rem; }
    .shop-hero__art { width: min(72vw, 24rem); }
    .shop-catalog__heading { grid-template-columns: 1fr; gap: 1.25rem; }
    .shop-catalog__heading > p { margin-left: 0; }
    .product-slider__track { grid-auto-columns: calc((100% - 1rem) / 2); gap: 1rem; }
    .catalog-filters { grid-template-columns: 1fr; }
    .catalog-filter__actions { justify-content: space-between; }
    .product-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .hero-actions, .form-footer { align-items: flex-start; flex-direction: column; }
    .hero-actions .button, .form-footer .button { width: 100%; }
    .category-grid { grid-template-columns: 1fr; }
    .category-card { min-height: 21rem; }
    .story-stage { min-height: 44rem; padding: 2rem; }
    .story-planet { width: 25rem; right: -28%; bottom: -8%; }
    .facts-row { grid-template-columns: 1fr; }
    .fact:first-child { border-radius: 1.3rem 1.3rem 0 0; }
    .fact:last-child { border-radius: 0 0 1.3rem 1.3rem; }
    .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 100vw; }
    .gallery-card, .gallery-card:nth-child(n) { grid-column: 1; }
    .visit-content { padding: 2rem; }
    .map-wrap { margin: .65rem; }
    .contact-form-wrap { box-shadow: .55rem .55rem 0 var(--blue-pale); }
    .footer-brand { align-items: flex-start; flex-direction: column; }
    .shop-title { font-size: clamp(4rem, 20vw, 6rem); }
    .shop-back { margin-bottom: 2rem; }
    .shop-hero__art > span { right: -1rem; }
    .catalog-notice { align-items: flex-start; flex-direction: column; }
    .product-card__zoom > span { opacity: 1; transform: scale(1); }
    .product-lightbox__close { top: -.65rem; right: -.35rem; }
    .product-slider__track { grid-auto-columns: 86%; }
    .product-slider__controls { justify-content: space-between; }
    .product-card__title-row { grid-template-columns: 1fr; }
    .product-buy { grid-template-columns: minmax(0, 1fr) 5.2rem; }
    .catalog-pagination { grid-template-columns: 1fr 1fr; }
    .catalog-pagination__status { grid-column: 1 / -1; grid-row: 1; }
    .catalog-pagination__direction { grid-row: 2; }
    .cart-drawer { width: 100vw; padding: 1.1rem; }
    .cart-item { grid-template-columns: 5.2rem minmax(0, 1fr); }
    .cart-item img { width: 5.2rem; height: 5.2rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .toy-sky { display: none; }
}
