:root {
  --black: #0a0c0b;
  --ink: #171a18;
  --paper: #f2efe6;
  --white: #fffdf7;
  --red: #d92f2f;
  --green: #39724a;
  --sky: #9ed8e6;
  --yellow: #e7b94f;
  --line: rgba(23, 26, 24, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; background: var(--paper); }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; line-height: 1.35; }
button { font: inherit; }
a { color: inherit; }
img { display: block; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

.skip-link { position: fixed; z-index: 100; top: .5rem; left: .5rem; transform: translateY(-160%); padding: .7rem 1rem; background: var(--white); color: var(--ink); }
.skip-link:focus { transform: none; }

.topbar { position: fixed; z-index: 50; inset: 0 0 auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 4rem; padding: 0 1.25rem; border-bottom: 1px solid var(--line); background: rgba(242, 239, 230, .9); color: var(--ink); backdrop-filter: blur(12px); }
.back-link, .wordmark { font-size: .72rem; font-weight: 800; letter-spacing: 0; text-decoration: none; }
.back-link { display: inline-flex; gap: .55rem; align-items: center; justify-self: start; }
.wordmark { grid-column: 2; justify-self: center; }
.music-button { display: grid; grid-column: 3; place-items: center; justify-self: end; width: 2.5rem; height: 2.5rem; border: 1px solid var(--line); border-radius: 50%; padding: 0; background: rgba(255, 253, 247, .72); color: var(--ink); cursor: pointer; font-size: 1rem; }
.music-button:hover, .music-button:focus-visible { border-color: var(--red); color: var(--red); outline: none; }
.music-button[aria-pressed="true"] { border-color: var(--red); background: var(--red); color: var(--white); animation: music-pulse 1.3s ease-in-out infinite; }
@keyframes music-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(217, 47, 47, 0); }
  50% { box-shadow: 0 0 0 .35rem rgba(217, 47, 47, .22); }
}

.milk-scene { position: relative; min-height: 100svh; overflow: hidden; background: #756a59; }
.milk-scene > img { position: absolute; inset: 4rem 0 0; width: 100%; height: calc(100% - 4rem); object-fit: cover; object-position: center top; }
.scene-copy { position: relative; z-index: 2; width: min(74rem, calc(100% - 2.5rem)); margin: 0 auto; padding-top: 7.25rem; color: var(--white); text-shadow: 0 2px 18px rgba(0, 0, 0, .6); }
.scene-copy p { margin: 0 0 1rem; color: var(--yellow); font-size: .72rem; font-weight: 800; }
.scene-copy h1, .scene-copy h2 { margin: 0; max-width: 24rem; font-size: 3.35rem; line-height: .94; letter-spacing: 0; }
.cow-voice { position: absolute; z-index: 4; top: 9rem; left: 63%; width: min(17rem, calc(37% - 2rem)); min-height: 4.5rem; border: 2px solid var(--ink); border-radius: 4px; padding: .85rem 1rem; background: var(--paper); box-shadow: 0 .45rem 0 rgba(10, 12, 11, .34); color: var(--ink); cursor: pointer; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; line-height: 1.22; text-align: left; transform-origin: left bottom; }
.cow-voice::after { content: ""; position: absolute; bottom: -1.15rem; left: 1.35rem; width: 1.65rem; height: 1.2rem; background: var(--paper); clip-path: polygon(0 0, 100% 0, 0 100%); filter: drop-shadow(-2px 2px 0 var(--ink)); }
.cow-voice:hover, .cow-voice:focus-visible { background: var(--white); outline: 3px solid var(--red); outline-offset: 3px; }
.cow-voice.speaking { animation: voice-pop .42s cubic-bezier(.2, .8, .2, 1); }
.cow-voice span { display: block; overflow-wrap: anywhere; }
@keyframes voice-pop {
  0% { transform: rotate(0) scale(1); }
  35% { transform: rotate(-1.4deg) scale(1.045); }
  70% { transform: rotate(.7deg) scale(.99); }
  100% { transform: rotate(0) scale(1); }
}
.down-link { position: absolute; z-index: 3; right: 1.25rem; bottom: 1.25rem; display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid var(--line); border-radius: 50%; background: rgba(10, 12, 11, .58); text-decoration: none; }
.down-link:hover, .down-link:focus-visible { border-color: var(--sky); color: var(--sky); outline: none; }

.week { position: relative; background: var(--paper); }
.week-stage { position: sticky; z-index: 0; top: 0; height: 100svh; overflow: hidden; isolation: isolate; background: #607d69; }
.week-panorama { position: absolute; top: 0; left: 0; width: auto; max-width: none; height: 100%; transform: translateX(0); }
.week-shade { position: absolute; inset: 0; background: rgba(10, 12, 11, .12); pointer-events: none; }
.week-captions { position: absolute; z-index: 4; inset: 0; pointer-events: none; }
.week-copy { position: absolute; top: 7rem; left: max(1.25rem, calc((100% - 74rem) / 2)); max-width: 31rem; visibility: hidden; color: var(--white); opacity: 0; pointer-events: none; text-shadow: 0 2px 20px rgba(0, 0, 0, .72); transform: translateX(-1.4rem); transition: opacity .28s ease, transform .28s ease, visibility 0s linear .28s; }
.week-copy[data-side="right"] { right: max(1.25rem, calc((100% - 74rem) / 2)); left: auto; text-align: right; transform: translateX(1.4rem); }
.week-copy.is-current { visibility: visible; opacity: 1; transform: translateX(0); transition-delay: 0s; }
.week-copy p { margin: 0 0 .8rem; color: var(--yellow); font-size: .72rem; font-weight: 800; }
.week-copy h2 { margin: 0; max-width: 31rem; font-size: 3.2rem; line-height: .94; letter-spacing: 0; }
.week-rail { position: sticky; z-index: 6; top: calc(100svh - 3.2rem); display: flex; justify-content: center; gap: .65rem; height: 0; pointer-events: none; }
.week-rail button { width: .72rem; height: .72rem; border: 1px solid rgba(255, 253, 247, .82); border-radius: 50%; padding: 0; background: rgba(10, 12, 11, .56); cursor: pointer; pointer-events: auto; }
.week-rail button:hover, .week-rail button:focus-visible { border-color: var(--yellow); outline: 2px solid var(--black); outline-offset: 2px; }
.week-rail button.active { border-color: var(--red); background: var(--red); }
.week-track { position: relative; z-index: 2; margin-top: -100svh; }
.week-moment { min-height: 100svh; pointer-events: none; }
.week-next { display: grid; place-items: center; width: 3rem; height: 3rem; margin: 1.5rem 0 0 auto; border: 1px solid rgba(255, 253, 247, .65); border-radius: 50%; background: rgba(10, 12, 11, .5); text-decoration: none; pointer-events: auto; }
.week-next:hover, .week-next:focus-visible { border-color: var(--yellow); color: var(--yellow); outline: none; }

.rumination { min-height: 100svh; padding: 7rem max(1.25rem, calc((100% - 74rem) / 2)) 5rem; background: var(--paper); color: var(--ink); }
.game-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--line); padding-bottom: 2rem; }
.game-heading p { margin: 0 0 .7rem; color: var(--green); font-size: .7rem; font-weight: 800; }
.game-heading h2 { margin: 0; font-size: 2.7rem; line-height: .96; letter-spacing: 0; }
.reset-button, .object-controls button { display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; }
.reset-button { width: 3rem; height: 3rem; flex: 0 0 3rem; font-size: 1.35rem; }
.reset-button:hover, .reset-button:focus-visible, .object-controls button:hover, .object-controls button:focus-visible, .object-controls button.active { border-color: var(--red); background: var(--red); outline: none; }

.game-stage { position: relative; display: grid; grid-template-columns: minmax(15rem, 22rem) minmax(0, 1fr); gap: 1rem; align-items: center; min-height: 28rem; overflow: hidden; border-bottom: 1px solid var(--line); }
.impact-field { position: absolute; z-index: 5; inset: 0; overflow: hidden; pointer-events: none; }
.mouth-sprite { position: relative; z-index: 3; width: 100%; aspect-ratio: 1 / 1; border: 0; padding: 0; background-color: transparent; background-image: url("assets/swiza-crystal-mouth.webp"); background-repeat: no-repeat; background-position: 0 0; background-size: 200% 100%; cursor: pointer; transition: transform .18s ease; }
.mouth-sprite::before, .mouth-sprite::after { content: ""; position: absolute; z-index: 0; inset: 0; opacity: 0; background: url("assets/swiza-crystal-mouth.webp") 0 0 / 200% 100% no-repeat; pointer-events: none; }
.mouth-sprite.open { background-position: 100% 0; }
.mouth-sprite:hover { transform: scale(1.025); }
.mouth-sprite:focus-visible { outline: 3px solid var(--red); outline-offset: -3px; }
.mouth-sprite.chewing { animation: head-bite .42s cubic-bezier(.2, .75, .25, 1); }
@keyframes head-bite {
  0%, 100% { transform: translateX(0) rotate(0); }
  42% { transform: translateX(.8rem) rotate(1deg); }
}
.mouth-sprite.overdrive { --drive-x: 1px; --drive-neg-x: -1px; --drive-y: 1px; --drive-neg-y: -1px; --drive-speed: 180ms; animation: overdrive-shiver var(--drive-speed) steps(2, end) infinite, overdrive-mouth 310ms steps(1, end) infinite; }
.mouth-sprite.overdrive[data-overdrive="2"] { --drive-x: 2px; --drive-neg-x: -2px; --drive-y: 2px; --drive-neg-y: -2px; --drive-speed: 120ms; }
.mouth-sprite.overdrive[data-overdrive="3"] { --drive-x: 5px; --drive-neg-x: -5px; --drive-y: 4px; --drive-neg-y: -4px; --drive-speed: 74ms; }
.mouth-sprite.overdrive::before { opacity: var(--ghost-opacity, .07); filter: sepia(1) saturate(3) hue-rotate(320deg); transform: translate(var(--drive-neg-x), var(--drive-y)); }
.mouth-sprite.overdrive::after { opacity: var(--ghost-opacity, .06); filter: sepia(1) saturate(2.4) hue-rotate(135deg); transform: translate(var(--drive-x), var(--drive-neg-y)); }
.mouth-sprite.overdrive[data-overdrive="3"]::before, .mouth-sprite.overdrive[data-overdrive="3"]::after { opacity: .27; }
.mouth-sprite.overdrive.chewing { animation: overdrive-hit .38s cubic-bezier(.15, .8, .2, 1), overdrive-mouth 100ms steps(1, end) infinite; }
@keyframes overdrive-shiver {
  0%, 100% { transform: translate(0, 0) rotate(0); }
  25% { transform: translate(var(--drive-x), var(--drive-neg-y)) rotate(.35deg); }
  50% { transform: translate(var(--drive-neg-x), var(--drive-y)) rotate(-.35deg); }
  75% { transform: translate(var(--drive-x), var(--drive-y)) rotate(.2deg); }
}
@keyframes overdrive-mouth {
  0%, 54% { background-position: 0 0; }
  55%, 100% { background-position: 100% 0; }
}
@keyframes overdrive-hit {
  0%, 100% { transform: translate(0, 0) rotate(0) scale(1); }
  18% { transform: translate(-.55rem, -.1rem) rotate(-1.4deg) scale(1.025); }
  44% { transform: translate(.95rem, .18rem) rotate(1.8deg) scale(.985); }
  72% { transform: translate(-.3rem, -.08rem) rotate(-.8deg) scale(1.015); }
}
.chaff { position: absolute; z-index: 2; top: 45%; right: -.1rem; width: 3.6rem; height: 3.3rem; pointer-events: none; }
.chaff i { position: absolute; top: 45%; left: 10%; width: .55rem; height: .55rem; opacity: 0; background: var(--feed-color, var(--green)); clip-path: polygon(50% 0, 100% 38%, 78% 100%, 10% 76%, 0 22%); }
.chaff i:nth-child(2) { left: 28%; animation-delay: .04s; }
.chaff i:nth-child(3) { left: 45%; animation-delay: .08s; }
.chaff i:nth-child(4) { left: 62%; animation-delay: .12s; }
.chaff i:nth-child(5) { left: 78%; animation-delay: .16s; }
.mouth-sprite.chewing .chaff i { animation: chaff-fly .46s ease-out; }
.mouth-sprite[data-feed="money"] { --feed-color: var(--green); }
.mouth-sprite[data-feed="home"], .mouth-sprite[data-feed="letter"] { --feed-color: var(--paper); }
.mouth-sprite[data-feed="car"] { --feed-color: var(--red); }
.mouth-sprite[data-feed="time"] { --feed-color: var(--sky); }
@keyframes chaff-fly {
  0% { opacity: 0; transform: translate(0, 0) scale(.4); }
  25% { opacity: 1; }
  100% { opacity: 0; transform: translate(1.4rem, -1.6rem) rotate(120deg) scale(1); }
}
.track-field { position: relative; z-index: 2; min-width: 0; min-height: 12rem; display: grid; align-content: center; }
.feed-track { display: grid; grid-template-columns: repeat(9, minmax(1.8rem, 1fr)); gap: .55rem; min-height: 8.5rem; align-items: center; border-bottom: 1px solid rgba(23, 26, 24, .18); }
.feed { position: relative; display: grid; place-items: center; aspect-ratio: 1; opacity: 1; transform: scale(1); transition: opacity .16s ease, transform .22s ease; }
.feed-mark { position: relative; display: block; width: 78%; height: 78%; }
.feed.eating { opacity: 0; transform: translateX(var(--flight)) scale(.22) rotate(-34deg); }
.feed.consumed { opacity: .055; transform: scale(.28) rotate(18deg); }
.feed.regrowing { animation: sprout .24s ease-out; }
.impact-hit { position: absolute; display: grid; place-items: center; width: clamp(3rem, 5vw, 5rem); height: clamp(3rem, 5vw, 5rem); opacity: 0; filter: drop-shadow(0 .25rem .25rem rgba(0, 0, 0, .35)); animation: impact-flight var(--impact-time, 420ms) cubic-bezier(.2, .72, .15, 1) forwards; }
.impact-hit .feed-mark { width: 100%; height: 100%; }
@keyframes impact-flight {
  0% { opacity: 0; transform: translate(0, 0) rotate(0) scale(.35); }
  14%, 82% { opacity: 1; }
  82% { transform: translate(var(--impact-x), var(--impact-y)) rotate(var(--impact-spin)) scale(.88); }
  100% { opacity: 0; transform: translate(var(--impact-x), var(--impact-y)) rotate(var(--impact-spin)) scale(.1); }
}
@keyframes sprout {
  0% { opacity: .08; transform: translateY(.7rem) scale(.2); }
  70% { opacity: 1; transform: translateY(-.15rem) scale(1.12); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.feed-money .feed-mark::before, .money-grass-icon::before { content: ""; position: absolute; inset: 8% 4% 0; background: #4d8c58; clip-path: polygon(0 100%, 10% 48%, 24% 82%, 39% 8%, 52% 76%, 70% 34%, 82% 79%, 100% 18%, 92% 100%); }
.feed-money .feed-mark::after, .money-grass-icon::after { content: ""; position: absolute; top: 0; right: 5%; width: 42%; aspect-ratio: 1; border: 2px solid #7d5b16; border-radius: 50%; background: var(--yellow); box-shadow: inset 0 0 0 2px rgba(255, 253, 247, .42); }
.feed-home .feed-mark { background: var(--paper); clip-path: polygon(50% 0, 100% 40%, 89% 100%, 11% 100%, 0 40%); }
.feed-home .feed-mark::after { content: ""; position: absolute; right: 35%; bottom: 0; width: 30%; height: 40%; background: var(--red); }
.feed-car .feed-mark { top: 12%; height: 48%; border-radius: 3px; background: var(--red); clip-path: polygon(12% 38%, 25% 0, 72% 0, 88% 38%, 100% 45%, 96% 84%, 4% 84%, 0 45%); }
.feed-car .feed-mark::before { content: ""; position: absolute; bottom: -18%; left: 16%; width: 22%; aspect-ratio: 1; border-radius: 50%; background: var(--ink); box-shadow: 2.45rem 0 0 var(--ink); }
.feed-car .feed-mark::after { content: ""; position: absolute; top: 12%; left: 31%; width: 35%; height: 26%; background: var(--sky); }
.feed-time .feed-mark { width: 72%; height: 72%; border: 3px solid var(--sky); border-radius: 50%; background: rgba(158, 216, 230, .12); }
.feed-time .feed-mark::before { content: ""; position: absolute; top: 19%; left: calc(50% - 1px); width: 2px; height: 31%; background: var(--paper); transform-origin: bottom; }
.feed-time .feed-mark::after { content: ""; position: absolute; top: calc(50% - 1px); left: 50%; width: 29%; height: 2px; background: var(--paper); transform-origin: left; transform: rotate(28deg); }
.feed-letter .feed-mark { top: 12%; width: 82%; height: 60%; border: 2px solid #b7afa0; background: var(--paper); }
.feed-letter .feed-mark::before, .feed-letter .feed-mark::after { content: ""; position: absolute; top: 47%; width: 58%; height: 2px; background: #9a8f7e; }
.feed-letter .feed-mark::before { left: 1%; transform: rotate(29deg); transform-origin: left; }
.feed-letter .feed-mark::after { right: 1%; transform: rotate(-29deg); transform-origin: right; }

.object-controls { display: flex; justify-content: center; gap: .8rem; padding: 2.5rem 0 1.5rem; }
.object-controls button { width: 3.4rem; height: 3.4rem; }
.object-controls svg { width: 1.45rem; height: 1.45rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.money-grass-icon { position: relative; width: 1.55rem; height: 1.55rem; }
.object-story { min-height: 6.5rem; margin: 0 auto; text-align: center; }
.object-story strong, .object-story span { display: block; }
.object-story strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.65rem; font-weight: 400; }
.object-story span { margin-top: .5rem; color: #657069; font-size: .95rem; }
.return-link { display: table; margin: 2.5rem auto 0; border-bottom: 1px solid currentColor; padding: .45rem 0; font-size: .78rem; font-weight: 800; text-decoration: none; }
.return-link:hover, .return-link:focus-visible { color: var(--green); outline: none; }

.trajectory-timeline { position: relative; height: 900svh; background: #18221d; }
.trajectory-sticky { position: sticky; z-index: 1; top: 0; height: 100svh; overflow: hidden; isolation: isolate; background: #18221d; touch-action: pan-y; }
.trajectory-track { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; overflow: hidden; }
.trajectory-step { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; background: #354b3c; transform: translate3d(100%, 0, 0); transition: transform 1.05s cubic-bezier(.2, .72, .2, 1); }
.trajectory-step.is-before { transform: translate3d(-100%, 0, 0); }
.trajectory-step.is-active { z-index: 1; transform: translate3d(0, 0, 0); }
.trajectory-step > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--image-x, 50%) center; filter: brightness(.84) saturate(.98); transform: scale(1.015); }
.trajectory-step::after { content: ""; position: absolute; z-index: 1; inset: 0; background: rgba(8, 12, 10, .08); pointer-events: none; }
.trajectory-copy { position: absolute; z-index: 2; top: 5.4rem; bottom: 5.8rem; left: max(2rem, calc((100% - 74rem) / 2)); display: flex; flex-direction: column; justify-content: flex-start; width: min(29rem, calc(100% - 8rem)); padding-top: 1.5rem; color: var(--white); text-shadow: 0 .12rem .9rem rgba(5, 8, 6, .94); }
.trajectory-copy-top { padding-top: 1.5rem; }
.trajectory-date { margin: 0 0 .55rem; font-size: 2.8rem; font-weight: 800; line-height: .9; letter-spacing: 0; }
.trajectory-date-range { font-size: 1.75rem; line-height: 1; }
.trajectory-date-range span { color: var(--red); }
.trajectory-phase { margin: 0 0 .55rem; color: var(--yellow); font-size: .65rem; font-weight: 900; letter-spacing: 0; }
.trajectory-step[data-kind="SCÉNARIO SUISSE"] .trajectory-phase { color: var(--sky); }
.trajectory-copy h3 { max-width: 18ch; margin: 0; font-size: 1.55rem; font-weight: 800; line-height: 1.05; letter-spacing: 0; }
.trajectory-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(28rem, 100%); margin-top: .85rem; border-top: 1px solid rgba(255, 253, 247, .72); border-bottom: 1px solid rgba(255, 253, 247, .72); }
.trajectory-facts p { margin: 0; padding: .55rem .7rem .6rem 0; font-size: .78rem; font-weight: 650; line-height: 1.3; }
.trajectory-facts p + p { border-left: 1px solid rgba(255, 253, 247, .38); padding-left: 1rem; }
.trajectory-facts strong { display: block; margin-bottom: .2rem; color: var(--yellow); font-size: .72rem; }
.trajectory-facts-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trajectory-meta { position: absolute; z-index: 5; top: 5.1rem; right: max(1.25rem, calc((100% - 74rem) / 2)); display: grid; justify-items: end; gap: .15rem; color: var(--white); text-shadow: 0 .1rem .7rem rgba(5, 8, 6, .85); }
.trajectory-meta span:first-child { font-size: .78rem; font-weight: 900; }
.trajectory-meta span:last-child { color: var(--sky); font-size: .66rem; font-weight: 850; }
.trajectory-arrows { position: absolute; z-index: 6; top: 50%; right: .9rem; left: .9rem; display: flex; justify-content: space-between; transform: translateY(-50%); pointer-events: none; }
.trajectory-arrows button { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid rgba(255, 253, 247, .72); border-radius: 50%; background: rgba(8, 12, 10, .58); color: var(--white); cursor: pointer; pointer-events: auto; font-size: 1.15rem; }
.trajectory-arrows button:hover, .trajectory-arrows button:focus-visible { border-color: var(--yellow); color: var(--yellow); outline: none; }
.trajectory-arrows button:disabled { opacity: .22; cursor: default; }
.trajectory-rail { position: absolute; z-index: 7; right: max(1rem, calc((100% - 74rem) / 2)); bottom: 1rem; left: max(1rem, calc((100% - 74rem) / 2)); display: flex; overflow-x: auto; border-top: 1px solid rgba(255, 253, 247, .68); border-bottom: 1px solid rgba(255, 253, 247, .68); background: rgba(8, 12, 10, .74); scrollbar-width: none; }
.trajectory-rail::-webkit-scrollbar { display: none; }
.trajectory-rail button { flex: 1 0 4.6rem; min-height: 3.65rem; border: 0; border-right: 1px solid var(--line); padding: .65rem .4rem; background: transparent; color: rgba(255, 253, 247, .72); cursor: pointer; font-size: .68rem; font-weight: 850; letter-spacing: 0; }
.trajectory-rail button:last-child { border-right: 0; }
.trajectory-rail button:hover, .trajectory-rail button:focus-visible { color: var(--white); outline: 2px solid var(--sky); outline-offset: -2px; }
.trajectory-rail button.active { background: var(--red); color: var(--white); }

.integrated-crossing, .integrated-swiza { scroll-margin-top: 4rem; }
.crossing-sequence { min-height: 360svh; }
.crossing-sequence .moment { min-height: 72svh; }
.crossing-sequence .crossing-stage { background: #78bfd0; }
.crossing-images { position: absolute; inset: 0; overflow: hidden; }
.crossing-image { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--crossing-x, 50%) center; opacity: 0; transform: scale(1.025); transition: opacity .38s linear, transform 1.2s ease-out; will-change: opacity, transform; }
.crossing-image.is-active { opacity: 1; transform: scale(1); }
.crossing-sequence .edge-shade { background: linear-gradient(90deg, rgba(255, 253, 247, .08), transparent 58%), linear-gradient(0deg, rgba(10, 12, 11, .16), transparent 35%); box-shadow: inset 0 5rem 6rem rgba(10, 12, 11, .12), inset 0 -5rem 7rem rgba(10, 12, 11, .18); }
.integrated-crossing .body-rail { position: absolute; grid-template-columns: repeat(5, 2.25rem); }
.integrated-crossing .ring-button { position: absolute; }
.integrated-crossing .moment-copy { max-width: 35rem; }
.integrated-crossing .moment-intro h1 { max-width: 32rem; font-size: 3.75rem; }
.integrated-crossing .moment h2 { max-width: 32rem; font-size: 3.05rem; }
.integrated-crossing .moment-copy > strong { max-width: 30rem; margin-top: 1rem; font-size: 1.05rem; }
.crossing-sequence [data-crossing-moment="3"] { justify-content: flex-start; text-align: left; }
.crossing-sequence .moment-final .moment-copy { margin-left: 0; text-align: left; }
.integrated-crossing .enter-swiza { color: var(--ink); }
.integrated-swiza { position: relative; isolation: isolate; background: var(--paper); }
.integrated-swiza .beat-copy { max-width: 31rem; }
.integrated-swiza .beat-copy h2 { max-width: 31rem; font-size: 3.35rem; }
.integrated-swiza .swiza-title { font-size: 4.15rem; }
.integrated-swiza .beat-copy > p:last-child { margin-top: 1rem; font-size: 1.08rem; }
.integrated-swiza .milk-scene > img { inset: 0; height: 100%; }
.integrated-swiza .field h2 { font-size: 3rem; }
.integrated-swiza .life h2 { font-size: 2.65rem; }
.integrated-swiza .life-workbench { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2.5rem, 6vw, 5rem); align-items: stretch; }

.dependency-workshop { position: relative; min-height: 100svh; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 7rem max(1.25rem, calc((100% - 74rem) / 2)) 5rem; background: #f7f3e9; scroll-margin-top: 4rem; isolation: isolate; }
.dependency-workshop[hidden] { display: none; }
.dependency-workshop::before { content: ""; position: absolute; z-index: -1; top: 5rem; right: -8rem; width: 33rem; aspect-ratio: 1; border: 1px solid rgba(57, 114, 74, .15); border-radius: 50%; box-shadow: 0 0 0 5rem rgba(217, 47, 47, .035), 0 0 0 10rem rgba(158, 216, 230, .08); pointer-events: none; }
.workshop-heading { display: grid; max-width: 52rem; gap: .7rem; }
.workshop-heading > p { margin: 0; color: var(--red); font-size: .7rem; font-weight: 850; }
.workshop-heading h2 { max-width: 18ch; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 3.25rem; font-weight: 400; line-height: .98; }
.workshop-heading > strong { margin-top: .25rem; font-size: 1.05rem; }
.workshop-heading > span { max-width: 43rem; color: #5d625e; font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; line-height: 1.5; }
.workshop-layout { display: grid; grid-template-columns: minmax(17rem, 22rem) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 5.5rem); align-items: start; margin-top: 4rem; }
.workshop-question { margin: 0 0 1rem; font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.wheel-bank { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(23, 26, 24, .5); border-left: 1px solid rgba(23, 26, 24, .5); background: rgba(255, 253, 247, .5); }
.wheel-bank button { position: relative; display: grid; min-width: 0; min-height: 5rem; place-items: center; border: 0; border-right: 1px solid rgba(23, 26, 24, .5); border-bottom: 1px solid rgba(23, 26, 24, .5); padding: .65rem .35rem; background: transparent; color: var(--ink); cursor: pointer; font-size: .62rem; font-weight: 850; line-height: 1.2; text-align: center; }
.wheel-bank button::before { content: ""; position: absolute; top: .45rem; left: .45rem; width: .32rem; height: .32rem; border-radius: 50%; background: var(--wheel-accent, var(--red)); }
.wheel-bank button:nth-child(3n + 1) { --wheel-accent: var(--red); }
.wheel-bank button:nth-child(3n + 2) { --wheel-accent: var(--green); }
.wheel-bank button:nth-child(3n) { --wheel-accent: #b17b16; }
.wheel-bank button:hover, .wheel-bank button:focus-visible { background: var(--white); outline: 2px solid var(--red); outline-offset: -2px; }
.wheel-bank button[aria-pressed="true"] { background: var(--ink); color: var(--white); }
.wheel-bank button[aria-pressed="true"]::before { box-shadow: 0 0 0 .25rem rgba(255, 253, 247, .14); }
.workshop-console { min-width: 0; min-height: 30rem; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); padding: 1.25rem 0 1rem; }
.workshop-thread { display: grid; grid-template-columns: minmax(0, 1fr) minmax(3rem, 7rem) minmax(0, 1fr); align-items: center; gap: 1rem; min-height: 2.25rem; border-bottom: 1px solid var(--line); padding: 0 0 1rem; color: #6a6e6a; font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.workshop-thread span:last-child { text-align: right; }
.workshop-thread i { position: relative; display: block; height: 1px; background: var(--line); }
.workshop-thread i::before, .workshop-thread i::after { content: ""; position: absolute; top: -.22rem; width: .45rem; height: .45rem; border-radius: 50%; }
.workshop-thread i::before { left: 0; background: var(--red); }
.workshop-thread i::after { right: 0; background: var(--green); }
.workshop-panel { display: grid; align-content: start; min-height: 23.5rem; padding: 2rem 0 1.5rem; }
.workshop-panel[hidden] { display: none; }
.panel-index { margin: 0 0 1rem; color: var(--red); font-size: .68rem; font-weight: 850; }
.workshop-panel h3 { max-width: 23ch; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 2.15rem; font-weight: 400; line-height: 1.06; }
.workshop-panel > h3 + p { max-width: 38rem; margin: .85rem 0 0; color: #5d625e; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; line-height: 1.45; }
.link-bank, .relation-bank, .outcome-bank { display: grid; margin-top: 2rem; border-top: 1px solid rgba(23, 26, 24, .45); border-left: 1px solid rgba(23, 26, 24, .45); }
.link-bank { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.relation-bank { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.outcome-bank { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.link-bank button, .relation-bank button, .outcome-bank button { min-width: 0; min-height: 3.4rem; border: 0; border-right: 1px solid rgba(23, 26, 24, .45); border-bottom: 1px solid rgba(23, 26, 24, .45); padding: .7rem .55rem; background: rgba(255, 253, 247, .48); color: var(--ink); cursor: pointer; font-size: .66rem; font-weight: 850; line-height: 1.2; }
.link-bank button:hover, .link-bank button:focus-visible, .relation-bank button:hover, .relation-bank button:focus-visible, .outcome-bank button:hover, .outcome-bank button:focus-visible { position: relative; z-index: 1; background: var(--white); outline: 2px solid var(--green); outline-offset: -2px; }
.link-bank button[aria-pressed="true"], .relation-bank button[aria-pressed="true"], .outcome-bank button[aria-pressed="true"] { background: var(--green); color: var(--white); }
.relation-bank button:nth-child(2)[aria-pressed="true"] { background: #b17b16; }
.relation-bank button:nth-child(3)[aria-pressed="true"] { background: var(--red); }
.loosen-button, .cross-button, .open-calculator { display: inline-flex; width: max-content; max-width: 100%; align-items: center; justify-content: space-between; gap: 1.2rem; margin-top: 1.5rem; border: 1px solid var(--ink); border-radius: 4px; padding: .9rem 1rem; background: var(--ink); color: var(--white); cursor: pointer; font-size: .68rem; font-weight: 850; }
.loosen-button:disabled, .cross-button:disabled { cursor: not-allowed; opacity: .35; }
.loosen-button:not(:disabled):hover, .loosen-button:not(:disabled):focus-visible, .cross-button:not(:disabled):hover, .cross-button:not(:disabled):focus-visible, .open-calculator:hover, .open-calculator:focus-visible { background: var(--red); outline: 2px solid var(--red); outline-offset: 2px; }
.carry-bank { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2rem; border-top: 1px solid rgba(23, 26, 24, .45); border-left: 1px solid rgba(23, 26, 24, .45); }
.carry-bank label { min-width: 0; }
.carry-bank input { position: absolute; opacity: 0; pointer-events: none; }
.carry-bank span { display: grid; min-height: 3.35rem; place-items: center; border-right: 1px solid rgba(23, 26, 24, .45); border-bottom: 1px solid rgba(23, 26, 24, .45); padding: .65rem .4rem; background: rgba(255, 253, 247, .48); cursor: pointer; font-size: .62rem; font-weight: 850; line-height: 1.18; text-align: center; }
.carry-bank input:focus-visible + span { position: relative; z-index: 1; outline: 2px solid var(--green); outline-offset: -2px; }
.carry-bank input:checked + span { background: var(--green); color: var(--white); }
.workshop-summary h3 { color: var(--green); }
.workshop-summary > p:not(.panel-index) { max-width: 42rem; margin: .8rem 0 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; line-height: 1.45; }
.workshop-summary > strong { max-width: 44rem; margin-top: 1.5rem; border-top: 1px solid var(--line); padding-top: 1.25rem; font-size: .67rem; line-height: 1.5; }
.workshop-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: 1.5rem; }
.workshop-reset { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--ink); border-radius: 50%; padding: 0; background: transparent; color: var(--ink); cursor: pointer; font-size: 1.25rem; }
.workshop-reset:hover, .workshop-reset:focus-visible { background: var(--ink); color: var(--white); outline: 2px solid var(--red); outline-offset: 2px; }
.open-calculator { margin-top: 0; }
.workshop-privacy { margin: 0; border-top: 1px solid var(--line); padding-top: .85rem; color: #747975; font-size: .62rem; font-weight: 800; text-transform: uppercase; }

.optional-depth { background: var(--paper); scroll-margin-top: 4rem; }
.optional-depth + .optional-depth { border-top: 1px solid rgba(23, 26, 24, .28); }
.optional-depth-summary { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); min-height: 24rem; cursor: pointer; list-style: none; }
.optional-depth-summary::-webkit-details-marker { display: none; }
.optional-depth-media { position: relative; min-height: 24rem; overflow: hidden; background: #9ed8e6; }
.optional-depth-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 62%, rgba(10, 12, 11, .12)); pointer-events: none; }
.optional-depth-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .55s ease; }
.calculator-depth .optional-depth-media img { object-position: 52% center; }
.optional-depth-copy { display: grid; align-content: center; min-width: 0; padding: 3rem max(1.25rem, calc((100vw - 74rem) / 2)); padding-left: clamp(2rem, 5vw, 5rem); background: #f7f3e9; }
.loop-depth .optional-depth-copy { background: #e3efeb; }
.calculator-depth .optional-depth-copy { background: #f0dfbd; }
.optional-depth-copy > span:first-child { color: var(--red); font-size: .7rem; font-weight: 850; }
.optional-depth-copy > strong { max-width: 15ch; margin-top: .8rem; font-family: Georgia, "Times New Roman", serif; font-size: 2.45rem; font-weight: 400; line-height: 1.02; }
.optional-depth-copy > small { max-width: 28rem; margin-top: 1rem; color: #585d59; font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1.5; }
.optional-depth-copy > b { display: inline-flex; width: max-content; align-items: center; gap: .7rem; margin-top: 1.5rem; border-bottom: 1px solid currentColor; padding: .35rem 0; font-size: .7rem; }
.optional-depth-copy > b > span:last-child { transition: transform .25s ease; }
.optional-depth[open] .optional-depth-copy > b > span:last-child { transform: rotate(180deg); }
.optional-depth-summary:hover .optional-depth-media img, .optional-depth-summary:focus-visible .optional-depth-media img { transform: scale(1.025); }
.optional-depth-summary:focus-visible { outline: 3px solid var(--red); outline-offset: -3px; }
.optional-depth[open] .optional-depth-summary { border-bottom: 1px solid rgba(23, 26, 24, .28); }
.optional-depth-body { min-width: 0; }
.occupation-notes { display: grid; align-content: center; min-width: 0; }
.occupation-line { display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; margin: .75rem 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.2rem, 1.8vw, 1.5rem); line-height: 1.45; }
.occupation-line input { width: 4.75rem; min-width: 0; border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; padding: .05rem .25rem .1rem; background: rgba(255, 255, 255, .18); color: var(--red); font: inherit; font-weight: 800; text-align: center; }
.occupation-line input:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.occupation-name-line input { flex: 1 1 12rem; width: auto; text-align: left; }
.inline-field { display: inline-flex; margin: 0; }
.money-field input { width: 6.4rem; }
.occupation-help { max-width: 34rem; margin: -.25rem 0 1.35rem; color: #304b48; font-size: .72rem; font-weight: 700; line-height: 1.5; }
.pay-mode { min-width: 0; margin: .6rem 0 1.25rem; border: 0; padding: 0; }
.pay-mode legend { margin-bottom: .55rem; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.pay-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(21, 24, 23, .58); }
.pay-options label { position: relative; min-width: 0; margin: 0; cursor: pointer; }
.pay-options label + label { border-left: 1px solid rgba(21, 24, 23, .58); }
.pay-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pay-options span { display: grid; min-height: 3.25rem; place-items: center; padding: .65rem .45rem; font-size: .7rem; font-weight: 800; text-align: center; }
.pay-options input:checked + span { background: var(--ink); color: var(--white); }
.pay-options input:focus-visible + span { outline: 2px solid var(--red); outline-offset: -3px; }
.payment-line[hidden] { display: none; }
.occupation-result { display: grid; align-content: center; min-width: 0; border-left: 1px solid rgba(21, 24, 23, .42); padding-left: clamp(2rem, 5vw, 4rem); }
.occupation-result-name { margin: 0 0 1rem; color: var(--red); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.time-story { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; line-height: 1.6; }
.time-story strong { font-family: Arial, Helvetica, sans-serif; font-size: 1.45rem; }
.money-story { margin-top: 1.7rem; border-top: 1px solid rgba(21, 24, 23, .42); border-bottom: 1px solid rgba(21, 24, 23, .42); padding: 1.1rem 0; }
.money-story p { margin: 0; font-size: .82rem; font-weight: 750; line-height: 1.5; }
.money-story p + p { margin-top: .45rem; }
.hour-equation { display: grid; justify-items: start; margin: 1.7rem 0 0; }
.hour-equation span { font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
.hour-equation strong { margin-top: .3rem; color: var(--red); font-size: clamp(2.25rem, 4vw, 3.35rem); line-height: 1; overflow-wrap: anywhere; }
.hour-equation small { margin-top: .35rem; font-size: .72rem; font-weight: 800; }
.why-line { max-width: 32rem; margin: 1.25rem 0 0; color: #304b48; font-family: Georgia, "Times New Roman", serif; font-size: .95rem; line-height: 1.5; }
.occupation-game-board { margin-top: 4rem; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); padding: clamp(2rem, 4vw, 3.5rem); background: var(--paper); color: var(--ink); }
.occupation-game-board .life-workbench { padding: 0 0 3rem; }
.game-bridge { display: grid; justify-items: center; gap: .35rem; border-top: 1px solid rgba(21, 24, 23, .5); border-bottom: 1px solid rgba(21, 24, 23, .5); padding: 1.6rem 1rem; text-align: center; }
.game-bridge > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--red); color: var(--white); font-weight: 900; }
.game-bridge strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.game-bridge small { font-size: .7rem; font-weight: 800; }
.needs-playground { position: relative; padding-top: 2.5rem; scroll-margin-top: 4rem; }
.month-flow { display: grid; grid-template-columns: minmax(9rem, .75fr) minmax(10rem, 1.5fr) minmax(9rem, .75fr); align-items: stretch; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.month-source, .month-outcome { display: grid; align-content: center; min-height: 7.5rem; padding: 1.25rem; }
.month-source p, .month-outcome p { margin: 0 0 .35rem; font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.month-source strong, .month-outcome strong { font-size: 2rem; line-height: 1; }
.month-source strong { color: var(--red); }
.month-outcome { border-left: 1px solid rgba(21, 24, 23, .45); background: rgba(57, 114, 74, .1); }
.month-outcome strong { color: var(--green); }
.month-outcome[data-state="negative"] { background: rgba(217, 47, 47, .12); }
.month-outcome[data-state="negative"] strong { color: var(--red); }
.month-road { position: relative; min-width: 0; overflow: hidden; border-left: 1px solid rgba(21, 24, 23, .45); }
.month-line { position: absolute; top: 50%; right: 1rem; left: 1rem; height: 1px; background: rgba(21, 24, 23, .5); }
.road-carrier, .need-worker, .paper-runner { position: absolute; display: block; width: 1.35rem; height: 2.05rem; }
.road-carrier { top: calc(50% - 1rem); animation: carrier-step 1.1s ease-in-out infinite alternate; }
.road-carrier-one { left: 12%; }
.road-carrier-two { left: 46%; animation-delay: -.35s; }
.road-carrier-three { left: 78%; animation-delay: -.7s; }
@keyframes carrier-step { to { transform: translate(.45rem, -.22rem) rotate(3deg); } }
.mini-person { position: absolute; bottom: .08rem; left: .08rem; display: block; width: .72rem; height: 1.45rem; }
.mini-person::before { content: ""; position: absolute; top: 0; left: .16rem; width: .4rem; height: .4rem; border-radius: 50%; background: var(--ink); }
.mini-person::after { content: ""; position: absolute; top: .38rem; left: 0; width: .72rem; height: 1rem; background: var(--ink); clip-path: polygon(26% 0, 74% 0, 100% 55%, 68% 52%, 82% 100%, 54% 100%, 50% 63%, 44% 100%, 16% 100%, 31% 52%, 0 55%); }
.road-carrier b, .need-worker b, .paper-runner b { position: absolute; top: .15rem; right: 0; width: .58rem; height: .58rem; border: 2px solid var(--paper); border-radius: 50%; background: var(--red); box-shadow: 0 0 0 1px var(--red); }
.needs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: 2.5rem; }
.need-target { --need-tint: rgba(255, 255, 255, .45); --need-level: 0; display: grid; min-width: 0; min-height: 10.5rem; grid-template-rows: 4.25rem auto auto; justify-items: center; align-content: center; gap: .45rem; border: 1px solid rgba(21, 24, 23, .48); border-radius: 4px; padding: 1rem .75rem; background: linear-gradient(150deg, var(--need-tint), rgba(255, 255, 255, .38)); box-shadow: 0 .3rem 0 rgba(21, 24, 23, .06); }
.need-target[data-need-target="food"] { --need-tint: rgba(238, 198, 132, .42); }
.need-target[data-need-target="water"] { --need-tint: rgba(133, 206, 224, .38); }
.need-target[data-need-target="home"] { --need-tint: rgba(202, 196, 174, .46); }
.need-target[data-need-target="move"] { --need-tint: rgba(151, 194, 145, .38); }
.need-target[data-need-target="wait"] { --need-tint: rgba(224, 155, 148, .34); }
.need-target[data-need-target="gap"] { --need-tint: rgba(185, 164, 205, .34); }
.need-target > strong { font-size: .8rem; text-align: center; }
.need-scene { position: relative; display: grid; width: 5.5rem; height: 4rem; place-items: center; }
.need-scene > span:first-child { position: relative; z-index: 2; font-size: 1.65rem; line-height: 1; filter: grayscale(.25); }
.need-load { position: absolute; z-index: 1; bottom: .3rem; left: .35rem; width: 1.7rem; height: calc(.3rem + (var(--need-level) * 2.65rem)); border: 1px solid rgba(21, 24, 23, .55); background: repeating-linear-gradient(to bottom, #fffdf7 0, #fffdf7 .27rem, #d9cdb6 .28rem, #d9cdb6 .34rem); box-shadow: .22rem .18rem 0 rgba(21, 24, 23, .12); transform: skewY(-4deg); transform-origin: bottom; transition: height .22s ease; }
.need-worker { z-index: 3; right: .2rem; bottom: .15rem; transform: scale(.82); transform-origin: right bottom; }
.need-stepper { display: grid; grid-template-columns: 2.15rem minmax(5rem, 1fr) 2.15rem; width: min(100%, 12rem); border: 1px solid rgba(21, 24, 23, .5); }
.need-stepper button { display: grid; min-width: 0; place-items: center; border: 0; padding: 0; background: transparent; color: var(--ink); cursor: pointer; font-size: 1rem; font-weight: 900; }
.need-stepper button + label, .need-stepper label + button { border-left: 1px solid rgba(21, 24, 23, .35); }
.need-stepper button:hover, .need-stepper button:focus-visible { background: var(--ink); color: var(--white); outline: 0; }
.need-stepper label { display: flex; min-width: 0; align-items: center; justify-content: center; gap: .2rem; padding: .4rem .25rem; }
.need-stepper input { width: 3.8rem; min-width: 0; border: 0; padding: 0; background: transparent; color: var(--red); font: inherit; font-size: .82rem; font-weight: 850; text-align: right; }
.need-stepper input:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.need-stepper label > span:last-child { color: #63512b; font-size: .62rem; font-weight: 800; }
.runner-layer { position: absolute; z-index: 5; inset: 0; overflow: hidden; pointer-events: none; }
.paper-runner { position: absolute; left: var(--runner-left); top: var(--runner-top); animation: carry-part .72s cubic-bezier(.2, .75, .25, 1) forwards; }
@keyframes carry-part {
  0% { opacity: 0; transform: translate(0, 0) rotate(-7deg); }
  12% { opacity: 1; }
  52% { transform: translate(var(--runner-mid-x), var(--runner-mid-y)) rotate(7deg); }
  100% { opacity: 0; transform: translate(var(--runner-x), var(--runner-y)) rotate(-4deg); }
}
.needs-tally { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 2.5rem; border-top: 1px solid rgba(21, 24, 23, .5); border-bottom: 1px solid rgba(21, 24, 23, .5); }
.needs-tally p { display: grid; gap: .4rem; margin: 0; padding: 1.2rem 1rem; }
.needs-tally p + p { border-left: 1px solid rgba(21, 24, 23, .5); }
.needs-tally span { font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.needs-tally strong { font-size: 1.35rem; }
.needs-ending { max-width: 43rem; margin: 2.25rem 4rem 0 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; line-height: 1.45; }
.needs-reset { position: absolute; right: 0; bottom: -.25rem; display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--ink); border-radius: 50%; padding: 0; background: transparent; color: var(--ink); cursor: pointer; font-size: 1.35rem; }
.needs-reset:hover, .needs-reset:focus-visible { background: var(--red); color: var(--white); outline: 0; }
.time-reveal { display: grid; grid-template-columns: minmax(13rem, .75fr) minmax(20rem, 1.25fr); margin-top: 3.5rem; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); background: #f7f3e9; }
.time-reveal-heading { display: grid; align-content: center; padding: 2rem 2rem 2rem 0; }
.time-reveal-heading p { margin: 0 0 .55rem; color: var(--red); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.time-reveal-heading h3 { max-width: 16rem; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.75rem; font-weight: 400; line-height: 1.08; }
.time-reveal-equation { display: grid; min-width: 0; grid-template-columns: minmax(7rem, 1fr) auto minmax(9rem, 1.15fr); align-items: center; gap: 1.25rem; margin: 0; border-left: 1px solid rgba(21, 24, 23, .5); padding: 2rem; }
.time-reveal-money { position: relative; width: max-content; max-width: 100%; color: var(--red); font-size: 2.2rem; font-variant-numeric: tabular-nums; font-weight: 850; line-height: 1; opacity: .13; overflow-wrap: anywhere; transform: translateY(-.2rem); transition: opacity .75s ease .55s, transform .75s ease .55s; white-space: nowrap; }
.time-reveal-money::after { content: ""; position: absolute; top: 52%; left: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(1); transform-origin: left; transition: transform .75s ease .55s; }
.time-reveal-verb { font-family: Georgia, "Times New Roman", serif; font-size: .95rem; font-style: italic; text-align: center; }
.time-reveal-duration { color: var(--ink); font-size: 2.8rem; font-variant-numeric: tabular-nums; line-height: .95; opacity: 1; transform: translateY(0); transition: opacity .65s ease .85s, transform .65s ease .85s; white-space: nowrap; }
.time-reveal.has-reveal-observer:not(.is-time-visible) .time-reveal-money { opacity: 1; transform: translateY(0); }
.time-reveal.has-reveal-observer:not(.is-time-visible) .time-reveal-money::after { transform: scaleX(0); }
.time-reveal.has-reveal-observer:not(.is-time-visible) .time-reveal-duration { opacity: .12; transform: translateY(.45rem); }
.time-reveal[data-state="negative"] .time-reveal-duration, .time-reveal[data-state="negative"] .time-reveal-facts p:last-child strong { color: var(--red); }
.time-reveal[data-state="unavailable"] .time-reveal-duration { color: #6b6a64; }
.time-reveal-facts { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(21, 24, 23, .5); }
.time-reveal-facts p { display: grid; gap: .45rem; margin: 0; padding: 1.15rem 1rem; }
.time-reveal-facts p + p { border-left: 1px solid rgba(21, 24, 23, .5); }
.time-reveal-facts span { font-size: .65rem; font-weight: 800; line-height: 1.35; text-transform: uppercase; }
.time-reveal-facts strong { font-size: 1.25rem; }
.time-reveal-note { grid-column: 1 / -1; max-width: 52rem; margin: 0; border-top: 1px solid rgba(21, 24, 23, .5); padding: 1.4rem 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; line-height: 1.45; }
.ratio-trial { margin-top: 3.5rem; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); padding: 2.5rem 0 0; background: #e3efeb; scroll-margin-top: 4rem; }
.ratio-trial-heading { display: grid; grid-template-columns: minmax(13rem, .75fr) minmax(20rem, 1.25fr); gap: 2rem; align-items: end; padding: 0 2rem 2rem 0; }
.ratio-trial-heading p { grid-column: 1; margin: 0 0 .55rem; color: var(--green); font-size: .7rem; font-weight: 850; }
.ratio-trial-heading h3 { grid-column: 1; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.95rem; font-weight: 400; line-height: 1.05; }
.ratio-trial-heading > span { grid-column: 2; grid-row: 1 / span 2; max-width: 31rem; border-left: 1px solid rgba(21, 24, 23, .45); padding: .35rem 0 .35rem 2rem; color: #4d5651; font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; line-height: 1.45; }
.ratio-control { min-width: 0; margin: 0; border: 0; padding: 0; }
.ratio-control legend { width: 100%; border-top: 1px solid rgba(21, 24, 23, .5); padding: 1.2rem 0 .8rem; font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.ratio-options { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid rgba(21, 24, 23, .5); border-left: 1px solid rgba(21, 24, 23, .5); }
.ratio-options label { min-width: 0; }
.ratio-options input { position: absolute; opacity: 0; pointer-events: none; }
.ratio-options span { display: grid; min-height: 3.65rem; place-items: center; border-right: 1px solid rgba(21, 24, 23, .5); border-bottom: 1px solid rgba(21, 24, 23, .5); background: rgba(255, 253, 247, .42); cursor: pointer; font-size: .72rem; font-weight: 850; }
.ratio-options span:hover { background: var(--white); }
.ratio-options input:focus-visible + span { position: relative; z-index: 1; outline: 2px solid var(--green); outline-offset: -2px; }
.ratio-options input:checked + span { background: var(--ink); color: var(--white); }
.ratio-axis { display: grid; grid-template-columns: auto minmax(4rem, 1fr) auto; gap: .8rem; align-items: center; padding: 1rem 0 1.6rem; color: #5f6863; font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.ratio-axis i { position: relative; display: block; height: 1px; background: rgba(21, 24, 23, .55); }
.ratio-axis i::before, .ratio-axis i::after { content: ""; position: absolute; top: -.2rem; width: .42rem; height: .42rem; border-radius: 50%; background: var(--ink); }
.ratio-axis i::before { left: 0; }
.ratio-axis i::after { right: 0; }
.ratio-axis b { position: absolute; z-index: 1; top: 50%; left: clamp(.5rem, var(--ratio-position), calc(100% - .5rem)); width: 1rem; height: 1rem; border: 3px solid #e3efeb; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 1px var(--ink); transform: translate(-50%, -50%); transition: left .35s ease; }
.ratio-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(21, 24, 23, .5); border-bottom: 1px solid rgba(21, 24, 23, .5); background: rgba(255, 253, 247, .55); }
.ratio-results p { display: grid; align-content: start; gap: .35rem; min-width: 0; min-height: 7.5rem; margin: 0; padding: 1.25rem; }
.ratio-results p + p { border-left: 1px solid rgba(21, 24, 23, .5); }
.ratio-results span { font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.ratio-results strong { font-size: clamp(1.4rem, 2.4vw, 2rem); font-variant-numeric: tabular-nums; line-height: 1; overflow-wrap: anywhere; }
.ratio-results small { color: #626a65; font-size: .68rem; font-weight: 750; }
.ratio-trial[data-state="negative"] #swiza-ratio-balance { color: var(--red); }
.ratio-trial[data-state="positive"] #swiza-ratio-balance { color: var(--green); }
.ratio-reading { max-width: 48rem; margin: 0; padding: 2rem 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.4rem; line-height: 1.4; }
.ratio-supports { display: grid; grid-template-columns: minmax(11rem, .62fr) minmax(0, 1.38fr); border-top: 1px solid rgba(21, 24, 23, .5); }
.ratio-supports > p { margin: 0; padding: 1.25rem 1.25rem 1.25rem 0; font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.ratio-supports > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid rgba(21, 24, 23, .5); }
.ratio-supports span { display: grid; min-height: 3.5rem; align-items: center; border-bottom: 1px solid rgba(21, 24, 23, .25); padding: .8rem 1rem; font-size: .72rem; font-weight: 800; }
.ratio-supports span[hidden] { display: none; }
.ratio-supports span:nth-last-child(-n + 3) { border-bottom: 0; }
.ratio-note { margin: 0; border-top: 1px solid rgba(21, 24, 23, .5); padding: 1.15rem 0; color: #59615d; font-size: .68rem; font-weight: 750; line-height: 1.5; }
.integrated-swiza .closing { place-items: center; }
.integrated-swiza .closing > img { object-position: 58% center; transform: none; }
.integrated-swiza .closing-shade { background: linear-gradient(90deg, rgba(10, 12, 11, .62), rgba(10, 12, 11, .14) 68%); }
.integrated-swiza .closing-copy { margin: 0 auto; text-align: left; }
.integrated-swiza .closing-copy h2 { max-width: 17ch; font-size: 3rem; }
.integrated-swiza .closing-copy > strong { display: block; margin-top: 1.2rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; }
.integrated-swiza .closing-copy a { color: var(--yellow); }

.future-postscript { position: relative; background: #111815; color: var(--white); scroll-margin-top: 4rem; }
.future-postscript details { background: #111815; }
.future-postscript summary { position: relative; display: grid; align-items: end; min-height: 72svh; overflow: hidden; padding: 6rem max(1.25rem, calc((100% - 74rem) / 2)) 4rem; cursor: pointer; list-style: none; isolation: isolate; }
.future-postscript summary::-webkit-details-marker { display: none; }
.future-postscript summary > img { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 52% center; }
.future-shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(0deg, rgba(9, 13, 11, .9), rgba(9, 13, 11, .12) 75%); }
.future-copy { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; max-width: 32rem; text-shadow: 0 .15rem 1rem rgba(0, 0, 0, .72); }
.future-eyebrow { margin-bottom: .7rem; color: var(--sky); font-size: .68rem; font-weight: 850; }
.future-copy > strong { max-width: 15ch; font-size: 3rem; line-height: .94; }
.future-copy > span:not(.future-eyebrow, .future-open) { margin-top: .8rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
.future-open { display: inline-flex; gap: .65rem; align-items: center; margin-top: 2rem; border-bottom: 1px solid currentColor; padding: .45rem 0; color: var(--yellow); font-size: .76rem; font-weight: 800; }
.future-postscript details[open] .future-open > span:last-child { transform: rotate(180deg); }
.future-context { padding: 3rem max(1.25rem, calc((100% - 74rem) / 2)); background: var(--paper); color: var(--ink); }
.future-context p { max-width: 48rem; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; line-height: 1.5; }

@media (max-width: 760px) {
  .topbar { height: 3.6rem; padding: 0 .9rem; }
  .back-link span:last-child { display: none; }
  .crossing-sequence { min-height: 400svh; }
  .crossing-sequence .moment { min-height: 80svh; }
  .dependency-workshop { min-height: 0; padding: 5.5rem 1rem 3.5rem; }
  .dependency-workshop::before { top: 7rem; right: -14rem; width: 27rem; }
  .workshop-heading h2 { font-size: 2.45rem; }
  .workshop-heading > strong { font-size: .96rem; }
  .workshop-heading > span { font-size: 1.05rem; }
  .workshop-layout { grid-template-columns: 1fr; gap: 2.5rem; margin-top: 3rem; }
  .wheel-bank button { min-height: 4.6rem; font-size: .58rem; }
  .workshop-console { min-height: 0; }
  .workshop-panel { min-height: 0; padding: 1.75rem 0 2rem; }
  .workshop-panel h3 { font-size: 1.8rem; }
  .link-bank { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .relation-bank, .outcome-bank { grid-template-columns: 1fr; }
  .link-bank button, .relation-bank button, .outcome-bank button { min-height: 3.25rem; font-size: .61rem; }
  .carry-bank { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .carry-bank span { min-height: 3.25rem; }
  .optional-depth-summary { grid-template-columns: 1fr; min-height: 0; }
  .optional-depth-media { min-height: 15rem; }
  .optional-depth-copy { padding: 2.25rem 1rem 2.5rem; }
  .optional-depth-copy > strong { font-size: 2rem; }
  .milk-scene { min-height: 82svh; }
  .milk-scene > img { inset: 3.6rem 0 0; height: calc(100% - 3.6rem); object-position: 42% top; }
  .scene-copy { width: calc(100% - 2rem); padding-top: 5.5rem; }
  .scene-copy h1, .scene-copy h2 { max-width: 15rem; font-size: 2.35rem; }
  .cow-voice { top: 21rem; right: 1rem; left: auto; width: min(14rem, calc(100% - 2rem)); min-height: 4.5rem; font-size: 1.05rem; }
  .cow-voice::after { top: -1.1rem; right: 1.35rem; bottom: auto; left: auto; clip-path: polygon(100% 0, 100% 100%, 0 100%); filter: drop-shadow(2px -2px 0 var(--ink)); }
  .down-link { right: .9rem; bottom: .9rem; }
  .week-copy, .week-copy[data-side="right"] { top: 5.5rem; right: auto; left: 1rem; max-width: min(21rem, calc(100% - 2rem)); text-align: left; transform: translateX(-1rem); }
  .week-copy.is-current { transform: translateX(0); }
  .week-copy h2 { font-size: 2.25rem; }
  .week-rail { top: calc(100svh - 2.8rem); gap: .5rem; }
  .week-rail button { width: .62rem; height: .62rem; }
  .week-next { margin-right: auto; margin-left: 0; }
  .rumination { padding: 5.5rem 1rem 4rem; }
  .game-heading h2 { font-size: 2.15rem; }
  .game-stage { grid-template-columns: 1fr; gap: 0; min-height: 33rem; padding: 1rem 0 2rem; }
  .mouth-sprite { width: min(19rem, 88vw); margin: 0 auto; }
  .track-field { min-height: 9rem; }
  .feed-track { grid-template-columns: repeat(9, 1fr); gap: .3rem; min-height: 6rem; }
  .object-story strong { font-size: 1.4rem; }
  .trajectory-timeline { height: 900svh; }
  .trajectory-step > img { object-position: var(--image-x-mobile, var(--image-x, 50%)) center; filter: brightness(.72) saturate(.94); }
  .trajectory-copy { top: 5.2rem; bottom: 5.25rem; left: 1rem; justify-content: flex-start; width: calc(100% - 2rem); padding-top: 1.25rem; }
  .trajectory-date { margin-bottom: .5rem; font-size: 2.3rem; }
  .trajectory-date-range { max-width: 13ch; font-size: 1.45rem; line-height: 1; }
  .trajectory-phase { margin-bottom: .45rem; font-size: .6rem; }
  .trajectory-copy h3 { max-width: 18ch; font-size: 1.2rem; line-height: 1.06; }
  .trajectory-facts, .trajectory-facts-three { grid-template-columns: 1fr; width: 100%; margin-top: .75rem; }
  .trajectory-facts p { padding: .45rem 0; font-size: .76rem; line-height: 1.25; }
  .trajectory-facts p + p { border-top: 1px solid rgba(255, 253, 247, .32); border-left: 0; padding-left: 0; }
  .trajectory-meta { top: 4.15rem; right: 1rem; }
  .trajectory-arrows { top: auto; right: .8rem; bottom: 4.8rem; left: auto; gap: .5rem; transform: none; }
  .trajectory-arrows button { width: 2.7rem; height: 2.7rem; }
  .trajectory-rail { right: .75rem; bottom: .65rem; left: .75rem; }
  .trajectory-rail button { flex-basis: 4.25rem; min-height: 3.45rem; }
  .crossing-image { object-position: var(--crossing-x-mobile, var(--crossing-x, 50%)) center; }
  .integrated-crossing .body-rail { grid-template-columns: repeat(5, 1.85rem); }
  .integrated-crossing .moment-intro h1 { max-width: 18rem; font-size: 2.5rem; }
  .integrated-crossing .moment h2 { max-width: 18rem; font-size: 2.2rem; }
  .integrated-crossing .moment-copy > strong { max-width: 18rem; font-size: .95rem; }
  .integrated-swiza .beat-copy h2 { font-size: 2.4rem; }
  .integrated-swiza .swiza-title { font-size: 3.1rem; }
  .integrated-swiza .beat-copy > p:last-child { font-size: .98rem; }
  .integrated-swiza .field h2, .integrated-swiza .life h2 { font-size: 2.15rem; }
  .integrated-swiza .life-workbench { grid-template-columns: 1fr; gap: 2.5rem; }
  .occupation-line { font-size: 1.12rem; }
  .occupation-line input { width: 4.2rem; }
  .occupation-name-line input { width: auto; }
  .money-field input { width: 5.8rem; }
  .pay-options span { min-height: 3rem; padding: .5rem .25rem; font-size: .64rem; }
  .occupation-result { border-top: 1px solid rgba(21, 24, 23, .42); border-left: 0; padding-top: 2.25rem; padding-left: 0; }
  .time-story { font-size: 1.1rem; }
  .time-story strong { font-size: 1.25rem; }
  .hour-equation strong { font-size: 2.65rem; }
  .occupation-game-board { margin-top: 2.5rem; padding: 1.25rem; }
  .occupation-game-board .life-workbench { padding-bottom: 2rem; }
  .game-bridge { padding: 1.25rem .5rem; }
  .game-bridge strong { font-size: 1.2rem; }
  .needs-playground { padding-top: 1.75rem; }
  .month-flow { grid-template-columns: 1fr 1fr; }
  .month-source, .month-outcome { min-height: 6.5rem; padding: .9rem; }
  .month-source strong, .month-outcome strong { font-size: 1.55rem; }
  .month-source { grid-column: 1; grid-row: 1; }
  .month-outcome { grid-column: 2; grid-row: 1; }
  .month-road { grid-column: 1 / -1; grid-row: 2; min-height: 4rem; border-top: 1px solid rgba(21, 24, 23, .45); border-left: 0; }
  .needs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.5rem; }
  .need-target { min-height: 9.5rem; grid-template-rows: 3.75rem auto auto; padding: .75rem .35rem; }
  .need-scene { width: 4.7rem; height: 3.5rem; }
  .need-stepper { grid-template-columns: 1.8rem minmax(4.6rem, 1fr) 1.8rem; }
  .need-stepper input { width: 3.25rem; }
  .needs-tally { grid-template-columns: 1fr; margin-top: 1.5rem; }
  .needs-tally p { grid-template-columns: 1fr auto; align-items: baseline; }
  .needs-tally p + p { border-top: 1px solid rgba(21, 24, 23, .5); border-left: 0; }
  .needs-ending { margin-top: 1.75rem; margin-right: 3.5rem; font-size: 1.1rem; }
  .needs-reset { bottom: -.45rem; }
  .time-reveal { grid-template-columns: 1fr; margin-top: 2.5rem; }
  .time-reveal-heading { padding: 1.5rem 0; }
  .time-reveal-heading h3 { max-width: 18rem; font-size: 1.55rem; }
  .time-reveal-equation { grid-template-columns: 1fr; justify-items: start; gap: .65rem; border-top: 1px solid rgba(21, 24, 23, .5); border-left: 0; padding: 1.5rem 0; }
  .time-reveal-money { font-size: 1.8rem; }
  .time-reveal-verb { font-size: .88rem; text-align: left; }
  .time-reveal-duration { font-size: 2.65rem; }
  .time-reveal-facts { grid-template-columns: 1fr; }
  .time-reveal-facts p { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; padding-right: 0; padding-left: 0; }
  .time-reveal-facts p + p { border-top: 1px solid rgba(21, 24, 23, .5); border-left: 0; }
  .time-reveal-facts strong { text-align: right; }
  .time-reveal-note { padding: 1.25rem 0; font-size: 1.05rem; }
  .ratio-trial { margin-top: 2.5rem; padding-top: 1.75rem; }
  .ratio-trial-heading { grid-template-columns: 1fr; gap: 1rem; padding: 0 0 1.5rem; }
  .ratio-trial-heading p, .ratio-trial-heading h3, .ratio-trial-heading > span { grid-column: 1; }
  .ratio-trial-heading > span { grid-row: auto; border-top: 1px solid rgba(21, 24, 23, .45); border-left: 0; padding: 1rem 0 0; font-size: 1.05rem; }
  .ratio-options span { min-height: 3.2rem; padding: .35rem .15rem; font-size: .62rem; }
  .ratio-results { grid-template-columns: 1fr; }
  .ratio-results p { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; min-height: 0; padding: 1rem 0; }
  .ratio-results p + p { border-top: 1px solid rgba(21, 24, 23, .5); border-left: 0; }
  .ratio-results small { grid-column: 1 / -1; }
  .ratio-results strong { text-align: right; }
  .ratio-reading { padding: 1.5rem 0; font-size: 1.15rem; }
  .ratio-supports { grid-template-columns: 1fr; }
  .ratio-supports > p { padding: 1rem 0; }
  .ratio-supports > div { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(21, 24, 23, .5); border-left: 0; }
  .ratio-supports span { padding-right: .5rem; padding-left: .5rem; font-size: .65rem; }
  .ratio-supports span:nth-last-child(-n + 3) { border-bottom: 1px solid rgba(21, 24, 23, .25); }
  .ratio-supports span:nth-last-child(-n + 2) { border-bottom: 0; }
  .ratio-note { font-size: .64rem; }
  .integrated-swiza .closing > img { object-position: 68% center; }
  .integrated-swiza .closing-copy { align-self: start; padding-top: 8rem; }
  .integrated-swiza .closing-copy h2 { max-width: 15ch; font-size: 2.15rem; }
  .integrated-swiza .closing-copy > strong { margin-top: .9rem; font-size: 1.08rem; }
  .integrated-swiza .closing-copy a { margin-top: 1.6rem; }
  .future-postscript summary { min-height: 64svh; padding: 5rem 1rem 2.5rem; }
  .future-postscript summary > img { object-position: 57% center; }
  .future-copy > strong { font-size: 2.25rem; }
  .future-copy > span:not(.future-eyebrow, .future-open) { font-size: 1rem; }
  .future-context { padding: 2.5rem 1rem; }
  .future-context p { font-size: 1.1rem; }
}

@media (max-width: 390px) {
  .scene-copy h1, .scene-copy h2 { font-size: 2.15rem; }
  .game-heading h2 { font-size: 1.95rem; }
  .object-controls { gap: .55rem; }
  .object-controls button { width: 3rem; height: 3rem; }
  .trajectory-date { font-size: 2.15rem; }
  .trajectory-date-range { font-size: 1.35rem; }
  .trajectory-copy h3 { font-size: 1.1rem; }
  .trajectory-facts p { font-size: .72rem; }
  .integrated-crossing .moment-intro h1 { font-size: 2.3rem; }
  .integrated-crossing .moment h2 { font-size: 2.05rem; }
  .time-reveal-duration { font-size: 2.25rem; }
  .wheel-bank button { min-height: 4.25rem; padding-right: .2rem; padding-left: .2rem; font-size: .54rem; }
  .workshop-thread { grid-template-columns: minmax(0, 1fr) 2.25rem minmax(0, 1fr); gap: .55rem; font-size: .58rem; }
  .link-bank { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workshop-actions { align-items: stretch; }
  .open-calculator { flex: 1; }
  .future-copy > strong { font-size: 2.1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .mouth-sprite.overdrive::before, .mouth-sprite.overdrive::after, .impact-field { display: none; }
  .time-reveal * { transition-delay: 0s !important; }
  .optional-depth-media img { transform: none !important; }
}
