:root {
  color-scheme: dark;
  --ink: #18151f;
  --paper: #f5e7c8;
  --paper-deep: #dec895;
  --cyan: #34d6ca;
  --gold: #ffc64b;
  --coral: #ff6b62;
  --navy: #162637;
  --copper: #a85d36;
  --cream: #fff6dc;
  --shadow: #0c1017;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #10151d; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  color: var(--cream);
  overflow-x: hidden;
  overscroll-behavior: none;
  background:
    radial-gradient(circle at 18% 20%, rgba(52,214,202,.13), transparent 24rem),
    radial-gradient(circle at 85% 55%, rgba(255,107,98,.11), transparent 30rem),
    repeating-linear-gradient(90deg, transparent 0 47px, rgba(255,255,255,.018) 48px 49px),
    linear-gradient(#172230, #0e131a 65%);
}

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

.press-shell { width: min(1440px, 100%); min-height: 100vh; min-height: 100dvh; margin: auto; position: relative; }
.top-bar {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: max(10px, env(safe-area-inset-top)) clamp(14px, 3vw, 36px) 10px;
  border-bottom: 3px solid #6b472f;
  background: #121b26;
  box-shadow: 0 5px 0 #090d12;
  position: relative;
  z-index: 20;
}
.back-link { color: var(--cream); text-decoration: none; font-weight: 900; font-size: .9rem; }
.back-link span { color: var(--gold); font-size: 1.6rem; vertical-align: -.12em; margin-right: .2rem; }
.factory-mark { display: flex; align-items: center; gap: .55rem; font-family: ui-monospace, Consolas, monospace; letter-spacing: .09em; color: #90a8b5; font-size: .68rem; }
.factory-mark b { color: var(--gold); border: 1px solid #806536; padding: .25rem .45rem; }
.sound-button { border: 2px solid #597184; color: var(--cream); background: #1d3041; padding: .55rem .8rem; min-height: 44px; cursor: pointer; font-weight: 900; }

.screen { min-height: calc(100vh - 68px); min-height: calc(100dvh - 68px); }
.start-screen {
  display: grid;
  grid-template-columns: minmax(420px, 1.05fr) minmax(340px, .95fr);
  grid-template-rows: 1fr auto;
  gap: 24px 4vw;
  align-items: center;
  padding: clamp(28px, 5vw, 72px);
  position: relative;
  overflow: hidden;
}
.start-screen::before {
  content: ""; position: absolute; inset: auto -5% 0; height: 26%; z-index: -1;
  background: repeating-linear-gradient(90deg, #5b3427 0 70px, #6d3e2c 71px 140px);
  border-top: 7px solid #9b6945;
  transform: perspective(400px) rotateX(42deg); transform-origin: bottom;
}
.hero-copy { grid-column: 2; grid-row: 1; position: relative; z-index: 2; }
.kicker { margin: 0 0 .75rem; color: var(--cyan); font-family: ui-monospace, Consolas, monospace; letter-spacing: .15em; font-weight: 900; font-size: .78rem; }
h1 { margin: 0; color: var(--paper); font-family: Georgia, "Yu Mincho", serif; font-size: clamp(3.6rem, 7.3vw, 7.7rem); line-height: .84; letter-spacing: -.055em; text-shadow: 5px 6px 0 #7d3f2e, 10px 12px 0 #090c11; }
h1 small { display: block; color: var(--gold); font-family: "Yu Gothic", sans-serif; font-size: .27em; letter-spacing: .08em; margin-bottom: .45em; text-shadow: 3px 3px 0 #7a372e; }
h1 em { color: var(--coral); font-style: normal; font-size: .72em; letter-spacing: -.07em; }
.lead { font-size: clamp(1rem, 2vw, 1.35rem); line-height: 1.65; font-weight: 800; color: #dbe8e8; }
.lead strong { color: var(--gold); font-size: 1.15em; }
.quick-guide { color: #aebfc7; line-height: 1.6; font-size: .86rem; }

.lever-button {
  min-height: 62px; min-width: 240px; padding: 0 75px 0 25px; border: 0; color: #18151f;
  background: var(--gold); box-shadow: inset 0 -7px 0 #d7792f, 0 7px 0 #6d351f, 0 12px 20px #050709;
  font-weight: 1000; font-size: 1.05rem; cursor: pointer; position: relative; transform: skew(-3deg);
}
.lever-button span { display: inline-block; transform: skew(3deg); }
.lever-button i { position: absolute; right: 25px; top: -16px; width: 18px; height: 58px; border-radius: 10px; background: #bfc9cc; transform: rotate(11deg); box-shadow: inset -5px 0 #75858a, 0 4px #1c2225; }
.lever-button i::before { content: ""; position: absolute; width: 38px; height: 38px; border-radius: 50%; background: var(--coral); top: -15px; left: -10px; box-shadow: inset -8px -8px #b23e42; }
.lever-button:hover { filter: brightness(1.08); }
.lever-button:active { transform: skew(-3deg) translateY(5px); box-shadow: inset 0 -3px 0 #d7792f, 0 3px 0 #6d351f; }
.lever-button.compact { min-width: 210px; min-height: 54px; }

.hero-press { grid-column: 1; grid-row: 1; aspect-ratio: 1.05; max-height: 610px; position: relative; filter: drop-shadow(0 25px 25px #030508); }
.hero-press::before { content: ""; position: absolute; inset: 11% 9% 8%; background: linear-gradient(135deg, #304459, #182432 55%, #0e171f); border: 12px solid #8a5134; clip-path: polygon(10% 0,90% 0,100% 15%,96% 88%,82% 100%,16% 100%,3% 87%,0 16%); box-shadow: inset 0 0 0 5px #d08b4a; }
.hero-wheel { position: absolute; width: 29%; aspect-ratio: 1; border: 20px dashed #cc8a4c; border-radius: 50%; background: #17222d; top: 7%; z-index: 1; animation: spin 13s linear infinite; }
.hero-wheel::after { content: ""; position: absolute; inset: 30%; border-radius: 50%; background: #f3b84a; box-shadow: 0 0 0 8px #502f26; }
.hero-wheel--left { left: 6%; }.hero-wheel--right { right: 5%; animation-direction: reverse; }
.hero-roller { position: absolute; z-index: 4; left: 22%; right: 22%; top: 23%; height: 28%; background: linear-gradient(90deg,#7b3f2d,#e47b45 18%,#8f4630 52%,#e47b45 82%,#6c3228); border-radius: 26px; border: 8px solid #291d1b; display: grid; place-items: center; }
.hero-roller i { position: absolute; inset: 22% -10%; border-top: 8px solid #283946; border-bottom: 8px solid #283946; }
.hero-roller b { font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 4rem); color: var(--paper); text-shadow: 4px 4px #55251f; z-index: 2; }
.hero-track { position: absolute; z-index: 5; left: 16%; right: 16%; bottom: 17%; display: flex; gap: 4%; transform: perspective(500px) rotateX(54deg); }
.hero-plate { flex: 1; color: #14212a; font-size: clamp(.85rem,2vw,1.3rem); font-weight: 1000; text-align: center; padding: 8% 2%; border: 5px solid #0f161d; box-shadow: inset 0 -9px rgba(0,0,0,.22), 8px 9px #070a0e; }
.plate-cyan { background: var(--cyan); }.plate-gold { background: var(--gold); }.plate-coral { background: var(--coral); }
.ink-flow { position: absolute; z-index: 3; left: 25%; right: 25%; top: 51%; height: 25%; overflow: hidden; }
.ink-flow i { position: absolute; width: 13px; height: 40px; background: var(--cyan); border-radius: 0 0 12px 12px; animation: drip 1.2s ease-in infinite; }
.ink-flow i:nth-child(1){left:8%;}.ink-flow i:nth-child(2){left:36%;animation-delay:.35s;background:var(--gold)}.ink-flow i:nth-child(3){left:64%;animation-delay:.7s;background:var(--coral)}.ink-flow i:nth-child(4){left:88%;animation-delay:.95s}
.record-cabinet { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; gap: 24px; border: 3px solid #7f573d; background: #182431; padding: 12px 20px; box-shadow: inset 0 0 0 2px #0a1119, 7px 7px #080b10; }
.record-cabinet h2 { font-size: .75rem; letter-spacing: .12em; color: var(--gold); margin: 0; }
.record-cabinet dl { display: flex; flex: 1; justify-content: space-around; margin: 0; gap: 20px; }
.record-cabinet dl div { display: flex; gap: .6rem; align-items: baseline; }.record-cabinet dt { color: #93a8b3; font-size: .72rem; }.record-cabinet dd { margin: 0; font-weight: 1000; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes drip { 0% { transform: translateY(-40px); opacity: 0; } 25% { opacity: 1; } 100% { transform: translateY(100px); opacity: 0; } }

.play-screen { padding: 16px clamp(10px, 2.5vw, 30px) 30px; }
.gauge-rack { display: grid; grid-template-columns: repeat(4,1fr); border: 3px solid #765039; background: #101923; box-shadow: inset 0 0 0 2px #263a4b, 0 6px #080c11; }
.gauge-rack > div { padding: 9px 14px; min-width: 0; border-right: 1px solid #475b67; display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.gauge-rack > div:last-child { border-right: 0; }.gauge-rack span { color: #8fa5b0; font-size: .72rem; font-weight: 900; }.gauge-rack strong { color: var(--paper); font-family: ui-monospace,Consolas,monospace; white-space: nowrap; }.gauge-rack b { color: var(--gold); }
.progress-rail { height: 14px; margin: 12px 0 17px; background: #090e14; border: 2px solid #5b4738; position: relative; }
.progress-rail i { display: block; width: 0; height: 100%; background: repeating-linear-gradient(135deg,var(--cyan) 0 14px,#209a9b 15px 28px); transition: width .5s cubic-bezier(.2,.8,.2,1); }
.progress-rail b { position: absolute; top: -7px; left: 50%; translate: -50% 0; font: 800 .65rem ui-monospace,monospace; background: #17222d; padding: 2px 10px; color: var(--gold); }

.factory-floor { display: grid; grid-template-columns: minmax(260px,.82fr) minmax(430px,1.35fr) minmax(290px,.93fr); gap: 16px; align-items: stretch; }
.briefing-panel { background: #e9d9b5; color: #242128; padding: 22px; min-height: 620px; position: relative; clip-path: polygon(0 0,96% 0,100% 4%,100% 100%,0 100%); box-shadow: inset 0 0 0 4px #ab7b52; }
.briefing-panel::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.12; background: repeating-linear-gradient(0deg,transparent 0 23px,#573e2f 24px 25px); }
.case-number { font: 900 .72rem ui-monospace,monospace; color: #75502e; letter-spacing: .12em; border-bottom: 3px double #876b4b; padding-bottom: 8px; position:relative; z-index:1; }
.briefing-panel h2 { font-family: Georgia,"Yu Mincho",serif; font-size: clamp(1.5rem,2.4vw,2.3rem); line-height: 1.25; margin: 18px 0 10px; color:#1d2730; position:relative; z-index:1; }
.situation { line-height: 1.65; font-size: .92rem; position:relative; z-index:1; }
.claim-sheet,.source-sheet { position:relative; z-index:1; margin-top:18px; padding:16px 15px 15px; border:3px solid #253847; background:#f9efd5; box-shadow: 5px 5px 0 #ad8c60; }
.claim-sheet { border-color: #b94742; transform: rotate(-.5deg); }
.source-sheet { border-color: #148b8a; transform: rotate(.35deg); }
.claim-sheet span,.source-sheet span { position:absolute; top:-12px; left:12px; color:#fff; padding:3px 10px; font-weight:1000; font-size:.72rem; letter-spacing:.08em; background:#b94742; }
.source-sheet span { background:#148b8a; }
.claim-sheet strong { display:block; font-size:1.08rem; line-height:1.65; }.source-sheet p { margin:0; line-height:1.65; font-size:.9rem; }

.press-machine { min-height:620px; border: 8px solid #633c2a; background: linear-gradient(90deg,#192a38,#263e4c 45%,#14232e); box-shadow: inset 0 0 0 4px #b77948, 8px 9px 0 #080b10; padding: 18px; position: relative; overflow:hidden; }
.press-machine::before,.press-machine::after { content:""; position:absolute; width:180px; height:180px; border:18px dashed rgba(219,142,73,.24); border-radius:50%; bottom:-70px; animation:spin 20s linear infinite; }.press-machine::before{left:-70px}.press-machine::after{right:-70px;animation-direction:reverse}
.machine-top { height:55px; display:flex; align-items:center; justify-content:center; gap:26px; border:3px solid #7b5a3b; background:#0d1720; color:var(--gold); font:900 .85rem ui-monospace,monospace; letter-spacing:.12em; position:relative; z-index:2; }
.machine-top i { width:17px; height:17px; border-radius:50%; background:var(--coral); box-shadow:0 0 12px var(--coral); }
.role-guide { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; max-width:640px; margin:12px auto 0; padding:0; list-style:none; position:relative; z-index:4; }
.role-guide li { min-width:0; display:flex; align-items:center; gap:7px; padding:7px; color:#dbe7e5; background:#101a23; border:2px solid #4f6470; }
.role-guide li[data-kind="evidence"] { border-color:#238f8d; }.role-guide li[data-kind="bridge"] { border-color:#9d7b32; }.role-guide li[data-kind="limit"] { border-color:#9d4b4b; }
.role-guide li.is-unused { opacity:.3; }.role-guide li > b { flex:0 0 24px; height:24px; display:grid; place-items:center; border-radius:50%; color:#121b23; background:var(--paper); font-size:.72rem; }.role-guide span { min-width:0; }.role-guide strong,.role-guide small { display:block; }.role-guide strong { font-size:.68rem; }.role-guide small { margin-top:2px; color:#9db0b8; font-size:.54rem; line-height:1.25; }
.argument-line { display:grid; gap:14px; margin:12px auto 0; max-width:640px; position:relative; z-index:4; }
.slot { min-height:116px; border:4px dashed #70818a; background:#101a23; color:#d9e3e2; padding:12px 14px; cursor:pointer; position:relative; transition:transform .18s,background .18s,border-color .18s; display:grid; grid-template-columns:78px 1fr; align-items:center; gap:12px; }
.slot::after { content:""; position:absolute; left:33px; bottom:-21px; width:12px; height:18px; background:#536773; border:3px solid #0b1118; }
.slot:last-child::after { display:none; }
.slot:hover,.slot.is-target { border-color:var(--gold); background:#172b36; transform:translateX(3px); }
.slot.is-correct { border-style:solid; border-color:var(--cyan); box-shadow:0 0 22px rgba(52,214,202,.4); }
.slot.is-wrong { border-color:var(--coral); animation:clank .34s ease; }
.slot-badge { width:68px; aspect-ratio:1; display:grid; place-items:center; border:3px solid currentColor; border-radius:50%; font-weight:1000; color:#899ba4; font-size:.8rem; text-align:center; }
.slot[data-kind="evidence"] .slot-badge { color:var(--cyan); }.slot[data-kind="bridge"] .slot-badge { color:var(--gold); }.slot[data-kind="limit"] .slot-badge { color:var(--coral); }
.slot-copy small { display:block; color:#8297a2; margin-bottom:5px; }.slot-copy strong { color:#f7edda; line-height:1.5; font-size:.92rem; }
.slot-empty { color:#7f929b; font-weight:800; }
.ink-pipe { max-width:610px; height:24px; margin:auto; position:relative; z-index:3; display:flex; align-items:center; justify-content:space-around; }
.ink-pipe i { width:30%; height:7px; background:#0b1117; box-shadow:inset 0 0 0 2px #425766; }.ink-pipe b { width:16px; aspect-ratio:1; background:#536773; transform:rotate(45deg); }
.press-machine.is-printing .ink-pipe i { background:var(--cyan); box-shadow:0 0 13px var(--cyan); animation:inkPulse .55s ease 2; }
.print-button { position:relative; z-index:4; display:block; margin:6px auto; min-height:58px; width:min(310px,90%); border:3px solid #2a1c16; background:var(--coral); color:#211719; box-shadow:inset 0 -7px #b84243,0 7px #0b1117; cursor:pointer; font-weight:1000; }
.print-button i { display:inline-block; width:18px; height:18px; background:#ffe28c; border-radius:50%; vertical-align:-4px; margin-left:12px; box-shadow:0 0 12px #ffd65d; }
.print-button:disabled { filter:grayscale(.9); opacity:.45; cursor:not-allowed; }
.print-button:not(:disabled):active { transform:translateY(5px); box-shadow:inset 0 -3px #b84243,0 2px #0b1117; }
.feedback-panel { position:absolute; z-index:8; left:7%; right:7%; bottom:20px; background:#f5e7c8; color:#201b1e; border:5px solid #1c1110; box-shadow:0 10px 0 #090c10; padding:15px 18px; }
.feedback-panel strong { font-size:1.3rem; color:#8d332f; }.feedback-panel span { float:right; color:#137f7d; font:1000 1.2rem ui-monospace,monospace; }.feedback-panel p { clear:both; line-height:1.5; margin:.55rem 0; }.feedback-panel button { float:right; min-height:44px; border:0; background:#172b38; color:#fff; padding:.5rem 1rem; font-weight:900; cursor:pointer; }

.plate-drawer { min-height:620px; border:6px solid #473027; background:#6b452f; box-shadow:inset 0 0 0 3px #a8744c,7px 8px #080b10; padding:14px; position:relative; }
.drawer-heading { border:2px solid #b98559; background:#211b1b; padding:9px 12px; }.drawer-heading h2 { margin:0; color:var(--gold); font-size:1rem; }.drawer-heading p { margin:4px 0 0; font-size:.7rem; color:#a9b7b9; line-height:1.4; }
.tile-bank { display:grid; gap:12px; margin-top:12px; align-content:start; }
.tile-group { padding:9px; background:#35251f; border:2px solid #a26d48; }.tile-group h3 { display:flex; align-items:center; gap:8px; margin:0 0 8px; color:var(--paper); }.tile-group h3 > b { width:27px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; color:#19232a; background:var(--gold); font-size:.76rem; }.tile-group h3 span,.tile-group h3 small { display:block; }.tile-group h3 span { font-size:.8rem; }.tile-group h3 small { margin-top:2px; color:#c5b7a8; font-size:.6rem; font-weight:700; }.tile-options { display:grid; gap:8px; }
.tile { width:100%; min-height:72px; border:3px solid #10161b; padding:9px 10px; text-align:left; color:#17232a; cursor:pointer; box-shadow:inset 0 -6px rgba(0,0,0,.18),5px 5px #251a17; display:grid; grid-template-columns:54px 1fr; gap:9px; align-items:center; transition:transform .15s,filter .15s; touch-action:manipulation; position:relative; }
.tile[data-kind="evidence"]{background:#52d9cf}.tile[data-kind="bridge"]{background:#ffd05f}.tile[data-kind="limit"]{background:#ff8177}
.tile:hover,.tile.is-selected { transform:translate(-3px,-2px); filter:brightness(1.1); box-shadow:inset 0 -5px rgba(0,0,0,.14),8px 8px #241712,0 0 0 3px #fff; }
.tile.is-placed { filter:brightness(1.08); transform:none; box-shadow:inset 0 -5px rgba(0,0,0,.14),0 0 0 4px #fff,6px 7px #241712; }
.tile.is-placed::after { content:"セット中・タップで外す"; position:absolute; top:3px; right:4px; padding:2px 5px; color:#fff; background:#172934; font-size:.54rem; font-weight:1000; }
.tile-mark { font-weight:1000; font-size:.68rem; border-right:2px solid rgba(0,0,0,.32); min-height:48px; display:grid; place-items:center; text-align:center; }.tile-text { font-size:.78rem; line-height:1.45; font-weight:850; }

@keyframes clank { 0%,100%{transform:translateX(0)}25%{transform:translateX(-8px) rotate(-1deg)}75%{transform:translateX(8px) rotate(1deg)} }
@keyframes inkPulse { 0%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1)} }

.quiz-screen,.result-screen { display:grid; place-items:center; padding:clamp(18px,5vw,60px); }
.inspection-desk { width:min(850px,100%); min-height:590px; background:#162530; border:9px solid #875235; box-shadow:inset 0 0 0 4px #c2824b,10px 12px #070a0e; padding:clamp(24px,5vw,58px); position:relative; overflow:hidden; }
.inspection-desk::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 78% 9%,rgba(255,219,125,.28),transparent 29%); pointer-events:none; }
.inspection-lamp { position:absolute; top:-20px; right:7%; width:130px; height:130px; border-radius:50%; border:15px solid #4d3426; background:#ffd978; box-shadow:0 0 70px #ffe9a2; opacity:.65; }.inspection-lamp i { position:absolute; width:20px; height:100px; background:#604331; left:40px; top:-70px; transform:rotate(-24deg); }
.inspection-desk h2 { font:900 clamp(2rem,5vw,4rem) Georgia,serif; color:var(--paper); margin:.2rem 0 1.4rem; text-shadow:4px 4px #713d2b; position:relative; }.quiz-question { min-height:80px; font-size:clamp(1.15rem,2.5vw,1.55rem); font-weight:900; line-height:1.65; position:relative; }
.quiz-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.quiz-choices button { min-height:72px; padding:12px; border:3px solid #806348; background:#ecdbb6; color:#1d252a; box-shadow:inset 0 -6px #b8986b,4px 5px #080c10; cursor:pointer; font-weight:900; line-height:1.5; }.quiz-choices button:hover { filter:brightness(1.08); transform:translateY(-2px); }.quiz-choices button.correct { background:var(--cyan); }.quiz-choices button.wrong { background:var(--coral); }
.quiz-explanation { margin-top:18px; background:#f2e5c7; color:#202229; padding:17px; border-left:8px solid var(--gold); position:relative; }.quiz-explanation strong { font-size:1.2rem; color:#943e35; }.quiz-explanation p { line-height:1.6; }.quiz-explanation button { min-height:44px; background:#193140;color:#fff;border:0;padding:.55rem 1rem;font-weight:900;cursor:pointer; }

.result-poster { width:min(900px,100%); color:#242128; background:#eddfbd; border:12px solid #74452f; box-shadow:inset 0 0 0 5px #b87b49,12px 14px #07090c; padding:clamp(24px,5vw,58px); position:relative; overflow:hidden; }
.result-poster::before { content:"";position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(0deg,transparent 0 27px,#563528 28px 29px);pointer-events:none; }
.result-poster > * { position:relative; }.result-poster .kicker { color:#8f4b32; }.result-poster h2 { font:900 clamp(2.3rem,6vw,5rem) Georgia,"Yu Mincho",serif; margin:.3rem 0;color:#20343d;text-shadow:3px 3px #c69562; }.result-poster > p:not(.kicker){line-height:1.65;max-width:670px}.poster-seal { position:absolute; right:5%; top:5%; width:120px; aspect-ratio:1; border:7px double #b34039; color:#b34039; border-radius:50%; transform:rotate(8deg); display:grid;place-items:center;font:900 3.8rem Georgia,serif;opacity:.85; }
.final-score { margin:24px 0; padding:14px 20px; background:#172934;color:#fff;display:flex;align-items:baseline;gap:15px;max-width:570px;transform:skew(-2deg); }.final-score span{font:.72rem ui-monospace,monospace;color:#9db1b6;letter-spacing:.12em}.final-score strong{font:1000 clamp(2.6rem,7vw,5.2rem) ui-monospace,monospace;color:var(--gold)}.final-score small{font-weight:900}
.result-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:650px}.result-stats div{border:3px solid #705740;padding:12px;background:#f7edda}.result-stats span{display:block;color:#7b6048;font-size:.72rem}.result-stats strong{font:1000 1.3rem ui-monospace,monospace;color:#273d45}
.stamp-shelf { display:flex;flex-wrap:wrap;gap:8px;margin:18px 0; }.stamp-shelf span { width:42px;aspect-ratio:1;border:3px solid #b44840;color:#b44840;border-radius:50%;display:grid;place-items:center;font-weight:1000;transform:rotate(var(--turn)); }.stamp-shelf span.locked { border-color:#a89a7b;color:#a89a7b;opacity:.35; }
.result-actions{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.ranking-button{min-height:50px;border:3px solid #273c45;background:transparent;color:#273c45;padding:.6rem 1rem;font-weight:1000;cursor:pointer}.ranking-panel{margin-top:20px;padding:15px;background:#172934;color:#fff;max-height:390px;overflow:auto}.ranking-panel button{color:#fff}.ranking-panel .itc-ranking__tabs button[aria-pressed="true"]{color:#172934;background:#fff}

@media (max-width: 1050px) {
  .factory-floor { grid-template-columns:minmax(250px,.82fr) minmax(420px,1.18fr); }
  .plate-drawer { grid-column:1/-1; min-height:0; }.tile-bank{grid-template-columns:repeat(3,1fr)}
  .start-screen { grid-template-columns:1fr 1fr; padding:30px; }
}
@media (max-width: 760px) {
  .top-bar { min-height:58px; }.factory-mark span{display:none}.screen{min-height:calc(100dvh - 58px)}
  .start-screen { display:flex; flex-direction:column; align-items:stretch; padding:22px 16px 30px; }.hero-press{order:2;width:min(440px,100%);align-self:center;}.hero-copy{order:1;text-align:center}.record-cabinet{order:3;display:block}.record-cabinet h2{text-align:center;margin-bottom:8px}.record-cabinet dl{gap:8px}.record-cabinet dl div{display:block;text-align:center}.record-cabinet dt{display:block}h1{font-size:clamp(3.5rem,20vw,6rem)}
  .play-screen{padding:10px 8px 24px}.gauge-rack{grid-template-columns:1fr 1fr}.gauge-rack>div:nth-child(2){border-right:0}.gauge-rack>div:nth-child(-n+2){border-bottom:1px solid #475b67}.factory-floor{display:flex;flex-direction:column}.briefing-panel{min-height:0;padding:18px}.press-machine{min-height:590px;padding:10px;border-width:6px}.role-guide{grid-template-columns:1fr}.role-guide li{padding:6px 8px}.role-guide strong{font-size:.72rem}.role-guide small{font-size:.6rem}.slot{min-height:108px;grid-template-columns:62px 1fr;padding:9px}.slot-badge{width:56px}.plate-drawer{min-height:0}.tile-bank{grid-template-columns:1fr}.tile{min-height:67px}.feedback-panel{left:3%;right:3%;bottom:10px}
  .quiz-choices{grid-template-columns:1fr}.inspection-desk{padding:25px 18px;border-width:6px}.inspection-lamp{width:90px;height:90px;opacity:.4}.result-poster{border-width:7px;padding:26px 18px}.poster-seal{width:72px;font-size:2.3rem;border-width:4px}.result-stats{grid-template-columns:1fr}.final-score{gap:9px}.result-actions{display:grid}.result-actions>*{width:100%}
}
@media (max-width: 420px) {
  .back-link{font-size:.75rem}.sound-button{padding:.45rem .55rem}.gauge-rack>div{padding:8px;font-size:.82rem}.gauge-rack span{font-size:.62rem}.briefing-panel h2{font-size:1.45rem}.claim-sheet strong{font-size:.96rem}.slot{min-height:102px}.slot-copy strong{font-size:.8rem}.tile-text{font-size:.74rem}.print-button{min-height:54px}.hero-press{min-height:340px}.record-cabinet dl{flex-direction:column}.record-cabinet dl div{display:flex;justify-content:space-between}
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
}
