@font-face{font-family:Chiron;src:url("fonts/261505e79d4e3e14b2514df79b00bd7b85c0a33b1abdb591ca1b5ddc371eadc7.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+20,U+2F,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+39,U+41,U+43,U+45,U+47,U+49,U+4E,U+4F,U+50,U+53,U+54,U+56,U+57,U+61,U+63,U+65,U+67,U+68,U+69,U+6B,U+6C,U+6D,U+6E,U+6F,U+70,U+73,U+74,U+79,U+A9,U+B7,U+E9,U+2013,U+2192,U+2193,U+2197,U+3001,U+3002,U+4E00,U+4E09,U+4E0B,U+4E0D,U+4E26,U+4E2D,U+4E3B,U+4E4B,U+4E86,U+4E8B,U+4EA4,U+4EBA,U+4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EF6,U+4F5C,U+4F60,U+4F7F,U+4F8B,U+4F9B,U+4FDD,U+4FEE,U+500B,U+512A,U+5148,U+5165,U+5167,U+516C,U+5176,U+5187,U+518D,U+51FA,U+5206,U+5217,U+5225,U+5229,U+5230,U+5236,U+524D,U+529F,U+52A0,U+52A9,U+52D5,U+52D9,U+5305,U+5357,U+5361,U+539F,U+53BB,U+53C3,U+53CA,U+53D6,U+53E3,U+53E6,U+53EA,U+53EF,U+5404,U+5408,U+540C,U+540D,U+5462,U+54A9,U+54C1,U+54E1,U+5514,U+5546,U+554F,U+555F,U+55AE,U+5605,U+56DE,U+5716,U+5730,U+5740,U+5916,U+591A,U+5982,U+5B89,U+5B98,U+5B9A,U+5BA2,U+5BB9,U+5BC4,U+5BE6,U+5C0D,U+5C55,U+5C6C,U+5DF1,U+5E03,U+5E38,U+5E6B,U+5E74,U+5E7E,U+5EA6,U+5F0F,U+5F62,U+5F80,U+5FC3,U+60E0,U+60F3,U+61C9,U+6216,U+624B,U+6253,U+62BD,U+6301,U+6307,U+6309,U+6392,U+63A5,U+63C0,U+63D0,U+63F4,U+6435,U+64DA,U+652F,U+6536,U+6539,U+6578,U+6599,U+65B0,U+65B9,U+65E5,U+660E,U+6613,U+6642,U+6700,U+6703,U+6708,U+6709,U+670D,U+671F,U+672A,U+67E5,U+6838,U+683C,U+689D,U+695A,U+6B0A,U+6B21,U+6B3E,U+6B65,U+6BCF,U+6BD4,U+6C60,U+6D3B,U+6D88,U+6D89,U+6E05,U+6E96,U+70BA,U+7247,U+7269,U+73FE,U+7406,U+7455,U+7528,U+7559,U+75B5,U+767B,U+76D2,U+76EE,U+76F4,U+76F8,U+770B,U+7747,U+77E5,U+78BA,U+793A,U+79C1,U+7A0B,U+7A31,U+7A4D,U+7AD9,U+7B26,U+7B2C,U+7B46,U+7B97,U+7D61,U+7DB2,U+8003,U+806F,U+80FD,U+81EA,U+8207,U+85CF,U+8655,U+865F,U+8868,U+8981,U+898B,U+89E3,U+89F8,U+8A02,U+8A18,U+8A72,U+8A8D,U+8AAA,U+8ACB,U+8B58,U+8B80,U+8CA8,U+8CBB,U+8CC7,U+8DF3,U+8F03,U+8FD4,U+9001,U+9010,U+9078,U+908A,U+91D1,U+9304,U+958B,U+95B1,U+95DC,U+9650,U+969B,U+96B1,U+96C6,U+9700,U+9762,U+9801,U+9805,U+9808,U+9810,U+984C,U+984D,U+985E,U+9A5F,U+FF0B,U+FF0C,U+FF1A,U+FF1B,U+FF1F}
@font-face{font-family:Chiron;src:url("fonts/a51c6cf031fb24558f00fae6eb182e4f5abcbe849848d60028e7957507837561.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+26,U+27,U+28,U+29,U+2B,U+2D,U+2E,U+38,U+3A,U+42,U+44,U+46,U+48,U+4A,U+4C,U+4D,U+52,U+55,U+58,U+59,U+5A,U+62,U+64,U+66,U+6A,U+71,U+72,U+75,U+76,U+77,U+78,U+7A,U+D7,U+2191,U+2212,U+3010,U+3011,U+306E,U+4E16,U+5149,U+5168,U+570D,U+5834,U+58EB,U+5922,U+5BF6,U+5F37,U+6230,U+6280,U+642D,U+69AE,U+6A94,U+706B,U+71B1,U+7248,U+724C,U+7279,U+754C,U+7684,U+7AF6,U+7BAD,U+7CFB,U+7D05,U+7DCB,U+8584,U+8D77,U+8D85,U+90E8,U+968A,U+96FB,U+9727,U+98A8,U+9996,U+FF08,U+FF09}
@font-face{font-family:Chiron;src:url("fonts/aa8d72f64eaf4699a8cf62a93c7d1e4f7e914eb5adccdead449af3c53d42adf9.woff2") format("woff2");font-weight:900;font-display:swap;unicode-range:U+20,U+2F,U+30,U+31,U+32,U+33,U+41,U+43,U+45,U+47,U+54,U+57,U+61,U+65,U+68,U+69,U+6B,U+6F,U+70,U+73,U+74,U+78,U+2197,U+4E2D,U+4E86,U+4EAB,U+5206,U+5217,U+524D,U+52A0,U+52A9,U+52D9,U+5361,U+53C3,U+540C,U+5462,U+555F,U+5922,U+5B98,U+5C0D,U+5E6B,U+5E7B,U+5F0F,U+5FC3,U+63C0,U+63F4,U+6435,U+64DA,U+652F,U+6578,U+6599,U+65B9,U+670D,U+672C,U+6838,U+689D,U+6B3E,U+6BD4,U+7747,U+77E5,U+79C1,U+7AD9,U+7CFB,U+7DB2,U+7E7C,U+7E8C,U+89E3,U+8CC7,U+8F03,U+9078,U+958B,U+96B1,U+9801,U+9808,U+9996}
@font-face{font-family:Chiron;src:url("fonts/a4f0f78e008f1d45dfba6de2836c6b4a1f4dd05384aaa45ecb07617592bd4069.woff2") format("woff2");font-weight:900;font-display:swap;unicode-range:U+2B,U+2D,U+34,U+35,U+36,U+37,U+38,U+39,U+4B,U+4D,U+4F,U+50,U+53,U+56,U+62,U+D7,U+2212}
/* Chiron Hei HK v2.609; SIL OFL 1.1. Generated by scripts/fonts-fallback.py. */

:root{--red:#d90000;--paper:#f1ead9;--ink:#181819;--marker:#f2df38}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#252628;color:var(--paper);font-family:Chiron,ChironFallback,sans-serif;font-weight:400}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--marker);outline-offset:5px}img,svg{display:block}p,h1,h2,h3{margin:0}button,a{-webkit-tap-highlight-color:transparent}a{touch-action:manipulation}.page{max-width:430px;margin:0 auto;box-shadow:0 0 40px #1116;overflow:hidden}h1{font-weight:900;font-size:clamp(58px,19.1vw,82px);letter-spacing:-.07em;line-height:1.04;transform:rotate(-4deg) skewX(-5deg);transform-origin:20% 70%;padding-top:14px;padding-bottom:7px;text-shadow:3px 3px 0 var(--ink),5px 6px 0 var(--ink),7px 8px 0 var(--ink);-webkit-text-stroke:.25px var(--paper)}h1 span{display:block;white-space:nowrap}h1 span:last-child{padding-left:23px}footer{padding:20px 22px;background:var(--paper);color:var(--ink);border-top:1px solid #211e1b44;display:flex;align-items:center;gap:14px;font-size:11px}footer img{width:93px;height:auto}
@media(min-width:431px){.page{margin-bottom:32px}}
@media(max-width:360px){}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.spend{background:linear-gradient(#181819d9,#181819ee),var(--lp3-paper-image) center/100% auto}.cost-list>div:nth-child(2){margin-left:6px;margin-right:0}.cost-list>div:nth-child(2):before{transform:rotate(1.3deg)}.cost-list>div:nth-child(3){margin-left:0;margin-right:3px}.cost-list>div:nth-child(3):before{transform:rotate(-.7deg)}.cost-list>div:nth-child(3) dt span{font-family:Chiron,ChironFallback,sans-serif;background:var(--ink);color:var(--paper);font-size:12px;font-weight:900;line-height:1.3;padding:6px;transform:rotate(3deg);white-space:nowrap}.budget-faq[open] summary>span{transform:rotate(45deg)}
@media(max-width:360px){.cost-list>div:nth-child(3) dt{flex-wrap:wrap}}
.lower-content a:hover:not(.closing-cta){text-decoration:underline;text-underline-offset:4px}
@media(prefers-reduced-motion:reduce){}.category-nav>a:nth-child(2){transform:rotate(2deg)}.category-nav>a:nth-child(3){transform:rotate(-2deg)}.category-nav>a:nth-child(n+4){grid-column:span 3;transform:rotate(1deg)}.onepiece-heading>p:not(.onepiece-intro){font-size:12px;letter-spacing:.07em}
@media(max-width:360px){}

/* LP3 only. Load after the original mobile styles.
   Street posters remain the visual system; text and image captions stay in flow. */
:root {
  --lp3-gutter: clamp(22px, 4vw, 52px);
  --lp3-body: .9375rem;
  --lp3-note: .875rem;
}
.page { max-width: 1280px; }
.page :where(section, article, figure, div, nav, a) { min-width: 0; }
.page :where(p, dd, figcaption, a, h1, h2, h3) { overflow-wrap: anywhere; }
.page :where(p, dd) { text-wrap: pretty; }
.page :where(a, summary) { min-height: 44px; }
.page :where(a, summary):focus-visible { outline-width: 3px; }
.page :where(.card, .detail-frame, .series-item, .luffy-card, .shanks-card, .activity-art) > :is(svg, img) {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.page :where(.detail-frame, .series-item, .luffy-card, .shanks-card) > img {
  filter: drop-shadow(2px 6px 4px #0008);
}
h1 { font-size: clamp(3.25rem, 19.1vw, 5.125rem); }
h1 span { white-space: normal; }
.section-title > p,
.spend-heading > p,
.onepiece-heading > p:not(.onepiece-intro),
.activity-kicker,
.activity-fate .activity-kicker,
.activity-copy a,
.activity-art figcaption,
.activity-note,
.detail-frame figcaption,
.series-item figcaption,
.onepiece-art figcaption,
.route-bottom,
.identity-note p,
.budget-note a,
.guide-link,
.prototype-footer > p,
.prototype-footer > div { font-size: var(--lp3-note); line-height: 1.7; }

/* Both figures contribute their image and caption height to the grid row.
   Overlap belongs to the horizontal composition{
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  height: auto;
  aspect-ratio: auto;
  padding-block: 14px 25px;
}
.cost-equation > span:not(.sr-only) { font-size: 2rem; flex: 0 0 auto; }
.cost-list > div:nth-child(3) dt span { font-size: var(--lp3-note); white-space: normal; }

/* Hooks for the factual comparison and source sections{ padding: 32px 24px; background: var(--ink); color: var(--paper); }
.compare-card:nth-child(2):before { transform: rotate(.8deg); }
.compare-card :where(p, li, dd) { font-size: var(--lp3-body); line-height: 1.8; }
.compare-card :where(p, dl) + :where(p, dl) { margin-top: 12px; }
.source-support :where(ul, ol) { padding-left: 1.2em; }

@media (min-width: 600px) and (max-width: 767px) {
}

/* Tablet is a complete wide composition, rather than a centred phone. */
@media (min-width: 768px) {
  :root { --lp3-body: 1rem; }
  .page { width: 100%; margin-bottom: 0; }
  h1 { font-size: clamp(3.375rem, 7.8vw, 6.5rem); padding-top: 20px; }
  h1 span:last-child { padding-left: 10px; }
  .category-nav > a,
  .category-nav > a:nth-child(n+4) { grid-column: auto; padding: 9px 8px; }
  .onepiece-pick > :not(.onepiece-heading):not(.onepiece-art):not(.onepiece-cta) { grid-column: 1 / -1; }
  .choose > :not(.section-title):not(.pick-route):not(.identity-note):not(.specific-note) { grid-column: 1 / -1; }
  .cost-equation > span:not(.sr-only) { font-size: 2.5rem; }
  .cost-list > div,
  .cost-list > div:nth-child(2),
  .cost-list > div:nth-child(3) { margin: 0; padding: 25px 20px; }
  .cost-list > div:nth-child(3) dt span { min-height: 32px; display: flex; align-items: center; }
}

@media (min-width: 1024px) {
  .cost-list > div:nth-child(3) dt { flex-wrap: wrap; }
}

@media (min-width: 1280px) {
}

@media (min-width: 1440px) {
  .page { margin-top: 0; box-shadow: 0 0 60px #1118; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page *, .page *:before, .page *:after { animation: none !important; transition: none !important; }
}

/* LP3 content, navigation and resilient image layout. */
.page{overflow:clip}
.page picture{display:contents}
.page picture>img:not([class]){display:block;width:100%;height:auto;object-fit:contain}
.page :where(.detail-frame,.series-item,.luffy-card,.shanks-card)>picture>img{filter:drop-shadow(2px 6px 4px #0008)}
.skip-link{position:fixed;left:16px;top:12px;z-index:100;padding:14px 20px;background:var(--paper);color:var(--ink);font-size:1rem;transform:translateY(-180%)}
.skip-link:focus{transform:none;outline:3px solid var(--red)}
.page [id]{scroll-margin-top:78px}
.page :is(section,article,main)[id]{scroll-margin-top:5em}
.comparison-card:nth-child(2):before{transform:rotate(.8deg)}.support-note{padding:26px var(--lp3-gutter) 0}
.page img{font-size:.875rem;line-height:1.5}
/* Broken images keep the caption and layout instead of collapsing the card. */
.page img[width][height]{object-fit:contain}
.budget-faq[open] summary>span:after{content:'−'}
@media(min-width:768px){.support-note{padding-left:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(prefers-reduced-data:reduce){.spend{background-image:none}}

:root{--lp3-paper-image:url("media/street-paper.webp")}
@supports(background-image:image-set(url("media/street-paper.avif") type("image/avif"))){:root{--lp3-paper-image:image-set(url("media/street-paper.avif") type("image/avif"),url("media/street-paper.webp") type("image/webp"))}}

/* LABEL-01: only Ace / Boa captions. Keep original card pixels, copy,
   Chiron faces, document flow, CTA and the rest of COPY-03 unchanged. */
.onepiece-art :is(.luffy-card, .shanks-card) > figcaption {
  --label-edge: polygon(0 5%, 28% 0, 62% 3%, 100% 0, 98% 48%, 100% 94%, 70% 98%, 40% 96%, 1% 100%);
  position: relative;
  isolation: isolate;
  display: grid;
  justify-items: start;
  gap: 4px;
  width: 9rem;
  max-width: calc(100% - 6px);
  margin-top: 18px;
  padding: 9px 8px 8px;
  background: transparent;
  box-shadow: none;
  color: var(--ink);
  font-size: 1.75rem;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.06em;
  text-align: left;
  overflow-wrap: normal;
  transform-origin: center;
}
.onepiece-art :is(.luffy-card, .shanks-card) > figcaption::before,
.onepiece-art :is(.luffy-card, .shanks-card) > figcaption::after {
  content: '';
  position: absolute;
  pointer-events: none;
  clip-path: var(--label-edge);
}
.onepiece-art :is(.luffy-card, .shanks-card) > figcaption::before {
  inset: 0;
  z-index: -1;
  background: var(--paper);
}
.onepiece-art :is(.luffy-card, .shanks-card) > figcaption::after {
  inset: 3px -3px -3px 3px;
  z-index: -2;
  background: var(--ink);
}
.onepiece-art :is(.luffy-card, .shanks-card) > figcaption > span {
  display: block;
  padding: 3px 4px;
  background: var(--ink);
  border-bottom: 2px solid var(--red);
  color: var(--paper);
  font-size: .875rem;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  letter-spacing: .02em;
  white-space: nowrap;
  /* Counter the lettering skew so the actual identifier stays easy to read. */
  transform: skewX(4deg);
}
@media (min-width: 768px) {
  .onepiece-art :is(.luffy-card, .shanks-card) > figcaption {
    font-size: 2rem;
    padding-block: 10px 9px;
  }
}
@media (forced-colors: active) {
  .onepiece-art :is(.luffy-card, .shanks-card) > figcaption {
    outline: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
    transform: none;
  }
  .onepiece-art :is(.luffy-card, .shanks-card) > figcaption::before,
  .onepiece-art :is(.luffy-card, .shanks-card) > figcaption::after {
    display: none;
  }
  .onepiece-art :is(.luffy-card, .shanks-card) > figcaption > span {
    background: Canvas;
    color: CanvasText;
    transform: none;
  }
}

/* LABEL-02 extends the approved paper-label language to six other captions.
   ONE PIECE keeps its exact LABEL-01 stylesheet and markup. No image transforms,
   CTA styles{
  --label-edge: polygon(0 5%, 28% 0, 62% 3%, 100% 0, 98% 48%, 100% 94%, 70% 98%, 40% 96%, 1% 100%);
  position: relative;
  isolation: isolate;
  display: grid;
  justify-items: start;
  gap: 5px;
  width: 10rem;
  max-width: calc(100% - 6px);
  margin: 18px 3px 0 0;
  padding: 9px 8px 8px;
  background: transparent;
  box-shadow: none;
  color: var(--ink);
  text-align: left;
  overflow: visible;
  transform-origin: center;
}
/* Compensate for the original figure rotation: labels end at about -2deg.
   Keep every caption in normal flow{
  transform: rotate(-7deg) skewX(-4deg);
}
@media (min-width: 768px) {
}
@media (forced-colors: active) {
  .page :is(.activity-newcomer, .activity-daily, .cosplay-detail, .festival-detail, .series-151, .series-black) figcaption.product-label {
    outline: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
    transform: none;
  }
  .page .product-label > :is(.product-label-name, .product-label-detail) {
    background: Canvas;
    color: CanvasText;
    transform: none;
  }
}

/* ICON-01: approved LP1 category identifiers in LP3's existing paper links.
   Preserve: red / ink / cream, grid order, tilted edges, arrows and focus.
   DESIGN_VARIANCE=8, MOTION_INTENSITY=1, VISUAL_DENSITY=4.
   Original logo pixels are not altered; multiply integrates their white paper.
   Scope every rule to this navigation, never to the approved product labels. */
.category-nav--icons > a,
.category-nav--icons > a:nth-child(n+4) {
  justify-content: space-between;
  min-height: 104px;
  padding: 12px 8px 9px;
  gap: 12px;
}

.category-nav--icons > a[href="#fate"] .category-logo img {
  max-width: 150px;
}

/* The original 3+2 mobile / five-column desktop grid stays unchanged. */
@media (max-width: 359px) {
  .category-nav--icons > a,
  .category-nav--icons > a:nth-child(n+4) {
    padding-inline: 6px;
  }
}

@media (min-width: 768px) {
  .category-nav--icons > a,
  .category-nav--icons > a:nth-child(n+4) {
    min-height: 118px;
    padding: 15px 12px 10px;
  }
}

@media (min-width: 1024px) {
  .category-nav--icons > a,
  .category-nav--icons > a:nth-child(n+4) {
    min-height: 128px;
  }
}

/* ICON-03: compact horizontal paper links, approved after the ICON-02 screenshot.
   Preserve original artwork, colours, tilt{
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.category-nav.category-nav--compact > a,
.category-nav.category-nav--compact > a:nth-child(n+4) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px;
  align-items: center;
  justify-content: normal;
  gap: 8px;
  min-height: 78px;
  padding: 10px;
  grid-column: span 2;
}

.category-nav.category-nav--compact > a:nth-child(n+4) {
  grid-column: span 3;
}

.category-nav--compact > a[href="#pokemon"] .category-logo,
.category-nav--compact > a[href="#onepiece"] .category-logo {
  height: 50px;
}

/* At phone widths, a three-across horizontal row would make wordmarks too small.
   Keep DOM order: two activity links, the full-width activity link, two brands. */
@media (max-width: 479px) {

  .category-nav.category-nav--compact > a:nth-child(3) {
    grid-column: span 6;
    min-height: 64px;
  }
}

@media (min-width: 1024px) {

  .category-nav.category-nav--compact > a,
  .category-nav.category-nav--compact > a:nth-child(n+4) {
    grid-column: auto;
    min-height: 84px;
    padding: 12px 10px;
    gap: 10px;
  }

  .category-nav--compact > a[href="#pokemon"] .category-logo,
  .category-nav--compact > a[href="#onepiece"] .category-logo {
    height: 54px;
  }
}

/* COMPARE-01, direction A (user-approved 2026-09-27).
   Align the three forms, lead with the "interest" field and turn the "check"
   field into the ink caution strip from the approved label language.
   CSS only, loaded last. No copy, font weight, ID{
  gap: 20px;
  padding-top: 26px;
}

/* The interest field decides the form, so it leads: larger text and a marker
   tag on its existing heavy label. Body weight stays 400 (no new font subset). */
.product-comparison .comparison-card [id$="-interest"] dt {
  justify-self: start;
  padding: 0 5px;
  background: var(--marker);
  box-shadow: 2px 2px 0 var(--ink);
}
.product-comparison .comparison-card [id$="-interest"] dd {
  font-size: 1.0625rem;
  line-height: 1.65;
}

/* The check field becomes an ink strip with the red edge used by product labels.
   Inline padding matches the negative margin so its text keeps the card's left edge. */
.product-comparison .comparison-card [id$="-check"] {
  margin: 2px -8px 0;
  padding: 10px 8px 11px;
  background: var(--ink);
  border-bottom: 2px solid var(--red);
  color: var(--paper);
}
.product-comparison .comparison-card [id$="-check"] dt {
  color: var(--marker);
}

/* Tablet: three columns were about 11 characters wide, so show one card per row
   with the form name on the left and its three fields on the right. */
@media (min-width: 768px) and (max-width: 1023px) {
}

/* Desktop: three columns whose fields line up across the forms. */
@media (min-width: 1024px) {
  .product-comparison .comparison-card [id$="-interest"] dd {
    font-size: 1.125rem;
  }
  /* Cards share the section's row tracks, and each field shares the card's, so
     every field starts at the same height in all three columns. Browsers without
     subgrid keep the unaligned ICON-03 columns. */
  @supports (grid-template-rows: subgrid) {
  }
}

/* COMPARE-02 (user-approved 2026-09-27): the header intro ran across the torn
   white edge of the street-paper texture, so its end became unreadable.
   Back only this section's intro with the ink tape used by the caution strip.
   Copy{
  width: fit-content;
  max-width: 100%;
  padding: 4px 10px;
  background: var(--ink);
  color: var(--paper);
}

/* COMPARE-03: found in the in-app 1280px review (2026-09-27). Each field stretches
   to its shared subgrid row, and its label/text grid split the spare height, so a
   one-line field beside a two-line one showed an 18px gap under its label instead
   of 4px. Keep label and text at the top of the row. Desktop only. */
@media (min-width: 1024px) {
}

/* COMPARE-04 (user request 2026-09-28): the second headline line looked soft where
   the cream text and offset shadow sat on the light red texture. Put only this
   section's question on a marker tape with ink text, like the interest labels.
   Same font{
  display: inline-block;
  margin-top: 6px;
  padding: 0 10px;
  background: var(--marker);
  color: var(--ink);
  text-shadow: none;
  box-shadow: 4px 4px 0 var(--ink);
}

/* HEADING-01 (user-approved 2026-09-28, option A): the torn white edge of the
   street-paper texture scales with page width and, from about 768px, lands on
   these two header intros. Reuse the COMPARE-02 ink tape at every width so all
   red section headers read the same. Copy, size and weight unchanged; no max-width
   here{
  width: fit-content;
  padding: 4px 10px;
  background: var(--ink);
  color: var(--paper);
}

/* P3-B: page-only additions to the approved ink, red and torn-paper system. */
.page :is(.site-nav,.prize-wall,.page-entries,.inner-hero,.series-zone,.identify,.faq,#sources,#help,#data,#guides,.not-found) {
  min-width: 0;
}
.page :is(.prize-wall,.page-entries,.inner-hero,.series-zone,.identify,.faq,#sources,#help,#data,#guides,.not-found) {
  padding: 36px var(--lp3-gutter);
}
.page :is(.prize-wall,.page-entries,.inner-hero,.series-zone,.identify,.faq,#sources,#help,#data,#guides,.not-found) :is(p,figcaption) {
  line-height: 1.75;
}
.page :is(.prize-wall,.page-entries,.inner-hero,.series-zone,.identify,.faq,#sources,#help,#data,#guides,.not-found) :is(h2,h3,h4) {
  font-weight: 900;
  line-height: 1.24;
}
.page :is(.prize-wall,.series-zone,.identify,.faq,#sources,#help,#data,#guides) > :is(header,h2) {
  max-width: 70ch;
}
.page :is(.prize-wall,.series-zone,.identify,.faq,#sources,#help,#data,#guides) > :is(header,h2) h2,
.page :is(.identify,.faq,#sources,#help,#data,#guides) > h2 {
  color: var(--red);
  font-size: clamp(1.875rem, 8.5vw, 3.375rem);
  line-height: 1.2;
  letter-spacing: -.04em;
  text-shadow: 2px 2px 0 var(--paper);
  margin: 8px 0 18px;
}
.page :is(.prize-wall,.series-zone) > header > p:first-child {
  display: table;
  padding: 5px 9px;
  background: var(--ink);
  color: var(--paper);
  border-bottom: 2px solid var(--red);
  font-size: .875rem;
  letter-spacing: .06em;
}
.page :is(.prize-wall,.series-zone) > header > p:last-child {
  max-width: 65ch;
  font-size: var(--lp3-body);
}
.page :is(.prize-wall,.series-zone,.identify,.faq,#sources,#help,#data,#guides) > a,
.page .series-zone > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 18px;
  padding: 8px 0;
  border-bottom: 2px solid var(--paper);
  font-size: var(--lp3-note);
  font-weight: 900;
}
.page :is(.prize-wall,.series-zone,.identify,.faq,#sources,#help,#data,#guides) > a:hover {
  transform: translateY(-2px);
}
.site-nav a[aria-current="page"] { background: var(--red); }
.prize-grid .prize-item:nth-child(3n+1) { transform: rotate(-2deg); }
.prize-grid .prize-item:nth-child(3n+2) { transform: rotate(1.5deg); }
.prize-grid .prize-item:nth-child(3n) { transform: rotate(-1deg); }

/* Three links are whole paper stickers{
  display: grid;
  gap: 20px;
  background: var(--ink);
}
.page-entry:nth-child(2) { transform: rotate(1deg); }
.page-entry:nth-child(3) { transform: rotate(-.5deg); }

/* Inner headings echo the home poster at a smaller scale. */
.inner-hero { position: relative; background: var(--ink); text-align: left; }
.inner-hero h1{
  max-width: 16ch;
  margin: 0;
  padding: 0;
  font-size: clamp(2.625rem,12vw,4.875rem);
  line-height: 1.18;
  letter-spacing: -.055em;
  transform: rotate(-2deg) skewX(-3deg);
  transform-origin: left center;
  text-shadow: 3px 3px 0 var(--ink),4px 5px 0 var(--ink);
}
.inner-hero > p {
  display: table;
  max-width: 58ch;
  margin-top: 23px;
  padding: 10px 14px;
  background: var(--ink);
  border-left: 3px solid var(--red);
  font-size: var(--lp3-body);
}
.inner-hero > p:empty { display: none; }
.inner-hero-art picture:nth-child(2) { top: 0; left: 29%; transform: rotate(4deg); }
.inner-hero-art picture:nth-child(3) { top: 24%; left: 56%; transform: rotate(9deg); }
.series-zone:has(.zone-grid > :nth-child(5)) > .zone-grid:first-of-type {
  grid-auto-columns: minmax(42%,42%);
  grid-auto-flow: column;
  grid-template-columns: none;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  padding: 4px 14% 15px 4px;
  scrollbar-color: var(--paper) var(--ink);
}
.series-zone:has(.zone-grid > :nth-child(5)) > .zone-grid:first-of-type > * { scroll-snap-align: start; }

/* Product identification is a sequence of rows{ background: var(--ink); }
.faq-item[open] summary::after { display: none; }

/* Support content and compact, dated image credits. */
#sources,#help,#data,#guides { background: var(--ink); border-top: 1px solid #f1ead940; }
#sources > p,#help > p,#data > p,#guides > p { max-width: 75ch; margin-top: 14px; font-size: var(--lp3-body); }
#data p a,#guides p a { display: inline; text-decoration: underline; text-underline-offset: 4px; }
.source-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}
.source-grid li {
  display: grid;
  grid-template-columns: 64px minmax(0,1fr);
  justify-items: start;
  align-content: start;
  gap: 5px;
  min-width: 0;
  padding: 10px;
  background: var(--paper);
  color: var(--ink);
  font-size: .8125rem;
  overflow-wrap: anywhere;
}
.source-grid img { width: 64px; height: 64px; max-width: 100%; object-fit: contain; }
.source-grid img { grid-row: span 2; }
.source-grid time { font-size: .75rem; font-variant-numeric: tabular-nums; }
#spend.spend { padding: 36px var(--lp3-gutter); background: var(--ink); color: var(--paper); }
#spend > h2,#spend > h3 { font-weight: 900; }
#spend > h2 { font-size: .875rem; }
#spend > h3 { margin-top: 8px; font-size: clamp(1.875rem,8vw,3rem); color: var(--red); }
#spend > p,#spend details p { max-width: 70ch; margin-top: 14px; font-size: var(--lp3-body); line-height: 1.75; }
#spend details { max-width: 720px; margin-top: 20px; border-block: 1px solid #f1ead940; }
#spend summary { display: flex; align-items: center; min-height: 54px; cursor: pointer; }
#spend summary:focus-visible { outline: 3px solid var(--marker); }
#spend > a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 18px; border-bottom: 2px solid var(--paper); }

/* Footer is outside .page, so reset the generic prototype footer layout. */
.site-footer {
  display: block;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 30px var(--lp3-gutter);
  background: var(--ink);
  color: var(--paper);
  border-top: 1px solid #f1ead940;
  font-size: var(--lp3-note);
}
.site-footer :is(p,a) { line-height: 1.7; }
.footer-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding-bottom: 24px;
  border-bottom: 1px solid #f1ead940;
}
.footer-top img { width: 128px; height: auto; padding: 8px; background: var(--paper); transform: rotate(-2deg); }
.site-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: .9375rem; font-weight: 900; text-decoration: underline; text-underline-offset: 4px; transition: transform 180ms ease; }
.site-footer a:hover,.site-footer a:focus-visible { transform: translateY(-2px); }
.site-footer a:focus-visible { outline: 3px solid var(--marker); outline-offset: 3px; }
.footer-columns {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px 15px;
  padding: 25px 0;
}
.footer-columns > p { grid-column: 1 / -1; max-width: 60ch; margin: 0; }
.footer-columns nav { display: grid; align-content: start; min-width: 0; }
.footer-columns h2 { margin: 0 0 8px; font-size: .75rem; font-weight: 900; letter-spacing: .08em; }
.footer-columns a { width: fit-content; }
.site-footer a[aria-current="page"] { padding: 0 7px; background: var(--red); color: var(--paper); }
.footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 8px;
  padding-top: 21px;
  border-top: 1px solid #f1ead940;
}
.footer-bottom p { max-width: 85ch; margin: 0; font-size: .8125rem; }
.footer-bottom > a { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 18px; background: var(--red); color: var(--paper); border: 1px solid var(--paper); box-shadow: 3px 3px 0 var(--paper); font-size: 1rem; font-weight: 900; text-decoration: none; }
.footer-bottom > a:hover { background: var(--paper); color: var(--red); text-decoration: none; }
.footer-bottom > a:focus-visible { outline: 3px solid var(--marker); outline-offset: 3px; }

@media (min-width: 768px) {
  .page :is(.prize-wall,.page-entries,.inner-hero,.series-zone,.identify,.faq,#sources,#help,#data,#guides,.not-found) { padding-block: 50px; }
  .prize-grid [data-p0="20"],.prize-grid [data-p0="23"] { grid-column: span 2; }
  .prize-grid .prize-item:nth-last-child(-n+2) { grid-column: span 2; }
  .inner-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.8fr); align-items: center; gap: 0 30px; }
  .inner-hero h1,.inner-hero > p { grid-column: 1; }
  .zone-grid,.series-zone:has(.zone-grid > :nth-child(5)) > .zone-grid:first-of-type {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    grid-auto-columns: auto;
    grid-auto-flow: row;
    overflow: visible;
    padding: 0;
    scroll-snap-type: none;
  }
  .series-set:nth-of-type(even) .series-set-product { grid-column: 2; grid-row: 2; }
  .series-set:nth-of-type(even) .series-set-singles { grid-column: 1; grid-row: 2; }
  .identify-row:nth-of-type(even) { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
  .identify-row:nth-of-type(even) h3,.identify-row:nth-of-type(even) p { grid-column: 2; }
  .identify-row:nth-of-type(even) .identify-art { grid-column: 1; }
  .source-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .source-grid li { grid-template-columns: 64px minmax(0,1fr); gap: 3px 9px; }
  .source-grid img { grid-row: span 2; }
  .footer-columns { grid-template-columns: minmax(0,1.5fr) repeat(2,minmax(0,1fr)); gap: 30px; }
  .footer-columns > p { grid-column: 1; }
  .footer-bottom { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px 22px; }
  .footer-bottom > a { margin-left: auto; }
}
@media (min-width: 1024px) {
}
@media (max-width: 359px) {
  .source-grid li { padding: 7px; }
  .source-grid img { width: 56px; height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .page :is(.site-nav a,.page-entry,.prize-item,.zone-item,.series-jumps a,.not-found a),
  .site-footer a { transition: none; }
  .page :is(.site-nav a,.page-entry,.not-found a):hover,
  .page :is(.site-nav a,.page-entry,.not-found a):focus-visible,
  .site-footer a:hover,.site-footer a:focus-visible { transform: none; }
}
