.grand-final-overlay { position:fixed; inset:0; z-index:1500; display:grid; place-items:center; padding:1rem; overflow:hidden; background:rgba(2,6,23,.92); backdrop-filter:blur(8px); }
.grand-final-overlay.hidden { display:none; }
.grand-final-panel { position:relative; width:min(1080px,96vw); max-height:calc(100dvh - 2rem); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:clamp(1.1rem,2.5vw,2rem); color:#e2e8f0; background:radial-gradient(circle at 85% 4%,rgba(14,116,144,.24),transparent 28%),linear-gradient(145deg,#172033,#0b1222); border:2px solid #f59e0b; border-radius:20px; box-shadow:0 24px 70px rgba(0,0,0,.8); }
.grand-final-close { position:absolute; top:1rem; right:1rem; color:#fbbf24; border-color:#fbbf24; z-index:2; }
.grand-final-header { display:flex; justify-content:space-between; gap:1rem; padding-right:3rem; color:#fbbf24; font-size:.74rem; font-weight:900; letter-spacing:.08em; }
.grand-final-header strong { color:#67e8f9; }
.grand-final-panel h2 { margin:.65rem 0 .4rem; color:#fff; font:900 clamp(1.35rem,3vw,2rem) var(--font-title); }
.grand-final-instruction { margin:0 0 1rem; padding:.75rem 1rem; color:#dbeafe; line-height:1.5; background:rgba(30,41,59,.75); border-left:4px solid #38bdf8; border-radius:8px; }
.grand-final-content { min-height:0; }
.grand-final-cta { display:block; width:min(510px,100%); margin:1rem auto 0; }
.grand-final-unlock { color:#f0fdf4 !important; background:linear-gradient(135deg,#15803d,#22c55e) !important; border-color:#86efac !important; box-shadow:0 0 24px rgba(34,197,94,.45) !important; }
.grand-final-reveal { max-width:760px; margin:0 auto; padding:clamp(1.2rem,4vw,3.5rem) 1rem; text-align:center; }
.grand-final-reveal > span,.grand-final-reveal small { display:block; color:#67e8f9; font-weight:900; letter-spacing:.14em; }
.grand-final-reveal small { margin-top:.45rem; color:#fbbf24; }
.grand-final-reveal h1 { margin:.65rem 0; color:#fff; font:900 clamp(2rem,6vw,3.8rem) var(--font-title); line-height:1.08; }
.grand-final-subtitle { color:#fbbf24; font-weight:800; }
.grand-final-reveal blockquote { margin:1.4rem auto; color:#fef3c7; font:700 clamp(1.05rem,2.5vw,1.45rem) var(--font-title); line-height:1.45; }
.grand-final-reveal p { color:#cbd5e1; line-height:1.65; }
.grand-final-case { margin:1.25rem auto; padding:.8rem; color:#dbeafe; background:rgba(14,116,144,.16); border:1px solid rgba(56,189,248,.4); border-radius:10px; }
.case-map-schematic { position:relative; height:94px; margin-bottom:.85rem; overflow:hidden; border:1px solid rgba(56,189,248,.35); border-radius:14px; background:linear-gradient(135deg,#123556,#0f766e); }
.case-map-core { position:absolute; left:50%; top:50%; z-index:1; transform:translate(-50%,-50%); padding:.6rem .85rem; color:#0f172a; font-size:.78rem; font-weight:900; background:#fbbf24; border-radius:999px; }
.case-map-path { position:absolute; width:38%; height:2px; top:50%; background:#fef08a; transform-origin:left; opacity:.8; animation:caseMapSignal 2.4s ease-in-out infinite; }.path-a{left:15%;transform:rotate(12deg)}.path-b{left:48%;transform:rotate(-17deg);animation-delay:.55s}.path-c{left:30%;top:30%;transform:rotate(47deg);animation-delay:1.1s}@keyframes caseMapSignal{50%{opacity:.25;filter:drop-shadow(0 0 5px #fbbf24)}}
.case-board-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; }
.case-board-card { min-height:145px; padding:.8rem; color:#e2e8f0; text-align:left; background:#172033; border:1.5px solid #475569; border-radius:12px; cursor:pointer; }.case-board-card:hover,.case-board-card:focus{border-color:#fbbf24;outline:none}.case-board-card.read{border-color:#22c55e;background:rgba(20,83,45,.35)}.case-board-card strong,.case-board-card span,.case-board-card small{display:block}.case-board-card strong{color:#fff}.case-board-card span{margin:.45rem 0;color:#67e8f9;font-size:.84rem}.case-board-card small{color:#cbd5e1;font-size:.75rem;line-height:1.35}
.grand-final-feedback { margin:.85rem 0 0; padding:.7rem .85rem; color:#fef3c7; line-height:1.45; background:rgba(146,64,14,.18); border-left:3px solid #fbbf24; border-radius:7px; }
.network-canvas,.conquest-web { position:relative; min-height:160px; padding:1rem; overflow:hidden; border:1px solid rgba(56,189,248,.35); border-radius:14px; background:linear-gradient(135deg,rgba(8,47,73,.65),rgba(30,41,59,.8)); }.network-center,.web-center { position:absolute; left:50%; top:50%; display:grid; place-items:center; width:94px; height:94px; color:#0f172a; font:900 .9rem var(--font-title); text-align:center; background:#fbbf24; border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 8px rgba(251,191,36,.14); }.network-sources,.web-nodes{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;z-index:1}.network-source,.web-node{min-height:46px;padding:.5rem;color:#e2e8f0;font-weight:800;background:#0f172a;border:1px solid #64748b;border-radius:8px;cursor:pointer}.network-source.selected,.web-node.selected{border-color:#fbbf24;box-shadow:0 0 15px rgba(251,191,36,.3)}.network-source.linked,.web-node.linked{color:#dcfce7;background:#14532d;border-color:#22c55e}
.relation-choice-set,.web-targets { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:.85rem; }.relation-choice-set p,.web-targets p { grid-column:1/-1; margin:0; color:#cbd5e1; }.relation-choice,.web-targets button { min-height:52px; padding:.65rem; color:#e2e8f0; font-weight:700; background:#172033; border:1px solid #475569; border-radius:8px; cursor:pointer; }.relation-choice.correct,.web-targets button:first-of-type{border-color:#22c55e}.network-empty{padding:.9rem;color:#94a3b8;text-align:center}
.situation-panel { display:grid; grid-template-columns:repeat(5,1fr); gap:.45rem; margin-bottom:.85rem; }.situation-panel div{padding:.55rem;text-align:center;background:#172033;border:1px solid #334155;border-radius:8px}.situation-panel span{display:block;color:#94a3b8;font-size:.63rem;font-weight:800}.situation-panel b{color:#86efac;font-size:1.15rem}.situation-panel b.negative{color:#fca5a5}.decision-scenario{padding:1rem;background:rgba(30,41,59,.75);border:1px solid #475569;border-radius:12px}.decision-scenario>span,.historical-event>span,.grand-final-conclusion>span{color:#fbbf24;font-size:.72rem;font-weight:900;letter-spacing:.1em}.decision-scenario h3{margin:.5rem 0 1rem;color:#fff;font-size:1.05rem;line-height:1.45}.decision-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.decision-options button{min-height:84px;padding:.7rem;color:#e2e8f0;text-align:left;background:#0f172a;border:1px solid #475569;border-radius:9px;cursor:pointer}.decision-options button:hover{border-color:#38bdf8}.decision-complete{padding:1.2rem;color:#dcfce7;line-height:1.6;background:rgba(20,83,45,.4);border:1px solid #22c55e;border-radius:12px}
.historical-event{padding:1.2rem;background:linear-gradient(135deg,rgba(127,29,29,.48),rgba(30,41,59,.8));border:1.5px solid #fb923c;border-radius:14px}.historical-event h3{margin:.4rem 0;color:#fff;font:800 1.35rem var(--font-title)}.historical-event p,.historical-event small{display:block;color:#e2e8f0;line-height:1.55}.historical-event.seen{border-color:#22c55e}.grand-final-event-btn{display:block;width:min(360px,100%);margin:.85rem auto 0}
.grand-final-glossary{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .85rem;padding:.65rem;border:1px solid rgba(56,189,248,.42);border-radius:10px;background:rgba(8,47,73,.48)}.grand-final-glossary button{padding:.42rem .65rem;color:#dbeafe;background:#0f172a;border:1px solid #38bdf8;border-radius:999px;font-weight:800;cursor:pointer}.grand-final-glossary button:hover{background:#164e63}.grand-final-glossary p{flex:1 0 100%;margin:.25rem 0 0;color:#cbd5e1;line-height:1.4}
.grand-final-conclusion{margin-top:1rem;padding:1rem;background:rgba(15,23,42,.85);border:1px solid rgba(251,191,36,.45);border-radius:12px}.grand-final-conclusion h3{color:#fff;line-height:1.4}.conclusion-options{display:grid;gap:.55rem}.conclusion-options button{padding:.75rem;color:#e2e8f0;text-align:left;line-height:1.45;background:#172033;border:1px solid #475569;border-radius:8px;cursor:pointer}.conclusion-options button:hover{border-color:#fbbf24}.conclusion-feedback{margin-top:.75rem;padding:.8rem;line-height:1.5;border-radius:8px}.conclusion-feedback.correct{color:#dcfce7;background:rgba(20,83,45,.45);border:1px solid #22c55e}.conclusion-feedback.wrong{color:#fee2e2;background:rgba(127,29,29,.42);border:1px solid #ef4444}.conclusion-feedback .rpg-btn{display:block;width:100%;margin-top:.8rem}
@media (max-width:760px){.case-board-grid{grid-template-columns:repeat(2,1fr)}.case-board-card{min-height:120px}.network-sources,.web-nodes,.decision-options,.relation-choice-set,.web-targets{grid-template-columns:1fr}.situation-panel{grid-template-columns:repeat(3,1fr)}.grand-final-panel{width:calc(100vw - 1rem);padding:1rem}.grand-final-header{font-size:.64rem}.grand-final-reveal{padding:2rem .2rem}.case-map-schematic{height:70px}}
@media (max-height:760px) and (min-width:761px){.grand-final-panel{padding:1rem 1.3rem}.case-board-card{min-height:112px}.case-map-schematic{height:72px}.decision-options button{min-height:64px}.network-canvas,.conquest-web{min-height:130px}}
