:root { color-scheme: light; font-size:18px; --paper:#f3eee3; --ink:#302d28; --line:#cfc4af; --accent:#405b55; --footer-height:86px; }
* { box-sizing:border-box; } body { margin:0; background:#ded7c9; color:var(--ink); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif; line-height:1.8; }
[hidden] { display:none!important; } button,select { font:inherit; color:inherit; } button,summary,select { min-height:48px; cursor:pointer; touch-action:manipulation; }
button { border:1px solid var(--line); background:#fffaf1; border-radius:8px; padding:10px 13px; line-height:1.55; overflow-wrap:anywhere; }
button:disabled { opacity:.5; cursor:default; } button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible { outline:3px solid #846e41; outline-offset:2px; }
button.primary { background:var(--accent); border-color:var(--accent); color:#fff; } h1 { font-family:"Yu Mincho",serif; line-height:1.55; font-size:2rem; font-weight:600; letter-spacing:.03em; margin:10px 0 24px; }
h2 { font-size:1.15rem; margin:0; } h3 { font-size:1rem; } p { margin:0 0 16px; } img { max-width:100%; height:auto; display:block; } figure { margin:0 0 22px; }
figcaption { margin-top:8px; font-size:.9rem; } .muted,.fine { color:#6d665a; font-size:.9rem; } .fine { margin-top:18px; } .eyebrow,.chapter { font-size:.9rem; letter-spacing:.09em; }
#app { max-width:640px; margin:auto; background:var(--paper); min-height:100dvh; padding-bottom:calc(var(--footer-height) + 14px); }
.topbar { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:14px 20px; border-bottom:1px solid var(--line); }
.trial { color:#6f6b61; font-size:.82rem; } .intro { padding:24px 24px 18px; } .cover { border:6px solid #fff9ee; box-shadow:0 5px 20px #53432c20; margin-bottom:24px; }
.intro details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:12px 0; margin:20px 0; } .recap { padding-top:12px; } .intro .primary { width:100%; }
.notice { margin:12px 18px; padding:14px; background:#fff4cc; border:1px solid #a58b4e; font-size:.9rem; }
.status { padding:12px 20px; background:var(--paper); border-bottom:1px solid var(--line); } .name { display:flex; gap:12px; align-items:baseline; justify-content:space-between; }
.name strong { font-family:"Yu Mincho",serif; font-size:1.2rem; } .state-hint { font-size:.82rem; color:#706854; }
.meter-row { display:grid; grid-template-columns:2.2em 90px minmax(0,1fr); align-items:center; gap:10px; font-size:.9rem; line-height:1.5; margin:7px 0; }
.meter { display:flex; gap:3px; height:9px; } .meter i { flex:1; border:1px solid #b6ac98; border-radius:2px; } .meter i.on { background:#9c7957; border-color:#9c7957; }
.meter.guard i.on { background:#59766e; border-color:#59766e; } .topic { font-size:.9rem; margin:8px 0 0; overflow-wrap:anywhere; }
.portrait { width:100%; height:220px; overflow:hidden; position:relative; background:#c1ae91; border-bottom:1px solid var(--line); }
.portrait img { position:absolute; width:180%; max-width:none; left:-40%; top:-10%; }
.dialogue { padding:22px 24px 14px; } .observation { color:#74694e; border-left:2px solid #ab9670; padding-left:12px; font-size:.9rem; }
.speaker { margin-bottom:4px; font-size:.9rem; font-weight:600; } #reply { font-family:"Yu Mincho",serif; font-size:1.1rem; line-height:1.9; }
.player { font-size:.95rem; padding:12px; border-radius:6px; background:#e6e8dc; }
.scene-links { display:flex; flex-wrap:wrap; gap:8px; padding:8px 24px 20px; }.scene-links button { flex:1 1 45%; }
#top-commands { position:sticky; top:0; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px 16px; background:var(--paper); border-bottom:1px solid var(--line); }
#top-commands button { background:#e1e8de; border-color:#9aaa91; font-weight:600; }
#top-commands .support-command { background:#eee2cc;border-color:#bca887; }
.testimony-progress { grid-column:1 / -1;font-size:.8rem;line-height:1.6;margin:0;color:#665d4c; }
.unlock-note { padding:12px;border:1px dashed #a68d67;border-radius:6px;background:#eee6d5; }
.support-item { border-top:4px solid #a58c51; }
.support-item dl { margin:12px 0; }.support-item dd { margin:0 0 8px; }
#commands { position:fixed; bottom:0; width:min(100%,640px); z-index:2; display:grid; grid-template-columns:1.25fr 1fr; gap:8px; background:var(--paper); padding:12px 12px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); }
#commands button { padding:12px 6px; } #commands .evidence-command { background:var(--accent); color:white; border-color:var(--accent); }
#commands #quick-restart { grid-column:1 / -1;background:transparent; border-color:transparent; color:#716859; font-size:.85rem; }
#commands .combination-command span,#commands .combination-command small { display:block; }
#commands .combination-command small { font-size:.72rem;font-weight:400;margin-top:4px;line-height:1.5; }
#commands .evidence-command span,#commands .evidence-command small { display:block; }
#commands .evidence-command span { font-size:.92rem;line-height:1.5; }#commands .evidence-command small { font-size:.72rem;line-height:1.5;margin-top:4px; }
#commands .combination-command.is-locked { background:#e8e2d6;color:#706858;border-style:dashed; }
#commands .combination-command.is-unlocked { background:#e1e8de;border:2px solid #59776a;color:#293f36; }
#commands .evidence-command.is-ready { background:linear-gradient(135deg,#765124,#a77532);border:2px solid #d3b276;box-shadow:0 0 12px #ad7d3e40; }
.combination-header { padding:10px 12px;background:#e1e7dc;border:1px solid #b0bca6;border-radius:6px;margin-bottom:12px; }
.combination-header strong { display:block;font-size:.95rem; }.combination-header p { font-size:.8rem;margin:6px 0 0; }
.execution-card { padding:14px;border:2px solid #8b7657;background:#fffaf0;border-radius:8px; }
.decisive-card { border-color:#8e693a;background:#f2e4c9; }
.portrait-state { font-size:.72rem;margin:0;color:#795437;line-height:1.5; }
.portrait .sweat,.portrait .brow-tension { display:none;position:absolute;pointer-events:none; }
.portrait.anxious img { filter:contrast(1.03) saturate(.68); }
.portrait.anxious::after { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 12% 4% at 50% 27%,#eff3ea25,transparent),linear-gradient(180deg,#52687122,transparent 65%);pointer-events:none; }
.portrait.anxious .sweat { display:block;width:5%;height:9%;min-width:4px;max-width:8px;min-height:9px;max-height:14px;border:0;border-right:1px solid #f3ffffc4;border-bottom:1px solid #547d8a70;border-radius:50% 50% 50% 50% / 75% 75% 35% 35%;background:radial-gradient(ellipse at 65% 55%,#ffffffdf 0,transparent 45%),linear-gradient(100deg,#b1dce766,#e9faffcc 60%,#85b3c366);box-shadow:inset 1px -1px 2px #65899d60,1px 2px 2px #384f5440;z-index:1; }
.portrait.anxious .sweat::before { content:'';position:absolute;left:40%;top:-170%;width:2px;height:180%;background:linear-gradient(transparent,#d5edfa88);border-radius:50%; }
.sweat-one { top:43%;left:58%; }.sweat-two { top:49%;left:37%; }
.portrait.anxious .sweat-two { width:4%;max-width:6px;height:7%;max-height:11px;opacity:.85; }
.portrait .collar-sweat { display:none;position:absolute;top:0;left:-120%;width:340%;aspect-ratio:3 / 2;pointer-events:none;mix-blend-mode:multiply; }
.portrait.anxious .collar-sweat,.portrait.defeated .collar-sweat { display:block; }
.collar-sweat::before,.collar-sweat::after { content:'';position:absolute;border-radius:45% 55% 65% 35%;background:radial-gradient(ellipse,#283b3b55 0,#283b3b45 35%,#283b3b1a 65%,transparent 85%); }
.collar-sweat::before { left:45.9%;top:37.1%;width:3.8%;height:9.7%;transform:rotate(-28deg); }
.collar-sweat::after { left:50.6%;top:37.5%;width:3.5%;height:7.9%;transform:rotate(25deg);opacity:.8; }
.portrait.anxious .brow-tension { display:block;top:26%;left:48%;width:9%;height:7%;border-left:1px solid #59473185;border-right:1px solid #59473185;transform:rotate(10deg); }
.portrait.defeated img { filter:saturate(.3) brightness(.7);transform:translateY(10px) rotate(-4deg);transform-origin:50% 85%; }
.portrait.defeated .collar-sweat { transform:translateY(10px) rotate(-4deg);transform-origin:50% 85%; }
.portrait.defeated::after { content:'';position:absolute;inset:0;background:linear-gradient(180deg,#25211c60,transparent 85%);pointer-events:none; }
.exchange-heading.near-limit { background:#ead0b2;border-bottom-color:#a07343; }
.turn-feedback { margin-top:16px;padding:14px;border:1px solid #b09a73;border-left:4px solid #977c50;border-radius:6px;background:#fff9ea; }
.turn-feedback h3 { margin:0 0 10px;font-size:.95rem; }.turn-feedback p { font-size:.88rem;line-height:1.7;margin-bottom:10px; }
.feedback-assertion { padding:8px;background:#efe5d0;border-radius:4px; }
.feedback-actions { display:flex;flex-wrap:wrap;gap:8px; }.feedback-actions button { flex:1 1 130px; }
.turn-feedback .feedback-cost { font-size:.78rem;color:#756b54;margin:10px 0 0; }
.selection-status { flex:1 1 100%;font-size:.8rem;line-height:1.5;margin:0;white-space:normal;overflow-wrap:anywhere; }
.speech-window,.reaction-window { scroll-margin-top:calc(var(--nav-height,160px) + 8px); }
#show-turn-result { width:100%;margin-top:10px; }
.review-context { border:1px solid #b69d75;background:#fff3db;padding:10px;border-radius:6px;margin-bottom:12px; }.review-context summary { font-size:.85rem; }.review-context p { font-size:.9rem;margin-top:8px; }
dialog { width:min(100% - 16px,620px); max-width:none; max-height:calc(100dvh - 16px); padding:0; border:1px solid #baa987; border-radius:12px; background:var(--paper); color:var(--ink); }
dialog[open] { display:flex; flex-direction:column; } dialog::backdrop { background:#201e19b8; }
.sheet-header { flex:none; }.sheet-header .status { max-height:24dvh; overflow:auto; }.sheet-title-row { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; gap:10px; border-bottom:1px solid var(--line); }
.sheet-header { max-height:40dvh;overflow:auto; }
.sheet-title-row button { flex:none; } .compact { padding:8px 14px; line-height:1.3; }.compact .name strong { font-size:.9rem; }.compact .state-hint { display:none; }.compact .meter-row { margin:4px 0; line-height:1.3; grid-template-columns:2.2em 90px; }.compact .topic { line-height:1.3; }
#sheet-body { overflow:auto; min-height:60px; overscroll-behavior:contain; padding:18px; }
#sheet-footer { flex:none; display:flex; flex-wrap:wrap; gap:8px; padding:12px 14px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); }
#sheet-footer:empty { display:none; } #sheet-footer button { flex:1 1 100px; }
.stack { display:grid; gap:10px; }.stack button { text-align:left; width:100%; }.divider { margin:22px 0 12px; padding-top:18px; border-top:1px solid var(--line); }
.tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }.tabs button { flex:1 1 75px; }.tabs button[aria-pressed="true"] { background:#dfe6dd; border-color:var(--accent); font-weight:600; }
.record { border:1px solid var(--line); border-radius:8px; padding:14px; margin-bottom:14px; background:#faf6ed; }.record p:last-child { margin-bottom:0; }.record .context { font-size:.88rem; color:#726a5a; }
.record-check { display:flex; gap:10px; padding:14px; border:1px solid var(--line); border-radius:8px; margin-bottom:10px; cursor:pointer; }
.record-check input { width:22px; height:22px; margin:4px 0; flex:none; accent-color:var(--accent); }.record-check:has(input:checked) { background:#e2e9de; border-color:var(--accent); }
.record-check .context { display:block; color:#726a5a; font-size:.85rem; }.choice { display:flex; gap:10px; min-height:48px; padding:14px 10px; align-items:flex-start; border:1px solid var(--line); border-radius:8px; cursor:pointer; margin:10px 0; }
.choice input { width:20px; height:20px; margin:5px 0; flex:none; accent-color:var(--accent); }.choice:has(input:checked) { background:#e2e9de; }
select { width:100%; max-width:100%; border:1px solid var(--line); padding:10px; border-radius:8px; background:#fffaf1; margin:8px 0 16px; }
.receipt { background:#fffaf0; border:1px solid var(--line); padding:18px; }.receipt dl { margin:0 0 20px; }.receipt dl div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; border-bottom:1px solid #ded4c1; padding:8px 0; }.receipt dd { margin:0; }
.back-photo { border:1px solid #c9b894; padding:25px 18px; background:#e9ddc2; font-family:"Yu Mincho",serif; }.back-photo blockquote { font-size:1.2rem; margin:22px 0; }
.preview { border-top:1px solid var(--line); padding-top:16px; margin-top:16px; }.preview figure img { max-height:220px; width:100%; object-fit:contain; }.selected-summary { background:#e6e8dc; padding:12px; border-radius:6px; margin-bottom:14px; }
.zoom img { width:auto; max-width:100%; margin:auto; }.zoom.mirror img { min-height:300px; height:auto; max-height:none; max-width:100%; }
.zoom-viewport { overflow:auto; max-height:55dvh; border:1px solid var(--line); margin-bottom:12px; }.zoom-viewport img { width:100%; max-width:none; height:auto; }.zoom-viewport img.scale-2 { width:200%; }.zoom-viewport img.scale-3 { width:300%; }
.error { color:#793d26; padding:12px; background:#fff1df; border:1px solid #c9966e; border-radius:6px; }.ending { border-top:1px solid var(--line); padding-top:14px; }
.evidence-modes button { font-size:.95rem; }.evidence-modes button span,.evidence-modes button small { display:block; }.evidence-modes button small { margin-top:4px;font-size:.8rem;line-height:1.5;font-weight:400; }.evidence-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:18px 0; }
.evidence-steps button { min-width:0; padding:10px 5px; background:#e9e4d8; font-size:.9rem; }.evidence-steps button[aria-current="step"] { background:var(--accent); color:white; border-color:var(--accent); }
.evidence-steps button span { display:block; }.section-help { color:#706956; font-size:.9rem; }.target-choice { padding:14px; }.target-choice strong,.claim-choice strong { display:block; margin-bottom:6px; font-size:1rem; }
.target-choice .quote { display:block; font-family:"Yu Mincho",serif; line-height:1.8; }.choice-type { display:inline-block; font-size:.85rem; color:#716750; margin-bottom:5px; }
.choice input { flex-shrink:0; }.choice > span { min-width:0; }.claim-choice .claim-detail { display:block; font-size:.9rem; color:#665d4d; line-height:1.7; }
.evidence-summary { padding:12px 14px; background:#e1e7db; border-radius:8px; margin-bottom:18px; }.evidence-summary p { margin:0 0 6px; }.evidence-summary p:last-child { margin:0; }
.doc-picker { display:grid; gap:10px; margin-bottom:18px; }.doc-picker button { display:flex; align-items:center; gap:14px; width:100%; text-align:left; padding:14px; }
.doc-picker button[aria-pressed="true"] { background:#e1e7db; border-color:var(--accent); }.doc-picker .doc-icon { flex:none; width:68px; height:52px; display:flex; align-items:center; justify-content:center; background:#e7dbc6; border:1px solid var(--line); border-radius:4px; font-family:"Yu Mincho",serif; }
.doc-picker strong,.doc-picker small { display:block; }.doc-picker small { font-size:.9rem; color:#716750; }.evidence-preview { border-top:1px solid var(--line); padding-top:12px; }.evidence-preview summary { font-weight:600; }
.evidence-preview .preview { border:0; }.evidence-confirm { margin-bottom:20px; }.evidence-confirm strong { font-size:.9rem; color:#655f50; }
.item-list { display:grid; gap:10px; margin:16px 0 24px; }
.item-card { display:flex; align-items:center; gap:12px; text-align:left; width:100%; padding:12px; }
.item-card[aria-pressed="true"] { background:#e1e7db; border:2px solid var(--accent); }
.item-card>span:not(.item-badge):not(.item-check) { min-width:0; flex:1; }
.item-card strong,.item-card small,.stack button strong,.stack button small,.approaches strong,.approaches small { display:block; }
.item-card small { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.item-card small,.stack button small,.approaches small { font-size:.88rem; color:#716750; line-height:1.7; margin-top:5px; }
.item-thumb,.item-badge { flex:none; width:64px; height:52px; object-fit:cover; border-radius:4px; }
.item-badge { display:flex; align-items:center; justify-content:center; border:1px solid var(--line); background:#e7dbc6; font-size:.85rem; }
.item-check { flex:none; width:1em; font-weight:bold; color:var(--accent); }
.selected-item { padding:14px; border:1px solid var(--line); border-radius:8px; background:#fffaf1; margin-bottom:12px; }
.selected-item summary { font-weight:600; margin-bottom:12px; }
.evidence-summary button { width:100%; margin-top:8px; }
.context-actions { display:grid; grid-template-columns:1.25fr 1fr; gap:8px; }
.approaches { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.approaches .choice { flex-direction:column; align-items:center; gap:4px; padding:8px 4px; text-align:center; }
.approaches .choice input { margin:0; }.approaches strong { font-size:.9rem; }
.item-selection { flex:1 1 100%; min-width:0; font-size:.85rem; margin:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
@media (max-width:360px) { .item-thumb,.item-badge { width:48px; height:48px; }.item-card { gap:8px; } }
@media (max-width:360px) { .intro,.dialogue { padding-left:16px; padding-right:16px; }.status { padding-left:14px; padding-right:14px; }.meter-row { grid-template-columns:2.2em 72px minmax(0,1fr); gap:8px; }.portrait { height:170px; }.portrait img { top:-5%; } h1 { font-size:1.75rem; } }
@media (max-height:600px) { .portrait { height:110px; }.compact .name { display:none; }.compact .meter-row { font-size:.85rem; }.sheet-title-row { padding:6px 12px; } }
html.test-large { font-size:36px; } html.test-large .portrait { display:none; } html.test-large .meter-row { grid-template-columns:2.2em 60px minmax(0,1fr); } html.test-large .state-hint { display:none; }
@media (prefers-reduced-motion:no-preference) { button { transition:background-color .15s; } }

/* The portrait is a viewport onto the original photograph, never a changed evidence asset. */
.boss-board { display:grid; grid-template-columns:minmax(90px,.85fr) minmax(0,1.15fr); gap:14px; margin:16px; padding:12px; border:1px solid #a68e66; border-radius:12px; background:linear-gradient(140deg,#eee1c9,#f8f2e6); box-shadow:0 5px 12px #513e2115; }
.boss-board .portrait { height:150px; border:1px solid #a58e69; border-radius:8px; }
.boss-board .portrait img { width:340%; left:-120%; top:0; max-width:none; }
.boss-stats { min-width:0; display:flex; flex-direction:column; justify-content:flex-start; }
.boss-label { font-size:.75rem; letter-spacing:.12em; color:#75634c; margin:0 0 6px; }
.boss-stats .status { padding:0; border:0; background:transparent; }
.boss-stats .name strong { font-size:1.5rem; }
.boss-stats .meter-row { grid-template-columns:2.2em minmax(0,1fr); gap:8px; margin:8px 0 0; }
.boss-stats .meter { height:13px; }.boss-objective { font-size:.82rem; margin:0; color:#75634c; }
.argument-progress { display:flex; flex-wrap:wrap; gap:6px; margin:0 16px 16px; font-size:.78rem; }
.argument-progress span { flex:1 1 90px; text-align:center; padding:7px 5px; border:1px solid var(--line); border-radius:5px; color:#786c58; }
.argument-progress .done { background:#405b55; color:#fff; border-color:#405b55; }
.attack-window,.speech-window,.reaction-window { margin:12px 16px; padding:16px; border-radius:10px; }
.attack-window { border:1px solid #ad9168; background:#ece3d0; }
.window-label { font-size:.8rem; font-weight:bold; letter-spacing:.06em; color:#736044; margin:0 0 10px; }
#attack-kind { display:inline-block; background:#6f573b; color:#fff8ed; border-radius:4px; padding:2px 7px; margin-left:6px; letter-spacing:0; }
#attack-title { font-size:1rem; line-height:1.7; margin-bottom:10px; }
.attack-window .player { background:transparent; border-top:1px dashed #b59e7a; border-radius:0; padding:12px 0 0; margin:12px 0 0; }
.speech-window { border:2px solid #917b59; background:#fffaf0; box-shadow:3px 3px 0 #d7c9ad; position:relative; }
.speech-window .speaker { display:inline-block; background:#405b55; color:white; padding:2px 12px; border-radius:4px; margin-bottom:12px; }
.speech-window #reply { margin-bottom:0; }.reaction-window { background:#e8ece1; border:1px solid #aab69d; }
.result-badge { display:inline-block; padding:4px 9px; color:#fff; background:#65765b; border-radius:4px; font-size:.9rem; }
.result-badge.counter,.result-badge.blocked { background:#84614e; }.result-badge.clear { background:#405b55; }.result-badge.slip { background:#83662f; }
.result-detail { display:block; margin-top:8px; font-size:.92rem; }
.impact-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.impact { font-size:.82rem; padding:3px 7px; border:1px solid #c7cbbd; border-radius:4px; background:#f9fbf4; }
.impact.up { border-color:#a0805b; }.impact.down { border-color:#659183; }.impact.same { color:#6c7064; }
.psych-description { font-size:.88rem; color:#60694f; line-height:1.7; }
.reaction-window .observation { margin-bottom:0; color:#4e593f; border-color:#889c72; }
.attack-cards { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px 0; }
.played-card { flex:1 1 90px; min-width:0; padding:10px; border:1px solid #b6a380; border-top:4px solid #95713d; border-radius:7px; background:#fffaf1; box-shadow:2px 3px 0 #c7b797; }
.played-card.testimony-card { border-top-color:#456c65; }.played-card strong { display:block; font-size:.85rem; overflow-wrap:anywhere; line-height:1.5; }
.card-type { display:block; font-size:.75rem; font-weight:bold; color:#746244; letter-spacing:.06em; margin-bottom:5px; }
.card-title { display:block; margin-bottom:8px; }.card-link { color:#8c7351; font-weight:bold; }
.new-cards { margin-top:18px; }.new-cards:empty { display:none; }.new-cards>button { width:100%; }
.item-card { border-radius:9px; border-top:4px solid #967342; box-shadow:2px 3px 0 #d2c6ad; }
.item-card[aria-pressed="true"] { border-top-width:4px; }.item-list:has([data-item]) .item-card { border-top-color:#496e64; }
.record-check { border-top:4px solid #496e64; background:#fffaf1; box-shadow:2px 3px 0 #d2c6ad; }
.combo-slots { display:grid; gap:10px; }.combo-slots>.card-link { text-align:center; }
.combo-card { border:1px solid #a49473; border-top:4px solid #496e64; border-radius:8px; background:#fffaf1; padding:12px; }
.combo-card strong { display:block; }.combo-card p { margin:8px 0 0; font-size:.9rem; }.combo-card.empty { border-style:dashed; background:transparent; color:#726a59; }
.selected-summary { background:#dedbcf; }
.selection-count { display:flex; justify-content:space-between;align-items:center;flex-wrap:wrap; gap:4px 12px; margin:0 0 8px; font-size:.9rem; }
.selection-count span { font-size:.8rem; color:#645b48; }
.combo-slots { grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.combo-card { padding:10px;min-width:0;overflow-wrap:anywhere; }
.combo-card strong { font-size:.85rem;line-height:1.6; }
.combo-card .card-type { margin:2px 0 0;font-size:.7rem; }
.combo-card.empty { display:flex;flex-direction:column;justify-content:center; }
.combo-card button { width:100%;margin-top:8px; }
.compact-record { padding:12px;gap:12px; }
.compact-record .quote { display:block;font-size:.9rem;line-height:1.7; }
.compact-record .card-title { font-size:.95rem;margin-bottom:4px; }
.selection-hint { padding:12px;border:1px dashed var(--line);border-radius:6px; }
#meaning-section { scroll-margin-top:8px; }
html.test-large .combo-slots { grid-template-columns:minmax(0,1fr); }
@media (max-width:360px) { .boss-board { margin:12px; gap:10px; padding:10px; }.boss-board .portrait { height:140px; }.attack-window,.speech-window,.reaction-window { margin:12px; padding:14px; } }
html.test-large .boss-board { grid-template-columns:minmax(0,1fr); } html.test-large .boss-stats .meter-row { grid-template-columns:2.2em minmax(0,1fr); }
@media (prefers-reduced-motion:no-preference) {
 .portrait.anxious .sweat-one { animation:cold-sweat-run 6.5s ease-in-out infinite; }
 .portrait.anxious .sweat-two { animation:cold-sweat-run 8s -3s ease-in-out infinite; }
 @keyframes cold-sweat-run { 0% { opacity:0;transform:translateY(-16px); } 18% { opacity:.9;transform:translateY(-12px); } 68% { opacity:.95;transform:translateY(12px); } 88% { opacity:0;transform:translateY(18px); } 100% { opacity:0;transform:translateY(18px); } }
 .turn-impact .portrait { animation:portrait-impact .3s ease-out; }.turn-impact .attack-window { animation:attack-impact .5s ease-out; }
 @keyframes portrait-impact { 0%,100% { transform:translateX(0); } 30% { transform:translateX(-3px); } 60% { transform:translateX(2px); } }
 @keyframes attack-impact { 0% { box-shadow:0 0 0 3px #ac7c3c70; } 100% { box-shadow:0 0 0 0 #ac7c3c00; } }
}
.confession-hp { margin:10px 0; }.hp-title { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px; font-size:.8rem; line-height:1.5; }
.hp-meter { display:block; appearance:none; width:100%; height:16px; border:1px solid #94724a; border-radius:4px; overflow:hidden; background:#ddd1bc; }
.hp-meter::-webkit-progress-bar { background:#ddd1bc; }.hp-meter::-webkit-progress-value { background:#9a623f; }.hp-meter::-moz-progress-bar { background:#9a623f; }
meter.meter { display:block; appearance:none; width:100%; min-width:0; height:13px; }
meter.meter::-webkit-meter-bar { border-radius:3px; border:1px solid #aaa28d; background:#e3ddcc; }
meter.meter::-webkit-meter-optimum-value { background:#a68051; }.guard.meter::-webkit-meter-optimum-value { background:#4d7a6b; }
meter.meter::-moz-meter-bar { background:#a68051; }.guard.meter::-moz-meter-bar { background:#4d7a6b; }
.meter-value { font-size:.8rem; text-align:right; }.boss-stats .meter-row,.compact .meter-row { grid-template-columns:2.2em minmax(0,1fr) 2.7em; }
.sheet-title-row { flex-wrap:wrap; }.sheet-title-row h2 { flex:1 1 70px; min-width:0; }#reselect-hand { margin-left:auto; }
.hp-hit { color:#814b2b; border:1px solid #b28658; }.combat-note { flex:1 1 100%; font-size:.85rem; margin:8px 0 0; }
.intro #start-new { width:100%; margin-top:10px; }.cover-rule { padding:14px; border:1px solid var(--line); background:#e5e7db; border-radius:8px; font-size:.9rem; }
html.test-large .boss-stats .meter-row,html.test-large .compact .meter-row { grid-template-columns:2.2em minmax(0,1fr) 2.7em; }
.exchange-window { margin:16px; border:2px solid #917b59; border-radius:10px; background:#fbf7ee; box-shadow:3px 3px 0 #d3c6ac; overflow:hidden; }
.exchange-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:10px 14px; border-bottom:1px solid #c8b999; background:#e9dfcb; }
.exchange-heading h2 { font-size:1rem; }.exchange-heading span { font-size:.8rem; color:#75634c; }
.exchange-window .boss-board { margin:0; border:0; border-radius:0; box-shadow:none; background:#f4eddc; padding:14px; }
.portrait-column { min-width:0; display:flex; flex-direction:column; justify-content:flex-start; gap:12px; }
.exchange-window>.boss-objective { text-align:center; border:1px solid #c9b792; border-radius:5px; padding:8px 12px; margin:0 16px 14px; background:#fff8e9; line-height:1.6; }
.exchange-window .attack-window,.exchange-window .speech-window,.exchange-window .reaction-window { margin:0; border:0; border-top:1px dashed #c9b99a; border-radius:0; box-shadow:none; padding:16px; }
.exchange-window .attack-window { background:#ede5d4; }.exchange-window .speech-window { background:#fffaf0; }.exchange-window .reaction-window { background:#e9ede3; }
.exchange-window .played-card { border-top-width:1px; border-radius:4px; box-shadow:none; }.exchange-window .attack-cards { margin:8px 0; }
.next-question { display:block; width:calc(100% - 28px); margin:14px; background:#405b55; color:white; border-color:#405b55; }
@media (max-width:360px) { .exchange-window { margin:12px; }.exchange-window .boss-board { padding:10px; }.exchange-window .attack-window,.exchange-window .speech-window,.exchange-window .reaction-window { padding:14px; } }

/* One-shot local finale. Its final state remains readable with motion disabled. */
.finale-dialog { width:min(calc(100% - 16px),600px);max-height:calc(100dvh - 16px);border:2px solid #c7a76c;background:#252922;color:#faf3df;box-shadow:0 0 40px #b4935050; }
.finale-dialog::backdrop { background:#141712e8; }
.finale-dialog[open] { display:flex;flex-direction:column; }
.finale-body { overflow:auto;overflow-x:hidden;min-height:0;padding:20px;background:radial-gradient(ellipse at top,#5b5535,transparent 65%); }
.finale-eyebrow { text-align:center;font-size:.8rem;letter-spacing:.12em;color:#e0c68c;margin-bottom:6px; }
#finale-title { text-align:center;font-family:"Yu Mincho",serif;font-size:1.6rem;letter-spacing:.12em;color:#ffe4a8;margin-bottom:18px; }
.finale-evidence { display:grid;gap:8px; }.finale-evidence article { padding:10px 12px;border:1px solid #b69b63;border-left:4px solid #ddbe7b;border-radius:5px;background:#fff5dc;color:#312c22;line-height:1.6; }
.finale-evidence small,.finale-evidence strong { display:block; }.finale-evidence small { font-size:.7rem;color:#73603f; }.finale-evidence strong { font-size:.9rem; }
.finale-impact { position:relative;isolation:isolate;overflow:hidden;margin:18px 0;padding:14px 6px;border-block:3px solid #dabb77;text-align:center;font-family:"Yu Mincho",serif;font-weight:600;color:#ffe4a8;background:linear-gradient(115deg,#382820,#543a28,#282b22);text-shadow:0 2px 0 #241710; }
.finale-impact-label { display:block;font-family:"Yu Gothic",sans-serif;font-size:.65rem;letter-spacing:.25em;color:#e6c88c;margin-bottom:5px; }
.finale-impact strong { display:block;font-size:1.55rem;line-height:1.5;letter-spacing:.06em; }
.finale-impact::after { content:'';position:absolute;z-index:-1;inset:-30% -20%;background:linear-gradient(115deg,transparent 38%,#ffe4a850 48%,transparent 58%);opacity:0;pointer-events:none; }
.finale-mori { display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:center; }
.finale-mori .portrait { height:144px;border:1px solid #b39a6c;border-radius:6px; }.finale-mori .portrait img { width:340%;left:-120%;top:0;filter:saturate(.15) brightness(.58); }
.finale-mori .portrait img,.finale-mori .portrait .collar-sweat { transform:translateY(13px) rotate(-6deg);transform-origin:50% 85%; }
.finale-defeat-seal { display:table;margin:8px 0 10px;padding:1px 12px;border:3px double #e5bf77;color:#ffe9b7;background:#654637;font-family:"Yu Mincho",serif;font-size:1.35rem;font-weight:bold;line-height:1.5;letter-spacing:.2em;transform:rotate(-7deg);box-shadow:2px 3px 0 #12181080; }
.finale-mori p { font-size:.85rem;margin:6px 0; }#finale-damage { color:#ffe0a0;font-size:1.05rem;font-weight:600; }
.finale-resistance { height:12px;border:1px solid #b69b63;background:#121910;overflow:hidden;border-radius:3px; }.finale-resistance span { display:block;height:100%;background:#e3ae62;transform:scaleX(0);transform-origin:left; }
#finale-description { font-size:.9rem;margin:16px 0; }.finale-verdict { text-align:center;font-weight:600;font-size:1.3rem;color:#ffe4a8;margin:12px 0 0; }.finale-verdict span { display:block;font-size:.8rem;letter-spacing:.3em; }
.finale-footer { flex:none;padding:12px 16px;border-top:1px solid #8f8059; }.finale-footer button { width:100%;background:#f2d598;color:#34291b;border-color:#d8b36f; }
.finale-footer .finale-verdict { display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;font-size:1rem;line-height:1.5;margin:0 0 8px; }.finale-footer .finale-verdict span { font-size:.7rem; }
.finale-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }.finale-actions button { font-size:.85rem;padding:10px 6px; }
@media (max-width:360px) { .finale-body { padding:14px; }.finale-mori { grid-template-columns:85px minmax(0,1fr);gap:10px; }.finale-mori .portrait { height:120px; }#finale-title { font-size:1.35rem; }.finale-impact strong { font-size:1.3rem; } }
@media (prefers-reduced-motion:no-preference) {
 .finale-dialog[open].animate-finale { animation:finale-recoil .4s 1.5s ease-out both; }
 .animate-finale #finale-title { animation:finale-heading .5s ease-out both; }
 .animate-finale .finale-denial { animation:finale-cutin-left .6s .2s cubic-bezier(.16,.85,.25,1.15) both; }
 .animate-finale .finale-slip { animation:finale-cutin-right .6s .7s cubic-bezier(.16,.85,.25,1.15) both; }
 .animate-finale .finale-impact { animation:finale-contradiction .55s 1.4s cubic-bezier(.15,.85,.25,1.2) both; }
 .animate-finale .finale-impact::after { animation:finale-gold-sweep .7s 1.65s ease-out both; }
 .animate-finale .finale-mori { animation:finale-card .35s 1.95s ease-out both; }
 .animate-finale .portrait img { animation:finale-yield .85s 2s ease-out both,finale-drained .85s 2s ease-out both; }
 .animate-finale .portrait .collar-sweat { animation:finale-yield .85s 2s ease-out both; }
 .animate-finale .finale-defeat-seal { animation:finale-seal .45s 2.45s cubic-bezier(.15,.85,.25,1.2) both; }
 .animate-finale #finale-description { animation:finale-card .5s 2.6s ease-out both; }
 .animate-finale .finale-verdict { animation:finale-clear .6s 2.8s ease-out both; }
 @keyframes finale-card { from { opacity:0;transform:translateY(16px); } to { opacity:1;transform:translateY(0); } }
 @keyframes finale-heading { from { opacity:0;transform:scale(.8);letter-spacing:.3em; } to { opacity:1;transform:scale(1);letter-spacing:.12em; } }
 @keyframes finale-cutin-left { from { opacity:0;transform:translateX(-115%) rotate(-4deg); } to { opacity:1;transform:translateX(0) rotate(0); } }
 @keyframes finale-cutin-right { from { opacity:0;transform:translateX(115%) rotate(4deg); } to { opacity:1;transform:translateX(0) rotate(0); } }
 @keyframes finale-contradiction { from { opacity:0;transform:scale(1.28) rotate(-3deg); } 65% { opacity:1;transform:scale(.97) rotate(0); } to { opacity:1;transform:scale(1) rotate(0); } }
 @keyframes finale-gold-sweep { from { opacity:0;transform:translateX(-75%); } 25% { opacity:1; } to { opacity:0;transform:translateX(75%); } }
 @keyframes finale-recoil { 0%,100% { transform:translateX(0); } 25% { transform:translateX(-3px);box-shadow:0 0 38px #e5b46090; } 50% { transform:translateX(3px); } 75% { transform:translateX(-2px); } }
 @keyframes finale-yield { 0% { transform:translateY(0) rotate(0); } 18% { transform:translate(4px,0) rotate(1deg); } 38% { transform:translate(-3px,4px) rotate(-2deg); } 100% { transform:translateY(13px) rotate(-6deg); } }
 @keyframes finale-drained { from { filter:saturate(1) brightness(1); } to { filter:saturate(.15) brightness(.58); } }
 @keyframes finale-seal { from { opacity:0;transform:scale(1.7) rotate(-18deg); } to { opacity:1;transform:scale(1) rotate(-7deg); } }
 @keyframes finale-clear { from { opacity:0;transform:scale(.85);text-shadow:0 0 20px #ffe4a8; } to { opacity:1;transform:scale(1);text-shadow:0 0 0 transparent; } }
}

.scene-links .reward-command { flex-basis:100%;background:#f4dfb3;border:2px solid #b19051;color:#473923;font-weight:600; }
.reward-dialog { width:min(calc(100% - 16px),580px);max-height:calc(100dvh - 16px);background:#f6eedc;border:2px solid #bfa36c; }
.reward-dialog[open] { display:flex;flex-direction:column; }.reward-dialog::backdrop { background:#18221bde; }
.reward-body { overflow:auto;min-height:0;padding:20px; }.reward-eyebrow { color:#806738;font-size:.8rem;text-align:center;margin:0 0 6px; }
#reward-title { font-size:1.4rem;font-family:"Yu Mincho",serif;text-align:center; }#reward-intro { font-size:.9rem;margin:12px 0; }
.chest-trigger { display:block;width:100%;padding:8px 8px 12px;background:radial-gradient(ellipse,#efe1b8,transparent 70%);border:0;text-align:center;color:#654923;font-weight:600; }.chest-trigger:disabled { opacity:1; }
#chest-caption { display:block;font-size:.85rem;line-height:1.5;margin-top:6px; }
.reward-chest { display:block;position:relative;width:180px;height:140px;margin:0 auto;perspective:500px; }
.chest-base { position:absolute;left:10px;right:10px;bottom:10px;height:70px;border:4px solid #bf9954;border-radius:3px 3px 8px 8px;background:repeating-linear-gradient(0deg,#68472c 0,#68472c 19px,#53351f 20px,#53351f 22px);box-shadow:0 8px 12px #604b3330; }
.chest-base::before,.chest-base::after { content:'';position:absolute;top:0;bottom:0;width:10px;background:#c29b54;border-inline:1px solid #e4cb89; }.chest-base::before { left:20px; }.chest-base::after { right:20px; }
.chest-lid { position:absolute;z-index:3;left:10px;right:10px;top:40px;height:33px;border:4px solid #bf9954;border-radius:18px 18px 3px 3px;background:linear-gradient(#947046,#5b3a23);transform-origin:center top; }
.chest-lock { position:absolute;z-index:4;left:77px;top:65px;width:26px;height:28px;border:2px solid #eed294;border-radius:3px;background:#b38a41; }.chest-lock::after { content:'';position:absolute;width:5px;height:9px;background:#5a4022;border-radius:5px;left:8px;top:7px; }
.chest-paper { position:absolute;z-index:1;width:70px;height:70px;left:55px;top:50px;border:1px solid #b9a375;background:repeating-linear-gradient(0deg,#fff7df 0,#fff7df 10px,#bba67e 11px,#fff7df 12px);opacity:0; }
.chest-glow { position:absolute;inset:0;background:radial-gradient(ellipse,#ffda6b99,transparent 70%);opacity:0; }
.reward-dialog.opened .chest-lid { transform:rotateX(-120deg); }.reward-dialog.opened .chest-lock { opacity:0; }.reward-dialog.opened .chest-paper { opacity:1;transform:translateY(-30px) rotate(-8deg); }.reward-dialog.opened .chest-glow { opacity:1; }
.reward-information { padding:16px;background:#fffaf0;border:1px solid #bd9c5e;border-top:4px solid #b18c45;border-radius:7px;margin-top:12px; }
.reward-acquired { color:#765421;font-weight:600;font-size:.85rem;margin:0 0 5px; }.reward-information h3 { font-family:"Yu Mincho",serif;font-size:1.2rem;margin:0 0 12px; }
.reward-information blockquote { margin:0 0 12px;padding:10px;border-left:3px solid #9f895a;background:#f0e7d2;font-size:.95rem; }.reward-information p { font-size:.9rem; }
.reward-question { font-weight:600; }.next-episode { border-top:1px solid #b8a17b;padding-top:14px; }.next-episode span,.next-episode strong { display:block; }.next-episode span { letter-spacing:.12em;color:#715a32;font-size:.8rem; }.next-episode strong { font-family:"Yu Mincho",serif;font-size:1.2rem; }.next-episode p { margin:8px 0 0; }
.reward-information .reward-trial-note { font-size:.72rem;color:#776d5e;margin:12px 0 0; }
.reward-recap { border-top:1px solid #cebc96;margin-top:14px;padding-top:8px; }.reward-recap summary { font-size:.85rem; }.reward-recap blockquote { margin-top:10px; }
.reward-footer { flex:none;padding:12px 16px;border-top:1px solid #b9a67c; }.reward-footer button { width:100%;background:#405b55;color:white;border-color:#405b55; }
@media (max-width:360px) { .reward-body { padding:14px; }.reward-information { padding:12px; } }
@media (prefers-reduced-motion:no-preference) {
 .reward-dialog.reward-opening .chest-lid { animation:chest-open .65s ease-out both; }
 .reward-dialog.reward-opening .chest-paper { animation:clue-rise .7s .2s ease-out both; }
 .reward-dialog.reward-opening .reward-information { animation:finale-card .5s .6s ease-out both; }
 @keyframes chest-open { from { transform:rotateX(0); } to { transform:rotateX(-120deg); } }
 @keyframes clue-rise { from { opacity:0;transform:translateY(0); } to { opacity:1;transform:translateY(-30px) rotate(-8deg); } }
}

.logic-result { flex:1 1 100%;font-size:.85rem;padding:10px;background:#fff8e6;border-left:3px solid #9b8154;margin:8px 0 0; }
/* v0.3-A: logical defenses, initial reasoning deck and a compact execution footer. */
#top-commands { position:static; }
#app { padding-bottom:calc(9rem + 14px); }
#commands { grid-template-columns:1fr; }
#commands > .primary { background:#405b55;color:white; }
.cover-settings { margin-top:12px;width:100%; }
.orb-board { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 16px;padding:10px;border:1px solid #ad946c;border-radius:8px;background:#e9dfcb; }
.orb-cell { min-width:0;text-align:center;font-size:.75rem;line-height:1.5; }
.orb-cell[data-orb='1'] { --orb-edge:#335b76;--orb-light:#dceffb;--orb-deep:#679fc0; }
.orb-cell[data-orb='2'] { --orb-edge:#365f4d;--orb-light:#e1f3dd;--orb-deep:#78aa80; }
.orb-cell[data-orb='3'] { --orb-edge:#873e42;--orb-light:#fae1de;--orb-deep:#c7807d; }
.orb-cell strong,.orb-cell>span:last-child { display:block;overflow-wrap:anywhere; }
.orb-icon { display:block;position:relative;margin:0 auto 8px;width:36px;height:36px;border-radius:50%;border:2px solid var(--orb-edge);background:radial-gradient(circle at 30% 25%,var(--orb-light),var(--orb-deep));box-shadow:inset -3px -3px 6px #273d3b30; }
.orb-cell.prepared .orb-icon::after { content:'';position:absolute;left:45%;top:0;width:6px;height:32px;background:var(--orb-edge);clip-path:polygon(40% 0,100% 34%,20% 54%,90% 70%,50% 100%,0 67%,40% 43%,0 22%); }
.orb-cell.broken .orb-icon { border-style:dashed;background:var(--orb-light);box-shadow:none; }
.orb-cell.broken .orb-icon::before { content:'✓';font-size:22px;line-height:30px;color:var(--orb-edge); }
.orb-cell.broken strong { color:var(--orb-edge); }
.orb-cell.just-broken .orb-icon::after { content:'';position:absolute;inset:-2px;border:2px solid var(--orb-edge);border-radius:50%;background:radial-gradient(circle at 30% 25%,var(--orb-light),var(--orb-deep));animation:orb-core-break .5s ease-out both; }
.orb-cell.just-broken .orb-icon::before { animation:orb-check-reveal .85s ease-out both; }
.orb-burst { position:absolute;inset:0;pointer-events:none;z-index:2; }
.orb-burst::before { content:'';position:absolute;inset:-6px;border:2px solid var(--orb-deep);border-radius:50%;animation:orb-break-ring .7s ease-out both; }
.orb-shard { display:block;position:absolute;left:9px;top:7px;width:15px;height:19px;border:1px solid var(--orb-edge);background:linear-gradient(140deg,var(--orb-light),var(--orb-deep));clip-path:polygon(25% 0,100% 18%,75% 100%,0 70%);animation:orb-shatter .85s cubic-bezier(.16,.66,.34,1) both; }
.orb-shard:nth-child(1) { --dx:-29px;--dy:-25px;--spin:-95deg; }
.orb-shard:nth-child(2) { --dx:0px;--dy:-36px;--spin:65deg; }
.orb-shard:nth-child(3) { --dx:29px;--dy:-23px;--spin:120deg; }
.orb-shard:nth-child(4) { --dx:32px;--dy:17px;--spin:150deg; }
.orb-shard:nth-child(5) { --dx:0px;--dy:30px;--spin:-110deg; }
.orb-shard:nth-child(6) { --dx:-31px;--dy:18px;--spin:-155deg; }
@keyframes orb-core-break { 0% { transform:scale(1);opacity:1; } 35% { transform:scale(1.18);filter:brightness(1.35);opacity:1; } 100% { transform:scale(.35);opacity:0; } }
@keyframes orb-break-ring { from { transform:scale(.6);opacity:.9; } to { transform:scale(1.6);opacity:0; } }
@keyframes orb-shatter { 0% { transform:translate(0,0) rotate(0);opacity:0; } 15% { opacity:1; } 75% { opacity:.85; } 100% { transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(.5);opacity:0; } }
@keyframes orb-check-reveal { 0%,60% { opacity:0; } 100% { opacity:1; } }
.sheet-state { font-size:.75rem;margin:0;padding:8px 14px;border-bottom:1px solid #cfc4af; }
.selection-card { padding:10px;border:1px solid #ad9874;border-top:4px solid #527367;border-radius:8px;background:#fffaf1;margin:12px 0;min-width:0; }
.selection-card .choice { margin:0 0 8px;padding:10px;border:0; }
.selection-card .choice small { display:block;margin-top:8px;font-size:.82rem;line-height:1.7; }
.selection-card>button { width:100%;font-size:.8rem; }
.reasoning-card { border-top:4px solid #9b7b3d;background:#fff5de; }
.selection-summary { padding:12px;border:1px solid #a68e66;border-radius:8px;background:#fff5de;margin:12px 0; }
.selection-summary p { margin:8px 0 0;font-size:.9rem; }
#review-selection { flex:1 1 100%;font-size:.75rem; }
#selection-status { font-size:.73rem; }
#sheet-footer { max-height:48dvh;overflow:auto; }
#sheet-title { min-width:0;overflow-wrap:anywhere; }
.retracted { padding:10px;border-left:3px solid #9b7b3d;background:#f0e2c8; }
.boss-stats .meter-row { grid-template-columns:2.2em minmax(0,1fr) 2.5em; }
meter.meter { width:100%;min-width:0;height:14px; }
.speech-window,.reaction-window { scroll-margin-top:12px; }
#finish-turn { margin:12px 16px;width:calc(100% - 32px); }
body[data-effects='short'] * { animation-duration:.15s!important;animation-delay:0s!important;transition-duration:.1s!important; }
body[data-effects='off'] *,body[data-effects='off'] *::before,body[data-effects='off'] *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
@media (max-width:360px) { .boss-board { grid-template-columns:minmax(85px,.75fr) minmax(0,1.25fr);gap:10px;padding:10px;margin:12px; }.boss-stats .name strong { font-size:1.2rem; }.boss-stats .meter-row { gap:5px;font-size:.8rem; }.orb-board { margin:12px;gap:5px; }.approaches { grid-template-columns:1fr; }.approaches .choice { flex-direction:row;justify-content:center; } }
html.test-large .boss-board { grid-template-columns:1fr; }
html.test-large .boss-stats .meter-row { grid-template-columns:2.2em minmax(0,1fr) 2.5em; }
html.test-large .combo-slots,html.test-large .approaches { grid-template-columns:1fr; }
html.test-large #sheet-footer { max-height:44dvh; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
@media (max-width:360px) { .exchange-window>.boss-objective { margin-left:12px;margin-right:12px; } }

/* Acquisitions stay in the current reading area; no modal or extra turn. */
.acquisition-card { position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:50px minmax(0,1fr);gap:10px 12px;align-items:center;padding:14px;margin:12px 0;border:2px solid #aa8645;border-radius:9px;background:linear-gradient(120deg,#fff8df,#eee0bd);box-shadow:2px 3px 0 #baa87540; }
.acquisition-card.statement { border-color:#527567;background:linear-gradient(120deg,#f3f8ed,#dde9de); }
.acquisition-emblem { display:grid;place-items:center;min-height:60px;border:2px double #aa8645;border-radius:4px;background:#fffaf0;color:#755822;transform:rotate(-5deg);font-size:14px;font-weight:bold;letter-spacing:2px; }
.statement .acquisition-emblem { border-color:#527567;color:#365c4b; }
.acquisition-type { display:block;font-size:.78rem;font-weight:bold;color:#695328; }
.statement .acquisition-type { color:#365c4b; }
.acquisition-card strong { display:block;font-family:"Yu Mincho",serif;font-size:1.1rem;line-height:1.5;overflow-wrap:anywhere; }
.acquisition-card p { font-size:.74rem;line-height:1.6;margin:5px 0 0; }
.acquisition-card button { grid-column:1/-1;width:100%;font-size:.82rem; }
.acquisition-card::after { content:'';position:absolute;z-index:-1;inset:0;opacity:0;background:linear-gradient(110deg,transparent 25%,#ffffffb0 50%,transparent 75%);pointer-events:none; }
.collection-counts { font-size:.83rem;padding:10px;border:1px solid #bdaf92;border-radius:6px;background:#e9e8dd; }
.collection-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:12px; }
.collection-card { min-width:0;display:flex;flex-direction:column;padding:12px;border:1px solid #b6a789;border-top:4px solid #8c7548;border-radius:8px;background:#fffaf0;box-shadow:2px 3px 0 #c6baa940; }
.collection-card.document { border-top-color:#557b92; }.collection-card.statement { border-top-color:#527567; }
.collection-card h4 { font-size:.94rem;line-height:1.5;margin:2px 0 8px;overflow-wrap:anywhere; }
.collection-excerpt { font-size:.78rem;line-height:1.7;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.collection-card button { margin-top:auto;width:100%;font-size:.78rem; }
.collection-card .retracted { font-size:.72rem;padding:6px; }
.collection-empty { font-size:.85rem;color:#6d665a;padding:10px;border:1px dashed #b6a789; }
.record-log { margin-top:24px;padding-top:12px;border-top:1px solid #b6a789; }
.record-log summary { padding:10px 0;font-weight:bold; }.record-log[open] summary { margin-bottom:12px; }
.finale-acquisition { margin:0 0 8px;font-size:.7rem;text-align:center;color:#ead09b;line-height:1.5; }
.finale-acquisition span { display:inline-block;margin-left:8px;padding:1px 7px;border:1px solid #9e865a;border-radius:4px;color:#fff2d1; }
body[data-effects='short'] .acquisition-card::after { animation-duration:.15s!important;animation-delay:0s!important; }
@media (prefers-reduced-motion:no-preference) {
 .acquisition-card.just-acquired { animation:card-acquired .55s cubic-bezier(.16,.85,.25,1.15) both; }
 .acquisition-card.just-acquired::after { animation:card-acquired-shine .85s .1s ease-out both; }
 .animate-finale .finale-acquisition { animation:finale-card .4s 3s ease-out both; }
 @keyframes card-acquired { from { opacity:0;transform:translateY(15px); } to { opacity:1;transform:translateY(0); } }
 @keyframes card-acquired-shine { from { opacity:0;transform:translateX(-100%); } 30% { opacity:1; } to { opacity:0;transform:translateX(100%); } }
}

/* Shared collectible card face: list, selection, method and acquisition. */
.card-library,.card-choices,.collection-grid { display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:12px; }
.battle-card { --card-ink:#42687d;--card-wash:#e6eff2;position:relative;box-sizing:border-box;flex:0 0 min(100%,8.8rem);width:min(100%,8.8rem);height:16rem;min-width:0;display:flex;flex-direction:column;padding:.55rem;border:1px solid #9f8d6c;border-top:4px solid var(--card-ink);border-radius:10px;background:linear-gradient(150deg,#fffaf0,#eee4d2);box-shadow:2px 4px 0 #c7b99d80;isolation:isolate;text-align:left;overflow:hidden; }
.battle-card.statement { --card-ink:#456b56;--card-wash:#e4eddf; }
.battle-card.reasoning,.battle-card.reward-clue { --card-ink:#856335;--card-wash:#f0e4c7; }
.battle-card::before { content:'';position:absolute;z-index:-1;inset:5px;border:1px solid #c4b28d;border-radius:6px;pointer-events:none; }
.card-face { flex:1;min-height:0;min-width:0;display:grid;grid-template-rows:1.1rem 3rem 2.7rem minmax(0,1fr) 1rem;gap:.25rem; }
.card-face-header { display:flex;align-items:center;justify-content:space-between;gap:4px;color:var(--card-ink);font-size:.63rem;font-weight:bold;letter-spacing:.04em;white-space:nowrap; }
.card-number { font-family:Georgia,serif;font-size:.72rem; }
.card-art { display:grid;place-items:center;overflow:hidden;min-width:0;border:1px solid #bcac8b;border-radius:4px;background:repeating-linear-gradient(0deg,var(--card-wash),var(--card-wash) 10px,#c9c5b540 11px); }
.card-art img { width:100%;height:100%;object-fit:cover;object-position:center 35%; }
.card-monogram { display:grid;place-items:center;width:2.3rem;height:2.3rem;border:1px solid var(--card-ink);border-radius:50%;font-family:"Yu Mincho",serif;font-size:1.35rem;line-height:1;color:var(--card-ink);background:#fff9ea90; }
.card-name { font-family:"Yu Mincho",serif;font-size:.92rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere; }
.card-excerpt { font-size:.67rem;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical; }
.card-caption { font-size:.6rem;line-height:1.4;color:var(--card-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.card-caption.retracted { padding:0;border:0;margin:0;background:transparent; }
.battle-card .card-footer { flex:none;display:grid;place-items:center;min-height:48px;width:100%;margin:8px 0 0;padding:5px 3px;border:1px solid #b9aa8a;border-radius:5px;background:#fff9ed;font-size:.66rem;line-height:1.4;color:#4c463a;text-align:center; }
.card-option .card-pick { position:relative;display:flex;flex:1;min-height:0;cursor:pointer; }
.card-option input { position:absolute;z-index:1;top:1px;right:0;width:20px;height:20px;margin:0;accent-color:#405b55; }
.card-option .card-number { margin-right:24px; }
.card-option.selected { outline:3px solid #405b55;outline-offset:1px; }
.card-option.disabled { opacity:.55; }
.acquisition-card { grid-template-columns:minmax(0,1fr);justify-items:center;gap:10px;padding:12px; }
.acquisition-card .acquisition-type { font-size:.85rem; }
.acquisition-card .battle-card { flex:none; }
.acquisition-card .card-name { font-size:.92rem;line-height:1.4; }
.acquisition-card>button { grid-column:1;width:100%; }
.document-preview-note { padding:12px;border:1px solid #b8a27b;border-radius:6px;background:#fff4d7;font-size:.86rem; }
.acquisition-preview .card-footer { color:var(--card-ink);font-weight:bold; }
.collection-card.reward-clue { margin:auto; }
#card-gain { scroll-margin-top:8px; }
