:root {
  --paper: #f7f0dc;
  --paper-deep: #e7d1a3;
  --ink: #281708;
  --wood: #a74b13;
  --wood-dark: #572707;
  --amber: #ef9f13;
  --resin: #ffb11f;
  --resin-light: #ffd872;
  --red: #8c2c0d;
  --line: rgba(73, 38, 8, 0.24);
  --shadow: 0 30px 80px rgba(80, 38, 2, 0.24);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 1100px;
  color: var(--ink);
  background:
    radial-gradient(circle at 80% 12%, rgba(255, 186, 44, .22), transparent 26%),
    radial-gradient(circle at 12% 48%, rgba(172, 78, 12, .09), transparent 24%),
    var(--paper);
  font-family: "Trebuchet MS", Arial, sans-serif;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 100;
  opacity: 0.22;
  background-image: repeating-linear-gradient(0deg, transparent 0 3px, rgba(91, 49, 13, .06) 4px);
  mix-blend-mode: multiply;
}

.grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 99;
  opacity: .22;
  background-image: radial-gradient(rgba(30, 25, 18, .13) .8px, transparent .8px);
  background-size: 6px 6px;
}

a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }

.topbar {
  height: 82px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px;
  padding: 0 5vw;
  border-bottom: 1px solid var(--line);
  position: relative;
  z-index: 20;
  background: rgba(247, 240, 220, .78);
  box-shadow: 0 8px 30px rgba(123, 63, 7, .08);
  backdrop-filter: blur(12px);
}
.brand { display: flex; align-items: center; gap: 12px; font-weight: 900; letter-spacing: .03em; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border: 2px solid var(--ink); border-radius: 50% 46% 44% 48%; transform: rotate(-7deg); font: 800 13px/1 Georgia, serif; }
.topbar nav { display: flex; gap: 32px; font-size: 13px; font-weight: 800; letter-spacing: .09em; }
.topbar nav a { position: relative; }
.topbar nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--wood); transition: right .25s ease; }
.topbar nav a:hover::after { right: 0; }
.status { justify-self: end; font: italic 14px Georgia, serif; }
.status i { display: inline-block; width: 8px; height: 11px; border-radius: 60% 60% 72% 72%; background: linear-gradient(#ffd65d, #d66d05); box-shadow: 0 0 12px rgba(239,159,19,.65); margin-right: 8px; animation: blink 2.4s infinite; }

.section-shell { padding-left: 6vw; padding-right: 6vw; }
.hero { min-height: calc(100vh - 82px); height: 920px; max-height: 1080px; display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; position: relative; isolation: isolate; }
.hero::before { content: ""; position: absolute; width: 54vw; height: 54vw; max-width: 820px; max-height: 820px; border: 1px solid rgba(214,109,5,.32); border-radius: 48% 52% 46% 54%; right: -12vw; top: 8%; z-index: -2; box-shadow: inset 0 0 100px rgba(255,177,31,.16), 0 0 80px rgba(255,177,31,.12); }
.hero::after { content: ""; position: absolute; inset: 12% 44% 18% -10%; background: linear-gradient(135deg, rgba(255,177,31,.3), rgba(255,216,114,.05) 65%, transparent 75%); border-radius: 60% 25% 50% 30%; transform: rotate(-3deg); z-index: -3; filter: blur(2px); }
.eyebrow { margin: 0 0 20px; font-size: 13px; font-weight: 900; letter-spacing: .18em; color: var(--wood-dark); }
.hero h1 { margin: 0; font: 900 clamp(72px, 6.1vw, 118px)/.72 Georgia, serif; letter-spacing: -.075em; }
.hero h1 span { display: block; }
.hero h1 span:nth-child(2) { margin-left: 1.1vw; color: var(--wood); }
.hero h1 span:nth-child(3) { margin-left: 2.2vw; color: var(--amber); text-shadow: 0 7px 18px rgba(239,159,19,.22); }
.hero h1 em { display: inline-block; margin: 14px 0 0 3.5vw; padding: 7px 16px 9px; border: 3px solid var(--ink); border-radius: 48% 52% 43% 57%; color: var(--ink); background: linear-gradient(180deg, var(--resin-light), var(--amber)); box-shadow: 5px 5px 0 var(--ink); font: normal 900 clamp(24px, 2.4vw, 46px)/1 "Trebuchet MS", Arial, sans-serif; letter-spacing: .12em; transform: rotate(-2deg); }
.hero h1 span:nth-child(3)::after { content: ""; position: absolute; left: -2%; right: -4%; bottom: -11px; height: 12px; border-top: 5px solid var(--red); border-radius: 50%; transform: rotate(-1deg); }
.hero h1 span:nth-child(3) { position: relative; }
.ticker-row { display: flex; gap: 26px; align-items: center; margin: 42px 0 30px; }
.ticker-row strong { background: linear-gradient(135deg, #361b07, #7b3908); color: var(--resin-light); padding: 10px 15px; transform: rotate(-2deg); font-size: 18px; letter-spacing: .06em; box-shadow: 0 6px 16px rgba(105,48,24,.24); }
.ticker-row p { margin: 0; font: italic 19px/1.25 Georgia, serif; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.wood-btn, .laugh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border: 2px solid var(--ink);
  border-radius: 50px 42px 48px 38px;
  background: linear-gradient(180deg, rgba(255,255,255,.42), rgba(239,159,19,.12));
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
  cursor: pointer;
  box-shadow: 4px 4px 0 var(--ink);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.wood-btn:hover, .laugh-btn:hover { background: linear-gradient(180deg, var(--resin-light), var(--amber)); color: var(--ink); transform: translate(-2px, -2px) rotate(-1deg); box-shadow: 7px 7px 0 var(--ink), inset 0 2px 0 rgba(255,255,255,.65); }
.wood-btn:active, .laugh-btn:active { transform: translate(3px, 3px); box-shadow: 1px 1px 0 var(--ink); }
.ca-box { margin-top: 24px; display: grid; grid-template-columns: 1fr auto; max-width: 650px; border: 2px solid var(--ink); border-radius: 18px 14px 20px 12px; background: linear-gradient(135deg, rgba(255,255,255,.58), rgba(255,177,31,.2)); box-shadow: 8px 8px 0 rgba(74,35,5,.14), inset 0 2px 0 rgba(255,255,255,.72); position: relative; overflow: hidden; }
.ca-label { position: absolute; left: 14px; top: 8px; font-size: 9px; font-weight: 900; letter-spacing: .14em; color: var(--wood-dark); }
.ca-box code { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 27px 14px 10px; font: 700 13px/1 monospace; }
.copy-btn { width: 112px; border: 0; border-left: 2px solid var(--ink); background: linear-gradient(180deg, var(--resin-light), var(--amber)); font-size: 12px; font-weight: 900; cursor: pointer; position: relative; overflow: hidden; }
.copy-btn:hover { background: var(--wood); color: white; }
.copy-success { display: none; }
.copy-btn.is-copied .copy-default { display: none; }
.copy-btn.is-copied .copy-success { display: inline; }

.hero-scene { height: 790px; position: relative; display: grid; place-items: center; perspective: 1200px; }
[data-depth] { transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)); transition: transform .18s ease-out; }
.resin-orbit { position: absolute; width: 68%; height: 78%; border: 1px solid rgba(214,109,5,.42); border-radius: 46% 54% 42% 58%; background: linear-gradient(145deg, rgba(255,216,114,.24), rgba(239,159,19,.1)); box-shadow: var(--shadow), inset 0 0 90px rgba(255,216,114,.28); backdrop-filter: blur(3px); }
.resin-orbit-one { transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)) rotate(7deg); }
.resin-orbit-two { transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)) rotate(-5deg); background: linear-gradient(145deg, rgba(255,255,255,.46), rgba(255,177,31,.16)); }
.character-frame { width: min(42vw, 590px); margin: 0; background: linear-gradient(145deg, rgba(255,255,255,.74), rgba(255,206,90,.2)); padding: 12px 12px 42px; border: 1px solid rgba(121,57,5,.35); border-radius: 24px 18px 28px 16px; box-shadow: 0 34px 70px rgba(97,44,3,.3), inset 0 2px 0 rgba(255,255,255,.9); transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)) rotate(2deg); position: relative; z-index: 3; overflow: hidden; }
.character-frame img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; border-radius: 15px 12px 18px 10px; filter: saturate(1.08) contrast(1.03); }
.character-frame figcaption { position: absolute; left: 20px; bottom: 15px; font: italic 13px Georgia, serif; }
.character-frame.is-poked { animation: poke .52s ease; }
.scribble-note { position: absolute; z-index: 5; right: 1%; top: 22%; font: 700 25px/1 "Comic Sans MS", cursive; color: var(--red); transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)) rotate(7deg); }
.arrow { position: absolute; z-index: 5; right: 16%; top: 27%; font: 70px/1 "Comic Sans MS", cursive; color: var(--red); transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)) rotate(12deg); }
.easter { position: absolute; z-index: 6; right: 4%; bottom: 10%; border: 0; border-bottom: 2px solid var(--ink); background: transparent; font-size: 11px; font-weight: 900; letter-spacing: .13em; cursor: pointer; transform: rotate(3deg); }
.easter:hover { color: var(--wood); }
.scroll-mark { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); font-size: 10px; font-weight: 900; letter-spacing: .16em; writing-mode: horizontal-tb; }
.scroll-mark span { display: inline-block; animation: bob 1.4s ease-in-out infinite; }

.marquee { overflow: hidden; background: linear-gradient(90deg, #351904, #7d3a06 48%, #351904); color: var(--resin-light); transform: rotate(-.7deg) scale(1.01); border-top: 6px double var(--amber); border-bottom: 6px double var(--amber); box-shadow: 0 14px 35px rgba(89,39,2,.22); }
.marquee-track { width: max-content; display: flex; align-items: center; gap: 34px; padding: 18px 0; animation: marquee 26s linear infinite; }
.marquee span { font: 900 21px/1 Georgia, serif; letter-spacing: .06em; }
.marquee b { color: var(--amber); }

.incident { padding-top: 150px; padding-bottom: 160px; }
.section-number { padding-bottom: 16px; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.incident-grid { display: grid; grid-template-columns: 1.05fr .8fr .75fr; gap: 5vw; align-items: center; margin-top: 70px; }
.quote-block { position: relative; padding-left: 48px; }
.quote-mark { position: absolute; left: -20px; top: -55px; margin: 0; font: 180px/1 Georgia, serif; color: var(--amber); opacity: .55; }
.quote-block h2, .rules h2, .community h2, .final-copy h2 { margin: 0; font: 900 clamp(54px, 5vw, 96px)/.92 Georgia, serif; letter-spacing: -.055em; }
.hand-note { font: 700 18px/1 "Comic Sans MS", cursive; color: var(--wood); transform: rotate(-3deg); margin-left: 70px; }
.story-copy { border-left: 4px solid var(--wood); padding: 10px 0 10px 30px; position: relative; }
.story-copy p { font: 19px/1.55 Georgia, serif; margin: 0 0 24px; }
.stamp { display: inline-grid; place-items: center; border: 4px double var(--red); border-radius: 50%; width: 120px; height: 120px; color: var(--red); font: 900 15px/1.1 Arial, sans-serif; text-align: center; transform: rotate(-12deg); opacity: .8; }
.closeup { background: #fff; padding: 10px 10px 18px; box-shadow: var(--shadow); transform: rotate(3deg); }
.closeup img { width: 100%; aspect-ratio: 1/1.15; object-fit: cover; object-position: 50% 10%; filter: sepia(.1) contrast(1.08); }
.closeup p { margin: 15px 5px 0; font-size: 11px; font-weight: 900; letter-spacing: .12em; }

.rules { background: radial-gradient(circle at 75% 35%, rgba(255,174,30,.22), transparent 30%), linear-gradient(135deg, #391902, var(--wood-dark) 55%, #8c4308); color: var(--paper); padding-top: 100px; padding-bottom: 130px; position: relative; overflow: hidden; }
.rules .section-number { border-color: rgba(255,255,255,.3); }
.rules-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; margin-top: 80px; }
.rules .eyebrow { color: var(--resin-light); }
.rule-list { margin: 0; padding: 0; list-style: none; }
.rule-list li { display: grid; grid-template-columns: 55px 1fr auto; gap: 24px; align-items: center; padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,.24); }
.rule-list li:first-child { border-top: 1px solid rgba(255,255,255,.24); }
.rule-list span { color: var(--resin-light); font: 700 15px Georgia, serif; }
.rule-list strong { font: 700 27px/1.15 Georgia, serif; }
.rule-list em { max-width: 170px; color: rgba(255,255,255,.66); font: 14px/1.35 Georgia, serif; }
.resin-drops { position: absolute; right: 8%; bottom: 36px; display: flex; gap: 16px; align-items: end; }
.resin-drops i { display: block; width: 12px; height: 16px; background: linear-gradient(145deg, #ffe39a 5%, var(--resin) 45%, #a94d04); border-radius: 55% 48% 58% 45%; box-shadow: inset 2px 2px 2px rgba(255,255,255,.6), 0 4px 8px rgba(35,15,0,.35); animation: resinPulse 3s ease-in-out infinite alternate; }
.resin-drops i:nth-child(2n) { width: 28px; height: 12px; animation-delay: -.8s; }
.resin-drops i:nth-child(3n) { width: 8px; height: 24px; animation-delay: -1.6s; }

.pause-room { height: 900px; display: grid; grid-template-columns: 1.15fr .85fr; background: linear-gradient(135deg, #f3b737, #b65f0a 58%, #6f3103); position: relative; overflow: hidden; }
.pause-room::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 83% 21%, rgba(255,238,169,.48), transparent 18%), linear-gradient(115deg, rgba(255,255,255,.28), transparent 45%), repeating-linear-gradient(93deg, rgba(74,39,15,.07) 0 2px, transparent 2px 21px); }
.pause-visual { height: 100%; position: relative; overflow: hidden; clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%); }
.pause-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 48% 54%; transform: scale(1.1); filter: sepia(.2) contrast(1.05); }
.pause-copy { align-self: center; position: relative; z-index: 2; padding-right: 7vw; }
.pause-copy > span { font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.pause-copy h2 { margin: 24px 0 40px; font: 900 clamp(70px, 6.8vw, 130px)/.78 Georgia, serif; letter-spacing: -.07em; }
.laugh-btn { background: var(--paper); }
.laugh-count { font: italic 17px Georgia, serif; }
.laugh-count strong { font-style: normal; font-size: 26px; }
.room-reaction { position: absolute; right: 5%; bottom: 9%; font: 700 26px "Comic Sans MS", cursive; color: var(--red); transform: rotate(-6deg) scale(.7); opacity: 0; }
.room-reaction.is-visible { animation: reaction .8s ease forwards; }

.community { padding-top: 150px; padding-bottom: 150px; }
.community-card { display: grid; grid-template-columns: 1fr .92fr; gap: 7vw; padding: 80px; border: 2px solid var(--ink); border-radius: 34px 22px 40px 18px; box-shadow: 16px 16px 0 var(--amber), inset 0 2px 0 rgba(255,255,255,.7); transform: rotate(-.5deg); background: linear-gradient(145deg, rgba(255,255,255,.42), rgba(255,177,31,.18)); }
.community-card > div:first-child > p:last-child { max-width: 570px; font: 19px/1.55 Georgia, serif; }
.community-links { border-top: 2px solid var(--ink); }
.community-links a { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; min-height: 92px; border-bottom: 2px solid var(--ink); font: 900 22px Georgia, serif; transition: padding .22s ease, background .22s ease, color .22s ease; }
.community-links a:hover { padding-left: 14px; padding-right: 14px; background: var(--wood); color: white; }
.community-links a span { font: 900 11px Arial, sans-serif; }
.community-links a b { font-size: 28px; }

.final-cta { min-height: 760px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; align-items: center; background: var(--ink); color: var(--paper); padding-top: 100px; padding-bottom: 100px; }
.final-face { height: 580px; transform: rotate(-3deg); background: linear-gradient(145deg, white, #ffd77b); padding: 12px; border-radius: 30px 18px 36px 20px; box-shadow: 16px 16px 0 var(--amber), inset 0 2px 0 white; overflow: hidden; }
.final-face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 7%; }
.final-copy .eyebrow { color: var(--resin-light); }
.final-copy h2 { max-width: 900px; font-size: clamp(66px, 5.5vw, 108px); line-height: .86; }
.final-copy > strong { display: inline-block; margin: 24px 0 4px; font-size: 23px; color: var(--amber); }
.final-ca { border-color: var(--paper); background: rgba(255,255,255,.08); }
.final-ca .copy-btn { border-left-color: var(--paper); color: var(--ink); }
.final-copy .hero-actions { margin-top: 24px; }
.final-copy .wood-btn { border-color: var(--paper); color: var(--paper); box-shadow: 4px 4px 0 var(--paper); }
.final-copy .wood-btn:hover { box-shadow: 7px 7px 0 var(--paper); }

footer { height: 74px; padding: 0 6vw; display: flex; align-items: center; justify-content: space-between; background: var(--ink); color: rgba(255,255,255,.6); border-top: 1px solid rgba(255,255,255,.2); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.toast { position: fixed; z-index: 200; left: 50%; bottom: 35px; transform: translate(-50%, 30px); background: var(--ink); color: white; padding: 14px 22px; border: 2px solid var(--amber); font-size: 12px; font-weight: 900; letter-spacing: .14em; opacity: 0; pointer-events: none; transition: opacity .25s ease, transform .25s ease; }
.toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

[data-reveal] { opacity: 0; transform: translateY(35px) rotate(.4deg); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0) rotate(0); }

@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes bob { 50% { transform: translateY(7px); } }
@keyframes blink { 0%, 82%, 100% { opacity: 1; } 86%, 92% { opacity: .2; } }
@keyframes poke { 0%,100% { transform: translate(var(--parallax-x, 0), var(--parallax-y, 0)) rotate(2deg); } 25% { transform: translate(calc(var(--parallax-x, 0) - 12px), var(--parallax-y, 0)) rotate(-1deg); } 55% { transform: translate(calc(var(--parallax-x, 0) + 9px), var(--parallax-y, 0)) rotate(4deg); } }
@keyframes reaction { 0% { opacity: 0; transform: rotate(-6deg) scale(.7); } 45%,85% { opacity: 1; transform: rotate(-6deg) scale(1); } 100% { opacity: 0; transform: rotate(-3deg) scale(1.05); } }
@keyframes resinPulse { from { transform: translateY(0) scale(.94); filter: brightness(.92); } to { transform: translateY(-5px) scale(1.06); filter: brightness(1.14); } }

@media (max-width: 1380px) {
  .topbar { padding: 0 3.5vw; }
  .section-shell { padding-left: 4vw; padding-right: 4vw; }
  .hero { grid-template-columns: .9fr 1.1fr; }
  .hero-scene { height: 700px; }
  .character-frame { width: min(43vw, 510px); }
  .incident-grid { gap: 3vw; }
  .community-card { padding: 58px; }
}

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