:root {
  --ink: #111111;
  --paper: #f4f0e5;
  --white: #fffef8;
  --yellow: #ffe600;
  --pink: #ff66c4;
  --blue: #53b7ff;
  --green: #75ef6b;
  --red: #ff4b3e;
  --border: 4px solid var(--ink);
  --shadow: 8px 8px 0 var(--ink);
  --max: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    linear-gradient(90deg, rgba(17,17,17,.04) 1px, transparent 1px),
    linear-gradient(rgba(17,17,17,.04) 1px, transparent 1px),
    var(--paper);
  background-size: 24px 24px;
  font-family: "Arial Black", "Hiragino Kaku Gothic ProN", "Yu Gothic", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
}

a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
:focus-visible {
  outline: 4px solid var(--white);
  outline-offset: 3px;
  box-shadow: 0 0 0 8px var(--ink) !important;
}
[hidden] { display: none !important; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  border: var(--border);
  background: var(--white);
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

.breaking {
  display: flex;
  min-height: 44px;
  border-bottom: var(--border);
  background: var(--ink);
  color: var(--white);
  font-weight: 900;
  letter-spacing: .03em;
}
.breaking__label {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  padding: 8px 18px;
  background: var(--red);
  color: var(--ink);
  border-right: var(--border);
}
.breaking__text { padding: 9px 18px; }

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(calc(100% - 32px), var(--max));
  margin: 20px auto;
}
.brand {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  text-decoration: none;
}
.brand__mark {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: var(--border);
  background: var(--yellow);
  box-shadow: 5px 5px 0 var(--ink);
  font-size: 2rem;
  line-height: 1;
}
.brand b { display: block; font-size: clamp(1.45rem, 3vw, 2.4rem); line-height: 1; letter-spacing: -.04em; }
.brand small { display: block; margin-top: 5px; font: 800 clamp(.78rem, 1.2vw, .95rem)/1.35 ui-monospace, monospace; letter-spacing: .05em; }
.header-stamp {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  border: 5px double var(--red);
  color: var(--red);
  border-radius: 50%;
  font-size: .9rem;
  font-weight: 900;
  line-height: 1.1;
  text-align: center;
  transform: rotate(11deg);
}

.world-switcher {
  position: sticky;
  z-index: 50;
  top: 0;
  display: flex;
  align-items: stretch;
  border-block: var(--border);
  background: var(--paper);
  box-shadow: 0 6px 0 var(--ink);
}
.world-switcher__home,
.world-switcher__links li {
  display: grid;
  place-items: center;
  min-height: 52px;
  padding: 8px 14px;
  border-right: 3px solid var(--ink);
  font-size: clamp(.9rem, 1.3vw, 1rem);
  font-weight: 900;
}
.world-switcher__home { flex: 0 0 auto; background: var(--ink); color: var(--white); }
.world-switcher__progress {
  display: grid;
  flex: 0 0 auto;
  min-width: 118px;
  place-content: center;
  padding: 5px 12px;
  border-right: 3px solid var(--ink);
  background: var(--red);
  line-height: 1;
  text-align: center;
}
.world-switcher__progress span { font-size: .85rem; }
.world-switcher__progress b { font-size: 1.25rem; }
.world-switcher__progress small { margin-top: 4px; font: 900 .78rem/1.2 ui-monospace, monospace; }
.world-switcher__links { display: flex; flex: 1; margin: 0; padding: 0; overflow-x: auto; list-style: none; }
.world-switcher__links li { flex: 1 0 52px; padding-inline: 10px; background: #d7d2c7; color: #68645d; }
.world-switcher__links li[data-state="completed"] { background: var(--ink); color: var(--white); text-decoration: line-through; }
.world-switcher__links li[data-state="current"] { background: var(--yellow); color: var(--ink); box-shadow: inset 0 -7px 0 var(--red); }
.on-world > .breaking,
.on-world > .site-header { display: none; }
.on-final > .breaking,
.on-final > .site-header,
.on-final > .world-switcher,
.on-final > .site-footer { display: none !important; }
.on-final { background: var(--red); }

.effect-layer {
  position: fixed;
  z-index: 80;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.comedy-particle {
  position: fixed;
  left: var(--particle-left);
  top: var(--particle-top);
  display: grid;
  min-width: 48px;
  min-height: 48px;
  place-items: center;
  padding: 5px;
  border: 3px solid var(--ink);
  background: var(--particle-color, var(--yellow));
  box-shadow: 4px 4px 0 var(--ink);
  font-size: clamp(1.1rem, 3vw, 2rem);
  line-height: 1;
  animation: comedy-burst 1.25s cubic-bezier(.15,.8,.25,1) forwards;
}

.selection-intro {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: auto;
  background: var(--yellow);
  color: var(--ink);
}
.selection-intro[open] { display: block; }
.selection-intro::backdrop { background: var(--ink); }
.selection-intro__gate,
.selection-intro__notice { position: relative; isolation: isolate; min-height: 100dvh; overflow: hidden; }
.selection-intro__gate {
  display: grid;
  width: 100%;
  place-content: center;
  justify-items: start;
  gap: clamp(12px, 1.5vw, 18px);
  padding: clamp(82px, 10vw, 136px) max(24px, calc((100vw - 1120px) / 2));
  background:
    linear-gradient(90deg, transparent 0 49%, rgba(17,17,17,.08) 49% 51%, transparent 51%),
    var(--yellow);
  animation: selection-intro-gate-in .65s cubic-bezier(.15,.85,.2,1.15) both;
}
.selection-intro__gate::before,
.selection-intro__gate::after {
  content: "TOP SECRET";
  position: absolute;
  z-index: -1;
  color: rgba(17,17,17,.08);
  font-size: clamp(6rem, 18vw, 17rem);
  line-height: .75;
  white-space: nowrap;
  transform: rotate(-8deg);
}
.selection-intro__gate::before { right: -3vw; top: 12vh; }
.selection-intro__gate::after { left: -4vw; bottom: 7vh; transform: rotate(8deg); }
.selection-intro__ticker,
.selection-intro__warning {
  position: absolute;
  z-index: 5;
  inset: 0 0 auto;
  min-height: 54px;
  padding: 14px 24px;
  border-bottom: 5px solid var(--ink);
  overflow: hidden;
  background: var(--ink);
  color: var(--yellow);
  font: 900 clamp(.8rem, 1.5vw, 1.1rem)/1 ui-monospace, monospace;
  letter-spacing: .16em;
  text-align: center;
  white-space: nowrap;
}
.selection-intro__agency,
.selection-intro__notice-kicker {
  display: grid;
  gap: 7px;
  width: min(100%, 860px);
  margin: 0;
  padding: 16px 20px;
  border: 6px solid var(--ink);
  background: var(--white);
  box-shadow: 8px 8px 0 var(--ink);
}
.selection-intro__agency strong,
.selection-intro__notice-kicker strong {
  font: 900 clamp(2.4rem, 4.8vw, 4.8rem)/.9 "Arial Black", "Yu Gothic", sans-serif;
  letter-spacing: -.07em;
}
.selection-intro__agency span,
.selection-intro__notice-kicker span {
  font: 900 clamp(1rem, 1.8vw, 1.4rem)/1.25 ui-monospace, monospace;
  letter-spacing: .04em;
}
.selection-intro__stamp {
  position: absolute;
  right: max(24px, calc((100vw - 1120px) / 2));
  top: clamp(90px, 12vw, 150px);
  display: grid;
  width: clamp(108px, 13vw, 170px);
  aspect-ratio: 1;
  margin: 0;
  place-items: center;
  border: 11px double var(--red);
  background: var(--white);
  color: var(--red);
  font: 900 clamp(1rem, 2vw, 1.5rem)/1.05 "Yu Gothic", system-ui, sans-serif;
  text-align: center;
  transform: rotate(10deg);
}
.selection-intro__gate h2 {
  display: grid;
  gap: .14em;
  max-width: 920px;
  margin: 0;
  font-size: clamp(3.5rem, 7vw, 7rem);
  line-height: .96;
  letter-spacing: -.075em;
}
.selection-intro__gate h2 span,
.selection-intro__gate h2 em { display: block; }
.selection-intro__gate h2 em { color: var(--red); font-style: normal; text-shadow: none; white-space: nowrap; }
.selection-intro__open,
.selection-intro__enter { width: min(100%, 620px); min-height: 68px; cursor: pointer; }
.selection-intro__gate > small { max-width: 760px; font: 800 clamp(1rem, 1.5vw, 1.1rem)/1.55 "Yu Gothic", system-ui, sans-serif; }

.selection-intro__notice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "kicker stamp" "title title" "reason reason" "criteria criteria" "steps steps" "enter enter" "foot foot";
  align-content: center;
  gap: clamp(8px, 1vw, 12px) clamp(18px, 4vw, 52px);
  padding: clamp(52px, 4.2vw, 62px) max(24px, calc((100vw - 1180px) / 2)) clamp(22px, 3vw, 34px);
  background: var(--red);
}
.selection-intro__burst {
  position: absolute;
  z-index: -2;
  inset: -60vmax;
  background: repeating-conic-gradient(from -8deg, var(--yellow) 0 8deg, var(--red) 8deg 17deg);
  transform: rotate(-8deg);
}
.selection-intro__notice::after {
  content: "SELECTED";
  position: absolute;
  z-index: -1;
  right: -3vw;
  bottom: 5vh;
  color: rgba(17,17,17,.12);
  font-size: clamp(6rem, 20vw, 19rem);
  line-height: .7;
  transform: rotate(-7deg);
}
.selection-intro__warning { background: var(--ink); color: var(--yellow); }
.selection-intro__notice-kicker { grid-area: kicker; align-self: end; }
.selection-intro__notice-kicker {
  padding-block: 12px;
}
.selection-intro__notice-kicker strong { font-size: clamp(2.25rem, 3.6vw, 3.5rem); }
.selection-intro__notice-stamp {
  grid-area: stamp;
  align-self: center;
  display: grid;
  width: clamp(106px, 11vw, 140px);
  aspect-ratio: 1;
  margin: 0;
  place-items: center;
  border: 10px double var(--ink);
  background: var(--white);
  color: var(--red);
  font-size: clamp(3.4rem, 6vw, 5.4rem);
  line-height: .76;
  text-align: center;
  box-shadow: 10px 10px 0 var(--ink);
  transform: rotate(10deg);
}
.selection-intro__notice h2 {
  grid-area: title;
  display: grid;
  gap: .12em;
  max-width: 1180px;
  margin: 0;
  font-size: clamp(3.25rem, 4.1vw, 4.25rem);
  line-height: .98;
  letter-spacing: -.08em;
  text-wrap: balance;
  animation: selection-intro-title-slam .85s cubic-bezier(.12,.86,.18,1.18) both;
}
.selection-intro__notice h2 span,
.selection-intro__notice h2 em { display: block; }
.selection-intro__notice h2 em { color: var(--white); font-style: normal; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; text-shadow: none; }
.selection-intro__reason {
  grid-area: reason;
  display: grid;
  grid-template-columns: auto 1fr;
  width: min(100%, 800px);
  margin: 0;
  border: 5px solid var(--ink);
  background: var(--white);
  box-shadow: 8px 8px 0 var(--ink);
  font: 900 clamp(1rem, 2vw, 1.45rem)/1.3 "Yu Gothic", system-ui, sans-serif;
  animation: selection-intro-card-slam .65s cubic-bezier(.15,.85,.2,1.15) .18s both;
}
.selection-intro__reason strong { padding: 12px 16px; background: var(--ink); color: var(--yellow); }
.selection-intro__reason span { padding: 12px 16px; }
.selection-intro__criteria {
  grid-area: criteria;
  display: flex;
  align-items: stretch;
  width: min(100%, 1000px);
  margin: 0;
  border: 5px solid var(--ink);
  background: var(--yellow);
  box-shadow: 8px 8px 0 var(--ink);
  font-family: "Yu Gothic", system-ui, sans-serif;
  animation: selection-intro-card-slam .65s cubic-bezier(.15,.85,.2,1.15) .24s both;
}
.selection-intro__criteria span {
  display: grid;
  flex: 0 0 auto;
  min-width: 118px;
  place-items: center;
  padding: 12px 16px;
  background: var(--ink);
  color: var(--yellow);
  font-size: clamp(1rem, 1.7vw, 1.3rem);
  font-weight: 900;
}
.selection-intro__criteria strong {
  display: grid;
  place-items: center start;
  padding: 12px 16px;
  font-size: clamp(1rem, 1.8vw, 1.4rem);
  line-height: 1.35;
}
.selection-intro__plain-copy { grid-area: plain; margin: 0; font: 900 clamp(1rem, 1.8vw, 1.3rem)/1.4 "Yu Gothic", system-ui, sans-serif; }
.selection-intro__steps {
  grid-area: steps;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border: 5px solid var(--ink);
  background: var(--white);
  box-shadow: 9px 9px 0 var(--ink);
  list-style: none;
  animation: selection-intro-card-slam .7s cubic-bezier(.15,.85,.2,1.15) .3s both;
}
.selection-intro__steps li { display: grid; grid-template-columns: auto 1fr; min-width: 0; border-right: 4px solid var(--ink); }
.selection-intro__steps li:last-child { border-right: 0; }
.selection-intro__steps b { display: grid; min-width: 54px; place-items: center; border-right: 4px solid var(--ink); background: var(--yellow); color: var(--red); font-size: 1.35rem; }
.selection-intro__steps span { display: grid; gap: 4px; align-content: center; min-width: 0; padding: 10px 12px; }
.selection-intro__steps strong { font: 900 clamp(.9rem, 1.6vw, 1.15rem)/1.3 "Yu Gothic", system-ui, sans-serif; }
.selection-intro__steps small { font: 800 clamp(.95rem, 1.25vw, 1.05rem)/1.45 "Yu Gothic", system-ui, sans-serif; }
.selection-intro__enter { grid-area: enter; animation: selection-intro-enter-in .7s cubic-bezier(.15,.85,.2,1.15) .46s both; }
.selection-intro__footnote { grid-area: foot; margin: 0; font: 900 clamp(.95rem, 1.4vw, 1.08rem)/1.4 ui-monospace, monospace; letter-spacing: .04em; }

@keyframes selection-intro-gate-in { from { transform: scale(.97); } to { transform: scale(1); } }
@keyframes selection-intro-title-slam { from { transform: scale(2.1) rotate(-4deg); } 72% { transform: scale(.94) rotate(1deg); } to { transform: scale(1) rotate(0); } }
@keyframes selection-intro-card-slam { from { transform: translateY(80px) rotate(2deg); } to { transform: translateY(0) rotate(0); } }
@keyframes selection-intro-enter-in { from { transform: translateX(-110%); } to { transform: translateX(0); } }

.view--hub { width: min(calc(100% - 32px), var(--max)); margin: 0 auto; }
.hub-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: clamp(28px, 5vw, 68px);
  align-items: center;
  min-height: 620px;
  padding: clamp(36px, 7vw, 88px);
  border: var(--border);
  box-shadow: 12px 12px 0 var(--ink);
  background: var(--yellow);
  overflow: hidden;
  position: relative;
}
.hub-hero::before {
  content: "MUDA\A MUDA\A MUDA";
  white-space: pre;
  position: absolute;
  right: -10px;
  bottom: -45px;
  font-size: clamp(5rem, 14vw, 13rem);
  line-height: .62;
  color: rgba(17,17,17,.08);
  transform: rotate(-8deg);
  pointer-events: none;
}
.hub-hero__copy { position: relative; z-index: 1; }
.hub-slogan {
  display: inline-block;
  width: fit-content;
  margin: 0 0 24px;
  padding: 12px 18px;
  border: 4px solid var(--ink);
  background: var(--red);
  box-shadow: 7px 7px 0 var(--ink);
  font: 900 clamp(1.05rem, 2vw, 1.45rem)/1.35 "Yu Gothic", system-ui, sans-serif;
  transform: rotate(-1deg);
}
.hub-hero h1 { max-width: 940px; font-size: clamp(3rem, 5.2vw, 6.4rem); }
.mission-rules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 28px 0 0;
  padding: 0;
  border: 3px solid var(--ink);
  background: var(--white);
  list-style: none;
}
.mission-rules li { display: grid; grid-template-columns: auto 1fr; align-items: center; min-height: 58px; border-right: 3px solid var(--ink); }
.mission-rules li:last-child { border-right: 0; }
.mission-rules b { align-self: stretch; display: grid; place-items: center; min-width: 48px; border-right: 3px solid var(--ink); background: var(--red); }
.mission-rules span { display: grid; gap: 3px; padding: 8px; font-size: clamp(.7rem, 1.25vw, .9rem); text-align: center; }
.mission-rules strong { font-size: 1.05em; }
.mission-rules small { font-family: "Yu Gothic", system-ui, sans-serif; font-size: .82em; font-weight: 800; line-height: 1.25; }
.hub-mission {
  position: relative;
  z-index: 1;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(24px, 4vw, 42px);
  border: 6px solid var(--ink);
  background: var(--white);
  box-shadow: 12px 12px 0 var(--red);
  transform: rotate(1deg);
}
.hub-mission::before { content: "特別\A招集"; white-space: pre; position: absolute; z-index: 3; right: -22px; top: -24px; display: grid; width: 82px; aspect-ratio: 1; place-items: center; border: 8px double var(--red); background: var(--white); color: var(--red); font: 900 .8rem/1.05 "Yu Gothic", system-ui, sans-serif; text-align: center; transform: rotate(10deg); }
.hub-mission > p { align-self: flex-start; max-width: calc(100% - 58px); margin: 0 0 12px; padding: 6px 9px; background: var(--ink); color: var(--white); font: 900 .72rem/1.25 ui-monospace, monospace; }
.hub-mission > strong { display: flex; align-items: baseline; gap: 8px; color: var(--red); font-size: clamp(5rem, 9vw, 8rem); line-height: .8; letter-spacing: -.08em; }
.hub-mission > strong small { color: var(--ink); font-size: .15em; letter-spacing: 0; }
.hub-mission > span { margin: 22px 0 4px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 900; }
.hub-mission h2 { margin: 0 0 24px; font-size: clamp(1.7rem, 3.3vw, 3.2rem); line-height: .95; letter-spacing: -.04em; }
.hub-mission h2 small { display: block; margin-bottom: 8px; font: 900 .34em/1 ui-monospace, monospace; letter-spacing: .08em; }
.hub-mission h2 span { display: block; }
.hub-mission > small { margin-top: 18px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; line-height: 1.5; }
.eyebrow {
  display: inline-block;
  margin: 0 0 26px;
  padding: 11px 16px;
  border: 4px solid var(--ink);
  background: var(--white);
  font: 900 clamp(.88rem, 1.65vw, 1.18rem)/1.15 ui-monospace, monospace;
  letter-spacing: .08em;
  transform: rotate(-1deg);
}
.eyebrow--agency {
  display: grid;
  gap: 7px;
  width: min(100%, 850px);
}
.eyebrow--agency strong {
  font-size: clamp(2rem, 4.8vw, 4.5rem);
  line-height: .9;
  letter-spacing: -.065em;
}
.eyebrow--agency span {
  font: 900 clamp(1rem, 1.6vw, 1.3rem)/1.3 ui-monospace, monospace;
  letter-spacing: .03em;
}
h1 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(3.3rem, 8.7vw, 8.5rem);
  line-height: 1.02;
  letter-spacing: -.06em;
}
.hub-title-row { display: block; }
.hub-title-row + .hub-title-row { margin-top: .14em; }
.hub-title-row--outline {
  color: var(--white);
  -webkit-text-stroke: 4px var(--ink);
  paint-order: stroke fill;
}
.hub-lede {
  max-width: 720px;
  margin: 30px 0;
  font-family: "Yu Gothic", system-ui, sans-serif;
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 800;
}
.brutal-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 58px;
  padding: 14px 20px;
  border: var(--border);
  box-shadow: 6px 6px 0 var(--ink);
  text-decoration: none;
  font-size: 1rem;
  font-weight: 900;
}
.brutal-button:hover { transform: translate(3px, 3px); box-shadow: 3px 3px 0 var(--ink); }
.brutal-button--black { background: var(--ink); color: var(--white); box-shadow: 6px 6px 0 var(--red); }
.brutal-button--black:hover { box-shadow: 3px 3px 0 var(--red); }
.hub-hero__seal {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  border: 7px double var(--ink);
  border-radius: 50%;
  background: var(--pink);
  box-shadow: 12px 12px 0 var(--ink);
  text-align: center;
  transform: rotate(7deg);
}
.hub-hero__seal strong { font-size: clamp(4rem, 9vw, 8rem); line-height: 1; letter-spacing: -.08em; }
.hub-hero__seal span { font-size: clamp(.85rem, 1.8vw, 1.25rem); }

.personnel-progress {
  display: grid;
  grid-template-columns: 150px 1fr;
  margin: 0 0 48px;
  border: var(--border);
  background: var(--white);
  box-shadow: var(--shadow);
}
.personnel-progress__label {
  display: grid;
  place-items: center;
  padding: 20px;
  border-right: var(--border);
  background: var(--red);
  font-size: 1.5rem;
  line-height: 1.05;
  text-align: center;
}
.personnel-progress__body { padding: clamp(22px, 4vw, 42px); }
.personnel-progress__body h2 {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  font-size: clamp(1.7rem, 4vw, 3.6rem);
  line-height: 1;
}
.personnel-progress__body h2 strong { color: var(--red); white-space: nowrap; }
.personnel-progress__body > p:not(.form-number) { margin: 18px 0; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 900; }
.personnel-progress__body > small { display: block; margin-top: 16px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 700; }
.progress-slots { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.progress-slots span {
  display: grid;
  min-height: 48px;
  place-items: center;
  border: 3px solid var(--ink);
  background: var(--paper);
  color: #777;
  font: 900 1rem/1 ui-monospace, monospace;
}
.progress-slots span[data-complete="true"] { background: var(--yellow); color: var(--ink); box-shadow: inset 0 0 0 4px var(--red); }

.department-section { scroll-margin-top: 24px; }
.section-heading { margin-bottom: 28px; }
.section-heading p { margin: 0 0 10px; font: 900 1rem/1.2 ui-monospace, monospace; letter-spacing: .08em; }
.section-heading h2 { margin: 0; font-size: clamp(2.25rem, 6vw, 6.5rem); line-height: .98; letter-spacing: -.055em; }
.section-heading h2 small { display: block; margin-top: 14px; font-size: clamp(1rem, 1.8vw, 1.35rem); line-height: 1.35; letter-spacing: 0; }

.department-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 28px;
  margin: 0 0 84px;
  padding: 0;
  list-style: none;
}
.department-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 360px;
  padding: 26px;
  border: var(--border);
  box-shadow: var(--shadow);
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.department-card:nth-child(1), .department-card:nth-child(2), .department-card:nth-child(3) { grid-column: span 2; }
.department-card:nth-child(4) { grid-column: 1 / span 3; }
.department-card:nth-child(5) { grid-column: 4 / span 3; }
.department-card:nth-child(1) { transform: rotate(-1deg); }
.department-card:nth-child(2) { transform: rotate(1.2deg); }
.department-card:nth-child(3) { transform: rotate(-.6deg); }
.department-card:nth-child(4) { transform: rotate(.7deg); }
.department-card:nth-child(5) { transform: rotate(-.8deg); }
.department-card[data-state="current"]:hover { transform: translate(4px, 4px) rotate(0); box-shadow: 4px 4px 0 var(--ink); }
.department-card[data-visited="true"]::after {
  content: "視察済";
  position: absolute;
  right: 18px;
  top: 18px;
  padding: 7px 9px;
  border: 4px double var(--red);
  background: var(--white);
  color: var(--red);
  font-size: .72rem;
  transform: rotate(9deg);
}
.department-card[data-completed="true"] {
  outline: 7px solid var(--ink);
  outline-offset: -14px;
}
.department-card[data-completed="true"]::after {
  content: attr(data-result-label);
  right: 14px;
  top: 14px;
  max-width: 150px;
  padding: 10px;
  border: 6px double var(--red);
  background: var(--white);
  color: var(--red);
  font-size: .78rem;
  line-height: 1.05;
  text-align: center;
  transform: rotate(7deg);
}
.department-card__num { font-size: 1rem; }
.department-card__tag {
  align-self: flex-start;
  margin: 12px 0 auto;
  padding: 6px 9px;
  border: 2px solid var(--ink);
  background: var(--white);
  font-size: .92rem;
}
.department-card strong { display: block; margin: 22px 0 14px; font-size: clamp(1.8rem, 4vw, 3.6rem); line-height: .95; letter-spacing: -.05em; }
.department-card > span:not([class]) { font-family: "Yu Gothic", system-ui, sans-serif; font-size: 1rem; font-weight: 800; line-height: 1.55; }
.department-card b { margin-top: 28px; text-decoration: underline; text-underline-offset: 5px; }
.department-card[data-state="completed"] {
  background: #d9d5ca;
  color: #5a5750;
  box-shadow: 4px 4px 0 #77736b;
  filter: grayscale(.45);
}
.department-card[data-state="completed"]::after {
  content: "処理済";
  position: absolute;
  right: 18px;
  top: 18px;
  padding: 8px 10px;
  border: 5px double var(--red);
  background: var(--white);
  color: var(--red);
  font-size: .75rem;
  transform: rotate(7deg);
}
.department-card[data-state="locked"] {
  background-color: #c9c5bb;
  background-image: repeating-linear-gradient(-45deg, transparent 0 14px, rgba(17,17,17,.09) 14px 28px);
  color: #5c5952;
  box-shadow: 4px 4px 0 #77736b;
  filter: grayscale(.7);
}
.department-card[data-state="locked"] .department-card__tag::before { content: "LOCKED / "; }
.department-card[data-state="current"] { outline: 8px solid var(--ink); outline-offset: -14px; }
.department-card__action,
.department-card__state {
  display: flex;
  align-items: center;
  min-height: 52px;
  margin-top: 28px;
  padding: 10px 12px;
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.2;
  text-decoration: none;
}
.department-card__action { box-shadow: 5px 5px 0 var(--ink); }
.department-card__action:hover { transform: translate(2px, 2px); box-shadow: 3px 3px 0 var(--ink); }
.department-card__state { background: rgba(255,254,248,.72); text-decoration: none !important; }
.department-card.is-newly-opened { animation: newly-opened .65s steps(2, end) 2; }
.processing-receipt {
  position: relative;
  margin: 0 0 52px;
  padding: clamp(24px, 5vw, 48px);
  border: 7px double var(--red);
  background: var(--white);
  box-shadow: 10px 10px 0 var(--ink);
  scroll-margin-top: 24px;
  transform: rotate(-.5deg);
}
.processing-receipt::after { content: "処理済"; position: absolute; right: 5%; top: 18%; padding: 14px; border: 8px double var(--red); color: var(--red); font-size: clamp(1.3rem, 4vw, 2.8rem); transform: rotate(9deg); }
.processing-receipt span { display: block; font: 900 .78rem/1 ui-monospace, monospace; letter-spacing: .1em; }
.processing-receipt strong { display: block; max-width: 80%; margin: 14px 0 6px; font-size: clamp(2rem, 5vw, 4.8rem); line-height: .95; }
.processing-receipt p { max-width: 72%; margin: 0; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 900; }
.card--yellow { background: var(--yellow); }
.card--pink { background: var(--pink); }
.card--blue { background: var(--blue); }
.card--green { background: var(--green); }
.card--red { background: var(--red); }

.random-office {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 18px;
  align-items: center;
  min-height: 86px;
  margin: 44px 0 80px;
  padding: 16px 24px;
  border: var(--border);
  box-shadow: var(--shadow);
  background: var(--ink);
  color: var(--white);
  cursor: pointer;
  text-align: left;
}
.random-office strong { font-size: clamp(1.25rem, 3vw, 2rem); text-align: center; }
.random-office > span:last-child { font-size: 2rem; }
.random-office:hover { background: var(--pink); color: var(--ink); }

.secret-office-lock {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: center;
  margin: -38px 0 80px;
  padding: 24px;
  border: var(--border);
  background: repeating-linear-gradient(-45deg, var(--ink) 0 18px, #2d2d2d 18px 36px);
  color: var(--white);
  box-shadow: var(--shadow);
}
.secret-office-lock__num { color: var(--yellow); font-size: clamp(3rem, 8vw, 7rem); line-height: .8; }
.secret-office-lock p { margin: 4px 0; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; }
.secret-office-lock div > p:first-child { color: var(--yellow); font: 900 .7rem/1 ui-monospace, monospace; letter-spacing: .12em; }
.secret-office-lock h3 { margin: 6px 0; font-size: clamp(1.8rem, 4vw, 3.6rem); line-height: 1; }
.secret-office-lock > strong { padding: 14px; border: 3px solid var(--white); background: var(--red); color: var(--ink); font-size: 1.4rem; white-space: nowrap; }

.final-office {
  position: relative;
  width: 100%;
  min-height: 100dvh;
  margin: 0;
  padding: clamp(82px, 8vw, 120px) max(16px, calc((100% - var(--max)) / 2)) clamp(56px, 8vw, 110px);
  border: 0;
  background: var(--red);
  box-shadow: none;
  overflow: clip;
}
.final-office::before {
  content: "";
  position: absolute;
  right: -2vw;
  top: 7rem;
  width: 62%;
  height: 58%;
  background: repeating-linear-gradient(-18deg, rgba(17,17,17,.08) 0 44px, transparent 44px 88px);
  transform: rotate(-7deg);
}
.final-office__tape {
  position: absolute;
  left: -2%;
  top: 14px;
  width: 104%;
  padding: 12px;
  border-block: 4px solid var(--ink);
  background: var(--yellow);
  font: 900 clamp(1rem, 1.55vw, 1.45rem)/1 ui-monospace, monospace;
  letter-spacing: .1em;
  text-align: center;
  transform: rotate(-1deg);
}
.final-office__inner { position: relative; z-index: 1; width: min(100%, var(--max)); margin: 0 auto; }
.final-office__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(340px, .62fr);
  grid-template-areas:
    "eyebrow waste"
    "notice waste"
    "warning waste"
    "title waste"
    "stamp waste"
    "lede waste";
  gap: 22px clamp(34px, 5vw, 76px);
  align-items: start;
}
.final-office .eyebrow { grid-area: eyebrow; position: relative; z-index: 1; margin: 22px 0 0; font-size: clamp(1rem, 1.5vw, 1.3rem); }
.final-office__notice { grid-area: notice; max-width: 960px; margin: 0; padding: 16px 20px; border: 4px solid var(--ink); background: var(--white); font: 900 clamp(1.1rem, 1.8vw, 1.5rem)/1.55 "Yu Gothic", system-ui, sans-serif; box-shadow: 6px 6px 0 var(--ink); }
.final-office__emergency { grid-area: warning; width: fit-content; max-width: 100%; margin: 0; padding: 10px 14px; border: 5px solid var(--ink); background: var(--red); color: var(--ink); box-shadow: 8px 8px 0 var(--ink); font: 900 clamp(.9rem, 1.8vw, 1.3rem)/1 "Yu Gothic", system-ui, sans-serif; letter-spacing: .04em; }
.final-office__emergency span { display: inline-block; margin-right: 10px; color: var(--white); font-family: ui-monospace, monospace; letter-spacing: .12em; }
.final-office h1 { grid-area: title; position: relative; z-index: 1; margin: 6px 0 4px; font-size: clamp(3.8rem, 5.4vw, 6.4rem); line-height: .98; letter-spacing: -.06em; }
.final-office h1 em { color: var(--yellow); font-style: normal; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; text-shadow: none; }
.final-office__appoint-stamp { grid-area: stamp; justify-self: start; position: relative; z-index: 2; margin: 0; padding: 9px 15px; border: 8px double var(--ink); background: var(--white); color: var(--red); box-shadow: 7px 7px 0 var(--ink); font: 900 clamp(3.1rem, 6.2vw, 6.8rem)/.72 "Yu Gothic", system-ui, sans-serif; letter-spacing: -.08em; transform: rotate(-7deg); }
.final-office__lede { grid-area: lede; position: relative; z-index: 1; max-width: 900px; margin: 0; font-family: "Yu Gothic", system-ui, sans-serif; font-size: clamp(1.05rem, 1.8vw, 1.4rem); font-weight: 900; line-height: 1.65; }
.waste-verdict { grid-area: waste; position: sticky; top: 32px; align-self: start; min-width: 0; margin-top: 22px; padding: clamp(22px, 3vw, 38px); border: 7px solid var(--ink); background: var(--ink); color: var(--white); box-shadow: 12px 12px 0 var(--yellow); transform: rotate(1deg); }
.waste-verdict > span { display: block; color: var(--yellow); font: 900 clamp(.9rem, 1.5vw, 1.25rem)/1.25 ui-monospace, monospace; letter-spacing: .08em; }
.waste-verdict > strong { display: flex; align-items: end; min-width: 0; margin: 14px 0 4px; color: var(--yellow); font-variant-numeric: tabular-nums; line-height: .8; white-space: nowrap; }
.waste-verdict > strong b { min-width: 0; font-size: clamp(4.5rem, 7vw, 7.2rem); letter-spacing: -.08em; }
.waste-verdict > strong small { margin: 0 0 8px 8px; color: var(--white); font-size: clamp(1.4rem, 2.5vw, 2.4rem); }
.waste-verdict > p { margin: 22px 0; padding: 12px; border: 3px solid var(--yellow); background: var(--red); color: var(--ink); font: 900 clamp(1rem, 1.6vw, 1.3rem)/1.35 "Yu Gothic", system-ui, sans-serif; }
.waste-verdict dl { margin: 0; border: 2px solid var(--white); font-family: "Yu Gothic", system-ui, sans-serif; }
.waste-verdict dl div { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 10px; border-bottom: 2px solid var(--white); }
.waste-verdict dl div:last-child { border-bottom: 0; }
.waste-verdict dt { font-weight: 800; }
.waste-verdict dd { margin: 0; color: var(--yellow); font-weight: 900; }
.final-verification {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin: clamp(70px, 10vw, 140px) 0 30px;
  padding: 0;
  border: var(--border);
  background: var(--white);
  box-shadow: 9px 9px 0 var(--ink);
  list-style: none;
}
.final-verification li { display: grid; gap: 7px; min-height: 126px; padding: 18px; border-right: 3px solid var(--ink); font-size: 1rem; }
.final-verification li:last-child { border-right: 0; }
.final-verification span { font: 900 .9rem/1 ui-monospace, monospace; }
.final-verification b { align-self: end; color: var(--red); font-size: 1.25rem; }
.appointment-letter {
  position: relative;
  z-index: 1;
  width: min(100%, 920px);
  margin: 52px auto 36px;
  padding: clamp(26px, 6vw, 64px);
  border: var(--border);
  background: var(--white);
  box-shadow: 14px 14px 0 var(--ink);
  font-family: "Yu Mincho", serif;
  transform: rotate(-1deg);
}
.appointment-letter__heading { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; border-bottom: 5px double var(--ink); padding-bottom: 24px; }
.appointment-letter__heading span { writing-mode: vertical-rl; font-weight: 900; letter-spacing: .25em; }
.appointment-letter__heading strong { font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: clamp(2.5rem, 6vw, 5.5rem); line-height: .9; }
.appointment-letter dl { margin: 30px 0; border: 3px solid var(--ink); }
.appointment-letter dl div { display: grid; grid-template-columns: 150px 1fr; border-bottom: 2px solid var(--ink); }
.appointment-letter dl div:last-child { border-bottom: 0; }
.appointment-letter dt,
.appointment-letter dd { margin: 0; padding: 12px 16px; overflow-wrap: anywhere; }
.appointment-letter dt { border-right: 2px solid var(--ink); background: var(--paper); font-weight: 900; }
.appointment-letter > p { max-width: 700px; font-weight: 700; line-height: 2; }
.appointment-letter__seal { position: absolute; right: clamp(18px, 5vw, 56px); bottom: 32px; padding: 16px; border: 9px double var(--red); color: var(--red); background: rgba(255,254,248,.9); font-family: "Arial Black", "Yu Gothic", sans-serif; font-size: 1rem; line-height: 1; text-align: center; transform: rotate(-9deg); }
.appointment-letter__seal strong { font-size: 1.7rem; }
.final-office__actions { position: relative; z-index: 2; width: min(100%, 920px); margin: 58px auto 20px; text-align: center; }
.final-office__actions .brutal-action { width: min(100%, 720px); min-height: 72px; background: var(--yellow); color: var(--ink); font-size: clamp(1rem, 1.8vw, 1.3rem); box-shadow: 10px 10px 0 var(--ink); }
.brutal-action--black { background: var(--ink); color: var(--white); }
.final-office__actions p { min-height: 1.6em; font-weight: 900; }
.final-office.is-revealed .final-office__hero { animation: final-office-arrival .52s cubic-bezier(.15,.85,.2,1) both; }
.final-office.is-revealed .final-office__emergency { animation: final-office-warning .68s cubic-bezier(.15,.85,.2,1.22) .06s both; }
.final-office.is-revealed h1 { animation: final-office-title-slam .78s cubic-bezier(.15,.85,.2,1.25) .14s both; }
.final-office.is-revealed .final-office__appoint-stamp { animation: final-office-appoint-stamp .72s cubic-bezier(.15,.85,.2,1.25) .38s both; }
.final-office.is-revealed .waste-verdict { animation: waste-verdict-slam .82s cubic-bezier(.15,.85,.2,1.22) .28s both; }
.final-office.is-appointed .appointment-letter { animation: appointment-slam .65s cubic-bezier(.15,.85,.2,1.25) both; }

.completion-dialog {
  width: min(calc(100% - 18px), 1180px);
  max-width: none;
  max-height: calc(100dvh - 18px);
  margin: auto;
  padding: clamp(62px, 7vw, 86px) clamp(20px, 5vw, 66px) clamp(30px, 5vw, 58px);
  border: 8px solid var(--ink);
  background: var(--yellow);
  color: var(--ink);
  box-shadow: 18px 18px 0 var(--red);
  overflow-x: hidden;
  overflow-y: auto;
  isolation: isolate;
}
.completion-dialog[open] { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: clamp(24px, 4vw, 54px); align-items: center; }
.completion-dialog::backdrop { background: rgba(17,17,17,.92); }
.completion-dialog__stripe { position: absolute; z-index: 5; left: -3%; top: 14px; width: 106%; padding: 11px; border-block: 4px solid var(--ink); background: var(--red); font: 900 clamp(.76rem, 1.3vw, 1rem)/1 ui-monospace, monospace; letter-spacing: .14em; text-align: center; white-space: nowrap; overflow: hidden; transform: rotate(-1deg); }
.completion-impact { position: relative; display: grid; min-height: clamp(270px, 43vh, 440px); place-content: center; gap: 12px; padding: clamp(28px, 5vw, 58px); overflow: hidden; border: 8px solid var(--ink); background: var(--white); text-align: center; box-shadow: 12px 12px 0 var(--ink); isolation: isolate; }
.completion-impact__kicker { position: relative; z-index: 3; justify-self: center; padding: 7px 11px; border: 3px solid currentColor; background: var(--white); color: var(--ink); font: 900 clamp(.72rem, 1.3vw, 1rem)/1 ui-monospace, monospace; letter-spacing: .1em; }
.completion-impact__hero { position: relative; z-index: 3; display: block; max-width: 100%; font-size: clamp(4.5rem, 10vw, 8rem); line-height: .76; letter-spacing: -.085em; overflow-wrap: anywhere; }
.completion-impact__sub { position: relative; z-index: 3; max-width: 850px; font: 900 clamp(1.05rem, 2.5vw, 1.8rem)/1.25 "Yu Gothic", system-ui, sans-serif; }
.completion-impact__metrics { position: relative; z-index: 3; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 8px; }
.completion-impact__metrics span { padding: 9px 12px; border: 3px solid var(--ink); background: var(--yellow); color: var(--ink); font: 900 clamp(.8rem, 1.4vw, 1rem)/1 ui-monospace, monospace; }
.completion-impact__blocks,
.completion-impact__stage,
.completion-impact__microphones,
.completion-impact__bow { display: none; }
.completion-dialog__body { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; min-width: 0; padding-top: 0; }
.completion-dialog__body > p:first-of-type { grid-column: 1; align-self: center; margin: 0 0 10px; font: 900 .86rem/1 ui-monospace, monospace; letter-spacing: .1em; }
.completion-dialog h2 { position: relative; z-index: 2; grid-column: 1 / -1; max-width: 900px; margin: 0 0 18px; font-size: clamp(2.6rem, 4.5vw, 4.6rem); line-height: .88; letter-spacing: -.06em; overflow-wrap: anywhere; }
.completion-dialog h2 + p { position: relative; z-index: 2; grid-column: 1 / -1; max-width: 780px; margin: 0 0 28px; font: 900 clamp(1rem, 2vw, 1.35rem)/1.55 "Yu Gothic", system-ui, sans-serif; }
.completion-dialog__stamp { position: relative; z-index: 1; grid-column: 2; grid-row: 1; display: grid; width: clamp(74px, 8vw, 104px); aspect-ratio: 1; margin: 0 8px 14px 18px; place-items: center; border: 9px double var(--red); background: rgba(255,254,248,.92); color: var(--red); font-size: clamp(3rem, 5vw, 4.8rem); line-height: 1; transform: rotate(10deg); }
.completion-dialog .brutal-action { position: relative; z-index: 2; grid-column: 1 / -1; width: min(100%, 600px); min-height: 64px; }
.completion-dialog__body > small { position: relative; z-index: 2; grid-column: 1 / -1; display: block; margin-top: 16px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; }
.apology-delivery { position: relative; z-index: 2; grid-column: 1 / -1; margin: 0 0 26px; padding: 18px; border: 5px solid var(--white); background: var(--yellow); color: var(--ink); box-shadow: 8px 8px 0 var(--blue); }
.apology-delivery__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: -18px -18px 16px; padding: 14px 16px; border-bottom: 4px solid var(--ink); background: var(--white); }
.apology-delivery__heading > span { font: 900 clamp(1.15rem, 2vw, 1.55rem)/1 ui-monospace, monospace; letter-spacing: .08em; }
.apology-delivery__heading > strong { flex: 0 0 auto; padding: 7px 10px; border: 5px double var(--red); color: var(--red); font: 900 .78rem/1.05 "Yu Gothic", system-ui, sans-serif; text-align: center; transform: rotate(7deg); }
.apology-delivery dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 3px solid var(--ink); border-left: 3px solid var(--ink); }
.apology-delivery dl div { min-width: 0; padding: 9px 10px; border-right: 3px solid var(--ink); border-bottom: 3px solid var(--ink); background: var(--white); }
.apology-delivery dt { margin-bottom: 4px; font: 900 .66rem/1 ui-monospace, monospace; letter-spacing: .06em; }
.apology-delivery dd { margin: 0; font: 900 clamp(1rem, 1.8vw, 1.35rem)/1.2 "Yu Gothic", system-ui, sans-serif; overflow-wrap: anywhere; }
.apology-delivery__fee { grid-column: 1 / -1; }
.apology-delivery__fee dd { color: var(--red); font-size: clamp(1.5rem, 3vw, 2.2rem); }
.apology-delivery > p { margin: 12px 0 0; font: 900 .76rem/1.45 "Yu Gothic", system-ui, sans-serif; }
.apology-delivery.is-delivered { animation: apology-delivery-drop .68s cubic-bezier(.15,.85,.2,1.18) .24s both; }

.completion-dialog[data-impact-theme="square"] { background: #ff70c8; box-shadow: 18px 18px 0 var(--yellow); }
.completion-dialog[data-impact-theme="square"]::backdrop { background: rgba(255,112,200,.94); }
.completion-dialog[data-impact-theme="square"] .completion-impact { grid-template-rows: auto auto auto auto; align-content: center; gap: clamp(14px, 2vw, 22px); padding: clamp(42px, 6vw, 68px); background-color: var(--yellow); background-image: linear-gradient(90deg, transparent 0 12%, var(--ink) 12% 13%, transparent 13% 87%, var(--ink) 87% 88%, transparent 88%), linear-gradient(0deg, transparent 0 12%, var(--ink) 12% 13%, transparent 13% 87%, var(--ink) 87% 88%, transparent 88%); }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks { position: absolute; inset: 0; z-index: 1; display: block; }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks span { position: absolute; display: grid; width: clamp(82px, 17vw, 190px); aspect-ratio: 1; place-items: center; border: 7px solid var(--ink); background: var(--red); box-shadow: 8px 8px 0 var(--ink); color: var(--ink); font: 900 clamp(1.1rem, 3vw, 2.4rem)/1 ui-monospace, monospace; }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks span::after { content: "90°"; }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks span:nth-child(1) { --block-x: -120%; --block-y: -120%; left: -3%; top: -3%; }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks span:nth-child(2) { --block-x: 120%; --block-y: -120%; right: -3%; top: -3%; background: var(--blue); }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks span:nth-child(3) { --block-x: -120%; --block-y: 120%; left: -3%; bottom: -3%; background: var(--white); }
.completion-dialog[data-impact-theme="square"] .completion-impact__blocks span:nth-child(4) { --block-x: 120%; --block-y: 120%; right: -3%; bottom: -3%; background: var(--green); }
.completion-dialog[data-impact-theme="square"] .completion-impact__hero { --hero-final-transform: none; max-width: min(100%, 520px); padding: 12px 22px; border: 8px solid var(--ink); background: var(--white); box-shadow: 10px 10px 0 var(--ink); color: var(--red); font-size: clamp(3.9rem, 8.5vw, 7.3rem); line-height: .82; letter-spacing: -.08em; white-space: pre-line; transform: var(--hero-final-transform); }
.completion-dialog[data-impact-theme="square"] .completion-impact__sub { max-width: min(100%, 500px); padding: 12px 16px; border: 5px solid var(--ink); background: var(--white); color: var(--ink); font-size: clamp(1rem, 1.75vw, 1.35rem); line-height: 1.35; box-shadow: 7px 7px 0 var(--ink); }
.completion-dialog[data-impact-theme="square"] .completion-impact__metrics { margin-top: 0; }

.completion-dialog[data-impact-theme="apology"] { background: #101010; color: var(--white); box-shadow: 18px 18px 0 var(--blue); }
.completion-dialog[data-impact-theme="apology"]::backdrop { background: rgba(0,0,0,.96); }
.completion-dialog[data-impact-theme="apology"] .completion-dialog__stripe { background: var(--blue); color: var(--ink); }
.completion-dialog[data-impact-theme="apology"] .completion-impact { display: grid; min-height: clamp(420px, 54vh, 540px); padding: clamp(62px, 6vw, 78px) clamp(20px, 5vw, 58px) clamp(22px, 3vw, 36px); align-content: start; gap: 10px; background: repeating-linear-gradient(90deg, #1b1b1b 0 88px, #303030 88px 91px); color: var(--white); box-shadow: 12px 12px 0 var(--blue); }
.completion-dialog[data-impact-theme="apology"] .completion-impact::before { content: "AIおわび代行　AIおわび代行　AIおわび代行"; position: absolute; z-index: 1; inset: 28px 0 auto; padding: 10px; border-block: 3px solid var(--white); color: var(--white); font: 900 .74rem/1 ui-monospace, monospace; letter-spacing: .1em; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__kicker { z-index: 5; order: 1; background: var(--red); color: var(--ink); }
.completion-dialog[data-impact-theme="apology"] .completion-impact__hero { z-index: 5; order: 2; color: var(--white); font-size: clamp(3.6rem, 6.6vw, 5.8rem); line-height: .82; text-shadow: none; white-space: pre-line; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__sub { z-index: 5; order: 3; max-width: 650px; padding: 8px 14px; border: 3px solid var(--white); background: rgba(17,17,17,.88); color: var(--yellow); font-size: clamp(1rem, 1.8vw, 1.35rem); line-height: 1.3; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__stage { position: relative; z-index: 3; order: 5; display: block; width: min(100%, 560px); height: clamp(164px, 18vw, 198px); margin: 2px auto 0; overflow: hidden; border-top: 5px solid var(--white); border-bottom: 10px solid var(--white); background: linear-gradient(180deg, transparent 0 58%, rgba(255,75,62,.18) 58% 100%); }
.completion-dialog[data-impact-theme="apology"] .completion-impact__microphones { position: absolute; z-index: 2; right: 8%; bottom: -16px; left: 8%; display: flex; align-items: end; justify-content: center; gap: clamp(16px, 7vw, 86px); height: 48%; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__microphones span { display: block; width: 12px; height: 100%; border: 3px solid var(--white); background: var(--ink); transform: rotate(var(--mic-angle, -8deg)); transform-origin: bottom; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__microphones span::before { content: ""; position: absolute; left: 50%; top: -24px; width: 38px; height: 26px; border: 4px solid var(--white); background: var(--red); transform: translateX(-50%); }
.completion-dialog[data-impact-theme="apology"] .completion-impact__microphones span:nth-child(2n) { --mic-angle: 8deg; height: 78%; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__bow { position: absolute; z-index: 4; left: 44%; bottom: 36px; display: block; width: 76px; color: var(--yellow); font: 900 2rem/1 ui-monospace, monospace; text-align: center; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__bow-person { display: block; transform: translateX(-50%) rotate(var(--impact-bow-angle)); transform-origin: 50% calc(100% - 2px); will-change: transform; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__metrics { position: relative; z-index: 6; order: 6; display: flex; justify-content: space-between; gap: 12px; width: min(100%, 560px); margin: 0 auto; }
.completion-dialog[data-impact-theme="apology"] .completion-impact__metrics span { flex: 1; padding: 8px 10px; border-width: 3px; background: var(--white); color: var(--ink); box-shadow: 5px 5px 0 var(--red); font-size: clamp(.72rem, 1.25vw, .95rem); }
.completion-dialog[data-impact-theme="apology"] .completion-dialog__stamp { border-color: var(--red); background: var(--white); color: var(--red); }
.completion-dialog[data-impact-theme="apology"] .brutal-action { background: var(--blue); color: var(--ink); box-shadow: 8px 8px 0 var(--white); }

.completion-dialog[data-impact-theme="trivial"] { background: var(--green); box-shadow: 18px 18px 0 var(--yellow); }
.completion-dialog[data-impact-theme="trivial"]::backdrop { background: rgba(117,239,107,.94); }
.completion-dialog[data-impact-theme="trivial"] .completion-dialog__stripe { background: var(--ink); color: var(--yellow); }
.completion-dialog[data-impact-theme="trivial"] .completion-impact { background: var(--white); }
.completion-dialog[data-impact-theme="trivial"] .completion-impact::before { content: "視聴率 0.0%　観客 0人　スポンサー 全社撤退"; position: absolute; inset: 0 0 auto; padding: 12px; border-bottom: 5px solid var(--ink); background: var(--ink); color: var(--white); font: 900 clamp(.65rem, 1.4vw, .95rem)/1 ui-monospace, monospace; letter-spacing: .08em; }
.completion-dialog[data-impact-theme="trivial"] .completion-impact::after { content: "どうでもいい日本一"; position: absolute; right: 3%; bottom: 4%; padding: 10px 14px; border: 5px solid var(--ink); background: var(--yellow); font: 900 clamp(.8rem, 1.6vw, 1.25rem)/1 "Yu Gothic", system-ui, sans-serif; transform: rotate(-5deg); }
.completion-dialog[data-impact-theme="trivial"] .completion-impact__hero { --hero-final-transform: rotate(-4deg); justify-self: center; padding: 8px 24px; border: 9px double var(--red); background: var(--yellow); color: var(--red); text-shadow: none; transform: var(--hero-final-transform); }

.completion-dialog[data-impact-theme="personnel"] { background: var(--red); box-shadow: 18px 18px 0 var(--yellow); }
.completion-dialog[data-impact-theme="personnel"]::backdrop { background-color: var(--red); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='130' viewBox='0 0 900 130'%3E%3Ctext x='0' y='91' fill='%23111' font-family='monospace' font-size='76' font-weight='900' letter-spacing='5'%3EWARNING%20WARNING%20WARNING%3C/text%3E%3C/svg%3E"); background-repeat: repeat; background-size: 900px 130px; background-position: 0 0; }
.completion-dialog[data-impact-theme="personnel"] .completion-impact { min-height: clamp(360px, 52vh, 520px); background: repeating-linear-gradient(-45deg, var(--yellow) 0 30px, var(--red) 30px 60px); }
.completion-dialog[data-impact-theme="personnel"] .completion-impact,
.completion-dialog[data-impact-theme="personnel"] .completion-dialog__body { z-index: 1; }
.completion-dialog[data-impact-theme="personnel"] .completion-impact__kicker { background: var(--ink); color: var(--yellow); }
.completion-dialog[data-impact-theme="personnel"] .completion-impact__hero { --hero-final-transform: rotate(-2deg); padding: 14px 22px; border: 8px solid var(--ink); background: var(--white); color: var(--red); font-size: clamp(4.4rem, 10vw, 8rem); line-height: .76; text-shadow: none; white-space: pre-line; transform: var(--hero-final-transform); }
.completion-dialog[data-impact-theme="personnel"] .completion-impact__sub { max-width: 560px; padding: 10px 14px; border: 4px solid var(--ink); background: var(--yellow); color: var(--ink); box-shadow: 6px 6px 0 var(--ink); }
.completion-dialog[data-impact-theme="personnel"] .completion-impact::after { content: "最終人事・強制発令"; position: absolute; right: 4%; bottom: 5%; z-index: 4; padding: 9px 12px; border: 5px solid var(--ink); background: var(--red); color: var(--ink); font: 900 clamp(.85rem, 1.8vw, 1.25rem)/1 ui-monospace, monospace; transform: rotate(-7deg); }

.completion-dialog.is-impact { animation: completion-dialog-slam .68s cubic-bezier(.15,.85,.2,1.22) both; }
.completion-dialog.is-impact .completion-impact__hero { animation: completion-hero-slam .72s cubic-bezier(.15,.85,.2,1.28) .08s both; }
.completion-dialog[data-impact-theme="square"].is-impact .completion-impact__blocks span { animation: completion-corner-press .62s cubic-bezier(.15,.85,.2,1.2) both; }
.completion-dialog[data-impact-theme="apology"].is-impact .completion-impact::after { content: ""; position: absolute; z-index: 8; inset: 0; pointer-events: none; background: var(--white); opacity: 0; animation: apology-camera-flash .7s ease-out .22s both; }
.completion-dialog[data-impact-theme="apology"].is-impact .completion-impact__bow-person { animation: apology-bow-slam .75s cubic-bezier(.15,.85,.2,1.2) .2s both; }
.completion-dialog[data-impact-theme="personnel"].is-impact .completion-impact::after { animation: personnel-warning-stamp .72s cubic-bezier(.15,.85,.2,1.25) .18s both; }
.completion-dialog[data-impact-theme="personnel"].is-impact::backdrop { animation: personnel-backdrop-marquee 5.2s linear infinite; }

.public-notice {
  display: grid;
  grid-template-columns: 110px 1fr;
  align-items: stretch;
  margin-bottom: 80px;
  border: var(--border);
  background: var(--white);
}
.public-notice__label { display: grid; place-items: center; background: var(--red); border-right: var(--border); font-size: 1.4rem; }
.public-notice p { margin: 0; padding: 22px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 700; }

/* Shared worlds ---------------------------------------------------------- */
.world {
  min-height: 100vh;
  overflow: hidden;
  font-family: "Arial Black", "Hiragino Kaku Gothic ProN", "Yu Gothic", system-ui, sans-serif;
}
.world h1,
.world h2,
.world p { overflow-wrap: anywhere; }
.world em { font-style: normal; }
.world-hero {
  position: relative;
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto;
  padding: clamp(54px, 9vw, 120px) 0;
}
.world-kicker {
  display: grid;
  gap: 8px;
  width: min(100%, 900px);
  margin: 0 0 clamp(34px, 5vw, 62px);
  padding: clamp(16px, 2.6vw, 26px);
  border: 6px solid var(--ink);
  background: var(--white);
  box-shadow: 9px 9px 0 var(--ink);
}
.world-kicker strong {
  font: 900 clamp(2.5rem, 6vw, 6.2rem)/.86 "Arial Black", "Yu Gothic", sans-serif;
  letter-spacing: -.075em;
}
.world-kicker span {
  font: 900 clamp(1rem, 1.8vw, 1.35rem)/1.35 ui-monospace, monospace;
  letter-spacing: .04em;
}
.world-hero h1,
.champ-header h1 {
  margin: 0;
  font-size: clamp(4rem, 10.5vw, 10rem);
  line-height: 1.02;
  letter-spacing: -.065em;
}
.world-hero > p:last-child,
.champ-header > p:last-child {
  max-width: 750px;
  margin: 34px 0 0;
  font-family: "Yu Gothic", system-ui, sans-serif;
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 800;
}
.back-portal {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(calc(100% - 32px), var(--max));
  min-height: 62px;
  margin: 72px auto 88px;
  padding: 14px 20px;
  border: var(--border);
  box-shadow: var(--shadow);
  background: var(--white);
  text-align: center;
  text-decoration: none;
  font-weight: 900;
}
.back-portal:hover { transform: translate(4px, 4px); box-shadow: 4px 4px 0 var(--ink); }
.text-button {
  min-height: 44px;
  padding: 8px 4px;
  border: 0;
  border-bottom: 3px solid currentColor;
  background: transparent;
  color: inherit;
  font-size: .82rem;
  font-weight: 900;
  cursor: pointer;
}
.brutal-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 14px 20px;
  border: var(--border);
  box-shadow: 7px 7px 0 var(--ink);
  color: var(--ink);
  text-align: center;
  text-decoration: none;
  font-weight: 900;
  cursor: pointer;
}
.brutal-action.brutal-action--black { background: var(--ink); color: var(--white); }
.brutal-action:hover { transform: translate(3px, 3px); box-shadow: 4px 4px 0 var(--ink); }
button:disabled { cursor: not-allowed; filter: grayscale(.75); opacity: .68; }
.form-number { font: 800 .95rem/1.4 ui-monospace, monospace; letter-spacing: .06em; text-transform: uppercase; }

/* 01: 押すな庁 ---------------------------------------------------------- */
.world--push { position: relative; background: #ffdc00; }
.push-catastrophe {
  width: 100vw;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: clamp(150px, 18vh, 190px) clamp(44px, 5vw, 100px) clamp(115px, 15vh, 165px);
  border: 0;
  overflow: hidden;
  background: var(--red);
  color: var(--ink);
  grid-template-columns: minmax(180px, .62fr) minmax(0, 1.38fr);
  grid-template-rows: auto auto auto auto auto;
  grid-template-areas:
    "seal out"
    "documents out"
    "verdict verdict"
    "number number"
    "actions actions";
  align-content: center;
  align-items: center;
  column-gap: clamp(28px, 4vw, 72px);
  row-gap: clamp(6px, 1vh, 14px);
  isolation: isolate;
}
.push-catastrophe[open] { display: grid; }
.push-catastrophe::backdrop { background: var(--ink); }
.catastrophe-rays {
  position: absolute;
  inset: -80vmax;
  opacity: 0;
  background: repeating-conic-gradient(from 0deg, var(--yellow) 0 8deg, var(--red) 8deg 16deg);
  transform: scale(.15) rotate(-70deg);
}
.catastrophe-frame {
  position: absolute;
  z-index: 2;
  inset: 18px;
  border: clamp(8px, 1.5vw, 18px) solid var(--ink);
  box-shadow: inset 0 0 0 7px var(--yellow);
  opacity: 0;
  transform: scale(1.18);
}
.catastrophe-tape {
  position: absolute;
  z-index: 8;
  left: -3vw;
  width: 106vw;
  padding: 12px 0;
  border-block: 5px solid var(--ink);
  overflow: hidden;
  background: repeating-linear-gradient(135deg, var(--ink) 0 24px, var(--yellow) 24px 48px);
  color: var(--white);
  font: 900 clamp(.75rem, 1.5vw, 1.2rem)/1 ui-monospace, monospace;
  letter-spacing: .15em;
  text-align: center;
  text-shadow: none;
  white-space: nowrap;
  opacity: 0;
}
.catastrophe-tape--top { top: clamp(78px, 11vh, 126px); transform: translateX(-110%) rotate(-1.25deg); }
.catastrophe-tape--bottom { bottom: clamp(116px, 15vh, 170px); transform: translateX(110%) rotate(1.25deg); }
.catastrophe-seal {
  position: relative;
  z-index: 10;
  grid-area: seal;
  justify-self: center;
  display: grid;
  place-items: center;
  width: clamp(110px, min(16vw, 22vh), 220px);
  aspect-ratio: 1;
  border: 13px double var(--ink);
  border-radius: 50%;
  background: var(--white);
  text-align: center;
  opacity: 0;
  transform: scale(3.5) rotate(-19deg);
}
.catastrophe-seal span { align-self: end; font-size: clamp(.8rem, 1.5vw, 1.25rem); }
.catastrophe-seal strong { align-self: start; font-size: clamp(2.25rem, 4vw, 4rem); line-height: .88; white-space: nowrap; }
.catastrophe-documents {
  position: relative;
  z-index: 9;
  grid-area: documents;
  justify-self: center;
  display: grid;
  gap: 8px;
  width: min(calc(100% - 36px), 320px);
}
.catastrophe-documents span {
  display: block;
  padding: 12px 16px;
  border: 4px solid var(--ink);
  background: var(--white);
  box-shadow: 7px 7px 0 var(--ink);
  font: 900 clamp(.72rem, 1.6vw, 1.15rem)/1.2 ui-monospace, monospace;
  opacity: 0;
  transform: translateX(-120%);
}
.catastrophe-documents span:nth-child(2) { margin-left: 18px; }
.catastrophe-documents span:nth-child(3) { margin-left: 36px; background: var(--yellow); }
.catastrophe-out {
  position: relative;
  z-index: 7;
  grid-area: out;
  width: 100%;
  min-width: 0;
  text-align: center;
  opacity: 0;
  transform: scale(5) rotate(13deg);
}
.catastrophe-out p { margin: 0; font: 900 clamp(.7rem, 1.6vw, 1.2rem)/1 ui-monospace, monospace; letter-spacing: .18em; }
.catastrophe-out h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(8rem, min(21vw, 40vh), 19rem);
  line-height: .72;
  letter-spacing: -.09em;
  -webkit-text-stroke: 2px var(--white);
  paint-order: stroke fill;
  text-shadow: none;
  white-space: nowrap;
}
.catastrophe-out > strong {
  display: inline-block;
  padding: 8px 16px;
  border: 5px solid var(--ink);
  background: var(--white);
  box-shadow: 7px 7px 0 var(--ink);
  font-size: clamp(1.3rem, 4vw, 4rem);
  line-height: 1;
  transform: rotate(-3deg);
}
.catastrophe-verdict,
.catastrophe-number {
  position: relative;
  z-index: 12;
  justify-self: center;
  width: min(100%, 900px);
  margin: 0;
  text-align: center;
  opacity: 0;
  transform: translateY(35px);
}
.catastrophe-verdict { grid-area: verdict; padding: 12px 20px; border: 4px solid var(--ink); background: var(--white); box-shadow: 7px 7px 0 var(--ink); font-size: clamp(1.25rem, 2.7vw, 2.3rem); line-height: 1.3; }
.catastrophe-number { grid-area: number; margin-bottom: 20px; padding: 8px 14px; border: 3px solid var(--ink); background: var(--yellow); box-shadow: 5px 5px 0 var(--ink); font: 900 clamp(.82rem, 1.55vw, 1.2rem)/1.15 ui-monospace, monospace; letter-spacing: .1em; }
.catastrophe-actions {
  position: relative;
  z-index: 30;
  grid-area: actions;
  justify-self: center;
  display: flex;
  justify-content: center;
  width: min(760px, calc(100% - 56px));
  margin-top: 4px;
  gap: 12px;
}
.catastrophe-actions button,
.catastrophe-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 70px;
  padding: 14px 20px;
  border: 5px solid var(--ink);
  background: var(--yellow);
  color: var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  text-decoration: none;
  font-size: clamp(1rem, 1.7vw, 1.3rem);
  font-weight: 900;
  cursor: pointer;
}
.catastrophe-actions a { background: var(--yellow); }
.push-catastrophe.is-playing { animation: catastrophe-shake .85s steps(2, end) .05s both; }
.push-catastrophe.is-playing .catastrophe-rays { animation: catastrophe-rays-in 1.1s cubic-bezier(.1,.8,.2,1) forwards; }
.push-catastrophe.is-playing .catastrophe-frame { animation: catastrophe-frame-in .32s ease-out .56s forwards; }
.push-catastrophe.is-playing .catastrophe-tape--top { animation: catastrophe-tape-left .55s cubic-bezier(.1,.8,.2,1) .66s forwards; }
.push-catastrophe.is-playing .catastrophe-tape--bottom { animation: catastrophe-tape-right .55s cubic-bezier(.1,.8,.2,1) .74s forwards; }
.push-catastrophe.is-playing .catastrophe-seal { animation: catastrophe-seal-slam .55s cubic-bezier(.15,.9,.22,1.25) .12s forwards; }
.push-catastrophe.is-playing .catastrophe-documents span:nth-child(1) { animation: catastrophe-document-in .38s ease-out 1.06s forwards; }
.push-catastrophe.is-playing .catastrophe-documents span:nth-child(2) { animation: catastrophe-document-in .38s ease-out 1.27s forwards; }
.push-catastrophe.is-playing .catastrophe-documents span:nth-child(3) { animation: catastrophe-document-in .38s ease-out 1.48s forwards; }
.push-catastrophe.is-playing .catastrophe-out { animation: catastrophe-out-slam .64s cubic-bezier(.1,.82,.18,1.18) 2.02s forwards; }
.push-catastrophe.is-playing .catastrophe-verdict { animation: catastrophe-copy-in .42s ease-out 2.78s forwards; }
.push-catastrophe.is-playing .catastrophe-number { animation: catastrophe-copy-in .42s ease-out 3.03s forwards; }
.push-catastrophe.is-done .catastrophe-rays,
.push-catastrophe.is-done .catastrophe-frame,
.push-catastrophe.is-done .catastrophe-tape,
.push-catastrophe.is-done .catastrophe-seal,
.push-catastrophe.is-done .catastrophe-documents span,
.push-catastrophe.is-done .catastrophe-out,
.push-catastrophe.is-done .catastrophe-verdict,
.push-catastrophe.is-done .catastrophe-number {
  opacity: 1;
  animation: none;
}
.push-catastrophe.is-done .catastrophe-rays { transform: scale(1) rotate(35deg); }
.push-catastrophe.is-done .catastrophe-frame,
.push-catastrophe.is-done .catastrophe-tape,
.push-catastrophe.is-done .catastrophe-seal,
.push-catastrophe.is-done .catastrophe-documents span { transform: none; }
.push-catastrophe.is-done .catastrophe-tape--top { transform: rotate(-1.25deg); }
.push-catastrophe.is-done .catastrophe-tape--bottom { transform: rotate(1.25deg); }
.push-catastrophe.is-done .catastrophe-out { transform: none; }
.push-catastrophe.is-done .catastrophe-verdict,
.push-catastrophe.is-done .catastrophe-number { transform: none; }
.hazard-tape,
.protest-strip,
.broadcast-ticker {
  padding: 10px 0;
  border-block: var(--border);
  background: repeating-linear-gradient(135deg, var(--ink) 0 24px, #ffdc00 24px 48px);
  color: var(--white);
  font: 900 1rem/1 ui-monospace, monospace;
  letter-spacing: .14em;
  text-align: center;
  text-shadow: none;
}
.world-hero--push em {
  color: var(--red);
  -webkit-text-stroke: 2px var(--ink);
  paint-order: stroke fill;
}
.push-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 40px;
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto;
}
.button-vault,
.incident-panel {
  position: relative;
  border: 6px solid var(--ink);
  box-shadow: 12px 12px 0 var(--ink);
}
.button-vault {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 700px;
  padding: 46px;
  background: #b7b7ad;
  background-image: radial-gradient(#8f8f87 1px, transparent 1px);
  background-size: 10px 10px;
  text-align: center;
}
.vault-lamp {
  position: absolute;
  top: 26px;
  right: 26px;
  width: 28px;
  height: 28px;
  border: 4px solid var(--ink);
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 6px #676760;
}
.world--push.is-aftermath { background: repeating-linear-gradient(135deg, var(--red) 0 34px, var(--yellow) 34px 68px); }
.world--push.is-aftermath .button-vault { background: var(--ink); color: var(--white); }
.world--push.is-aftermath .vault-lamp { background: var(--red); box-shadow: 0 0 0 6px #676760, 0 0 28px var(--red); }
.world--push.is-aftermath .danger-button,
.world--push.is-aftermath .danger-button:disabled {
  opacity: 1;
  filter: none;
  background: var(--ink);
  color: var(--red);
  box-shadow: inset 0 0 0 9px var(--red), 0 18px 0 #333, 0 26px 0 var(--red);
  transform: rotate(-7deg) scale(.9);
}
.world--push.is-aftermath .threat-level { background: var(--red); }
.world--push.is-aftermath .push-certificate { background: #fff3d2; animation: aftermath-stamp .5s cubic-bezier(.15,.9,.22,1.25) both; }
.machine-label { align-self: stretch; margin: 0 0 16px; padding: 8px; border: 3px solid var(--ink); background: var(--white); font: 900 .95rem/1.4 ui-monospace, monospace; }
.button-vault h2 { margin: 0 0 12px; font-size: clamp(1.7rem, 4vw, 3rem); }
.button-vault > p:not(.machine-label, .push-counter) { max-width: 550px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; }
#push-warning { display: grid; gap: 7px; margin: 0 0 24px; padding: 14px 20px; border: 4px solid var(--ink); background: var(--white); box-shadow: 7px 7px 0 var(--ink); color: var(--ink); font-family: "Yu Gothic", system-ui, sans-serif; }
#push-warning strong { color: var(--red); font-size: clamp(1.25rem, 2.6vw, 2rem); line-height: 1.1; }
#push-warning span { font-size: clamp(.9rem, 1.5vw, 1.1rem); line-height: 1.4; }
.danger-button {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(220px, 32vw, 340px);
  aspect-ratio: 1;
  gap: 6px;
  margin: 28px auto 20px;
  border: 15px solid var(--ink);
  border-radius: 50%;
  background: var(--red);
  box-shadow: inset -14px -18px 0 rgba(0,0,0,.22), 0 18px 0 #7c1711, 0 26px 0 var(--ink);
  color: var(--white);
  cursor: pointer;
  text-shadow: none;
}
.danger-button:hover { transform: translateY(5px); box-shadow: inset -10px -12px 0 rgba(0,0,0,.22), 0 13px 0 #7c1711, 0 21px 0 var(--ink); }
.danger-button:active { transform: translateY(14px); box-shadow: inset -6px -8px 0 rgba(0,0,0,.22), 0 4px 0 #7c1711, 0 10px 0 var(--ink); }
.danger-button span { font-size: clamp(3.4rem, 7.2vw, 6rem); line-height: .95; white-space: nowrap; }
.danger-button strong { color: var(--yellow); font-size: clamp(1rem, 2vw, 1.5rem); line-height: 1.1; }
.danger-button small { font: 900 clamp(.72rem, 1.2vw, .9rem)/1 ui-monospace, monospace; }
.danger-button.is-idle-growing {
  position: fixed;
  z-index: 1500;
  left: var(--danger-start-left);
  top: var(--danger-start-top);
  width: var(--danger-start-width);
  height: var(--danger-start-height);
  max-width: none;
  aspect-ratio: auto;
  margin: 0;
  transform: none;
  animation: danger-button-takeover 10s linear forwards;
  will-change: left, top, width, height, border-radius;
}
.danger-button.is-idle-growing:hover,
.danger-button.is-idle-growing:active {
  transform: none;
}
.danger-button.is-idle-growing span {
  animation: danger-button-label-takeover 10s linear forwards;
}
.danger-button.is-idle-growing strong,
.danger-button.is-idle-growing small {
  animation: danger-button-detail-takeover 10s linear forwards;
}
@keyframes danger-button-takeover {
  0% {
    left: var(--danger-start-left);
    top: var(--danger-start-top);
    width: var(--danger-start-width);
    height: var(--danger-start-height);
    border-radius: 50%;
  }
  100% {
    left: 0;
    top: 0;
    width: 100vw;
    height: 100dvh;
    border-radius: 0;
  }
}
@keyframes danger-button-label-takeover {
  0% { font-size: clamp(3.4rem, 7.2vw, 6rem); }
  100% { font-size: clamp(7rem, 24vw, 22rem); }
}
@keyframes danger-button-detail-takeover {
  0%, 42% { opacity: 1; }
  100% { opacity: .86; font-size: clamp(1.2rem, 3vw, 3rem); }
}
.push-exit-notice { margin: 18px 0 0; padding: 10px 14px; border: 3px dashed var(--ink); background: rgba(255,254,248,.78); color: var(--ink); font: 800 clamp(.85rem, 1.3vw, 1rem)/1.45 "Yu Gothic", system-ui, sans-serif; }
.push-exit-notice strong { color: var(--red); }
.push-counter { margin: 22px 0 0; padding: 8px 14px; border: 3px solid var(--ink); background: var(--white); }
.push-counter strong { font-size: 1.8rem; }
.incident-panel { padding: 36px; background: var(--white); }
.incident-panel h2 { margin: 0 0 24px; font-size: clamp(1.8rem, 3.5vw, 3.2rem); line-height: 1; }
.threat-level { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px; border: var(--border); background: var(--green); }
.threat-level span { font-size: .8rem; }
.threat-level strong { font-size: 1.5rem; }
.incident-log { min-height: 230px; margin: 24px 0; padding: 0; list-style: none; counter-reset: incident; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 700; }
.incident-log li { position: relative; padding: 14px 8px 14px 50px; border-bottom: 2px solid var(--ink); counter-increment: incident; }
.incident-log li::before { content: counter(incident, decimal-leading-zero); position: absolute; left: 8px; font-family: ui-monospace, monospace; font-weight: 900; }
.push-certificate { margin: 24px 0; padding: 24px; border: 8px double var(--red); color: var(--red); text-align: center; transform: rotate(-2deg); }
.push-certificate span { display: block; }
.push-certificate strong { display: block; margin: 12px 0; font-size: 2.5rem; line-height: 1; }
.push-certificate p { font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 700; }
.push-certificate b { display: block; margin-top: 14px; padding: 8px; border: 3px solid var(--red); background: #fff1ef; font-size: .78rem; }
.world-footnote { display: flex; gap: 20px; width: min(calc(100% - 32px), var(--max)); margin: 48px auto; padding: 20px; border: var(--border); background: var(--ink); color: var(--white); }

/* 02: 角丸撲滅 ---------------------------------------------------------- */
.world--maru { background: #ff70c8; }
.protest-strip { background: var(--ink); color: var(--yellow); transform: rotate(-1deg) scale(1.02); }
.world-hero--maru em { display: inline-block; color: var(--yellow); transform: rotate(-2deg); }
.maru-manifesto {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 0;
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto 70px;
  border: var(--border);
  box-shadow: 12px 12px 0 var(--ink);
}
.maru-manifesto blockquote { margin: 0; padding: clamp(36px, 7vw, 80px); background: var(--yellow); font-size: clamp(3rem, 7vw, 7rem); line-height: .88; letter-spacing: -.06em; }
.manifesto-list { background: var(--white); }
.manifesto-list p { display: grid; grid-template-columns: minmax(86px, 110px) 1fr; gap: 14px; align-items: center; min-height: 33.333%; margin: 0; padding: 24px; border-bottom: var(--border); font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 900; }
.manifesto-list p:last-child { border-bottom: 0; }
.manifesto-list span { font: 900 1.4rem/1 ui-monospace, monospace; }
.maru-inspection {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 36px;
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto;
  padding: 36px;
  border: var(--border);
  background: var(--white);
  box-shadow: var(--shadow);
}
.inspection-copy h2 { margin: 0 0 18px; font-size: clamp(2.5rem, 5vw, 5rem); line-height: .9; }
.inspection-copy > p:not(.form-number) { font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 700; }
.maru-status { margin: 28px 0 20px; padding: 14px; border: 3px solid var(--ink); background: var(--yellow); font-weight: 900; }
.brutal-action--pink { width: 100%; background: var(--pink); }
.criminal-ui { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; min-height: 520px; padding: 40px; border: 3px dashed var(--ink); background: #d8efff; }
.round-crime { border: 4px solid var(--ink); background: var(--white); transition: border-radius .35s ease, transform .35s ease; }
.crime-card { grid-column: 1 / -1; padding: 28px; border-radius: 32px; box-shadow: 8px 8px 0 var(--ink); }
.crime-card > span { font: 900 .72rem/1 ui-monospace, monospace; }
.crime-card strong { display: block; margin: 22px 0; font-size: clamp(2rem, 4vw, 4rem); line-height: .9; }
.crime-card p { font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 700; }
.crime-button { min-height: 62px; padding: 14px 22px; border-radius: 999px; box-shadow: 7px 7px 0 var(--ink); font-weight: 900; }
.crime-avatar { display: grid; place-items: center; width: 100px; height: 100px; border-radius: 50%; background: var(--yellow); font-size: 2rem; }
.maru-inspection.stage-1 .round-crime { outline: 7px dashed var(--red); outline-offset: 5px; }
.maru-inspection.stage-2 .round-crime { border-radius: 16px; }
.maru-inspection.stage-3 .round-crime { border-radius: 4px; }
.maru-inspection.stage-4 .round-crime { border-radius: 0; transform: rotate(0); }
.violation-stamp { position: absolute; right: 26px; top: 26px; padding: 16px; border: 7px double var(--red); color: var(--red); background: var(--white); font-size: 2rem; line-height: .9; text-align: center; transform: rotate(12deg); }
.maru-victory { width: min(calc(100% - 32px), var(--max)); margin: 48px auto 0; padding: clamp(28px, 5vw, 56px); border: 7px solid var(--ink); background: var(--yellow); box-shadow: 12px 12px 0 var(--ink); transform: rotate(-1deg); }
.maru-victory span { display: inline-block; padding: 6px 10px; border: 3px solid var(--ink); background: var(--white); font: 900 .7rem/1 ui-monospace, monospace; }
.maru-victory strong { display: block; margin: 18px 0; font-size: clamp(2.7rem, 7vw, 7rem); line-height: .88; letter-spacing: -.05em; }
.maru-victory p { font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 900; }
.petition-counter { display: flex; align-items: baseline; justify-content: center; gap: 18px; width: min(calc(100% - 32px), var(--max)); margin: 54px auto; padding: 28px; border: var(--border); background: var(--ink); color: var(--white); text-align: center; }
.petition-counter strong { color: var(--yellow); font-size: clamp(2.5rem, 7vw, 6rem); line-height: 1; }

/* 03: GOMEN CLOUD ------------------------------------------------------- */
.world--gomen { background: #6ac4ff; }
.world-hero--gomen { padding-right: 220px; }
.world-hero--gomen em { color: var(--white); -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; }
.gomen-logo { position: absolute; right: 0; top: 50%; display: grid; place-items: center; width: 190px; height: 190px; border: 6px solid var(--ink); background: var(--white); box-shadow: 12px 12px 0 var(--ink); font-size: 5rem; transform: translateY(-50%) rotate(5deg); }
.gomen-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; width: min(calc(100% - 32px), var(--max)); margin: 0 auto; }
.apology-console,
.apology-output { border: var(--border); box-shadow: 10px 10px 0 var(--ink); }
.apology-console { padding: 0 28px 30px; background: #151515; color: var(--white); }
.console-bar { margin: 0 -28px 24px; padding: 12px 16px; border-bottom: var(--border); background: #eee; color: var(--ink); font: 900 .95rem/1.2 ui-monospace, monospace; }
.console-bar span { display: inline-block; width: 12px; height: 12px; margin-right: 5px; border: 2px solid var(--ink); border-radius: 50%; background: var(--red); }
.console-bar span:nth-child(2) { background: var(--yellow); }
.console-bar span:nth-child(3) { background: var(--green); }
.apology-console fieldset { display: grid; gap: 10px; margin: 0 0 24px; padding: 18px; border: 2px solid #676767; }
.apology-console legend { padding: 0 10px; }
.apology-console legend span { color: var(--blue); font: 900 .95rem/1.2 ui-monospace, monospace; }
.apology-console label { display: grid; grid-template-columns: 22px 1fr auto; gap: 8px; align-items: center; min-height: 46px; padding: 8px 10px; border: 2px solid transparent; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; cursor: pointer; }
.apology-console label:has(input:checked) { border-color: var(--blue); background: #283643; }
.apology-console input { width: 18px; height: 18px; accent-color: var(--blue); }
.apology-console label small { color: var(--yellow); font: 900 .68rem/1 ui-monospace, monospace; }
.apology-console .bow-meter { margin: 0 0 24px; }
.apology-console .responsibility-button { width: 100%; margin: 8px 0 0; }
.brutal-action--blue { width: 100%; background: var(--blue); }
.apology-console .text-button { color: var(--white); }
.apology-output { position: relative; min-height: 650px; padding: 38px; background: var(--white); }
.output-status { margin: -38px -38px 34px; padding: 12px 18px; border-bottom: var(--border); background: var(--ink); color: var(--white); font: 900 .95rem/1.2 ui-monospace, monospace; }
.output-status span { color: var(--green); }
.document-label { font: 900 .9rem/1.4 ui-monospace, monospace; color: #555; }
.apology-output h2 { margin: 30px 0; font-family: "Yu Mincho", serif; font-size: 3rem; text-align: center; }
.apology-output > [data-apology-output] { min-height: 150px; font-family: "Yu Mincho", serif; font-size: 1.08rem; line-height: 2.1; }
.bow-meter { display: flex; min-height: 200px; align-items: center; justify-content: space-between; gap: 24px; margin-top: 30px; padding: 24px; border: 3px solid var(--ink); background: #eaf7ff; }
.bow-stage { position: relative; flex: 0 0 240px; width: 240px; height: 180px; overflow: hidden; border: 3px solid var(--ink); background: repeating-linear-gradient(90deg, rgba(83,183,255,.18) 0 1px, transparent 1px 24px), var(--white); }
.bow-stage::before { content: "角度プレビュー"; position: absolute; top: 8px; left: 10px; font: 900 .9rem/1 ui-monospace, monospace; letter-spacing: .04em; }
.bow-stage::after { content: ""; position: absolute; right: 16px; bottom: 18px; left: 16px; height: 4px; background: var(--ink); box-shadow: 0 7px 0 rgba(17,17,17,.14); }
.bow-person {
  --bow-angle: 15deg;
  position: absolute;
  z-index: 1;
  left: 44%;
  bottom: 36px;
  width: 76px;
  color: var(--ink);
  font: 900 2rem/1 ui-monospace, monospace;
  text-align: center;
  transform: translateX(-50%) rotate(var(--bow-angle));
  transform-origin: 50% calc(100% - 2px);
  transition: transform .55s cubic-bezier(.2,.8,.2,1.2);
  will-change: transform;
}
.bow-readout { display: grid; justify-items: end; min-width: 190px; color: var(--ink); font-weight: 900; text-align: right; }
.bow-readout small { margin-bottom: 8px; padding: 5px 9px; border: 2px solid var(--ink); background: var(--yellow); font: 900 .72rem/1 ui-monospace, monospace; }
.bow-readout strong { color: var(--blue); font-size: clamp(3.5rem, 7vw, 5.5rem); line-height: .9; -webkit-text-stroke: 1px var(--ink); paint-order: stroke fill; }
.apology-seal { position: absolute; right: 34px; bottom: 30px; padding: 15px; border: 7px double var(--red); color: var(--red); font-size: 2rem; line-height: .9; text-align: center; transform: rotate(-10deg); }
.responsibility-button { min-height: 48px; margin-top: 18px; padding: 10px 14px; border: 3px solid var(--ink); background: var(--yellow); box-shadow: 4px 4px 0 var(--ink); font-weight: 900; cursor: pointer; }
.responsibility-status { min-height: 0 !important; margin: 18px 0 0; padding: 12px; border: 3px solid var(--red); background: #fff4f2; color: #9e1a12; font: 900 .95rem/1.5 ui-monospace, monospace !important; }
/* 04: どうでもいいこと選手権 ------------------------------------------- */
.world--champ { background: #7af06d; }
.champ-header { position: relative; width: min(calc(100% - 32px), var(--max)); margin: 0 auto; padding: clamp(60px, 10vw, 130px) 0; }
.champ-header h1 em { display: inline-block; color: var(--red); transform: rotate(-3deg); }
.champ-year { position: absolute; right: 0; top: 60px; color: var(--yellow); font-size: clamp(5rem, 15vw, 14rem); line-height: 1; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; transform: rotate(6deg); }
.broadcast-ticker { background: var(--ink); color: var(--white); transform: none; text-shadow: none; }
.match-arena { width: min(calc(100% - 32px), var(--max)); margin: 60px auto 0; padding: 34px; border: 6px solid var(--ink); background: var(--white); box-shadow: 12px 12px 0 var(--ink); }
.scoreboard { display: grid; grid-template-columns: repeat(3, 1fr); margin: -34px -34px 38px; border-bottom: var(--border); background: var(--ink); color: var(--white); }
.scoreboard span { padding: 14px; border-right: 2px solid var(--white); text-align: center; font: 900 .95rem/1.4 ui-monospace, monospace; }
.scoreboard span:last-child { border-right: 0; }
.scoreboard strong { color: var(--yellow); }
.match-label { margin: 0; text-align: center; font: 900 .8rem/1 ui-monospace, monospace; letter-spacing: .12em; }
.match-arena h2 { margin: 12px 0 40px; font-size: clamp(2.5rem, 6vw, 5rem); line-height: .9; text-align: center; }
.versus { display: grid; grid-template-columns: 1fr auto 1fr; gap: 22px; align-items: center; }
.contestant { display: flex; flex-direction: column; justify-content: space-between; min-height: 360px; padding: 28px; border: var(--border); box-shadow: 8px 8px 0 var(--ink); color: var(--ink); text-align: left; cursor: pointer; }
.contestant--a { background: var(--red); }
.contestant--b { background: var(--blue); }
.contestant > span { align-self: flex-start; padding: 6px 9px; border: 2px solid var(--ink); background: var(--white); font-size: .9rem; }
.contestant strong { margin: 26px 0; font-size: clamp(1.45rem, 2.45vw, 2.75rem); line-height: 1.04; }
.contestant b { text-decoration: underline; text-underline-offset: 5px; }
.contestant:hover { transform: translate(4px, 4px); box-shadow: 4px 4px 0 var(--ink); }
.vs-mark { display: grid; place-items: center; width: 90px; height: 90px; border: var(--border); border-radius: 50%; background: var(--yellow); box-shadow: 5px 5px 0 var(--ink); font-size: 2rem; transform: rotate(-8deg); }
.var-room { display: grid; grid-template-columns: 90px 1fr; align-items: center; min-height: 100px; margin: 38px 0 20px; border: var(--border); background: #e9e9e9; }
.var-room > span { display: grid; place-items: center; align-self: stretch; border-right: var(--border); background: var(--ink); color: var(--yellow); font-size: 1.8rem; }
.var-room p { margin: 0; padding: 20px; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 900; }
.trivial-verdict { position: fixed; z-index: 30; inset: 0; display: grid; align-content: center; justify-items: center; gap: 10px; padding: 24px; background: rgba(255,254,248,.9); color: var(--ink); pointer-events: none; text-align: center; }
.trivial-verdict[hidden] { display: none; }
.trivial-verdict > span { padding: 8px 12px; border: 4px solid var(--ink); background: var(--yellow); box-shadow: 6px 6px 0 var(--ink); font: 900 clamp(.78rem, 1.5vw, 1.05rem)/1 ui-monospace, monospace; letter-spacing: .1em; }
.trivial-verdict > strong { display: block; color: var(--red); font-size: clamp(5rem, 18vw, 15rem); line-height: .72; letter-spacing: -.11em; text-shadow: none; }
.trivial-verdict > small { max-width: 560px; padding: 12px 16px; border: 4px solid var(--ink); background: var(--white); box-shadow: 7px 7px 0 var(--ink); font: 900 clamp(.9rem, 1.7vw, 1.2rem)/1.35 "Yu Gothic", system-ui, sans-serif; }
.trivial-verdict.is-showing > span { animation: trivial-verdict-label .82s cubic-bezier(.15,.85,.2,1.15) both; }
.trivial-verdict.is-showing > strong { animation: trivial-verdict-rise 1.05s cubic-bezier(.15,.85,.2,1.25) both; }
.trivial-verdict.is-showing > small { animation: trivial-verdict-copy .7s ease-out .45s both; }
.winner-certificate { width: min(calc(100% - 32px), 850px); margin: 70px auto; padding: 50px; border: 12px double var(--ink); background: var(--yellow); text-align: center; box-shadow: 14px 14px 0 var(--ink); transform: rotate(-1deg); }
.winner-certificate span { display: block; margin: 18px; color: var(--red); font-size: 1.15rem; font-weight: 900; }
.winner-certificate strong { color: var(--red); font-size: clamp(4rem, 11vw, 9rem); line-height: .72; letter-spacing: -.1em; text-shadow: none; }
.winner-certificate p { font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; }
.brutal-action--green { background: var(--green); }
.next-match { width: 100%; margin: 0 0 16px; }

/* 05: このページを閉じてください --------------------------------------- */
.world--close { background: var(--ink); color: var(--white); }
.close-noise { overflow: hidden; padding: 9px 0; border-bottom: 3px solid var(--white); color: var(--red); font: 900 1.45rem/1 ui-monospace, monospace; white-space: nowrap; }
.world-hero--close { padding-block: clamp(28px, 5vh, 52px); }
.world-hero--close .world-kicker {
  width: min(100%, 680px);
  margin-bottom: 24px;
  padding: 18px 20px;
  color: var(--ink);
}
.world-hero--close .world-kicker strong { font-size: clamp(2rem, 4.2vw, 4rem); line-height: .9; }
.world-hero--close h1 { font-size: clamp(3.4rem, 7.4vw, 7rem); line-height: .96; }
.world-hero--close > p:last-child { margin-top: 20px; font-size: clamp(1rem, 1.5vw, 1.15rem); line-height: 1.45; }
.world-hero--close em { color: var(--red); }
.warning-machine { width: min(calc(100% - 32px), 1100px); margin: 0 auto; padding: 34px; border: 8px solid var(--green); box-shadow: 14px 14px 0 var(--green); background: transparent; }
.warning-beacon { margin: -34px -34px 26px; padding: 16px 20px; border-bottom: 5px solid var(--ink); background: var(--green); color: var(--ink); font-size: clamp(1rem, 2.4vw, 1.7rem); text-align: center; }
.warning-beacon span { display: inline-block; margin-right: 10px; color: var(--ink); font-size: 1.5em; line-height: .7; }
.warning-level { display: flex; align-items: baseline; justify-content: center; gap: 18px; padding: 18px; border: 3px solid var(--green); background: transparent; color: var(--white); }
.warning-level strong { font-size: 4rem; line-height: .8; }
.warning-screen { min-height: 300px; margin: 30px 0; padding: 36px; border: 5px solid var(--green); background: transparent; color: var(--white); box-shadow: none; font-family: ui-monospace, monospace; }
.warning-screen > p:first-child { font-size: .75rem; letter-spacing: .14em; }
.warning-screen > p:first-child span { color: var(--green); font-size: 1.5em; }
.warning-screen h2 { margin: 46px 0 20px; color: var(--green); font-family: inherit; font-size: clamp(2rem, 5vw, 4.5rem); line-height: 1; }
.warning-screen > p:last-child { max-width: 750px; font-family: inherit; }
.warning-actions { display: grid; grid-template-columns: 1fr; gap: 24px; }
.brutal-action--white { background: var(--white); }
.brutal-action--red { background: var(--red); }
.brutal-action--warning { background: var(--yellow); color: var(--ink); box-shadow: 8px 8px 0 var(--red); font-size: clamp(1rem, 2vw, 1.3rem); }
.ignored-content { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 28px; }
.ignored-content span { padding: 10px; border: 2px solid #777; color: #777; text-align: center; font-size: .9rem; }
.warning-machine.level-1 .ignored-content span:nth-child(1),
.warning-machine.level-2 .ignored-content span:nth-child(-n+2),
.warning-machine.level-3 .ignored-content span:nth-child(-n+3),
.warning-machine.level-4 .ignored-content span { border-color: var(--red); color: var(--white); background: #3a1010; }
.warning-machine.level-4 { box-shadow: 12px 12px 0 var(--yellow); }
.warning-machine.level-1 { border-color: var(--yellow); box-shadow: 14px 14px 0 var(--yellow); }
.warning-machine.level-1 .warning-screen { border-color: var(--yellow); }
.warning-machine.level-1 .warning-screen h2,
.warning-machine.level-1 .warning-screen > p:first-child span { color: var(--yellow); }
.warning-machine.level-2,
.warning-machine.level-3,
.warning-machine.level-4 { border-color: var(--red); box-shadow: 14px 14px 0 var(--red); }
.warning-machine.level-2 .warning-screen,
.warning-machine.level-3 .warning-screen,
.warning-machine.level-4 .warning-screen { border-color: var(--red); }
.warning-machine.level-2 .warning-screen h2,
.warning-machine.level-3 .warning-screen h2,
.warning-machine.level-4 .warning-screen h2,
.warning-machine.level-2 .warning-screen > p:first-child span,
.warning-machine.level-3 .warning-screen > p:first-child span,
.warning-machine.level-4 .warning-screen > p:first-child span { color: var(--red); }
.ignore-certificate { width: min(calc(100% - 32px), 900px); margin: 64px auto; padding: 48px; border: 10px double var(--yellow); color: var(--yellow); text-align: center; transform: rotate(1deg); }
.ignore-certificate p { font: 900 .8rem/1 ui-monospace, monospace; letter-spacing: .14em; }
.ignore-certificate strong { display: block; margin: 28px 0; font-size: clamp(3.2rem, 8vw, 7rem); line-height: .9; }
.ignore-certificate span { display: block; font-family: "Yu Gothic", system-ui, sans-serif; font-weight: 800; }
.close-attempt { margin: 34px auto 0; padding: 18px; border: 3px solid var(--yellow); background: #222; color: var(--white); font-family: ui-monospace, monospace; transform: rotate(-1deg); }
.close-attempt small { display: block; color: var(--red); }
.close-attempt b { display: block; margin-top: 8px; font-size: clamp(1rem, 3vw, 1.8rem); }
.world--close .text-button { color: var(--white); }
.close-reset { display: block; margin: 34px auto; }
.world--close .back-portal { color: var(--ink); }

@media (min-width: 900px) and (min-height: 640px) {
  .world--close {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(480px, 1.18fr);
    grid-template-areas:
      "noise noise"
      "hero warning"
      "certificate certificate";
    gap: clamp(22px, 3vw, 40px);
    align-items: start;
    padding-bottom: 44px;
  }
  .world--close .close-noise { grid-area: noise; }
  .world--close .world-hero--close {
    grid-area: hero;
    width: 100%;
    margin: 0;
    padding: clamp(28px, 4.5vh, 48px) 0 0 clamp(24px, 4vw, 54px);
  }
  .world--close .world-hero--close .world-kicker { padding: 16px 18px; }
  .world--close .world-hero--close h1 { font-size: clamp(3.6rem, 5.8vw, 6.2rem); }
  .world--close .warning-machine {
    grid-area: warning;
    width: calc(100% - clamp(24px, 4vw, 54px));
    margin: clamp(28px, 4.5vh, 48px) clamp(24px, 4vw, 54px) 0 0;
    padding: 22px;
    border-width: 6px;
    box-shadow: 10px 10px 0 var(--green);
  }
  .world--close .warning-beacon { margin: -22px -22px 16px; padding: 12px 14px; font-size: clamp(1rem, 1.6vw, 1.3rem); }
  .world--close .warning-level { padding: 12px; }
  .world--close .warning-level strong { font-size: 3rem; }
  .world--close .warning-screen { min-height: 220px; margin: 16px 0; padding: 22px; }
  .world--close .warning-screen h2 { margin: 24px 0 14px; font-size: clamp(1.8rem, 3vw, 3rem); }
  .world--close .ignored-content { margin-top: 16px; }
  .world--close .ignore-certificate { grid-area: certificate; }
}

.final-warning-dialog {
  width: min(calc(100% - 24px), 940px);
  max-width: none;
  max-height: calc(100dvh - 24px);
  margin: auto;
  padding: clamp(62px, 8vw, 94px) clamp(24px, 6vw, 70px) clamp(30px, 6vw, 58px);
  overflow: auto;
  border: 10px solid var(--ink);
  background: var(--red);
  color: var(--ink);
  box-shadow: 18px 18px 0 var(--yellow);
}
.final-warning-dialog::backdrop { background: rgba(0,0,0,.95); }
.final-warning-dialog::before { content: ""; position: absolute; z-index: -1; inset: 0; background: repeating-linear-gradient(-45deg, transparent 0 26px, rgba(255,230,0,.3) 26px 52px); }
.final-warning-dialog__alarm { position: absolute; inset: 0 0 auto; padding: 12px; border-bottom: 5px solid var(--ink); background: var(--yellow); font: 900 .78rem/1 ui-monospace, monospace; letter-spacing: .16em; text-align: center; white-space: nowrap; overflow: hidden; }
.final-warning-dialog__icon { position: absolute; right: clamp(18px, 5vw, 52px); top: 74px; color: var(--yellow); font-size: clamp(5rem, 15vw, 11rem); line-height: .7; text-shadow: none; transform: rotate(10deg); }
.final-warning-dialog__kicker { display: inline-block; margin: 0 0 20px; padding: 7px 10px; border: 3px solid var(--ink); background: var(--white); font: 900 .78rem/1 ui-monospace, monospace; }
.final-warning-dialog h2 { position: relative; max-width: 680px; margin: 0 0 24px; font-size: clamp(3.8rem, 8vw, 6.6rem); line-height: .8; letter-spacing: -.07em; }
.final-warning-dialog h2 + p { position: relative; max-width: 650px; margin: 0 0 34px; padding: 18px; border: 4px solid var(--ink); background: var(--white); font: 900 clamp(1rem, 2.3vw, 1.4rem)/1.55 "Yu Gothic", system-ui, sans-serif; }
.final-warning-dialog h2 + p strong { display: block; margin-bottom: 6px; color: var(--red); font-size: 1.35em; }
.final-warning-dialog__actions { position: relative; display: grid; grid-template-columns: .65fr 1.35fr; gap: 18px; }
.final-warning-dialog.is-impact { animation: final-warning-impact .72s cubic-bezier(.15,.85,.2,1.25) both; }
.final-warning-dialog.is-impact .final-warning-dialog__icon { animation: final-warning-icon .58s cubic-bezier(.15,.85,.2,1.3) .12s both; }

.inauguration-dialog {
  width: min(calc(100% - 14px), 1280px);
  max-width: none;
  max-height: calc(100dvh - 14px);
  margin: auto;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border: 12px solid var(--ink);
  background: var(--yellow);
  color: var(--ink);
  box-shadow: 20px 20px 0 var(--red);
  isolation: isolate;
}
.inauguration-dialog[open] { display: block; }
.inauguration-dialog::backdrop { background: rgba(255,75,62,.96); }
.inauguration-dialog__flow {
  --inauguration-pad-top: clamp(82px, 8vw, 118px);
  --inauguration-pad-inline: clamp(24px, 7vw, 90px);
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
  grid-template-areas:
    "ticker ticker"
    "kicker kicker"
    "title title"
    "copy copy"
    "choices choices"
    "speech speech";
  gap: 22px clamp(28px, 5vw, 70px);
  padding: var(--inauguration-pad-top) var(--inauguration-pad-inline) clamp(38px, 6vw, 70px);
  align-items: start;
}
.inauguration-dialog::before { content: ""; position: absolute; z-index: -1; inset: 0; background: repeating-conic-gradient(from 0deg at 78% 32%, rgba(255,75,62,.34) 0 8deg, transparent 8deg 18deg); }
.inauguration-dialog__flow > * { position: relative; z-index: 1; min-width: 0; max-width: 100%; }
.inauguration-dialog__ticker { grid-area: ticker; margin: calc(0px - var(--inauguration-pad-top)) calc(0px - var(--inauguration-pad-inline)) 4px; padding: 16px; border-bottom: 6px solid var(--ink); background: var(--ink); color: var(--yellow); font: 900 clamp(.9rem, 1.8vw, 1.35rem)/1 ui-monospace, monospace; letter-spacing: .16em; text-align: center; white-space: nowrap; overflow: hidden; }
.inauguration-dialog__kicker { grid-area: kicker; display: inline-block; justify-self: start; max-width: 100%; margin: 0; padding: 9px 12px; border: 4px solid var(--ink); background: var(--white); font: 900 clamp(.82rem, 1.4vw, 1.05rem)/1.2 ui-monospace, monospace; }
.inauguration-dialog__flow h2 { grid-area: title; max-width: 1050px; margin: 0; font-size: clamp(3.25rem, 5vw, 5.3rem); line-height: .98; letter-spacing: -.055em; }
.inauguration-dialog__flow h2 em { color: var(--red); font-style: normal; text-shadow: none; }
.inauguration-dialog__flow h2 + p { grid-area: copy; max-width: 920px; margin: 0; font: 900 clamp(1.05rem, 2vw, 1.4rem)/1.6 "Yu Gothic", system-ui, sans-serif; }
.inauguration-message-choices { grid-area: choices; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; width: 100%; }
.inauguration-message-choices button { display: flex; min-height: 238px; padding: 18px; flex-direction: column; align-items: flex-start; border: 5px solid var(--ink); background: var(--white); color: var(--ink); box-shadow: 8px 8px 0 var(--ink); text-align: left; }
.inauguration-message-choices button:hover { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 var(--ink); }
.inauguration-message-choices button:focus-visible { outline: 5px solid var(--blue); outline-offset: 5px; }
.inauguration-message-choices button[aria-pressed="true"] { background: var(--red); box-shadow: 10px 10px 0 var(--yellow); }
.inauguration-message-choices span { padding: 7px 10px; border: 3px solid var(--ink); background: var(--yellow); font: 900 .78rem/1 ui-monospace, monospace; letter-spacing: .07em; }
.inauguration-message-choices strong { display: block; margin: 22px 0 auto; font-size: clamp(1.3rem, 2.1vw, 2rem); line-height: 1.18; letter-spacing: -.04em; }
.inauguration-message-choices small { margin-top: 18px; font: 800 .88rem/1.5 "Yu Gothic", system-ui, sans-serif; }
.inauguration-speech { grid-area: speech; position: relative; margin-top: 12px; padding: clamp(22px, 5vw, 42px); border: 7px solid var(--ink); background: var(--white); box-shadow: 10px 10px 0 var(--red); }
.inauguration-speech > span { display: inline-block; padding: 10px 14px; border: 4px solid var(--ink); background: var(--ink); color: var(--yellow); font: 900 clamp(1.2rem, 2.2vw, 1.9rem)/1.25 "Yu Gothic", system-ui, sans-serif; letter-spacing: .04em; }
.inauguration-speech blockquote { max-width: 980px; margin: 22px 0; font-size: clamp(2.2rem, 5vw, 4.7rem); line-height: 1.08; letter-spacing: -.04em; }
.inauguration-speech blockquote > span { display: block; }
.inauguration-speech blockquote > span { margin-bottom: 28px; color: var(--red); font-size: .72em; }
.inauguration-story-end { margin: 42px 0; padding: 24px 0; border-block: 5px solid var(--ink); color: var(--ink); font: 900 clamp(1rem, 1.8vw, 1.35rem)/1.5 ui-monospace, monospace; letter-spacing: .04em; text-align: center; }
.inauguration-speech__closing { width: min(100%, 780px); margin: 44px auto 0; padding: clamp(16px, 3vw, 28px); border: 8px solid var(--ink); background: var(--red); color: var(--ink); box-shadow: 10px 10px 0 var(--ink); font: 900 clamp(2.5rem, 7vw, 6.4rem)/.76 "Yu Gothic", system-ui, sans-serif; letter-spacing: -.08em; text-align: center; transform: rotate(-2deg); }
.inauguration-speech__closing strong { color: var(--yellow); -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; text-shadow: none; }
.inauguration-term-note { width: min(100%, 780px); margin: 36px auto 0; padding: clamp(16px, 3vw, 26px); border: 5px solid var(--red); background: var(--white); color: var(--ink); box-shadow: 7px 7px 0 var(--ink); font: 900 clamp(1.25rem, 2.6vw, 2rem)/1.35 "Yu Gothic", system-ui, sans-serif; text-align: center; }
.inauguration-term-note strong { display: block; margin-top: 4px; color: var(--red); font-size: 1.22em; }
.inauguration-creator-reveal { max-width: 100%; margin-top: clamp(60px, 10vw, 120px); padding-top: clamp(54px, 8vw, 88px); border-top: 8px double var(--ink); }
.inauguration-creator-note { max-width: 980px; margin: 0; padding: clamp(22px, 4vw, 38px); border: 7px solid var(--ink); background: var(--ink); color: var(--white); box-shadow: 10px 10px 0 var(--blue); }
.inauguration-creator-note > p { display: inline-block; margin: 0 0 18px; padding: 9px 12px; border: 3px solid var(--white); background: var(--red); color: var(--white); font: 900 clamp(.9rem, 1.6vw, 1.2rem)/1.1 ui-monospace, monospace; letter-spacing: .08em; }
.inauguration-creator-note h3 { margin: 0; font: 900 clamp(2rem, 4vw, 4rem)/1.1 "Yu Gothic", system-ui, sans-serif; letter-spacing: -.045em; }
.inauguration-creator-thanks { max-width: 980px; margin: 46px 0 42px; color: var(--ink); font: 900 clamp(1.1rem, 2vw, 1.55rem)/1.55 "Yu Gothic", system-ui, sans-serif; letter-spacing: .02em; text-align: center; }
.inauguration-site-note { max-width: 900px; margin-top: 32px; padding: clamp(20px, 4vw, 34px); border: 6px solid var(--ink); background: var(--yellow); box-shadow: 10px 10px 0 var(--red); color: var(--ink); }
.inauguration-site-note > span { display: inline-block; margin-bottom: 16px; padding: 9px 12px; border: 3px solid var(--ink); background: var(--ink); color: var(--yellow); font: 900 clamp(.95rem, 1.6vw, 1.25rem)/1.2 ui-monospace, monospace; letter-spacing: .08em; }
.inauguration-site-note > strong { display: block; font: 900 clamp(1.55rem, 3.2vw, 3rem)/1.16 "Yu Gothic", system-ui, sans-serif; letter-spacing: -.04em; }
.inauguration-total-useless { max-width: 980px; margin: clamp(46px, 8vw, 92px) auto clamp(38px, 6vw, 70px); color: var(--red); font: 900 clamp(4.2rem, 11.2vw, 10rem)/.88 "Yu Gothic", system-ui, sans-serif; letter-spacing: -.09em; text-align: center; text-shadow: none; transform: rotate(-1.5deg); }
.inauguration-total-useless span { color: var(--red); text-shadow: none; }
.inauguration-tab-close { display: block; width: min(100%, 620px); min-height: 64px; margin-inline: auto; background: var(--ink); color: var(--white); box-shadow: 7px 7px 0 var(--red); font-size: clamp(1rem, 1.6vw, 1.25rem); }
.inauguration-tab-close-status { min-height: 1.5em; margin: 14px auto 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; font-size: .9rem !important; text-align: center; }
.inauguration-dialog.is-live .inauguration-dialog__flow { animation: inauguration-impact .8s cubic-bezier(.15,.85,.2,1.2) both; }
.inauguration-speech.is-comment-live blockquote { animation: inauguration-comment-slam .72s cubic-bezier(.15,.85,.2,1.22) both; }
.inauguration-speech__closing.is-live { animation: inauguration-closing-slam .72s cubic-bezier(.15,.85,.2,1.24) both; }
.inauguration-term-note.is-live { animation: inauguration-term-note-in .58s cubic-bezier(.15,.85,.2,1.18) both; }
.inauguration-creator-reveal.is-live { animation: inauguration-creator-reveal .7s cubic-bezier(.15,.85,.2,1.12) both; }

.post-office-crisis { --crisis-pad-top: clamp(82px, 8vw, 118px); --crisis-pad-inline: clamp(24px, 7vw, 90px); position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); grid-template-areas: "ticker ticker" "kicker stamp" "title title" "copy copy" "metrics metrics" "bottomline bottomline" "actions actions" "status status"; gap: 24px clamp(20px, 4vw, 52px); min-height: min(800px, calc(100dvh - 38px)); padding: var(--crisis-pad-top) var(--crisis-pad-inline) clamp(38px, 6vw, 70px); overflow: hidden; background: var(--red); color: var(--ink); isolation: isolate; }
.post-office-crisis[hidden] { display: none; }
.inauguration-dialog.is-crisis .inauguration-dialog__flow { display: none; }
.post-office-crisis::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -70vmax;
  background: repeating-conic-gradient(from -6deg, var(--yellow) 0 8deg, #ffac27 8deg 17deg);
  transform-origin: center;
  will-change: transform;
  animation: post-office-rays-spin 18s linear infinite;
}
.post-office-crisis > * { position: relative; z-index: 1; min-width: 0; max-width: 100%; }
.post-office-crisis__ticker { grid-area: ticker; margin: calc(0px - var(--crisis-pad-top)) calc(0px - var(--crisis-pad-inline)) 4px; padding: 16px; border-bottom: 6px solid var(--ink); background: var(--ink); color: var(--yellow); font: 900 clamp(.9rem, 1.8vw, 1.35rem)/1 ui-monospace, monospace; letter-spacing: .16em; text-align: center; white-space: nowrap; overflow: hidden; }
.post-office-crisis__kicker { grid-area: kicker; align-self: start; justify-self: start; margin: 0; padding: 9px 12px; border: 4px solid var(--ink); background: var(--white); font: 900 clamp(.82rem, 1.4vw, 1.05rem)/1.2 ui-monospace, monospace; }
.post-office-crisis__stamp { grid-area: stamp; justify-self: end; display: grid; width: clamp(112px, 15vw, 190px); aspect-ratio: 1; place-items: center; border: 12px double var(--ink); background: var(--white); color: var(--red); font: 900 clamp(.9rem, 1.8vw, 1.3rem)/.8 "Yu Gothic", system-ui, sans-serif; text-align: center; transform: rotate(11deg); }
.post-office-crisis__stamp strong { display: block; font-size: clamp(3.4rem, 7vw, 7rem); line-height: .8; }
.post-office-crisis h2 { grid-area: title; max-width: 100%; margin: 0; font-size: clamp(4rem, 7.5vw, 7.8rem); line-height: .94; letter-spacing: -.07em; text-wrap: balance; }
.post-office-crisis h2 em { color: var(--white); font-style: normal; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; text-shadow: none; }
.post-office-crisis__copy { grid-area: copy; max-width: 920px; margin: 0; padding: 18px; border: 5px solid var(--ink); background: var(--white); font: 900 clamp(1.05rem, 2vw, 1.45rem)/1.55 "Yu Gothic", system-ui, sans-serif; box-shadow: 8px 8px 0 var(--ink); }
.post-office-crisis__copy strong { display: block; margin-bottom: 6px; color: var(--red); font-size: 1.4em; }
.post-office-crisis__metrics { grid-area: metrics; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border: 5px solid var(--ink); background: var(--white); box-shadow: 8px 8px 0 var(--ink); list-style: none; }
.post-office-crisis__metrics li { display: grid; gap: 8px; min-height: 116px; padding: 16px; border-right: 3px solid var(--ink); }
.post-office-crisis__metrics li:last-child { border-right: 0; }
.post-office-crisis__metrics span { font: 900 .9rem/1 ui-monospace, monospace; }
.post-office-crisis__metrics strong { align-self: end; color: var(--red); font-size: clamp(1.4rem, 3vw, 2.8rem); line-height: 1; overflow-wrap: anywhere; }
.post-office-crisis__bottomline { grid-area: bottomline; margin: 0; font: 900 clamp(1.25rem, 2.7vw, 2.3rem)/1.28 "Yu Gothic", system-ui, sans-serif; }
.post-office-crisis__actions { grid-area: actions; display: grid; grid-template-columns: .68fr 1.32fr; gap: 16px; }
.post-office-crisis__actions .brutal-action { min-height: 70px; }
.post-office-crisis__status { grid-area: status; min-height: 1.5em; margin: 0; font: 800 1rem/1.45 "Yu Gothic", system-ui, sans-serif; }
.post-office-crisis.is-live { animation: post-office-crisis-slam .72s cubic-bezier(.15,.85,.2,1.22) both; }
.post-office-crisis.is-live .post-office-crisis__stamp { animation: post-office-crisis-stamp .7s cubic-bezier(.15,.85,.2,1.3) .12s both; }

@keyframes catastrophe-shake {
  0%, 100% { transform: translate(0); }
  16% { transform: translate(-6px, 4px); }
  33% { transform: translate(6px, -3px); }
  50% { transform: translate(-4px, -5px); }
  67% { transform: translate(5px, 4px); }
  84% { transform: translate(-3px, 2px); }
}
@keyframes catastrophe-rays-in { 0% { opacity: 0; transform: scale(.15) rotate(-70deg); } 100% { opacity: 1; transform: scale(1) rotate(35deg); } }
@keyframes catastrophe-frame-in { 0% { opacity: 0; transform: scale(1.18); } 100% { opacity: 1; transform: scale(1); } }
@keyframes catastrophe-tape-left { 0% { opacity: 0; transform: translateX(-110%) rotate(-1.25deg); } 100% { opacity: 1; transform: translateX(0) rotate(-1.25deg); } }
@keyframes catastrophe-tape-right { 0% { opacity: 0; transform: translateX(110%) rotate(1.25deg); } 100% { opacity: 1; transform: translateX(0) rotate(1.25deg); } }
@keyframes catastrophe-seal-slam { 0% { opacity: 0; transform: scale(3.5) rotate(-19deg); } 72% { opacity: 1; transform: scale(.88) rotate(5deg); } 100% { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes catastrophe-document-in { 0% { opacity: 0; transform: translateX(-120%); } 100% { opacity: 1; transform: translateX(0); } }
@keyframes catastrophe-out-slam { 0% { opacity: 0; transform: scale(5) rotate(13deg); } 74% { opacity: 1; transform: scale(.88) rotate(-2deg); } 100% { opacity: 1; transform: none; } }
@keyframes catastrophe-copy-in { 0% { opacity: 0; transform: translateY(35px); } 100% { opacity: 1; transform: none; } }
@keyframes aftermath-stamp { 0% { opacity: 0; transform: scale(3) rotate(-14deg); } 100% { opacity: 1; transform: scale(1) rotate(-2deg); } }
@keyframes secret-link-alert { 50% { background: var(--red); color: var(--white); } }
@keyframes comedy-burst {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.15) rotate(0); }
  16% { opacity: 1; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--particle-x)), calc(-50% + var(--particle-y))) scale(1.1) rotate(var(--particle-rotate)); }
}
@keyframes final-office-arrival { 0% { opacity: 0; transform: translateY(110px) rotate(2deg); } 100% { opacity: 1; transform: none; } }
@keyframes waste-verdict-slam { 0% { opacity: 0; transform: scale(2.4) rotate(9deg); } 72% { opacity: 1; transform: scale(.94) rotate(-2deg); } 100% { opacity: 1; transform: rotate(1deg); } }
@keyframes completion-dialog-slam { 0% { opacity: 0; transform: scale(.7) rotate(-3deg); } 68% { opacity: 1; transform: scale(1.035) rotate(1deg); } 100% { transform: none; } }
@keyframes completion-hero-slam { 0% { opacity: 0; transform: scale(3.2) rotate(8deg); } 70% { opacity: 1; transform: scale(.9) rotate(-2deg); } 100% { opacity: 1; transform: var(--hero-final-transform, none); } }
@keyframes completion-corner-press { 0% { opacity: 0; transform: translate(var(--block-x), var(--block-y)) scale(1.5); } 100% { opacity: 1; transform: none; } }
@keyframes apology-camera-flash { 0% { opacity: 0; } 24% { opacity: .92; } 100% { opacity: 0; } }
@keyframes apology-bow-slam { 0% { opacity: 0; transform: translateX(-50%) translateY(-70px) rotate(0); } 100% { opacity: 1; transform: translateX(-50%) rotate(var(--impact-bow-angle)); } }
@keyframes apology-delivery-drop { 0% { opacity: 0; transform: translateY(-42px) rotate(-2deg); } 72% { opacity: 1; transform: translateY(6px) rotate(1deg); } 100% { opacity: 1; transform: none; } }
@keyframes trivial-verdict-label { 0% { opacity: 0; transform: translateY(38px) scale(.45); } 100% { opacity: 1; transform: none; } }
@keyframes trivial-verdict-rise { 0% { opacity: 0; transform: translateY(150px) scale(.08) rotate(-10deg); } 52% { opacity: 1; transform: translateY(-12px) scale(1.08) rotate(2deg); } 100% { opacity: 1; transform: none; } }
@keyframes trivial-verdict-copy { 0% { opacity: 0; transform: translateY(24px); } 100% { opacity: 1; transform: none; } }
@keyframes personnel-warning-stamp { 0% { opacity: 0; transform: scale(4.2) rotate(-20deg); } 70% { opacity: 1; transform: scale(.9) rotate(4deg); } 100% { opacity: 1; transform: rotate(-7deg); } }
@keyframes personnel-warning-drift { 0% { transform: translateX(-4%) rotate(-12deg); } 100% { transform: translateX(5%) rotate(-12deg); } }
@keyframes personnel-warning-side-drift { 0% { transform: translateY(-3%); } 100% { transform: translateY(4%); } }
@keyframes personnel-warning-marquee { 0% { transform: translateX(-12%); } 100% { transform: translateX(12%); } }
@keyframes personnel-backdrop-marquee { 0% { background-position: 0 0; } 100% { background-position: -900px 0; } }
@keyframes appointment-slam { 0% { transform: scale(1.7) rotate(8deg); } 75% { transform: scale(.96) rotate(-2deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes newly-opened { 50% { outline-color: var(--red); background: var(--yellow); } }
@keyframes final-office-warning { 0% { opacity: 0; transform: translateX(-110px) rotate(-8deg) scale(.65); } 68% { opacity: 1; transform: translateX(12px) rotate(2deg) scale(1.07); } 100% { opacity: 1; transform: none; } }
@keyframes final-office-title-slam { 0% { opacity: 0; transform: scale(2.15) rotate(6deg); } 62% { opacity: 1; transform: scale(.93) rotate(-2deg); } 100% { opacity: 1; transform: none; } }
@keyframes final-office-appoint-stamp { 0% { opacity: 0; transform: scale(4.4) rotate(22deg); } 72% { opacity: 1; transform: scale(.84) rotate(-10deg); } 100% { opacity: 1; transform: rotate(-7deg); } }
@keyframes final-warning-impact {
  0% { opacity: 0; transform: scale(1.25) rotate(3deg); }
  45% { opacity: 1; transform: scale(.96) rotate(-2deg); }
  62% { transform: translateX(-10px) rotate(1deg); }
  78% { transform: translateX(9px) rotate(-1deg); }
  100% { transform: none; }
}
@keyframes final-warning-icon { 0% { opacity: 0; transform: scale(4) rotate(-25deg); } 100% { opacity: 1; transform: scale(1) rotate(10deg); } }
@keyframes inauguration-impact {
  0% { opacity: 0; transform: scale(.72) rotate(-4deg); }
  58% { opacity: 1; transform: scale(1.04) rotate(1.5deg); }
  100% { transform: none; }
}
@keyframes inauguration-stamp { 0% { opacity: 0; transform: scale(5) rotate(-28deg); } 72% { opacity: 1; transform: scale(.84) rotate(15deg); } 100% { opacity: 1; transform: scale(1) rotate(11deg); } }
@keyframes inauguration-burst { 0% { opacity: 0; transform: scale(3.5) rotate(25deg); } 72% { opacity: 1; transform: scale(.88) rotate(0); } 100% { opacity: 1; transform: rotate(var(--burst-rotate)); } }
@keyframes inauguration-comment-slam { 0% { opacity: 0; transform: translateY(50px) scale(.5) rotate(-5deg); } 68% { opacity: 1; transform: translateY(-8px) scale(1.05) rotate(1.5deg); } 100% { opacity: 1; transform: none; } }
@keyframes inauguration-closing-slam { 0% { opacity: 0; transform: scale(3.4) rotate(18deg); } 68% { opacity: 1; transform: scale(.88) rotate(-4deg); } 100% { opacity: 1; transform: rotate(-2deg); } }
@keyframes inauguration-term-note-in { 0% { opacity: 0; transform: translateY(36px) scale(.82); } 100% { opacity: 1; transform: none; } }
@keyframes inauguration-creator-reveal { 0% { opacity: 0; transform: translateY(70px); } 100% { opacity: 1; transform: none; } }
@keyframes post-office-crisis-slam {
  0% { opacity: 0; transform: scale(.72) rotate(-4deg); }
  60% { opacity: 1; transform: scale(1.04) rotate(1.5deg); }
  100% { transform: none; }
}
@keyframes post-office-crisis-stamp {
  0% { opacity: 0; transform: scale(4) rotate(-24deg); }
  72% { opacity: 1; transform: scale(.86) rotate(15deg); }
  100% { opacity: 1; transform: scale(1) rotate(11deg); }
}
@keyframes post-office-rays-spin {
  to { transform: rotate(1turn); }
}

.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 22px max(16px, calc((100% - var(--max)) / 2));
  border-top: var(--border);
  background: var(--ink);
  color: var(--white);
  font-size: .8rem;
}

@media (max-width: 900px) {
  .hub-hero { grid-template-columns: 1fr; min-height: auto; }
  .hub-mission { width: min(100%, 620px); justify-self: center; transform: none; }
  .department-grid { grid-template-columns: repeat(2, 1fr); }
  .department-card:nth-child(n) { grid-column: span 1; }
  .department-card:nth-child(5) { grid-column: 1 / -1; }
  .push-layout,
  .maru-manifesto,
  .maru-inspection,
  .gomen-layout { grid-template-columns: 1fr; }
  .completion-dialog[open] { grid-template-columns: 1fr; align-items: start; }
  .completion-dialog__body { padding-top: 28px; }
  .button-vault { min-height: 620px; }
  .world-hero--gomen { padding-right: 0; padding-bottom: 260px; }
  .gomen-logo { top: auto; bottom: 40px; left: 0; right: auto; transform: rotate(-4deg); }
  .appointment-letter__seal { position: static; display: inline-block; margin: 20px 0 0 auto; }
  .final-verification { grid-template-columns: repeat(2, 1fr); }
  .final-verification li { border-bottom: 3px solid var(--ink); }
  .final-verification li:nth-child(2n) { border-right: 0; }
  .final-verification li:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .champ-year { position: static; margin-bottom: 20px; }
  .versus { grid-template-columns: 1fr; }
  .vs-mark { margin: -10px auto; }
}

@media (max-width: 620px) {
  .selection-intro__gate { align-content: center; gap: 14px; padding: 74px 18px 28px; }
  .selection-intro__ticker,
  .selection-intro__warning { min-height: 48px; padding: 12px 8px; font-size: .68rem; letter-spacing: .08em; }
  .selection-intro__stamp { top: 68px; right: 14px; width: 76px; border-width: 7px; font-size: .72rem; }
  .selection-intro__agency { max-width: calc(100% - 88px); padding: 12px 13px; border-width: 4px; box-shadow: 5px 5px 0 var(--ink); }
  .selection-intro__agency strong,
  .selection-intro__notice-kicker strong { font-size: clamp(1.75rem, 8.2vw, 2.3rem); line-height: .92; }
  .selection-intro__agency span,
  .selection-intro__notice-kicker span { font-size: .92rem; line-height: 1.3; }
  .selection-intro__gate h2 { padding-top: 6px; font-size: clamp(2.7rem, 13.7vw, 4.1rem); line-height: 1.18; }
  .selection-intro__gate h2 em { text-shadow: none; }
  .selection-intro__open,
  .selection-intro__enter { min-height: 62px; padding: 12px 14px; font-size: .9rem; }
  .selection-intro__gate > small { font-size: .95rem; }
  .selection-intro__notice { grid-template-columns: minmax(0, 1fr); grid-template-areas: "kicker" "title" "reason" "criteria" "steps" "enter" "foot"; align-content: start; gap: 14px; min-height: 100dvh; padding: 66px 14px 28px; overflow-y: auto; }
  .selection-intro__notice-kicker { max-width: calc(100% - 88px); padding: 12px 13px; border-width: 4px; box-shadow: 5px 5px 0 var(--ink); }
  .selection-intro__notice-stamp { position: absolute; z-index: 4; top: 66px; right: 14px; width: 74px; border-width: 7px; box-shadow: 5px 5px 0 var(--ink); font-size: 2.7rem; }
  .selection-intro__notice h2 { padding-top: 10px; font-size: clamp(2.8rem, 13.5vw, 4.7rem); line-height: 1.02; }
  .selection-intro__notice h2 em { -webkit-text-stroke-width: 1px; text-shadow: none; }
  .selection-intro__reason { display: none; }
  .selection-intro__reason strong,
  .selection-intro__reason span { padding: 9px 12px; }
  .selection-intro__criteria { flex-direction: column; border-width: 4px; box-shadow: 5px 5px 0 var(--ink); }
  .selection-intro__criteria span { min-width: 0; min-height: 42px; padding: 8px 12px; font-size: .95rem; }
  .selection-intro__criteria strong { padding: 10px 12px; font-size: 1rem; line-height: 1.4; }
  .selection-intro__plain-copy { font-size: .9rem; }
  .selection-intro__steps { grid-template-columns: 1fr; border-width: 4px; box-shadow: 6px 6px 0 var(--ink); }
  .selection-intro__steps li { min-height: 58px; border-right: 0; border-bottom: 3px solid var(--ink); }
  .selection-intro__steps li:last-child { border-bottom: 0; }
  .selection-intro__steps b { min-width: 46px; border-right-width: 3px; font-size: 1.05rem; }
  .selection-intro__steps span { gap: 3px; padding: 10px; }
  .selection-intro__steps strong { font-size: .9rem; }
  .selection-intro__steps small { display: none; }
  .selection-intro__footnote { font-size: .9rem; }
  .contestant--a { scroll-margin-top: 18px; }
  .breaking { font-size: .88rem; }
  .breaking__label { padding-inline: 10px; }
  .site-header { align-items: flex-start; }
  .brand small { display: none; }
  .header-stamp { width: 60px; height: 60px; font-size: .72rem; }
  .hub-hero { padding: 30px 22px; box-shadow: 7px 7px 0 var(--ink); }
  .hub-hero__copy { display: contents; }
  .hub-hero__copy > * { position: relative; z-index: 1; }
  .hub-hero .eyebrow { order: 1; }
  .eyebrow--agency { gap: 6px; padding: 13px 14px; }
  .eyebrow--agency strong { font-size: clamp(1.8rem, 9vw, 2.5rem); }
  .eyebrow--agency span { font-size: .9rem; }
  .hub-slogan { order: 2; }
  .hub-hero h1 { order: 3; font-size: clamp(2.4rem, 9.8vw, 4rem); line-height: 1.04; letter-spacing: -.045em; text-wrap: balance; }
  .hub-lede { order: 4; margin-block: 26px 12px; }
  .mission-rules { order: 5; }
  .hub-mission { order: 6; padding: 20px; box-shadow: 7px 7px 0 var(--red); }
  .hub-mission > strong { font-size: 4rem; }
  .hub-mission > p,
  .hub-mission > span { display: none; }
  .hub-mission h2 { margin-bottom: 16px; font-size: 1.65rem; }
  .hub-mission > small { margin-top: 14px; }
  .hub-mission::before { right: -10px; top: -14px; width: 70px; border-width: 7px; font-size: .7rem; }
  h1 { font-size: clamp(3rem, 17vw, 5rem); }
  h1 span { -webkit-text-stroke-width: 2px; }
  .department-grid { grid-template-columns: 1fr; }
  .department-card:nth-child(n) { grid-column: 1; min-height: 330px; }
  .mission-rules { grid-template-columns: 1fr; }
  .mission-rules li { border-right: 0; border-bottom: 3px solid var(--ink); }
  .mission-rules li:last-child { border-bottom: 0; }
  .processing-receipt::after { position: static; display: inline-block; margin-top: 18px; }
  .processing-receipt strong,
  .processing-receipt p { max-width: none; }
  .public-notice { grid-template-columns: 1fr; }
  .public-notice__label { min-height: 52px; border-right: 0; border-bottom: var(--border); }
  .site-footer { flex-direction: column; }
  .world-switcher { display: block; }
  .world-switcher__home { min-height: 44px !important; }
  .world-switcher__progress { display: flex; min-height: 44px; align-items: center; justify-content: space-between; border-top: 3px solid var(--ink); border-right: 0; }
  .world-switcher__progress small { margin: 0; }
  .world-switcher__links { border-top: 3px solid var(--ink); }
  .world-switcher__links li { min-width: 52px; padding-inline: 8px; font-size: .86rem; }
  .world-kicker { gap: 7px; margin-bottom: 34px; padding: 14px; border-width: 4px; box-shadow: 6px 6px 0 var(--ink); }
  .world-kicker strong { font-size: clamp(2.1rem, 11.4vw, 3.6rem); line-height: .9; }
  .world-kicker span { font-size: .95rem; line-height: 1.35; }
  .personnel-progress { grid-template-columns: 1fr; }
  .personnel-progress__label { min-height: 58px; border-right: 0; border-bottom: var(--border); }
  .personnel-progress__body h2 { display: block; }
  .personnel-progress__body h2 strong { display: block; margin-top: 10px; }
  .progress-slots { gap: 4px; }
  .final-office__inner { display: block; }
  .final-office__hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "eyebrow" "notice" "warning" "title" "stamp" "waste" "lede"; gap: 20px; }
  .final-office__hero > * { min-width: 0; max-width: 100%; }
  .final-office { padding: 84px 18px 34px; box-shadow: none; }
  .final-office__tape { top: 10px; padding: 10px; font-size: .82rem; }
  .final-office .eyebrow { margin-top: 4px; }
  .final-office h1 { min-width: 0; margin-block: 8px; font-size: clamp(2.9rem, 12.6vw, 4.8rem); line-height: 1; letter-spacing: -.05em; }
  .waste-verdict { position: relative; top: auto; margin: 6px 0 12px; padding: 20px; transform: none; }
  .waste-verdict > strong b { font-size: clamp(5rem, 27vw, 8rem); }
  .waste-verdict dl div { grid-template-columns: 1fr; gap: 4px; }
  .final-office__actions { width: 100%; margin: 44px auto 16px; }
  .final-verification { margin-top: 58px; }
  .final-verification { grid-template-columns: 1fr; }
  .final-verification li,
  .final-verification li:nth-child(2n) { min-height: 72px; border-right: 0; border-bottom: 3px solid var(--ink); }
  .final-verification li:last-child { grid-column: auto; border-bottom: 0; }
  .completion-dialog { width: calc(100% - 12px); max-height: calc(100dvh - 12px); padding: 62px 14px 24px; border-width: 7px; box-shadow: 7px 7px 0 var(--red); }
  .completion-dialog__stripe { top: 12px; font-size: .68rem; }
  .completion-impact { min-height: 330px; padding: 44px 12px 26px; border-width: 6px; box-shadow: 7px 7px 0 var(--ink); }
  .completion-impact__hero { font-size: clamp(3.7rem, 20vw, 6.2rem); }
  .completion-impact__sub { font-size: 1rem; }
  .completion-impact__metrics { align-items: center; flex-direction: column; }
  .completion-dialog__body { padding-top: 28px; }
  .completion-dialog__stamp { position: static; width: 82px; margin: 0 0 16px auto; border-width: 8px; font-size: 3.5rem; }
  .completion-dialog h2 { font-size: clamp(2.65rem, 13vw, 4.4rem); }
  .completion-dialog[data-impact-theme="square"] .completion-impact { padding: 48px 16px 28px; }
  .completion-dialog[data-impact-theme="square"] .completion-impact__hero { padding: 10px 14px; border-width: 6px; font-size: clamp(3.4rem, 16vw, 5.2rem); }
  .completion-dialog[data-impact-theme="square"] .completion-impact__sub { padding: 10px 12px; border-width: 4px; font-size: .98rem; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact { min-height: 480px; padding: 78px 10px 20px; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__hero { font-size: clamp(3.4rem, 17vw, 5.5rem); }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__sub { font-size: .95rem; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__stage { height: 204px; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__metrics { inset: auto; gap: 6px; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__metrics span { padding: 7px 8px; font-size: .67rem; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__bow { right: auto; bottom: 36px; left: 44%; transform: scale(.84); transform-origin: center bottom; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__microphones { right: 4%; left: 4%; gap: 30px; }
  .completion-dialog[data-impact-theme="trivial"] .completion-impact::after { right: 4px; bottom: 4px; font-size: .72rem; }
  .final-warning-dialog { padding: 70px 18px 26px; border-width: 7px; box-shadow: 8px 8px 0 var(--yellow); }
  .final-warning-dialog__icon { right: 14px; top: 70px; font-size: 4.4rem; }
  .final-warning-dialog h2 { font-size: clamp(3rem, 16vw, 4.8rem); }
  .final-warning-dialog h2 + p { margin-bottom: 22px; padding: 14px; font-size: .95rem; }
  .final-warning-dialog__actions { grid-template-columns: .62fr 1.38fr; gap: 10px; }
  .final-warning-dialog__actions .brutal-action { min-height: 62px; padding: 8px; font-size: .78rem; }
  .inauguration-dialog { width: calc(100% - 10px); max-height: calc(100dvh - 10px); padding: 0; border-width: 7px; box-shadow: 6px 6px 0 var(--red); }
  .inauguration-dialog__flow { grid-template-columns: minmax(0, 1fr); grid-template-areas: "ticker" "kicker" "title" "copy" "choices" "speech"; gap: 18px; padding: 72px 14px 26px; }
  .inauguration-dialog__ticker { margin: -72px -14px 2px; padding: 12px 8px; border-bottom-width: 4px; font-size: .72rem; letter-spacing: .08em; }
  .inauguration-dialog__kicker { max-width: none; }
  .inauguration-dialog__flow h2 { font-size: clamp(2.35rem, 10.3vw, 3.8rem); line-height: 1.02; letter-spacing: -.05em; }
  .inauguration-dialog__flow h2 em { text-shadow: none; }
  .inauguration-message-choices { grid-template-columns: 1fr; gap: 14px; }
  .inauguration-message-choices button { min-height: 166px; padding: 16px; box-shadow: 6px 6px 0 var(--ink); }
  .inauguration-message-choices strong { margin-top: 16px; font-size: 1.35rem; }
  .inauguration-message-choices small { margin-top: 12px; }
  .inauguration-speech { padding: 20px 14px; border-width: 5px; box-shadow: 7px 7px 0 var(--red); }
  .inauguration-speech > span { font-size: 1rem; }
  .inauguration-speech blockquote { margin: 18px 0; font-size: clamp(1.75rem, 9vw, 2.7rem); }
  .inauguration-speech blockquote > span { margin-bottom: 20px; }
  .inauguration-story-end { margin: 30px 0; padding: 18px 0; font-size: .88rem; }
  .inauguration-speech__closing { margin-top: 32px; border-width: 6px; box-shadow: 7px 7px 0 var(--ink); font-size: clamp(2.35rem, 15vw, 4.5rem); }
  .inauguration-term-note { margin-top: 28px; padding: 16px 12px; border-width: 4px; font-size: 1.15rem; }
  .inauguration-creator-reveal { margin-top: 54px; padding-top: 42px; border-top-width: 6px; }
  .inauguration-creator-note { padding: 20px 14px; border-width: 5px; box-shadow: 7px 7px 0 var(--blue); }
  .inauguration-creator-note > p { margin-bottom: 14px; font-size: .82rem; }
  .inauguration-creator-note h3 { font-size: clamp(1.75rem, 8.2vw, 2.6rem); }
  .inauguration-creator-thanks { margin: 34px 0 30px; padding-inline: 8px; font-size: 1rem; }
  .inauguration-site-note { margin-top: 22px; padding: 16px; border-width: 5px; box-shadow: 7px 7px 0 var(--red); }
  .inauguration-site-note > strong { font-size: 1.45rem; }
  .inauguration-total-useless { margin: 56px auto 44px; font-size: clamp(4rem, 20vw, 6.4rem); line-height: .92; text-shadow: none; }
  .inauguration-total-useless span { text-shadow: none; }
  .inauguration-tab-close { width: 100%; max-width: 100%; }
  .post-office-crisis { grid-template-columns: minmax(0, 1fr); grid-template-areas: "ticker" "kicker" "title" "copy" "metrics" "bottomline" "actions" "status"; gap: 18px; min-height: 0; padding: 72px 14px 26px; }
  .post-office-crisis__ticker { margin: -72px -14px 2px; padding: 12px 8px; border-bottom-width: 4px; font-size: .72rem; letter-spacing: .08em; }
  .post-office-crisis__stamp { position: absolute; z-index: 2; top: 82px; right: 14px; width: 96px; border-width: 7px; }
  .post-office-crisis__stamp strong { font-size: 2.8rem; }
  .post-office-crisis__kicker { min-height: 96px; padding-right: 108px; }
  .post-office-crisis h2 { font-size: clamp(3.3rem, 15vw, 5rem); line-height: .96; }
  .post-office-crisis h2 em { -webkit-text-stroke-width: 1px; text-shadow: none; }
  .post-office-crisis__copy { padding: 14px; border-width: 4px; font-size: .95rem; box-shadow: 6px 6px 0 var(--ink); }
  .post-office-crisis__metrics { grid-template-columns: 1fr; border-width: 4px; box-shadow: 6px 6px 0 var(--ink); }
  .post-office-crisis__metrics li { min-height: 0; padding: 12px; border-right: 0; border-bottom: 3px solid var(--ink); }
  .post-office-crisis__metrics li:last-child { border-bottom: 0; }
  .post-office-crisis__metrics strong { font-size: 1.7rem; }
  .post-office-crisis__bottomline { font-size: 1.2rem; }
  .post-office-crisis__actions { grid-template-columns: 1fr; gap: 12px; }
  .post-office-crisis__actions .brutal-action { min-height: 64px; }
  .appointment-letter { padding: 24px 16px; }
  .appointment-letter__heading { grid-template-columns: 1fr; }
  .appointment-letter__heading span { writing-mode: initial; }
  .appointment-letter dl div { grid-template-columns: 96px 1fr; }
  .appointment-letter dt,
  .appointment-letter dd { padding: 10px 8px; }
  .world-hero h1,
  .champ-header h1 { font-size: clamp(3.5rem, 18vw, 6rem); }
  .world-hero--push em,
  .world-hero--gomen em { -webkit-text-stroke-width: 1px; }
  .push-layout,
  .maru-manifesto,
  .maru-inspection,
  .gomen-layout,
  .match-arena { width: min(calc(100% - 24px), var(--max)); }
  .button-vault,
  .incident-panel,
  .maru-inspection,
  .apology-output,
  .match-arena,
  .warning-machine { padding: 24px 18px; box-shadow: 7px 7px 0 var(--ink); }
  .button-vault { min-height: 540px; }
  .danger-button { width: min(78vw, 280px); }
  .push-catastrophe {
    padding: 118px 18px 94px;
    grid-template-columns: minmax(96px, .72fr) minmax(0, 1.28fr);
    grid-template-rows: auto auto auto auto auto;
    grid-template-areas:
      "out out"
      "seal documents"
      "verdict verdict"
      "number number"
      "actions actions";
    align-content: center;
    column-gap: 14px;
    row-gap: 8px;
  }
  .catastrophe-frame { inset: 8px; border-width: 7px; box-shadow: inset 0 0 0 4px var(--yellow); }
  .catastrophe-actions { width: calc(100% - 32px); justify-content: center; }
  .catastrophe-actions button,
  .catastrophe-actions a { min-height: 60px; padding: 10px 12px; font-size: .88rem; }
  .catastrophe-tape { font-size: .66rem; }
  .catastrophe-tape--top { top: 68px; }
  .catastrophe-tape--bottom { bottom: 94px; }
  .catastrophe-seal { width: min(31vw, 112px); border-width: 8px; }
  .catastrophe-seal span { font-size: .65rem; }
  .catastrophe-seal strong { font-size: clamp(2.25rem, 11vw, 2.8rem); }
  .catastrophe-documents { width: calc(100% - 8px); gap: 5px; }
  .catastrophe-documents span { padding: 8px 10px; border-width: 3px; box-shadow: 4px 4px 0 var(--ink); font-size: .62rem; }
  .catastrophe-documents span:nth-child(2) { margin-left: 4px; }
  .catastrophe-documents span:nth-child(3) { margin-left: 8px; }
  .catastrophe-out h2 { font-size: clamp(6.8rem, 38vw, 9.5rem); -webkit-text-stroke-width: 1px; text-shadow: none; }
  .catastrophe-out > strong { padding: 6px 10px; border-width: 4px; font-size: 1.1rem; }
  .catastrophe-verdict { padding: 9px 10px; border-width: 3px; box-shadow: 4px 4px 0 var(--ink); font-size: 1rem; }
  .catastrophe-number { padding: 6px 8px; border-width: 3px; box-shadow: 4px 4px 0 var(--ink); font-size: .7rem; }
  .incident-panel .threat-level { align-items: flex-start; flex-direction: column; }
  .world-footnote { flex-direction: column; }
  .maru-manifesto blockquote { padding: 34px 22px; }
  .criminal-ui { grid-template-columns: 1fr; min-height: auto; padding: 22px; }
  .crime-card { grid-column: 1; }
  .crime-avatar { justify-self: center; }
  .petition-counter { flex-direction: column; align-items: center; gap: 6px; }
  .apology-console { padding-inline: 18px; }
  .console-bar { margin-inline: -18px; }
  .apology-output { min-height: 600px; }
  .bow-meter { align-items: center; flex-direction: column; text-align: center; }
  .bow-stage { flex-basis: 180px; width: min(100%, 240px); }
  .bow-readout { min-width: 0; justify-items: center; text-align: center; }
  .gomen-logo { width: 150px; height: 150px; font-size: 4rem; }
  .scoreboard { grid-template-columns: 1fr; margin: -24px -18px 28px; }
  .scoreboard span { border-right: 0; border-bottom: 1px solid var(--white); }
  .scoreboard span:last-child { border-bottom: 0; }
  .contestant { min-height: 280px; padding: 22px; }
  .vs-mark { width: 74px; height: 74px; }
  .var-room { grid-template-columns: 66px 1fr; }
  .warning-actions { grid-template-columns: 1fr; }
  .ignored-content { grid-template-columns: 1fr 1fr; }
  .warning-screen { min-height: 360px; padding: 24px 18px; }
  .warning-beacon { margin: -24px -18px 24px; }
  .ignore-certificate { padding: 34px 20px; }

  /* Phone-first staging: reveal the joke before its explanation. */
  .world--maru { display: flex; flex-direction: column; }
  .world--maru .protest-strip { order: 0; }
  .world--maru .world-hero { order: 1; }
  .world--maru .maru-inspection { order: 2; }
  .world--maru .maru-manifesto { order: 3; }
  .world--maru .maru-victory { order: 4; }
  .world--maru .petition-counter { order: 5; }
  .world--maru .world-hero,
  .world--gomen .world-hero { padding-block: 22px 18px; }
  .world--maru .world-hero h1,
  .world--gomen .world-hero h1 { font-size: clamp(2.45rem, 12.5vw, 4rem); line-height: .96; }
  .world--maru .world-hero > p:last-child,
  .world--gomen .world-hero > p:last-child { display: none; }
  .world--maru .maru-manifesto { margin-bottom: 32px; }
  .world--maru .maru-manifesto blockquote { padding-block: 26px; font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .world--maru .manifesto-list p { grid-template-columns: 82px 1fr; min-height: 0; padding: 16px; font-size: .92rem; }
  .world--maru .manifesto-list span { font-size: 1rem; }
  .world--maru .maru-inspection { display: flex; flex-direction: column; gap: 18px; }
  .world--maru .criminal-ui { order: -1; min-height: 330px; }
  .world--maru .criminal-ui .maru-status,
  .world--maru .criminal-ui > .brutal-action { grid-column: 1 / -1; width: 100%; margin: 0; }
  .world--maru .criminal-ui .maru-status { align-self: end; }
  .world--maru .criminal-ui > .brutal-action { min-height: 62px; }
  .world--maru .inspection-copy h2 { font-size: clamp(2.35rem, 13vw, 4rem); }

  /* The bow reacts directly under the sincerity choices. */
  .world--gomen .apology-output { display: flex; flex-direction: column; min-height: 0; }
  .world--gomen .world-hero--gomen { padding-bottom: 154px; }
  .world--gomen .gomen-logo { bottom: 12px; width: 112px; height: 112px; font-size: 3rem; }
  .world--gomen .output-status { order: 0; }
  .world--gomen .apology-console .bow-meter { min-height: 0; margin: 0 0 22px; padding: 16px; }
  .world--gomen .bow-stage { flex-basis: 210px; width: min(100%, 280px); height: 210px; }
  .world--gomen .bow-person { font-size: 2.55rem; }
  .world--gomen .document-label { order: 2; }
  .world--gomen .apology-output h2 { order: 3; margin: 18px 0; }
  .world--gomen .apology-output > [data-apology-output] { order: 4; min-height: 0; margin-bottom: 18px; }
  /* Keep the completion posters legible without making the user hunt below the fold. */
  .completion-dialog[data-impact-theme="square"] .completion-impact { min-height: 0; gap: 10px; padding: 42px 12px 20px; }
  .completion-dialog[data-impact-theme="square"] .completion-impact__blocks span { width: clamp(48px, 17vw, 72px); border-width: 5px; box-shadow: 5px 5px 0 var(--ink); }
  .completion-dialog[data-impact-theme="square"] .completion-impact__hero { font-size: clamp(3rem, 15vw, 4.7rem); }
  .completion-dialog[data-impact-theme="square"] .completion-impact__sub { font-size: .9rem; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact { min-height: 480px; padding: 78px 10px 20px; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__hero { font-size: clamp(3rem, 15vw, 4.8rem); }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__stage { height: 204px; }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__bow { right: auto; bottom: 36px; left: 44%; transform: scale(.84); }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__microphones { height: 48%; }
}

@media (max-height: 620px) and (min-width: 621px) {
  .push-catastrophe {
    padding: 108px 46px 78px;
    column-gap: 34px;
    row-gap: 4px;
  }
  .catastrophe-actions { width: min(640px, calc(100% - 48px)); }
  .catastrophe-tape { padding-block: 7px; font-size: .78rem; }
  .catastrophe-tape--top { top: 58px; }
  .catastrophe-tape--bottom { bottom: 86px; }
  .catastrophe-seal { width: clamp(104px, min(14vw, 20vh), 160px); border-width: 8px; }
  .catastrophe-seal span { font-size: .72rem; }
  .catastrophe-seal strong { font-size: clamp(2.2rem, 3.2vw, 2.8rem); }
  .catastrophe-documents { width: min(calc(100% - 24px), 280px); gap: 4px; }
  .catastrophe-documents span { padding: 6px 12px; border-width: 3px; box-shadow: 4px 4px 0 var(--ink); font-size: .78rem; }
  .catastrophe-documents span:nth-child(2) { margin-left: 12px; }
  .catastrophe-documents span:nth-child(3) { margin-left: 24px; }
  .catastrophe-out p { font-size: .78rem; }
  .catastrophe-out h2 { font-size: clamp(7rem, min(18vw, 38vh), 15rem); text-shadow: none; }
  .catastrophe-out > strong { padding: 6px 12px; border-width: 4px; font-size: clamp(1.25rem, 2.8vw, 2.2rem); }
  .catastrophe-verdict { font-size: 1.15rem; }
  .catastrophe-number { font-size: .75rem; }
}

@media (max-width: 360px) {
  .selection-intro__notice { gap: 9px; }
  .selection-intro__notice h2 { font-size: 2.2rem; line-height: .98; }
  .selection-intro__criteria { flex-direction: row; }
  .selection-intro__criteria span { min-width: 82px; padding: 8px; font-size: .82rem; }
  .selection-intro__criteria strong { padding: 8px; font-size: .9rem; line-height: 1.35; }
  .site-header { margin-block: 12px; }
  .brand__mark { width: 48px; height: 48px; font-size: 1.65rem; box-shadow: 4px 4px 0 var(--ink); }
  .header-stamp { width: 50px; height: 50px; border-width: 4px; font-size: .62rem; }
  .hub-hero { padding: 20px 16px; }
  .hub-slogan { display: none; }
  .hub-hero h1 { font-size: 2.55rem; line-height: 1.04; }
  .hub-mission { padding: 14px; }
  .hub-mission > p,
  .hub-mission > span { display: none; }
  .hub-mission > strong { font-size: 3.25rem; }
  .hub-mission h2 { margin: 10px 0 12px; font-size: 1.45rem; }
  .hub-mission > small { margin-top: 10px; font-size: .9rem; }
}

/* Responsive scale normalization ----------------------------------------
   Preserve the intentionally loud visual language without forcing the
   primary joke or action several viewports below the fold. */
.world-hero {
  padding-block: clamp(32px, 5vw, 64px);
}
.world-kicker {
  margin-bottom: clamp(22px, 3vw, 36px);
  padding: clamp(14px, 2vw, 20px);
}
.world-kicker strong {
  font-size: clamp(2.2rem, 4.6vw, 4.8rem);
  line-height: .9;
}
.world-hero h1,
.champ-header h1 {
  font-size: clamp(3.2rem, 7vw, 7rem);
  line-height: .98;
}
.world-hero > p:last-child,
.champ-header > p:last-child {
  margin-top: 22px;
}
.world-hero--push {
  padding-block: clamp(26px, 4vw, 48px);
}
.world-hero--push .world-kicker {
  width: min(100%, 800px);
  margin-bottom: 16px;
  padding-block: 13px;
}
.world-hero--push .world-kicker strong {
  font-size: clamp(2.3rem, 3.8vw, 3.9rem);
}
.world-hero--push h1 {
  font-size: clamp(3.1rem, 5vw, 5rem);
}
.world-hero--push > p:last-child {
  margin-top: 14px;
}

.push-layout {
  align-items: start;
  gap: 30px;
}
.button-vault {
  justify-content: flex-start;
  min-height: 520px;
  padding: 26px 32px 32px;
}
.incident-panel {
  align-self: start;
}
.danger-button {
  width: clamp(220px, 26vw, 280px);
  margin-block: 18px 16px;
  border-width: 12px;
}
.danger-button span {
  font-size: clamp(3.1rem, 5.5vw, 4.8rem);
}
.button-vault .machine-label {
  margin-bottom: 10px;
}
.button-vault h2 {
  margin-bottom: 8px;
}
.button-vault > p:not(.machine-label, .push-counter) {
  margin-block: 8px;
}
#push-warning {
  gap: 4px;
  margin-bottom: 14px;
  padding: 11px 15px;
}

.maru-manifesto {
  margin-bottom: 50px;
}
.maru-manifesto blockquote {
  padding: clamp(30px, 4.8vw, 56px);
  font-size: clamp(2.8rem, 5.2vw, 5.2rem);
  line-height: .94;
}
.criminal-ui {
  min-height: 430px;
  padding: 30px;
}
.maru-victory strong {
  font-size: clamp(2.6rem, 5.5vw, 5.4rem);
}

.apology-output {
  min-height: 540px;
  padding: 30px;
}
.output-status {
  margin: -30px -30px 26px;
}
.bow-meter {
  min-height: 170px;
  padding: 20px;
}
.bow-stage {
  flex-basis: 210px;
  width: 210px;
  height: 156px;
}

.champ-header {
  padding-block: clamp(36px, 6vw, 72px);
}
.match-arena {
  margin-top: 36px;
  padding: 28px;
}
.scoreboard {
  margin: -28px -28px 30px;
}
.match-arena h2 {
  margin-bottom: 30px;
  font-size: clamp(2.3rem, 4.8vw, 4.3rem);
}
.contestant {
  min-height: 300px;
  padding: 24px;
}

.completion-impact {
  min-height: clamp(250px, 38vh, 380px);
  padding: clamp(24px, 4vw, 44px);
}
.completion-impact__hero {
  font-size: clamp(3.8rem, 8vw, 6.7rem);
}
.completion-dialog h2 {
  font-size: clamp(2.35rem, 3.8vw, 3.8rem);
  line-height: .94;
}

@media (min-width: 621px) and (max-width: 900px) {
  .hub-hero {
    gap: 30px;
    padding: 36px;
  }
  .hub-hero h1 {
    font-size: clamp(3rem, 7vw, 4.8rem);
  }
  .hub-mission {
    padding: 28px;
  }
  .hub-mission > p,
  .hub-mission > span {
    display: none;
  }
  .hub-mission h2 {
    margin-bottom: 16px;
  }
  .world-hero {
    padding-block: 30px;
  }
  .world-kicker {
    margin-bottom: 22px;
    padding: 15px;
  }
  .world-kicker strong {
    font-size: clamp(2.3rem, 6vw, 3.8rem);
  }
  .world-hero h1,
  .champ-header h1 {
    font-size: clamp(2.9rem, 7.5vw, 4.8rem);
  }
  .button-vault {
    min-height: 470px;
    padding: 28px;
  }
  .danger-button {
    width: clamp(230px, 34vw, 270px);
  }
  .world-hero--gomen {
    padding-right: 150px;
    padding-bottom: 30px;
  }
  .gomen-logo {
    top: 50%;
    right: 0;
    bottom: auto;
    left: auto;
    width: 150px;
    height: 150px;
    font-size: 4rem;
    transform: translateY(-50%) rotate(4deg);
  }
  .maru-manifesto blockquote {
    font-size: clamp(3rem, 8vw, 4.4rem);
  }
  .champ-header {
    padding-block: 22px;
  }
  .champ-header > *:not(.champ-year) {
    position: relative;
    z-index: 1;
  }
  .champ-year {
    position: absolute;
    z-index: 0;
    top: 6px;
    right: 0;
    margin: 0;
    opacity: .16;
    font-size: 8rem;
    pointer-events: none;
  }
  .champ-header h1 {
    font-size: clamp(2.9rem, 6.6vw, 4.1rem);
  }
  .champ-header > p:last-child {
    margin-top: 14px;
  }
  .match-arena {
    margin-top: 24px;
  }
  .match-arena h2 {
    margin-bottom: 22px;
  }
  .completion-dialog[open] {
    gap: 22px;
  }
  .completion-dialog[data-impact-theme="apology"] .completion-impact {
    min-height: 410px;
    padding: 62px 16px 16px;
  }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__hero {
    font-size: clamp(3.2rem, 8vw, 4.4rem);
  }
  .completion-dialog[data-impact-theme="apology"] .completion-impact__stage {
    height: 148px;
  }
  .completion-dialog[data-impact-theme="personnel"] .completion-impact {
    min-height: 410px;
  }
  .final-office {
    padding: 72px 22px 42px;
  }
  .final-office__hero {
    grid-template-columns: minmax(0, .58fr) minmax(280px, 1.42fr);
    grid-template-areas:
      "eyebrow eyebrow"
      "notice notice"
      "warning warning"
      "title title"
      "stamp waste"
      "lede lede";
    gap: 18px 24px;
  }
  .final-office .eyebrow {
    margin-top: 6px;
  }
  .final-office h1 {
    font-size: clamp(3.8rem, 8.2vw, 5rem);
  }
  .final-office__appoint-stamp {
    align-self: center;
    padding: 8px 12px;
    border-width: 7px;
    font-size: clamp(3rem, 7vw, 4.4rem);
  }
  .waste-verdict {
    position: relative;
    top: auto;
    margin: 0;
    padding: 22px;
    transform: none;
  }
  .waste-verdict > strong b {
    font-size: clamp(4.5rem, 10vw, 6rem);
  }
  .final-verification {
    margin: 42px 0 24px;
  }
  .final-verification li {
    min-height: 92px;
    padding: 13px;
  }
  .appointment-letter {
    margin: 32px auto 26px;
    padding: 34px;
  }
  .appointment-letter__heading strong {
    font-size: clamp(2.7rem, 7vw, 4rem);
  }
  .final-office__actions {
    margin-top: 38px;
  }
}

@media (max-width: 620px) {
  .world-switcher {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .world-switcher__home {
    grid-column: 1;
    min-height: 42px !important;
    padding: 7px 10px;
    font-size: .78rem;
  }
  .world-switcher__progress {
    grid-column: 2;
    min-width: 138px;
    min-height: 42px;
    padding: 5px 9px;
    border-top: 0;
  }
  .world-switcher__progress small {
    max-width: 84px;
    font-size: .66rem;
  }
  .world-switcher__links {
    grid-column: 1 / -1;
  }
  .world-switcher__links li {
    min-height: 42px;
  }
  .world-hero {
    padding-block: 20px 18px;
  }
  .world-kicker {
    margin-bottom: 18px;
    padding: 12px;
  }
  .world-kicker strong {
    font-size: clamp(2rem, 9.5vw, 3.15rem);
    line-height: .94;
  }
  .world-kicker span {
    font-size: .92rem;
  }
  .world-hero h1,
  .champ-header h1 {
    font-size: clamp(2.55rem, 12.5vw, 4.2rem);
    line-height: 1;
  }
  .world-hero > p:last-child,
  .champ-header > p:last-child {
    margin-top: 16px;
  }
  .button-vault {
    min-height: 400px;
    padding: 20px 16px;
  }
  .button-vault h2 {
    margin-bottom: 8px;
    font-size: 1.8rem;
  }
  .button-vault > p:not(.machine-label, .push-counter) {
    margin-block: 8px;
    font-size: .95rem;
  }
  #push-warning {
    gap: 4px;
    margin-bottom: 12px;
    padding: 10px 12px;
  }
  #push-warning strong {
    font-size: 1.2rem;
  }
  #push-warning span {
    font-size: .88rem;
  }
  .danger-button {
    width: min(64vw, 220px);
    margin-block: 14px;
    border-width: 10px;
  }
  .danger-button span {
    font-size: clamp(3rem, 15vw, 4.3rem);
  }
  .world--maru .maru-manifesto blockquote {
    padding: 24px 18px;
    font-size: clamp(2.55rem, 12vw, 3.8rem);
  }
  .criminal-ui {
    min-height: 0;
    padding: 20px;
  }
  .world--gomen .world-hero--gomen {
    padding-bottom: 132px;
  }
  .apology-output {
    min-height: 0;
    padding: 22px 18px;
  }
  .output-status {
    margin: -22px -18px 20px;
  }
  .champ-header {
    padding-block: 24px;
  }
  .champ-header > *:not(.champ-year) {
    position: relative;
    z-index: 1;
  }
  .champ-year {
    position: absolute;
    z-index: 0;
    top: 8px;
    right: -8px;
    margin: 0;
    opacity: .14;
    font-size: 6.5rem;
    pointer-events: none;
  }
  .champ-header h1 {
    font-size: clamp(2.45rem, 11.5vw, 3.75rem);
  }
  .match-arena {
    margin-top: 24px;
    padding: 18px;
  }
  .scoreboard {
    margin: -18px -18px 24px;
  }
  .match-arena h2 {
    margin-bottom: 24px;
    font-size: clamp(2.1rem, 10vw, 3.25rem);
  }
  .contestant {
    min-height: 250px;
    padding: 18px;
  }
  .completion-impact {
    min-height: 0;
  }
  .completion-impact__hero {
    font-size: clamp(3.2rem, 16vw, 5rem);
  }
  .completion-dialog h2 {
    font-size: clamp(2.3rem, 11vw, 3.65rem);
    line-height: .98;
  }
}

/* User-facing copy must remain readable. Decorative ticker text may stay compact. */
.view small,
dialog small { font-size: max(.9rem, 1em); line-height: 1.4; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .push-catastrophe .catastrophe-rays,
  .push-catastrophe .catastrophe-frame,
  .push-catastrophe .catastrophe-tape,
  .push-catastrophe .catastrophe-seal,
  .push-catastrophe .catastrophe-documents span,
  .push-catastrophe .catastrophe-out,
  .push-catastrophe .catastrophe-verdict,
  .push-catastrophe .catastrophe-number { opacity: 1; }
  .push-catastrophe .catastrophe-rays { transform: scale(1) rotate(35deg); }
  .push-catastrophe .catastrophe-frame,
  .push-catastrophe .catastrophe-seal,
  .push-catastrophe .catastrophe-documents span { transform: none; }
  .push-catastrophe .catastrophe-tape--top { transform: rotate(-1.25deg); }
  .push-catastrophe .catastrophe-tape--bottom { transform: rotate(1.25deg); }
  .push-catastrophe .catastrophe-out { transform: none; }
  .push-catastrophe .catastrophe-verdict,
  .push-catastrophe .catastrophe-number { transform: none; }
}
