.game-page{min-height:100vh;min-height:100dvh;background:var(--color-bg);display:flex;flex-direction:column}.game-page--timeline{--game-primary: var(--theme-timeline);--game-primary-dark: var(--theme-timeline-dark);--game-primary-soft: var(--theme-timeline-soft);background:radial-gradient(circle at 14% 0%,rgba(216,154,43,.22),transparent 28%),radial-gradient(circle at 86% 8%,rgba(123,167,148,.14),transparent 24%),linear-gradient(180deg,#fff8e8,#fff0cc)}.game-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#fffaefe0;border-bottom:1px solid rgba(216,154,43,.18);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.back-btn{font-size:1.2rem;color:var(--color-text-light);min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;transition:color .2s}.back-btn:hover{color:var(--color-text)}.progress-text{font-size:.9rem;font-weight:600;color:var(--color-text)}.score-text{font-size:.85rem;font-weight:600;color:var(--game-primary-dark)}.progress-bar{height:3px;background:#5a3b1e1a}.progress-fill{height:100%;background:linear-gradient(90deg,var(--game-primary),#F4C45E);transition:width .4s ease;border-radius:0 2px 2px 0}.game-content{flex:1;padding:20px 16px;max-width:600px;width:100%;margin:0 auto}.round-hint{text-align:center;font-size:.9rem;color:#5a3b1eb8;margin-bottom:20px}.event-list{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;position:relative}.event-card{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fffcf4f5;border:2px solid rgba(216,154,43,.18);border-radius:12px;cursor:grab;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 8px 22px #5a3b1e0f;user-select:none;-webkit-user-select:none;touch-action:none;will-change:transform}.event-card:hover{border-color:var(--game-primary);background:#fff8e0}.event-card:active{cursor:grabbing}.event-card.selected{border-color:var(--game-primary);background:#fff8e0;box-shadow:0 0 0 3px #d89a2b2e}.event-card.is-dragging{opacity:.95;box-shadow:var(--shadow-lg);z-index:1000;cursor:grabbing}.event-card.is-dragging .event-order{background:var(--game-primary);color:#fff}.event-order{width:28px;height:28px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:var(--color-text-light);flex-shrink:0;transition:all .2s}.event-card.selected .event-order{background:var(--game-primary);color:#fff}.event-drag-handle{align-self:stretch;min-width:34px;margin:-8px -6px -8px 0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#c0c8cc;flex-shrink:0;line-height:1}.event-desc{flex:1;font-size:.92rem;color:var(--color-text);line-height:1.5}.confirm-btn{display:block;width:100%;padding:14px;background:linear-gradient(135deg,var(--game-primary),#F4C45E);color:#fff;font-size:1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:background .2s,transform .2s;font-family:inherit}.confirm-btn:hover{background:var(--game-primary-dark)}.confirm-btn:active{transform:scale(.98)}.reveal-overlay{position:fixed;inset:0;background:#00000073;display:none;align-items:center;justify-content:center;padding:16px;z-index:100;animation:fade-in .3s ease}.reveal-card{background:#fffdf5;border-radius:24px;padding:32px 24px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:card-pop .4s ease}.reveal-title{text-align:center;font-size:1.3rem;font-weight:700;color:var(--color-text);margin-bottom:8px}.reveal-score{text-align:center;font-size:1rem;color:var(--game-primary-dark);font-weight:700;margin-bottom:20px}.reveal-list{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.reveal-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;font-size:.88rem;line-height:1.5}.reveal-item.correct{background:#e8f5e9}.reveal-item.off-by-one{background:#fff8e1}.reveal-item.wrong{background:#ffebee}.reveal-item-icon{flex-shrink:0;font-size:1rem;line-height:1.5}.reveal-item-body{flex:1}.reveal-item-date{font-weight:700;color:var(--color-text)}.reveal-item-desc{color:var(--color-text-light)}.reveal-item-score{font-weight:700;font-size:.82rem;flex-shrink:0;line-height:1.5}.reveal-item.correct .reveal-item-score{color:#2e7d32}.reveal-item.off-by-one .reveal-item-score{color:#f9a825}.reveal-item.wrong .reveal-item-score{color:#c62828}.next-btn{display:block;width:100%;padding:14px;background:linear-gradient(135deg,var(--game-primary),#F4C45E);color:#fff;font-size:1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:background .2s,transform .2s;font-family:inherit}.next-btn:hover{background:var(--game-primary-dark)}.next-btn:active{transform:scale(.98)}.result-overlay{position:fixed;inset:0;background:#00000073;display:none;align-items:center;justify-content:center;padding:16px;z-index:100;animation:fade-in .3s ease}.result-card{background:#fff;border-radius:24px;padding:40px 32px;text-align:center;max-width:380px;width:100%;box-shadow:var(--shadow-lg);animation:card-pop .4s ease}.result-emoji{font-size:4rem;margin-bottom:12px}.result-title{font-size:1.5rem;font-weight:700;color:var(--color-text);margin-bottom:8px}.result-score{font-size:1.05rem;color:var(--color-text-light);margin-bottom:8px}.result-msg{font-size:1rem;color:#d4532a;font-weight:600;margin-bottom:28px}.replay-btn{display:block;width:100%;padding:14px;background:linear-gradient(135deg,var(--game-primary),#F4C45E);color:#fff;font-size:1rem;font-weight:600;border:none;border-radius:50px;cursor:pointer;transition:background .2s,transform .2s;font-family:inherit;margin-bottom:16px}.review-btn{display:block;width:100%;padding:12px 14px;margin-bottom:16px;border:1px solid rgba(216,154,43,.32);border-radius:50px;color:var(--game-primary-dark);background:var(--game-primary-soft);font:inherit;font-weight:700;cursor:pointer;transition:background .2s,transform .2s}.replay-btn:hover{background:var(--game-primary-dark)}.review-btn:hover{background:#ffe9ad}.replay-btn:active,.review-btn:active{transform:scale(.98)}.review-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:16px;background:#5a3b1e80;z-index:120;animation:fade-in .3s ease}.review-card{width:min(100%,720px);max-height:86vh;overflow-y:auto;border-radius:24px;padding:26px 18px;background:#fffdf5;box-shadow:var(--shadow-lg);animation:card-pop .35s ease}.review-title{margin:0 0 18px;text-align:center;color:var(--game-primary-dark);font-size:1.4rem}.review-list{display:grid;gap:12px}.review-round{border:1px solid rgba(216,154,43,.24);border-radius:16px;background:#fff;overflow:hidden}.review-round summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;color:var(--game-primary-dark);cursor:pointer;font-weight:900;list-style:none}.review-round summary::-webkit-details-marker{display:none}.review-round-score{flex-shrink:0;padding:2px 8px;border-radius:999px;background:var(--game-primary-soft);font-size:.78rem}.review-columns{display:grid;gap:12px;padding:0 14px 14px}.review-column-title{margin:0 0 8px;color:var(--game-primary-dark);font-size:.88rem}.review-order-list{display:grid;gap:8px}.review-order-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;padding:9px 10px;border-radius:10px;background:#fff8e1;color:var(--color-text);font-size:.82rem;line-height:1.45}.review-order-item.is-correct{background:#e8f5e9}.review-order-item.is-off{background:#fff8e1}.review-order-item.is-wrong{background:#ffebee}.review-order-index,.review-order-score{color:var(--game-primary-dark);font-weight:900}.review-order-score.is-correct{color:#2e7d32}.review-order-score.is-wrong{color:#c62828}.review-event-date{font-weight:900}.review-event-desc{color:var(--color-text-light)}.review-close-btn{width:100%;margin-top:18px;padding:13px;border:0;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--game-primary),#F4C45E);font:inherit;font-weight:800;cursor:pointer}.result-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px}.back-link{font-size:.85rem;color:var(--color-text-light);transition:color .2s}.back-link:hover{color:var(--color-text)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes card-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@media(min-width:640px){.game-content{padding:32px 24px}.event-card{padding:16px 20px}.event-desc{font-size:.95rem}}@media(prefers-reduced-motion:reduce){.result-overlay,.result-card,.review-overlay,.review-card,.reveal-overlay,.reveal-card{animation:none}}
