@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@400;500;600;700&display=swap");

:root {
  --black: #050505;
  --black-2: #0d0d0d;
  --cream: #f1eee7;
  --yellow: #d7ad35;
  --yellow-soft: #e9c961;
  --white: #fff;
  --gray: #9b9b9b;
  --line: rgba(255,255,255,.18);
  --ink-line: rgba(5,5,5,.22);
  --display: "Archivo Black", Impact, sans-serif;
  --body: "Space Grotesk", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body { margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: var(--body); }
body.locked { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }
::selection { background: var(--yellow); color: var(--black); }
[hidden] { display: none !important; }

.skip-link { position: fixed; z-index: 2000; left: 16px; top: -80px; padding: 12px 16px; background: var(--yellow); color: var(--black); font-weight: 800; }
.skip-link:focus { top: 16px; }
.intro-screen { position: fixed; z-index: 1900; inset: 0; display: grid; place-content: center; justify-items: center; background: var(--black); animation: introOut .7s ease 1.5s forwards; }
.intro-screen strong { font-family: var(--display); font-size: clamp(50px,9vw,130px); line-height: .85; animation: rise .6s ease .35s both; }
.intro-screen > span { margin-top: 20px; font-size: 11px; font-weight: 800; letter-spacing: .28em; animation: rise .6s ease .55s both; }
.intro-bars { height: 100px; display: flex; gap: 12px; margin-bottom: 25px; }
.intro-bars i { width: 29px; background: var(--yellow); transform-origin: bottom; animation: bar .55s cubic-bezier(.2,.8,.2,1) both; }
.intro-bars i:nth-child(2) { animation-delay: .1s; }.intro-bars i:nth-child(3) { animation-delay: .2s; }
@keyframes bar { from { transform: scaleY(0); } }
@keyframes rise { from { opacity: 0; transform: translateY(22px); } }
@keyframes introOut { to { visibility: hidden; opacity: 0; transform: translateY(-100%); } }

.site-header { position: sticky; z-index: 1000; top: 0; min-height: 82px; padding: 0 4vw; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 35px; border-bottom: 1px solid var(--line); background: rgba(5,5,5,.94); backdrop-filter: blur(16px); }
.brand { width: clamp(150px,13vw,205px); }
.brand img { width: 100%; height: 52px; object-fit: contain; object-position: left center; }
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav a { padding-block: 8px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; transition: color .2s; }
.site-nav a:hover { color: var(--yellow); }
.cart-trigger { min-width: 84px; height: 45px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--white); background: transparent; color: var(--white); font-size: 10px; font-weight: 800; }
.cart-trigger b { min-width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: var(--yellow); color: var(--black); }
.page-link b { font-size: 14px; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); background: transparent; }
.menu-toggle span { width: 20px; height: 2px; display: block; margin: 5px auto; background: var(--white); }

.hero { min-height: calc(100svh - 82px); position: relative; display: grid; grid-template-columns: 1fr 1.35fr .8fr; align-items: center; overflow: hidden; background: var(--black); }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 28%; background: linear-gradient(transparent,var(--black)); pointer-events: none; }
.hero-art { position: absolute; inset: 0; display: grid; place-items: center; }
.hero-art img { width: min(1000px,70vw); height: 100%; object-fit: contain; }
.hero-title { position: relative; z-index: 2; grid-column: 1; padding-left: 5vw; }
.hero-title > p:first-child { font-size: 9px; font-weight: 800; letter-spacing: .18em; }
.hero-title h1 { max-width: 700px; margin: 25px 0; font-family: var(--display); font-size: clamp(65px,7.2vw,120px); line-height: .77; letter-spacing: -.06em; }
.hero-title h1 span { display: block; margin-bottom: 10px; color: var(--white); font-family: var(--body); font-size: .22em; line-height: 1; letter-spacing: .13em; }
.hero-title h1 { color: var(--yellow); text-shadow: 8px 8px 0 #292929; }
.hero-copy { max-width: 500px; color: #b8b8b8; font-size: 15px; line-height: 1.7; }
.hero-actions { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 12px; }
.hero-partners { width: max-content; margin-top: 26px; display: flex; align-items: center; gap: 10px; }
.hero-partners > span { color: #8f8f8f; font-size: 6px; font-weight: 800; line-height: 1.35; letter-spacing: .15em; white-space: nowrap; }
.partner-logo-link { display: block; color: inherit; text-decoration: none; }
.hero-partners figure { width: 44px; height: 44px; margin: 0; overflow: hidden; }
.hero-partners img { width: 100%; height: 100%; object-fit: contain; }
.hero-partners .partner-logo-link:first-of-type img { mix-blend-mode: screen; filter: grayscale(.2) saturate(.75) contrast(1.08); }
.hero-partners .partner-logo-link:last-of-type figure { width: 56px; }
.hero-partners .partner-logo-link:last-of-type img { transform: scale(1.35); filter: invert(1) grayscale(1) brightness(1.8) contrast(1.25); }
.hero-partners .partner-logo-link:hover img,.hero-partners .partner-logo-link:focus-visible img { filter: none; }
.hero-partners i { color: var(--yellow); font-family: var(--display); font-size: 13px; font-style: normal; }
.hero-details { position: relative; z-index: 2; grid-column: 3; margin: 0 5vw 0 0; padding-right: 22px; display: grid; gap: 30px; border-right: 2px solid var(--yellow); text-align: right; }
.hero-details div { display: grid; gap: 7px; }
.hero-details dt { color: #777; font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.hero-details dd { margin: 0; font-size: 13px; font-weight: 800; }
.reveal { animation: rise .7s ease 1.25s both; }

.shop-hero { min-height: 670px; padding: clamp(70px,8vw,130px) 5vw; position: relative; display: grid; grid-template-columns: 1fr .62fr; align-items: center; overflow: hidden; background: var(--black); }
.shop-hero > div:not(.shop-hero-products) { position: relative; z-index: 2; }
.shop-hero h1 { margin: 16px 0 0; font-family: var(--display); font-size: clamp(70px,9vw,150px); line-height: .78; letter-spacing: -.065em; }
.shop-hero h1 span { color: var(--yellow); }
.shop-hero-copy { max-width: 440px; justify-self: end; }
.shop-hero-copy p { margin: 0 0 28px; color: #b8b8b8; line-height: 1.75; }
.shop-hero-products { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: .2; pointer-events: none; }
.shop-hero-products img { width: min(36vw,520px); max-height: 620px; object-fit: contain; filter: grayscale(1); }

.button { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--white); background: transparent; color: var(--white); font-size: 10px; font-weight: 800; letter-spacing: .08em; transition: transform .18s, background .18s, color .18s; }
.button:hover { transform: translateY(-2px); }
.button.primary { border-color: var(--yellow); background: var(--yellow); color: var(--black); }
.button.secondary:hover { background: var(--white); color: var(--black); }
.button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.full-button { width: 100%; }

.ticker { overflow: hidden; border-block: 1px solid var(--ink-line); background: var(--cream); color: var(--black); }
.ticker-track { width: max-content; display: flex; animation: ticker 24s linear infinite; will-change: transform; }
.ticker-group { min-width: 100vw; padding: 17px 28px; display: flex; align-items: center; justify-content: space-around; gap: 28px; white-space: nowrap; font-family: var(--display); font-size: 20px; }
.ticker i { color: var(--yellow); font-style: normal; }
@keyframes ticker { to { transform: translateX(-50%); } }

.section { padding: 110px 5vw; }
.light-section, .shop-section, .faq-section { background: var(--cream); color: var(--black); }
.dark-section { background: var(--black); color: var(--white); }
.section-heading { margin-bottom: 58px; display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.section-heading h2, .merch-editorial h2, .schedule-copy h2, .reservation-panel h2, .checkout-info h2 { margin: 10px 0 0; font-family: var(--display); font-size: clamp(48px,6vw,90px); line-height: .9; letter-spacing: -.055em; text-transform: uppercase; }
#packages .section-heading h2 { font-size: clamp(24px,4.9vw,66px); white-space: nowrap; }
.section-heading .experience-title { font-size: clamp(48px,5.2vw,78px); }
.experience-title span { display: block; white-space: nowrap; }
.experience-title em { font-style: normal; }
.section-heading > p { max-width: 440px; margin: 0; color: #777; line-height: 1.7; }
.dark-section .section-heading > p { color: var(--gray); }
.eyebrow { margin: 0; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }

.partnership-intro { margin: -18px 0 58px; padding: 26px 0 34px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px clamp(36px,6vw,96px); align-items: start; border-top: 1px solid var(--black); border-bottom: 1px solid var(--black); }
.partnership-intro > p { margin: 0; line-height: 1.65; }
.partnership-intro .eyebrow { grid-column: 1 / -1; }
.partnership-intro > p:not(.eyebrow) { color: #555; text-align: justify; text-justify: inter-word; }
.partnership-intro strong { color: var(--black); }

.experience-grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--black); }
.experience-grid article { min-height: 470px; padding: 30px; display: flex; flex-direction: column; border-right: 1px solid var(--black); }
.experience-grid article:last-child { border-right: 0; }
.experience-grid article > span { color: #777; font-size: 11px; font-weight: 800; }
.experience-grid .yellow-card { background: var(--yellow); }
.experience-grid h3 { margin: 25px 0 10px; font-family: var(--display); font-size: clamp(32px,3vw,52px); line-height: .92; }
.experience-grid p { margin: 0; line-height: 1.65; }
.experience-grid small { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--ink-line); font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.experience-visual { min-height: 155px; margin: auto 0 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.experience-visual img { display: block; max-width: 100%; }
.cafe-event { background: var(--black); }
.cafe-event img { width: 100%; height: 155px; object-fit: cover; filter: saturate(.72) contrast(1.08); }
.jeep-art img { width: 100%; height: 150px; object-fit: contain; }
.merch-pair { gap: 4px; }
.merch-pair img:first-child { width: 60%; height: 155px; object-fit: contain; }
.merch-pair img:last-child { width: 40%; height: 130px; object-fit: contain; }

.package-grid { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid #383838; }
.package-card { min-height: 680px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid #383838; background: #101010; transition: transform .2s, box-shadow .2s, border-color .2s; }
.package-card:last-child { border-right: 0; }
.package-card:hover, .package-card.selected { z-index: 2; transform: translateY(-6px); box-shadow: 0 0 0 2px var(--yellow); }
.package-card.featured { background: var(--yellow); color: var(--black); }
.package-meta { min-height: 30px; display: flex; justify-content: space-between; color: #888; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.featured .package-meta { color: rgba(0,0,0,.65); }
.package-meta b { color: var(--yellow); }.featured .package-meta b { color: var(--black); }
.package-card h3 { min-height: 74px; margin: 22px 0 10px; font-family: var(--display); font-size: 28px; line-height: .95; }
.package-card > strong { font-family: var(--display); font-size: 48px; letter-spacing: -.05em; }
.package-card > p { min-height: 72px; color: #999; font-size: 13px; line-height: 1.6; }.featured > p { color: rgba(0,0,0,.65); }
.package-card ul { margin: 20px 0 30px; padding: 20px 0 0; border-top: 1px solid #333; list-style: none; }
.featured ul { border-color: rgba(0,0,0,.25); }
.package-card li { margin: 11px 0; color: #d0d0d0; font-size: 12px; }.featured li { color: var(--black); }
.package-card li::before { content: "✓"; margin-right: 8px; font-weight: 800; }
.select-package { min-height: 48px; margin-top: auto; border: 1px solid #555; background: transparent; color: inherit; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.select-package:hover { border-color: var(--yellow); }.featured .select-package { border-color: var(--black); }

.reservation-panel { margin-top: 70px; display: grid; grid-template-columns: .75fr 1.25fr; gap: 7vw; padding-top: 70px; border-top: 1px solid var(--line); }
.reservation-panel > div > p:not(.eyebrow) { color: var(--gray); line-height: 1.7; }
.reservation-panel h2 { font-size: clamp(42px,5vw,72px); }
.reservation-panel form { padding: 30px; border: 1px solid #3b3b3b; background: #101010; }
.conditional-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.reservation-ticket { position: relative; margin-top: 38px; display: grid; grid-template-columns: 82px 1fr; overflow: hidden; border: 1px solid var(--yellow); background: var(--yellow); color: var(--black); box-shadow: 12px 12px 0 #222; animation: ticketIn .28s ease both; }
.reservation-ticket::before,.reservation-ticket::after { content: ""; position: absolute; left: 70px; width: 22px; height: 22px; border-radius: 50%; background: var(--black); }
.reservation-ticket::before { top: -12px; }.reservation-ticket::after { bottom: -12px; }
.ticket-stub { padding: 20px 13px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; border-right: 1px dashed rgba(0,0,0,.55); writing-mode: vertical-rl; transform: rotate(180deg); }
.ticket-stub span { font-family: var(--display); font-size: 30px; letter-spacing: -.15em; }.ticket-stub small { font-size: 7px; font-weight: 800; letter-spacing: .15em; }
.ticket-body { padding: 25px 24px 25px 30px; }.ticket-body > small { font-size: 7px; font-weight: 800; letter-spacing: .15em; }.ticket-body h3 { margin: 8px 0 6px; font-family: var(--display); font-size: clamp(25px,3vw,40px); line-height: .92; text-transform: uppercase; }.ticket-body > strong { font-family: var(--display); font-size: 28px; }
.ticket-body dl { margin: 24px 0 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.ticket-body dl div { border-top: 1px solid rgba(0,0,0,.35); padding-top: 8px; }.ticket-body dt { font-size: 6px; font-weight: 800; letter-spacing: .14em; }.ticket-body dd { margin: 4px 0 0; font-size: 9px; font-weight: 800; }.ticket-body > p { margin: 0; font-size: 10px; line-height: 1.5; }
.terms-box { margin-top: 24px; border: 1px solid #555; }
.terms-box summary { padding: 17px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 10px; font-weight: 800; letter-spacing: .09em; cursor: pointer; list-style: none; }.terms-box summary::-webkit-details-marker { display: none; }.terms-box summary::after { content: "+"; color: var(--yellow); font-size: 22px; }.terms-box[open] summary::after { content: "−"; }.terms-box summary span { margin-left: auto; color: #888; font-size: 7px; }
.terms-box > div { max-height: 330px; overflow-y: auto; padding: 0 22px 20px; border-top: 1px solid #333; }.terms-box ol { margin: 0; padding: 18px 0 0 20px; }.terms-box li { margin: 0 0 13px; color: #bbb; font-size: 11px; line-height: 1.65; }.terms-box li b { color: var(--white); }
.terms-consent { padding: 16px; border: 1px solid #555; }
.reservation-payment { margin-top: 28px; padding-top: 28px; border-top: 1px solid #444; animation: ticketIn .28s ease both; }
.reservation-payment-heading { margin-bottom: 22px; display: flex; align-items: end; justify-content: space-between; gap: 25px; }
.reservation-payment-heading h3 { margin: 7px 0 0; font-family: var(--display); font-size: clamp(25px,3vw,38px); line-height: .95; text-transform: uppercase; }
.reservation-payment-heading > div:last-child { min-width: 180px; text-align: right; }.reservation-payment-heading small { display: block; color: #888; font-size: 7px; font-weight: 800; letter-spacing: .13em; }.reservation-payment-heading strong { display: block; margin-top: 5px; color: var(--yellow); font-family: var(--display); font-size: 30px; }
.reservation-payment .payment-layout { grid-template-columns: 1.35fr .65fr; }
.reservation-payment .choice-grid { grid-template-columns: repeat(3,1fr); }
.reservation-payment .choice-grid label > span { min-height: 82px; padding: 13px; }
.reservation-payment .payment-qr { min-height: 285px; }.reservation-payment .payment-qr > strong.pending-label { max-width: 180px; color: var(--yellow); font-size: 20px; line-height: 1; }
@keyframes ticketIn { from { opacity: 0; transform: translateY(12px); } }

.merch-editorial { min-height: 700px; padding: 80px 5vw; display: grid; grid-template-columns: 1fr 1.2fr .9fr; align-items: center; gap: 3vw; background: var(--cream); color: var(--black); }
.merch-editorial > div > p:last-child { max-width: 400px; line-height: 1.7; }
.merch-editorial > div > p { max-width: 400px; line-height: 1.7; }
.merch-shop-link { width: max-content; margin-top: 26px; border-color: var(--black); color: var(--black); }
.merch-shop-link:hover { background: var(--black); color: var(--white); }
.merch-title { font-size: clamp(40px,4.5vw,72px) !important; }
.merch-title span,.schedule-title span { display: block; white-space: nowrap; }
.merch-editorial figure { margin: 0; animation: merchFloat 5.5s ease-in-out infinite; }
.merch-editorial figure:last-child { animation-delay: -2.75s; }
.merch-editorial figure img { width: 100%; max-height: 500px; object-fit: contain; transition: transform .35s ease, filter .35s ease; }
.merch-editorial figure:hover img { transform: scale(1.025) rotate(-.6deg); filter: drop-shadow(0 18px 18px rgba(0,0,0,.16)); }
.merch-editorial figcaption { width: max-content; padding: 8px 10px; background: var(--black); color: var(--white); font-size: 8px; font-weight: 800; letter-spacing: .09em; }
@keyframes merchFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.schedule-section { padding-top: 125px; padding-bottom: 125px; display: block; background: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),var(--black-2); background-size: 46px 46px; }
.schedule-copy { position: static; max-width: 1080px; margin-bottom: 68px; padding-right: 4vw; }
.schedule-copy > p:not(.eyebrow) { max-width: 720px; margin-top: 30px; color: var(--gray); line-height: 1.7; }
.schedule-copy h2 { font-size: clamp(44px,5.2vw,78px); line-height: .94; }
.route-line { max-width: 720px; margin-top: 38px; display: flex; align-items: center; gap: 12px; font-size: 8px; font-weight: 800; }
.route-line i { position: relative; flex: 1; height: 1px; background: var(--yellow); }.route-line i::before,.route-line i::after { content: ""; position: absolute; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--yellow); }.route-line i::after { right: 0; }
.schedule-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.schedule-board { border: 1px solid #383838; background: rgba(5,5,5,.86); }
.schedule-board summary { min-height: 180px; padding: 28px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; cursor: pointer; list-style: none; border-bottom: 1px solid transparent; transition: border-color .2s,background .2s; }
.schedule-board summary::-webkit-details-marker { display: none; }
.schedule-board summary:hover,.schedule-board summary:focus-visible { background: rgba(224,177,42,.08); }
.schedule-board[open] summary { border-bottom-color: #383838; }
.schedule-board small { color: var(--yellow); font-size: 8px; font-weight: 800; letter-spacing: .15em; }
.schedule-board h3 { margin: 12px 0 8px; font-family: var(--display); font-size: clamp(27px,2.6vw,40px); line-height: .9; }
.schedule-board summary p { margin: 0; color: #888; font-size: 10px; }
.schedule-toggle { display: flex; align-items: center; gap: 14px; color: var(--yellow); font-size: 8px; letter-spacing: .12em; }
.schedule-toggle i { width: 24px; height: 24px; position: relative; border: 1px solid #555; }
.schedule-toggle i::before,.schedule-toggle i::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 1px; transform: translate(-50%,-50%); background: currentColor; transition: transform .2s; }
.schedule-toggle i::after { transform: translate(-50%,-50%) rotate(90deg); }
.schedule-board[open] .schedule-toggle i::after { transform: translate(-50%,-50%) rotate(0); }
.schedule-board ol { margin: 0; padding: 0; list-style: none; counter-reset: rows; }
.schedule-board li { min-height: 78px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #333; counter-increment: rows; transition: background .18s,color .18s; }
.schedule-board li:last-child { border-bottom: 0; }
.schedule-board li::before { content: counter(rows, decimal-leading-zero); color: #555; font-size: 9px; }
.schedule-board li b { margin-left: 10px; margin-right: auto; font-family: var(--display); font-size: clamp(23px,2.2vw,34px); }
.schedule-board li span { font-size: 7px; font-weight: 800; letter-spacing: .1em; }
.schedule-board li:hover { background: var(--yellow); color: var(--black); }.schedule-board li:hover::before { color: var(--black); }

.shop-toolbar { margin-bottom: 30px; display: flex; flex-wrap: wrap; gap: 8px; }
.shop-toolbar button { padding: 11px 17px; border: 1px solid var(--black); background: transparent; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.shop-toolbar button.active, .shop-toolbar button:hover { background: var(--black); color: var(--white); }
.product-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.product-card { padding: 12px; border: 1px solid #c4c0b7; background: #f8f6f1; }
.product-image { position: relative; overflow: hidden; background: #e6e2da; }
.product-image img { width: 100%; aspect-ratio: 1; object-fit: contain; transition: transform .3s; }
.product-tba { width: 100%; aspect-ratio: 1; display: grid; place-content: center; background: var(--black); color: var(--white); text-align: center; }
.product-tba span { color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: .2em; }
.product-tba b { max-width: 85%; margin: 4px auto 0; font-family: var(--display); font-size: clamp(34px,4vw,64px); line-height: .85; }
.product-tba-large { height: 100%; aspect-ratio: auto; }
.product-card:hover .product-image img { transform: scale(1.035); }
.badge { position: absolute; top: 10px; left: 10px; padding: 7px 9px; background: var(--yellow); color: var(--black); font-size: 8px; font-weight: 800; letter-spacing: .08em; }
.badge.sold { background: var(--black); color: var(--white); }
.product-card > small { display: block; margin-top: 16px; color: #777; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.product-card h3 { min-height: 46px; margin: 7px 0; font-size: 18px; line-height: 1.2; }
.product-card > p { min-height: 50px; color: #555; font-size: 12px; line-height: 1.5; }
.product-card > strong { font-family: var(--display); font-size: 25px; }
.product-actions { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.product-actions button { min-height: 43px; border: 1px solid var(--black); background: transparent; color: var(--black); font-size: 8px; font-weight: 800; }
.product-actions .add-cart { background: var(--black); color: var(--white); }
.product-actions button:hover:not(:disabled) { border-color: var(--yellow); box-shadow: inset 0 0 0 1px var(--yellow); }
.product-actions button:disabled { opacity: .38; cursor: not-allowed; }
.collectibles-corner { padding: clamp(85px,9vw,145px) 5vw; display: grid; gap: 42px; background: var(--cream); color: var(--black); border-top: 1px solid var(--black); }
.collectibles-heading { display: grid; }
.collectibles-heading h2 { max-width: 1500px; margin: 14px 0 30px; font-family: var(--display); font-size: clamp(52px,7vw,116px); line-height: .84; letter-spacing: -.055em; }
.collectibles-heading h2 span { color: var(--yellow); text-shadow: 4px 4px 0 var(--black); }
.collectibles-intro { display: grid; grid-template-columns: minmax(280px,.75fr) minmax(380px,1.25fr); align-items: start; gap: clamp(35px,7vw,120px); }
.collectibles-intro > p { max-width: 620px; margin: 0; color: #555; font-size: 15px; line-height: 1.75; }
.collectibles-notice { padding: 20px 0; border-top: 2px solid var(--black); border-bottom: 1px solid var(--black); }
.collectibles-notice b { font-size: 9px; letter-spacing: .12em; }
.collectibles-notice p { margin: 10px 0 0; font-size: 12px; line-height: 1.65; }
.collectibles-catalogue { min-width: 0; }
.collectibles-toolbar { margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.collectibles-toolbar > p { margin: 0; color: #666; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.collectibles-toolbar-actions,.collectibles-toolbar-actions > div { display: flex; flex-wrap: wrap; gap: 7px; }
.collectibles-toolbar button { min-height: 38px; padding: 0 13px; border: 1px solid var(--black); background: transparent; color: var(--black); font-size: 8px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.collectibles-toolbar button.active,.collectibles-toolbar button:hover { background: var(--black); color: var(--white); }
.collectibles-toolbar .collectible-bag-trigger { background: var(--yellow); }.collectible-bag-trigger b { min-width: 18px; height: 18px; display: inline-grid; place-items: center; margin-left: 7px; background: var(--black); color: var(--white); }
.collectibles-listing-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.collectibles-loading,.collectibles-empty { min-height: 360px; padding: 35px; display: grid; place-content: center; gap: 12px; border: 1px solid var(--black); text-align: center; }
.collectibles-loading,.collectibles-empty { grid-column: 1 / -1; }
.collectibles-loading span { color: var(--yellow); font-family: var(--display); font-size: 56px; letter-spacing: -.18em; }
.collectibles-loading b,.collectibles-empty b { font-size: 9px; letter-spacing: .13em; }
.collectibles-empty p { margin: 0; color: #666; font-size: 12px; }
.collectible-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--black); background: #f8f6f1; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.collectible-card:hover { transform: translateY(-5px); box-shadow: 7px 7px 0 var(--yellow); }
.collectible-photo { aspect-ratio: 1 / 1.05; min-height: 0; position: relative; display: grid; place-items: center; overflow: hidden; background: #e5e0d7; border-bottom: 1px solid var(--black); }
.collectible-photo img { width: 100%; height: 100%; object-fit: contain; transition: transform .45s ease; }
.collectible-card:hover .collectible-photo img { transform: scale(1.025); }
.collectible-photo-missing { display: grid; place-items: center; gap: 8px; text-align: center; }
.collectible-photo-missing span { color: var(--yellow); font-family: var(--display); font-size: 60px; }
.collectible-photo-missing b { font-size: 9px; letter-spacing: .12em; }
.collectible-status { position: absolute; top: 16px; left: 16px; padding: 8px 10px; background: var(--black); color: var(--white); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.collectible-status.available { background: var(--yellow); color: var(--black); }
.collectible-body { min-height: 360px; padding: 22px; display: flex; flex: 1; flex-direction: column; }
.collectible-body > small { color: #69655e; font-size: 8px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.collectible-body h3 { min-height: 2.55em; margin: 10px 0 12px; font-family: var(--display); font-size: clamp(22px,1.65vw,30px); line-height: .86; letter-spacing: -.03em; text-transform: uppercase; }
.collectible-body > p:not(.collectible-disclaimer) { min-height: 4.5em; margin: 0 0 18px; display: -webkit-box; overflow: hidden; color: #555; font-size: 11px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.collectible-facts { margin: 0; padding: 15px 0; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #bbb6ad; border-bottom: 1px solid #bbb6ad; }
.collectible-facts div { min-width: 0; padding: 0 8px; border-right: 1px solid #bbb6ad; }.collectible-facts div:first-child { padding-left: 0; }.collectible-facts div:last-child { padding-right: 0; border-right: 0; }
.collectible-facts dt { overflow: hidden; color: #777; font-size: 6px; font-weight: 800; letter-spacing: .08em; text-overflow: ellipsis; }.collectible-facts dd { margin: 5px 0 0; overflow: hidden; font-size: 10px; font-weight: 800; text-overflow: ellipsis; }
.collectible-price-row { margin-top: auto; padding: 20px 0; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.collectible-price-row > div { min-width: 0; display: grid; gap: 4px; }.collectible-price-row span { color: #777; font-size: 6px; font-weight: 800; letter-spacing: .08em; }.collectible-price-row strong { font-family: var(--display); font-size: clamp(25px,2vw,34px); }.collectible-price-row b { color: #9b7510; font-size: 14px; }
.collectible-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
.collectible-actions a,.collectible-actions button { min-height: 50px; padding: 12px; display: grid; place-items: center; border: 1px solid var(--black); background: transparent; color: var(--black); font-size: 8px; font-weight: 800; letter-spacing: .07em; text-align: center; }
.collectible-actions button { background: var(--black); color: var(--white); }.collectible-actions a:hover,.collectible-actions button:hover:not(:disabled) { border-color: var(--yellow); box-shadow: inset 0 0 0 1px var(--yellow); }.collectible-actions button:disabled { opacity: .38; cursor: not-allowed; }
.collectible-disclaimer { margin: 13px 0 0; color: #777; font-size: 9px; line-height: 1.5; }
.collectible-reservation-dialog { max-width: 1160px; }
.collectible-order-summary { padding: 20px; border: 1px solid #444; }
.collectible-form-items { display: grid; gap: 10px; }
.collectible-form-line { min-width: 0; display: grid; grid-template-columns: 80px 1fr auto; gap: 15px; align-items: center; padding-bottom: 10px; border-bottom: 1px solid #444; }
.collectible-form-line img { width: 80px; height: 80px; object-fit: contain; background: var(--cream); }.collectible-form-line small { color: var(--gray); font-size: 7px; font-weight: 800; letter-spacing: .1em; }.collectible-form-line h4 { margin: 5px 0 0; font-size: 13px; }.collectible-form-line strong { color: var(--yellow); }
.collectible-order-summary dl { margin: 20px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.collectible-order-summary dl div { padding-top: 12px; border-top: 1px solid #444; }.collectible-order-summary dt { color: var(--gray); font-size: 8px; font-weight: 800; letter-spacing: .1em; }.collectible-order-summary dd { margin: 5px 0 0; color: var(--yellow); font-family: var(--display); font-size: 24px; }
.collectible-terms { max-height: 440px; overflow-y: auto; padding: 22px; display: grid; gap: 24px; border: 1px solid #444; color: var(--gray); font-size: 12px; line-height: 1.65; }
.collectible-terms > div { padding-bottom: 22px; border-bottom: 1px solid #333; }.collectible-terms > div:last-child { padding-bottom: 0; border-bottom: 0; }
.collectible-terms h4 { margin: 0 0 10px; color: var(--yellow); font-size: 10px; letter-spacing: .12em; }.collectible-terms ol { margin: 0; padding-left: 20px; }.collectible-terms li { margin-bottom: 9px; }.collectible-terms li:last-child { margin-bottom: 0; }.collectible-terms p { margin: 0; }.collectible-terms b { color: var(--white); }
.collectible-cart-footer { display: grid; gap: 10px; }.cart-footer .collectible-cart-deposit { padding-top: 12px; border-top: 1px solid var(--black); color: #9b7510; font-size: 24px; }.collectible-cart-item .remove-item { width: auto; min-height: 28px; margin-top: 10px; padding: 0 9px; border: 1px solid var(--black); background: transparent; color: var(--black); font-size: 8px; font-weight: 800; }
.mercari-note { margin-top: 60px; padding: 30px; display: grid; grid-template-columns: .45fr .7fr 1.4fr; align-items: center; gap: 35px; border: 1px solid var(--black); }
.mercari-note > span { color: #777; font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.mercari-note h3 { margin: 0; font-family: var(--display); font-size: 28px; }
.mercari-note p { margin: 0; color: #555; font-size: 13px; line-height: 1.65; }

.checkout-info { display: grid; grid-template-columns: .75fr 1.25fr; gap: 7vw; background: var(--black); }
.checkout-steps { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #333; }
.checkout-steps article { min-height: 200px; padding: 25px; border-right: 1px solid #333; border-bottom: 1px solid #333; }
.checkout-steps article:nth-child(even) { border-right: 0; }.checkout-steps article:nth-child(n+3) { border-bottom: 0; }
.checkout-steps span { color: var(--yellow); font-size: 9px; font-weight: 800; }
.checkout-steps h3 { font-family: var(--display); font-size: 21px; }.checkout-steps p { color: var(--gray); font-size: 13px; line-height: 1.6; }
.faq-list { border-top: 1px solid var(--black); }
.faq-list details { border-bottom: 1px solid var(--black); }
.faq-list summary { padding: 28px 0; display: grid; grid-template-columns: 50px 1fr auto; align-items: center; font-family: var(--display); font-size: clamp(20px,2.2vw,32px); cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary span { color: #777; font-family: var(--body); font-size: 10px; }.faq-list summary b { font-family: var(--body); font-size: 25px; transition: transform .2s; }.faq-list details[open] summary b { transform: rotate(45deg); }
.faq-list details p { max-width: 820px; margin: 0 0 30px 50px; color: #555; line-height: 1.7; }
body > footer { padding: 54px clamp(32px,5vw,90px) 44px; display: grid; grid-template-columns: minmax(290px,.95fr) minmax(150px,.38fr) minmax(280px,.72fr); grid-template-areas: "partners links notes"; gap: clamp(42px,6vw,90px); align-items: start; border-top: 1px solid var(--line); background: var(--black); }
body > footer h2 { font-family: var(--display); font-size: clamp(30px,3.6vw,58px); line-height: .9; }
body > footer nav { grid-area: links; display: grid; gap: 11px; align-content: start; }body > footer nav a { width: max-content; color: var(--gray); font-size: 10px; font-weight: 700; text-transform: uppercase; transition: color .2s; }body > footer nav a:hover { color: var(--yellow); }
.footer-column-title { margin-bottom: 9px; color: var(--white); font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.footer-meta { grid-area: notes; max-width: 330px; display: grid; gap: 8px; color: var(--gray); font-size: 13px; line-height: 1.55; }.footer-meta b { color: var(--yellow); }.footer-meta p { margin: 0; }.footer-meta small { margin-top: 6px; }
.footer-partners { grid-area: partners; max-width: 330px; display: flex; flex-wrap: wrap; align-items: center; gap: 11px; }
.footer-partners > span { flex-basis: 100%; margin-bottom: 2px; color: var(--white); font-size: 8px; font-weight: 800; letter-spacing: .16em; white-space: nowrap; }
.footer-partners figure { width: 52px; height: 52px; margin: 0; overflow: hidden; }
.footer-partners img { width: 100%; height: 100%; object-fit: contain; }
.footer-partners .partner-logo-link:first-of-type img { mix-blend-mode: screen; filter: grayscale(.2) saturate(.75) contrast(1.08); }
.footer-partners .partner-logo-link:nth-of-type(2) figure { width: 66px; }
.footer-partners .partner-logo-link:nth-of-type(2) img { transform: scale(1.35); filter: invert(1) grayscale(1) brightness(1.8) contrast(1.25); }
.footer-partners .partner-logo-link:hover img,.footer-partners .partner-logo-link:focus-visible img { filter: none; }
.footer-partners i { color: var(--yellow); font-family: var(--display); font-size: 14px; font-style: normal; }
.partner-socials { flex-basis: 100%; margin-top: 7px; display: flex; flex-wrap: wrap; align-items: center; gap: 7px 11px; color: var(--gray); font-size: 8px; line-height: 1.4; text-transform: uppercase; }
.partner-socials strong { color: var(--yellow); font-size: 8px; letter-spacing: .11em; }
.partner-socials strong:nth-of-type(2) { margin-left: 7px; }
.partner-socials a { color: var(--gray); text-decoration: none; border-bottom: 1px solid #454545; transition: color .2s,border-color .2s; }
.partner-socials a:hover,.partner-socials a:focus-visible { color: var(--white); border-color: var(--yellow); }
.footer-site-logo { flex-basis: 100%; margin-top: 14px; }
.footer-site-logo img { width: min(260px,100%); height: auto; object-fit: contain; object-position: left center; }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
label { display: grid; gap: 8px; }
label > span, label > small { font-size: 9px; font-weight: 800; letter-spacing: .07em; }
.wide { grid-column: 1 / -1; }
input, select, textarea { width: 100%; min-height: 48px; padding: 12px 13px; border: 1px solid #555; border-radius: 0; background: transparent; color: inherit; }
select { background: var(--black-2); }.light-section select,.shop-section select { background: var(--cream); }
textarea { resize: vertical; }
.check-line { margin: 20px 0; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 10px; }.check-line input { width: 18px; min-height: 18px; }
.form-message { min-height: 22px; margin: 14px 0 0; color: var(--yellow); font-size: 12px; line-height: 1.5; }.error-message { color: #ffb4a8; }

.overlay { position: fixed; z-index: 1100; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; z-index: 1200; top: 0; right: 0; width: min(520px,100%); height: 100dvh; display: flex; flex-direction: column; transform: translateX(105%); background: var(--cream); color: var(--black); transition: transform .28s ease; }
.cart-drawer.open { transform: translateX(0); }
.cart-drawer > header { padding: 24px; display: flex; align-items: flex-start; justify-content: space-between; border-bottom: 1px solid var(--black); }
.cart-drawer h2 { margin: 4px 0 0; font-family: var(--display); font-size: 38px; text-transform: uppercase; }
.cart-drawer header small { font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.icon-button { width: 44px; height: 44px; border: 1px solid currentColor; background: transparent; color: inherit; font-size: 26px; line-height: 1; }
.cart-items { flex: 1; overflow-y: auto; }
.cart-item { padding: 18px 24px; display: grid; grid-template-columns: 78px 1fr auto; gap: 14px; border-bottom: 1px solid #ccc7bd; }
.cart-item img { width: 78px; height: 78px; object-fit: contain; background: #e5e0d7; }
.cart-item h3 { margin: 0 0 4px; font-size: 14px; }.cart-item p { margin: 0; color: #666; font-size: 10px; }.cart-item strong { font-size: 13px; }
.cart-item-actions { margin-top: 12px; display: flex; align-items: center; gap: 8px; }.cart-item-actions button { width: 28px; height: 28px; border: 1px solid var(--black); background: transparent; }.cart-item-actions .remove-item { width: auto; margin-left: 8px; padding: 0 8px; font-size: 8px; font-weight: 800; }
.cart-empty { padding: 70px 24px; text-align: center; }.cart-empty strong { font-family: var(--display); font-size: 28px; }.cart-empty p { color: #666; }
.cart-footer { padding: 22px 24px; border-top: 1px solid var(--black); }.cart-footer > div { display: flex; justify-content: space-between; font-family: var(--display); font-size: 21px; }.cart-footer p { color: #666; font-size: 10px; }

dialog { width: calc(100% - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 1px solid #555; border-radius: 0; background: var(--black); color: var(--white); box-shadow: 0 25px 90px rgba(0,0,0,.6); }
dialog::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(4px); }
.dialog-close { position: sticky; z-index: 5; top: 18px; float: right; margin: 18px 18px -62px 0; background: var(--black); }
.product-dialog { max-width: 1100px; overflow: auto; }
.product-detail { min-height: 670px; display: grid; grid-template-columns: 1.05fr .95fr; }
.product-detail > div:last-child { padding: 75px 55px; }
.product-detail-image { display: grid; place-items: center; background: var(--cream); }
.product-detail-image img { width: 90%; height: 600px; object-fit: contain; }
.product-detail h2 { margin: 12px 0; font-family: var(--display); font-size: clamp(40px,5vw,70px); line-height: .9; text-transform: uppercase; }
.product-detail > div > p { color: var(--gray); line-height: 1.7; }.detail-price { display: block; margin: 20px 0; color: var(--yellow); font-family: var(--display); font-size: 35px; }
.product-detail form { margin-top: 30px; display: grid; gap: 16px; }
.quantity-picker { display: grid; grid-template-columns: 45px 70px 45px; }.quantity-picker button { border: 1px solid #555; background: transparent; color: inherit; }.quantity-picker input { text-align: center; }
.checkout-dialog { max-width: 1180px; overflow: auto; }
.checkout-shell { padding: 65px clamp(22px,5vw,70px); }
.checkout-shell > header { margin-bottom: 45px; }.checkout-shell > header h2 { margin: 10px 0; font-family: var(--display); font-size: clamp(42px,5.4vw,78px); line-height: .9; text-transform: uppercase; }.checkout-shell > header p:last-child { color: var(--gray); }
.checkout-shell form > section { margin-top: 40px; padding-top: 30px; border-top: 1px solid #333; }.checkout-shell form > section h3 { margin: 0 0 22px; font-family: var(--display); font-size: 20px; }
.choice-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.choice-grid label { position: relative; }.choice-grid input { position: absolute; opacity: 0; pointer-events: none; }.choice-grid label > span { min-height: 90px; padding: 17px; display: flex; flex-direction: column; justify-content: center; gap: 6px; border: 1px solid #555; cursor: pointer; }.choice-grid input:checked + span { border-color: var(--yellow); box-shadow: inset 0 0 0 1px var(--yellow); }.choice-grid small { color: var(--gray); font-weight: 500; }
.shipping-fields { margin-top: 20px; padding: 20px; border: 1px solid #333; }
.checkout-summary { display: grid; gap: 10px; }.summary-line { padding: 12px 0; display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid #333; }.summary-line p { margin: 3px 0 0; color: var(--gray); font-size: 10px; }
.totals { margin-left: auto; width: min(100%,450px); }.totals div { padding: 11px 0; display: flex; justify-content: space-between; }.totals dt,.totals dd { margin: 0; }.grand-total { margin-top: 5px; border-top: 1px solid var(--yellow); color: var(--yellow); font-family: var(--display); font-size: 25px; }
.payment-layout { display: grid; grid-template-columns: 1.25fr .75fr; gap: 35px; }.payment-methods { margin-bottom: 25px; }.payment-qr { min-height: 330px; padding: 25px; display: grid; place-items: center; align-content: center; border: 1px solid #555; text-align: center; }.payment-qr img { width: min(100%,260px); aspect-ratio: 1; object-fit: contain; background: white; }.payment-qr #qrPlaceholder { width: min(100%,260px); aspect-ratio: 1; padding: 25px; display: grid; place-content: center; gap: 10px; border: 1px dashed #777; }.payment-qr #qrPlaceholder span { color: var(--gray); font-size: 10px; }.payment-qr p { margin: 20px 0 5px; color: var(--gray); font-size: 10px; }.payment-qr > strong { color: var(--yellow); font-family: var(--display); font-size: 32px; }
.submit-order { min-height: 62px; margin-top: 20px; font-size: 12px; }
.result-dialog { max-width: 600px; padding: 55px; text-align: center; }.result-mark { color: var(--yellow); font-family: var(--display); font-size: 55px; letter-spacing: -.15em; }.result-dialog h2 { font-family: var(--display); font-size: 46px; line-height: .9; text-transform: uppercase; }.result-dialog > strong { display: block; margin: 25px 0; color: var(--yellow); font-size: 22px; }.result-dialog > p { color: var(--gray); line-height: 1.7; }.result-dialog > div:not(.result-mark) { margin: 25px 0; padding: 18px; display: flex; justify-content: space-between; border: 1px solid #555; font-size: 10px; }
.toast { position: fixed; z-index: 2000; right: 24px; bottom: 24px; max-width: 360px; padding: 16px 20px; transform: translateY(150%); background: var(--yellow); color: var(--black); font-size: 12px; font-weight: 800; transition: transform .25s; }.toast.show { transform: translateY(0); }

@media (max-width: 1100px) {
  .hero { grid-template-columns: 1fr 1fr; }.hero-art img { width: 75vw; }.hero-details { display: none; }
  .package-grid,.product-grid { grid-template-columns: repeat(2,1fr); }.package-card:nth-child(2) { border-right: 0; }.package-card { border-bottom: 1px solid #383838; }
  .merch-editorial { grid-template-columns: .8fr 1.2fr; }.merch-editorial figure:last-child { grid-column: 2; }.merch-editorial > div { grid-row: 1 / span 2; }
  .schedule-section,.reservation-panel,.checkout-info { grid-template-columns: 1fr; }.schedule-copy { position: static; }
  .product-detail { grid-template-columns: 1fr 1fr; }.product-detail > div:last-child { padding: 65px 35px; }
  .collectibles-listing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .site-header { grid-template-columns: 1fr auto auto; min-height: 72px; }.menu-toggle { display: block; }.site-nav { position: absolute; top: 72px; left: 0; right: 0; padding: 25px 5vw; display: none; flex-direction: column; align-items: stretch; background: var(--black); border-bottom: 1px solid #333; }.site-nav.open { display: flex; }
  .hero { min-height: auto; padding-bottom: 55px; display: block; }.hero-art { position: relative; height: 58svh; min-height: 430px; }.hero-art img { width: 100%; }.hero-title { padding: 30px 6vw 0; }.hero-title h1 { font-size: clamp(60px,15vw,100px); }.hero-details { display: grid; margin: 35px 6vw 0; padding: 0 0 0 20px; border-right: 0; border-left: 2px solid var(--yellow); text-align: left; }
  .section-heading { align-items: start; flex-direction: column; }.experience-grid { grid-template-columns: 1fr; }.experience-grid article { min-height: 360px; border-right: 0; border-bottom: 1px solid var(--black); }.experience-grid article:last-child { border-bottom: 0; }
  .schedule-grid { grid-template-columns: 1fr 1fr; }.mercari-note { grid-template-columns: 1fr; }
  .product-detail { grid-template-columns: 1fr; }.product-detail-image img { height: 420px; }.product-detail > div:last-child { padding: 45px 24px; }
  .payment-layout { grid-template-columns: 1fr; }
  .shop-hero { min-height: 620px; grid-template-columns: 1fr; align-content: end; gap: 32px; }.shop-hero-copy { justify-self: start; }
  .reservation-payment .payment-layout { grid-template-columns: 1fr; }
  .collectibles-intro { grid-template-columns: 1fr; gap: 24px; }
  body > footer { grid-template-columns: 1.15fr .65fr .9fr; grid-template-areas: "partners links notes"; gap: 32px; }
}

@media (max-width: 580px) {
  .shop-hero { min-height: 570px; padding: 80px 20px 60px; }.shop-hero h1 { font-size: 18vw; }.shop-hero-products { align-items: start; padding-top: 20px; }.shop-hero-products img { width: 58vw; max-height: 330px; }
  .section { padding: 80px 20px; }.site-header { padding-inline: 20px; gap: 12px; }.brand { width: 132px; }.brand img { height: 44px; }.cart-trigger { min-width: 52px; }.cart-trigger > span { display: none; }
  .hero-art { height: 50svh; min-height: 360px; }.hero-title { padding-inline: 20px; }.hero-title h1 { font-size: 16vw; }.hero-actions { display: grid; }.hero-actions .button { width: 100%; }.hero-partners { margin-top: 20px; }.hero-partners figure { width: 38px; height: 38px; }.hero-partners .partner-logo-link:last-of-type figure { width: 48px; }.hero-details { margin-inline: 20px; }
  .ticker-group { justify-content: flex-start; font-size: 17px; }
  .section-heading h2,.merch-editorial h2,.schedule-copy h2,.reservation-panel h2,.checkout-info h2 { font-size: 13vw; }
  .schedule-copy .schedule-title { font-size: clamp(25px,7vw,38px); }
  .section-heading .experience-title { font-size: 10.5vw; }
  .partnership-intro { margin-top: -8px; grid-template-columns: 1fr; gap: 18px; }
  .partnership-intro .eyebrow { grid-column: auto; }
  .experience-title span:last-child em { display: block; }
  .package-grid,.product-grid,.schedule-grid { grid-template-columns: 1fr; }.package-card { min-height: 610px; border-right: 0; }
  .reservation-panel form { padding: 20px; }.form-grid { grid-template-columns: 1fr; }.wide { grid-column: auto; }
  .conditional-grid { grid-template-columns: 1fr; }
  .reservation-ticket { grid-template-columns: 58px 1fr; }.reservation-ticket::before,.reservation-ticket::after { left: 47px; }.ticket-body { padding: 22px 18px 22px 24px; }.ticket-body dl { grid-template-columns: 1fr; }.terms-box summary span { display: none; }
  .reservation-payment-heading { align-items: start; flex-direction: column; }.reservation-payment-heading > div:last-child { text-align: left; }.reservation-payment .payment-layout,.reservation-payment .choice-grid { grid-template-columns: 1fr; }
  .merch-editorial { min-height: auto; padding: 80px 20px; grid-template-columns: 1fr; }.merch-editorial > div,.merch-editorial figure:last-child { grid-row: auto; grid-column: auto; }.merch-editorial figure { margin-top: 25px; }
  .schedule-board header { min-height: 140px; }.schedule-board li b { font-size: 28px; }
  .checkout-steps { grid-template-columns: 1fr; }.checkout-steps article { min-height: 160px; border-right: 0; border-bottom: 1px solid #333 !important; }.checkout-steps article:last-child { border-bottom: 0 !important; }
  .product-actions { grid-template-columns: 1fr; }.choice-grid { grid-template-columns: 1fr; }
  .collectibles-corner { padding: 80px 20px; gap: 30px; }.collectibles-heading h2 { font-size: 13vw; }.collectibles-toolbar { align-items: flex-start; flex-direction: column; }.collectibles-listing-grid { grid-template-columns: 1fr; }.collectible-photo { min-height: 0; }.collectible-body { min-height: 0; }.collectible-body h3,.collectible-body > p:not(.collectible-disclaimer) { min-height: 0; }.collectible-price-row { align-items: flex-end; }.collectible-actions { grid-template-columns: 1fr; }
  .checkout-shell { padding: 55px 18px 30px; }.product-detail-image img { height: 330px; }.product-detail h2 { font-size: 12vw; }
  .collectible-form-line { grid-template-columns: 64px 1fr; }.collectible-form-line img { width: 64px; height: 64px; }.collectible-form-line > strong { grid-column: 2; }.collectible-order-summary dl { grid-template-columns: 1fr; }
  .cart-item { padding-inline: 16px; grid-template-columns: 65px 1fr auto; }.cart-item img { width: 65px; height: 65px; }
  .faq-list summary { grid-template-columns: 35px 1fr auto; font-size: 19px; }.faq-list details p { margin-left: 35px; }
  body > footer { padding-inline: 20px; grid-template-columns: 1fr; grid-template-areas: "partners" "links" "notes"; }.footer-partners > span { margin-bottom: 2px; }
  .result-dialog { padding: 42px 22px; }.result-dialog h2 { font-size: 38px; }
}

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