:root{--washi: #f4e7cf;--card: #fffaf0;--ink: #2a211a;--shu: #c53127;--sub: #5a4a3a;--sub-2: #8a7a68;--border-thin: #d8c39a;--correct-bc: #2f8f4e;--correct-bg: #e8f6ec;--correct-fg: #1c5e32;--incorrect-bc: #c53127;--incorrect-bg: #fbe9e7;--incorrect-fg: #8f231b;--neutral-bg: #efe4cf;--neutral-bc: #e0d2b4;--neutral-fg: #a2937c}body{margin:0}@keyframes stampIn{0%{transform:scale(2.4) rotate(-18deg);opacity:0}60%{transform:scale(.85) rotate(-11deg);opacity:1}to{transform:scale(1) rotate(-11deg);opacity:1}}.game-app{position:relative;min-height:100vh;background:var(--washi);color:var(--ink);font-family:Zen Kaku Gothic New,sans-serif;display:flex;justify-content:center;box-sizing:border-box}.game-app:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background:radial-gradient(circle at 20% 20%,rgba(197,49,39,.06),transparent 40%),repeating-linear-gradient(0deg,rgba(42,33,26,.035) 0 1px,transparent 1px 5px)}.game-app>section{position:relative;z-index:2;width:100%;max-width:420px;box-sizing:border-box}.game-app button{font-family:inherit;cursor:pointer}.game-app button:disabled{cursor:default;opacity:.6}.cta-button{padding:16px 50px;border:none;border-radius:3px;font-family:Yuji Syuku,serif;font-size:22px;letter-spacing:.1em;color:var(--washi);background:var(--ink);box-shadow:4px 4px 0 var(--shu);transition:transform .15s}.cta-button:hover:not(:disabled){transform:translate(-1px,-1px)}.cta-button--compact{padding:14px;font-size:18px;box-shadow:3px 3px 0 var(--shu);width:100%}.start-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:56px 28px;text-align:center}.start-tag{margin:0;border:2px solid var(--shu);border-radius:2px;padding:6px 16px;font-family:Yuji Syuku,serif;font-size:13px;letter-spacing:.3em;color:var(--shu)}.start-screen h1{margin:0;font-family:Yuji Syuku,serif;font-weight:400;font-size:46px;line-height:1.15;color:var(--ink)}.start-screen h1 .start-title-accent{color:var(--shu)}.start-emblem{width:120px;height:120px;border-radius:50%;background:var(--shu);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px var(--washi),0 0 0 6px var(--shu)}.start-emblem span{font-family:Yuji Syuku,serif;font-size:52px;color:var(--washi)}.start-screen>p{margin:0;font-family:Shippori Mincho B1,serif;font-size:15px;line-height:1.9;color:var(--sub)}.error-message{border:2px solid var(--shu);border-radius:3px;padding:10px 16px;background:var(--incorrect-bg);color:var(--incorrect-fg);font-family:Shippori Mincho B1,serif;font-size:14px}.credits-link{margin:0}.credits-link a{font-family:Shippori Mincho B1,serif;font-size:12px;color:var(--sub-2);text-decoration:underline;text-underline-offset:3px}.question-screen{display:flex;flex-direction:column;gap:16px;padding:26px 24px 22px}#question-progress{margin:0;display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:8px;font-family:Yuji Syuku,serif;font-size:22px;letter-spacing:.02em}.question-image{position:relative;border:3px solid var(--ink);border-radius:3px;padding:5px;background:var(--card)}.question-image img{display:block;width:100%;height:214px;object-fit:cover;border-radius:1px}.question-image-tag{position:absolute;bottom:12px;left:14px;font-family:Shippori Mincho B1,serif;font-size:11px;letter-spacing:.15em;color:#ffffffd9;text-shadow:0 1px 4px rgba(0,0,0,.5)}.question-image [data-testid=image-fallback]{margin:0;height:214px;display:flex;align-items:center;justify-content:center;font-family:Shippori Mincho B1,serif;font-size:14px;color:var(--sub-2);background:var(--neutral-bg)}.question-screen>p{text-align:center;font-family:Yuji Syuku,serif;font-size:20px;margin:0}.choices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.choices button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:14px 16px;border-radius:3px;border:2px solid var(--ink);background:var(--card);color:var(--ink);font-family:Shippori Mincho B1,serif;font-weight:700;font-size:16px;text-align:left;transition:.15s;box-sizing:border-box}.feedback-view{display:flex;flex-direction:column;padding:22px 24px}#feedback-result{align-self:center;margin:2px 0 10px;width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;animation:stampIn .5s cubic-bezier(.2,1.2,.4,1) both;font-family:Yuji Syuku,serif;white-space:nowrap;letter-spacing:0;box-sizing:border-box}#feedback-result.result-correct{border:5px double var(--correct-bc);color:var(--correct-bc);background:#2f8f4e14;font-size:26px}#feedback-result.result-incorrect{border:5px double var(--incorrect-bc);color:var(--incorrect-bc);background:#c5312714;font-size:16px}.feedback-image-band{position:relative;border:3px solid var(--ink);border-radius:3px;padding:5px;margin-bottom:10px;background:var(--card)}.feedback-image-band img{display:block;width:100%;height:96px;object-fit:cover;border-radius:1px}.feedback-image-caption{position:absolute;bottom:11px;left:14px;font-family:Yuji Syuku,serif;font-size:20px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}.feedback-view .choices{gap:7px}.feedback-view .choices li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-radius:3px;border:2px solid var(--neutral-bc);background:var(--neutral-bg);color:var(--neutral-fg);font-family:Shippori Mincho B1,serif;font-weight:700;font-size:16px}.feedback-view .choices li.correct{border-color:var(--correct-bc);background:var(--correct-bg);color:var(--correct-fg)}.feedback-view .choices li.incorrect{border-color:var(--incorrect-bc);background:var(--incorrect-bg);color:var(--incorrect-fg)}.choice-label{font-family:Zen Kaku Gothic New,sans-serif;font-weight:900;font-size:12px;padding:3px 9px;border-radius:2px;color:#fff}.correct .choice-label{background:var(--correct-bc)}.incorrect .choice-label{background:var(--incorrect-bc)}.trivia{margin-top:12px;border-left:4px solid var(--shu);padding:6px 0 6px 12px}.trivia p{margin:0;font-family:Shippori Mincho B1,serif;font-size:13.5px;line-height:1.7;color:#4a3a2c}.trivia strong{display:block;font-family:Yuji Syuku,serif;font-weight:400;font-size:14px;color:var(--shu);margin-bottom:3px}.trivia-fallback{color:var(--sub-2)!important}.feedback-view>button{margin-top:12px}.result-screen{display:flex;flex-direction:column;padding:28px 24px 22px}.result-screen h2{margin:8px 0 18px;text-align:center;font-family:Yuji Syuku,serif;font-weight:400;font-size:32px}.result-kicker{margin:0;text-align:center;font-family:Shippori Mincho B1,serif;font-size:13px;letter-spacing:.35em;color:var(--shu)}.score{text-align:center;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:12px 0;margin:0 0 18px;font-family:Yuji Syuku,serif;font-size:26px;color:var(--sub-2)}.score-number{font-size:60px;color:var(--shu)}.review-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:7px}.review-list li{display:flex;align-items:center;gap:11px;padding:8px 10px;border:1px solid var(--border-thin);border-radius:3px;background:var(--card)}.review-thumb{width:42px;height:42px;flex:none;border-radius:2px;object-fit:cover}.review-answer{display:block;font-family:Shippori Mincho B1,serif;font-weight:700;font-size:14px}.review-selected{display:block;font-size:11px;color:var(--sub-2)}.review-icon{margin-left:auto;font-family:Yuji Syuku,serif;font-size:22px}.review-correct .review-icon{color:var(--correct-bc)}.review-incorrect .review-icon{color:var(--incorrect-bc)}.admin-app{min-height:100vh;box-sizing:border-box;margin:0 auto;padding:32px 20px 64px;max-width:900px;background:var(--washi);color:var(--ink);font-family:Zen Kaku Gothic New,sans-serif}.admin-app h2{margin:0 0 20px;font-family:Yuji Syuku,serif;font-weight:400;font-size:30px;letter-spacing:.06em;border-bottom:3px solid var(--ink);padding-bottom:10px}.admin-app h2:before{content:"肉";display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-right:12px;border-radius:50%;background:var(--shu);color:var(--washi);font-size:20px;vertical-align:middle;transform:translateY(-2px)}.admin-app h3{margin:0 0 16px;font-family:Shippori Mincho B1,serif;font-size:20px;color:var(--shu);letter-spacing:.04em}.admin-app h4{margin:0 0 12px;font-family:Shippori Mincho B1,serif;font-size:16px;color:var(--ink)}.admin-app button{font-family:inherit;cursor:pointer}.admin-app button:disabled{cursor:default;opacity:.6}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;border-bottom:2px solid var(--border-thin);padding-bottom:12px}.admin-tabs button{padding:9px 18px;border:2px solid var(--border-thin);border-radius:3px;background:var(--card);color:var(--sub);font-family:Shippori Mincho B1,serif;font-size:14px;letter-spacing:.04em;transition:transform .12s}.admin-tabs button:hover{transform:translateY(-1px)}.admin-tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--washi);box-shadow:3px 3px 0 var(--shu)}.admin-tabs [data-testid=admin-logout]{margin-left:auto;color:var(--shu);border-color:var(--shu);background:transparent}.part-management,.image-form,.image-list{background:var(--card);border:2px solid var(--border-thin);border-radius:4px;padding:24px;box-shadow:5px 5px #c5312714}.part-table,.image-list-table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:14px}.part-table th,.image-list-table th{text-align:left;font-family:Shippori Mincho B1,serif;font-size:13px;letter-spacing:.08em;color:var(--washi);background:var(--ink);padding:9px 12px}.part-table td,.image-list-table td{padding:10px 12px;border-bottom:1px solid var(--border-thin);vertical-align:middle}.part-table tbody tr:hover,.image-list-table tbody tr:hover{background:#c531270a}.part-table button,.image-list-table button{padding:5px 14px;border:1.5px solid var(--ink);border-radius:3px;background:var(--card);color:var(--ink);font-size:13px}.image-list-table a{color:var(--shu);text-decoration:underline;text-underline-offset:2px}.thumb-button{padding:0;border:2px solid var(--ink)!important;border-radius:3px;background:var(--card);line-height:0;overflow:hidden}.thumb{display:block;width:64px;height:64px;object-fit:cover}.unknown-part{color:var(--sub-2);font-style:italic}.admin-app button.danger{border-color:var(--shu)!important;color:var(--shu)!important;background:var(--incorrect-bg)!important}.part-form{margin-top:12px;border-top:2px dashed var(--border-thin);padding-top:20px}.admin-app .field{margin-bottom:16px}.admin-app .field label{display:block;margin-bottom:6px;font-family:Shippori Mincho B1,serif;font-size:14px;color:var(--sub)}.admin-app .field input[type=text],.admin-app .field input[type=number],.admin-app .field input[type=password],.admin-app .field select,.admin-app .field input[type=file]{width:100%;box-sizing:border-box;padding:9px 12px;border:1.5px solid var(--border-thin);border-radius:3px;background:var(--washi);color:var(--ink);font-family:inherit;font-size:14px}.admin-app .field input[type=checkbox]{margin-right:8px}.admin-app .field label:has(input[type=checkbox]){display:flex;align-items:center}.part-form button[type=submit],.image-form button[type=submit]{padding:11px 28px;border:none;border-radius:3px;font-family:Shippori Mincho B1,serif;font-size:15px;letter-spacing:.06em;color:var(--washi);background:var(--ink);box-shadow:3px 3px 0 var(--shu)}.part-form button[type=button]{margin-left:10px;padding:10px 18px;border:1.5px solid var(--border-thin);border-radius:3px;background:var(--card);color:var(--sub)}.admin-app .warning-banner,.admin-app .warning{border:2px solid var(--shu);border-radius:3px;padding:10px 14px;margin-bottom:16px;background:var(--incorrect-bg);color:var(--incorrect-fg);font-size:13px}.admin-app .field-error,.admin-app .api-error{margin:6px 0 0;color:var(--incorrect-fg);font-size:13px}.admin-app .success{margin-top:12px;color:var(--correct-fg);font-size:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:#2a211a9e}.modal-body{max-width:480px;width:100%;box-sizing:border-box;background:var(--card);border:3px solid var(--ink);border-radius:4px;padding:20px;text-align:center;box-shadow:6px 6px 0 var(--shu)}.preview-image{display:block;width:100%;max-height:60vh;object-fit:contain;border:2px solid var(--border-thin);border-radius:2px}.preview-caption{margin:12px 0;font-family:Shippori Mincho B1,serif;font-size:16px;color:var(--shu)}.modal-body button{padding:9px 22px;border:1.5px solid var(--ink);border-radius:3px;background:var(--card);color:var(--ink);font-family:inherit;font-size:14px}.confirm-body p{margin:4px 0 20px;font-family:Shippori Mincho B1,serif;font-size:15px;line-height:1.7}.confirm-actions{display:flex;gap:12px;justify-content:center}.admin-login-form{max-width:360px;margin:40px auto;background:var(--card);border:2px solid var(--border-thin);border-radius:4px;padding:28px;box-shadow:5px 5px #c5312714}.admin-login-form button[type=submit]{width:100%;padding:11px;border:none;border-radius:3px;font-family:Shippori Mincho B1,serif;font-size:15px;color:var(--washi);background:var(--ink);box-shadow:3px 3px 0 var(--shu)}
