:root {
  --cream: #fff4e6;
  --cream-deep: #ffefd8;
  --blue: #0f3d91;
  --blue-hover: #0b327a;
  --green: #168a43;
  --green-bright: #22c55e;
  --orange: #d97706;
  --orange-bright: #f59e0b;
  --sky: #e0f2fe;
  --text: #12305f;
  --muted: #5d6d82;
  --line: #dce5ec;
  --panel: #fffefa;
  --ocean: #dff3fb;
  --land: #a8d7b2;
  --land2: #80c793;
  --shadow: 0 10px 30px rgba(15, 61, 145, 0.08);
}
* { box-sizing: border-box; }
html { background: var(--cream); }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--text);
  background:
    radial-gradient(circle at 8% -5%, rgba(224, 242, 254, .85), transparent 30rem),
    var(--cream);
  font-family: ui-rounded, "SF Pro Rounded", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.app { max-width: 1120px; margin: auto; padding: 18px 18px 44px; }
.top { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; margin-bottom: 20px; }
.brand { border: 0; padding: 0; background: transparent; display: flex; align-items: center; gap: 9px; cursor: pointer; }
.brand-mark { display: block; width: 38px; height: 38px; flex: 0 0 auto; }
.wordmark { font-size: 28px; font-weight: 850; letter-spacing: -1px; line-height: 1; }
.wordmark span:first-child { color: var(--blue); }
.wordmark span:last-child { color: var(--green); }
.sub { max-width: 560px; margin: 5px 0 0 47px; color: var(--muted); font-size: 14px; line-height: 1.35; }
select, button { font: inherit; }
select { min-height: 42px; border: 1px solid #b8c9d7; border-radius: 11px; padding: 8px 11px; background: #fff; color: var(--blue); font-weight: 650; }
button, select { -webkit-tap-highlight-color: transparent; }
button:focus-visible, select:focus-visible { outline: 3px solid rgba(15, 61, 145, .28); outline-offset: 3px; }
.card { background: rgba(255, 254, 250, .96); border: 1px solid rgba(15, 61, 145, .11); border-radius: 20px; padding: 22px; box-shadow: var(--shadow); }
.start { max-width: 650px; margin: 58px auto; text-align: center; }
#home { max-width: 720px; padding: 32px; }
#home h1 { font-size: clamp(1.9rem, 5vw, 2.5rem); }
.start h1 { margin: 0 0 10px; color: var(--blue); font-size: clamp(1.8rem, 5vw, 2.25rem); letter-spacing: -.8px; }
.start p { color: var(--muted); }
.mode-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 26px; }
.mode-choice { position: relative; min-height: 174px; padding: 25px; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: #fffdfa; color: var(--text); cursor: pointer; text-align: left; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.mode-choice::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--orange-bright); }
.mode-choice.mode-practice::before { background: var(--green-bright); }
.mode-choice:hover { transform: translateY(-2px); border-color: #bdcada; box-shadow: 0 9px 22px rgba(15, 61, 145, .08); }
.mode-choice:active { transform: translateY(0); }
.mode-choice strong, .mode-choice span { display: block; }
.mode-choice strong { margin-bottom: 10px; color: var(--blue); font-size: 23px; }
.mode-practice strong { color: var(--green); }
.mode-choice span { color: var(--muted); line-height: 1.5; }
.levels { display: flex; justify-content: center; gap: 10px; margin-top: 25px; }
.levels button, .primary, .secondary { min-height: 46px; border-radius: 13px; padding: 12px 19px; cursor: pointer; font-weight: 760; transition: transform .15s ease, background .15s ease, box-shadow .15s ease; }
.levels button { border: 2px solid transparent; background: var(--blue); color: white; }
.levels button:hover, .primary:hover, .secondary:hover { transform: translateY(-1px); }
.levels button:hover { background: var(--blue-hover); }
.levels button:active, .primary:active, .secondary:active { transform: translateY(1px); }
.primary { border: 1px solid var(--green); background: var(--green); color: white; }
.primary:hover { background: #107538; }
.secondary { border: 1px solid #b9d1e2; background: var(--sky); color: var(--blue); }
.secondary:hover { background: #c9eaff; }
.text-button { min-height: 44px; margin-top: 18px; border: 0; background: transparent; color: var(--blue); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.large-score { display: block; margin: 12px 0; color: var(--orange); font-size: clamp(2.2rem, 8vw, 3.3rem); font-weight: 880; letter-spacing: -1.5px; }
.preline { white-space: pre-line; line-height: 1.65; }
.hidden { display: none !important; }
.hud { display: flex; justify-content: center; align-items: center; gap: 22px; margin: 7px 0 10px; color: var(--muted); font-size: 14px; }
.hud b { color: var(--green); }
#roundLabel { color: var(--blue); }
#totalScore { color: var(--orange); }
.prompt { margin: 9px 0 14px; text-align: center; font-size: 25px; }
.prompt strong { color: var(--blue); }
.round-score { display: block; margin-top: 5px; color: var(--orange); font-size: 18px; }
.map-wrap { position: relative; overflow: hidden; touch-action: none; border: 1px solid #b5d3dd; border-radius: 20px; background: var(--ocean); box-shadow: 0 10px 28px rgba(15, 61, 145, .09); }
.map-wrap svg { display: block; width: 100%; height: auto; min-height: 330px; }
.ocean { fill: var(--ocean); }
.country-shape { fill: var(--land); stroke: #4e7990; stroke-width: 1; vector-effect: non-scaling-stroke; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; }
.country-shape:hover { fill: var(--land2); }
.country-shape.country-correct, .microstate.country-correct { animation: countryCorrectPulse .78s ease-out; transform-box: fill-box; transform-origin: center; }
.country-shape.country-wrong, .microstate.country-wrong { animation: countryWrongPulse .42s ease-out; transform-box: fill-box; transform-origin: center; }
.correct-check { position: absolute; z-index: 4; top: 50%; left: 50%; display: grid; width: 74px; height: 74px; place-items: center; border-radius: 50%; background: rgba(34, 197, 94, .94); color: white; box-shadow: 0 10px 28px rgba(15, 61, 145, .2); font-size: 46px; font-weight: 900; pointer-events: none; transform: translate(-50%, -50%); animation: correctCheck .82s ease-out forwards; }
@keyframes countryCorrectPulse { 0% { fill: var(--land); transform: scale(1); } 35% { fill: #4ade80; transform: scale(1.035); } 100% { fill: var(--land); transform: scale(1); } }
@keyframes countryWrongPulse { 0% { fill: var(--land); transform: translateX(0); } 25% { fill: #f59e0b; transform: translateX(-3px); } 50% { fill: #f97316; transform: translateX(3px); } 75% { fill: #f59e0b; transform: translateX(-2px); } 100% { fill: var(--land); transform: translateX(0); } }
@keyframes correctCheck { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.55); } 24% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); } 70% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -58%) scale(.96); } }
.microstate { fill: var(--land2); stroke-width: 1.5; }
#map { user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; }
.map-controls { position: absolute; top: 11px; right: 11px; display: flex; flex-direction: column; gap: 7px; }
.map-controls button { width: 42px; height: 42px; border: 1px solid #a9c3d3; border-radius: 11px; background: rgba(255, 254, 250, .96); color: var(--blue); box-shadow: 0 3px 12px rgba(15, 61, 145, .12); font-size: 20px; font-weight: 750; }
.map-hint { position: absolute; bottom: 11px; left: 11px; max-width: calc(100% - 22px); padding: 7px 10px; border: 1px solid rgba(15, 61, 145, .08); border-radius: 10px; background: rgba(255, 254, 250, .93); color: var(--muted); font-size: 12px; pointer-events: none; }
.distance-feedback { display: flex; justify-content: center; align-items: center; gap: 12px; min-height: 32px; margin: 10px 0; color: var(--blue); font-size: 15px; }
.distance-feedback strong { color: #b34718; }
.distance-feedback.wrong-reveal { animation: wrongReveal .34s ease-out both; }
@keyframes wrongReveal { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.result { margin-top: 15px; scroll-margin-top: 16px; }
.result.result-reveal { animation: resultReveal .48s ease-out both; }
@keyframes resultReveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.result-head { display: flex; align-items: center; gap: 15px; }
.result h2 { margin: 0 0 5px; color: var(--orange); font-size: 18px; }
.flagline { display: flex; align-items: center; gap: 13px; font-size: 58px; line-height: 1.05; }
.flagline b { color: var(--blue); font-size: 42px; letter-spacing: -.7px; }
.capital { margin: 8px 0 12px; color: var(--muted); font-size: 15px; }
.fact { margin: 0; padding: 14px 16px; border-radius: 13px; background: var(--sky); color: var(--text); font-size: 18px; line-height: 1.55; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.final { max-width: 620px; margin: 58px auto; text-align: center; }
.final::before { content: "🏆"; display: block; margin-bottom: 6px; font-size: 45px; }
.final h1 { margin: 0; color: var(--blue); }
.versus { color: var(--blue); font-size: 20px; font-weight: 750; }
.final-actions { justify-content: center; }
.earned { color: var(--orange); font-weight: 750; }
.perfect-feedback { display: inline-block; margin: 2px 0 0; padding: 7px 11px; border-radius: 999px; background: #fff1c7; color: #a84f08; font-weight: 850; animation: perfectPop .55s ease-out both; }
@keyframes perfectPop { 0% { opacity: 0; transform: scale(.82); } 60% { opacity: 1; transform: scale(1.06); } 100% { opacity: 1; transform: scale(1); } }
.personal-best { margin: 10px 0 0; color: var(--muted); font-weight: 700; }
.personal-best.new-record { color: var(--orange); animation: perfectPop .55s ease-out both; }
.toast { position: fixed; z-index: 5; bottom: 22px; left: 50%; transform: translateX(-50%); padding: 12px 20px; border-radius: 13px; background: var(--blue); color: white; box-shadow: var(--shadow); }
dialog { max-width: min(580px, calc(100vw - 24px)); border: 1px solid var(--line); border-radius: 18px; background: var(--panel); color: var(--text); padding: 22px; }
dialog::backdrop { background: rgba(18, 48, 95, .35); }
dialog textarea { display: block; width: 100%; min-height: 220px; margin: 16px 0; padding: 12px; resize: vertical; border: 1px solid #b8c9d7; border-radius: 10px; font: inherit; color: var(--text); background: white; }
#challengeIntro .primary, #challengeFriend { border-color: var(--orange); background: var(--orange); color: #241600; }
#challengeIntro .primary:hover, #challengeFriend:hover { background: var(--orange-bright); }
@media (prefers-reduced-motion: reduce) { .country-shape.country-correct, .microstate.country-correct, .country-shape.country-wrong, .microstate.country-wrong, .correct-check, .result.result-reveal, .distance-feedback.wrong-reveal, .perfect-feedback, .personal-best.new-record { animation: none !important; } }
@media (max-width: 600px) {
  .app { padding: 12px 10px 28px; }
  .top { align-items: center; margin-bottom: 14px; }
  .brand-mark { width: 34px; height: 34px; }
  .wordmark { font-size: 23px; }
  .sub { margin-left: 43px; font-size: 12px; }
  select { min-height: 40px; max-width: 104px; padding: 7px 8px; }
  .start { margin: 30px auto; }
  #home { min-height: calc(100svh - 160px); margin: 18px auto 0; padding: 22px; display: flex; flex-direction: column; justify-content: center; }
  .card { padding: 18px; border-radius: 17px; }
  .mode-choices { grid-template-columns: 1fr; margin-top: 20px; }
  .mode-choice { min-height: 146px; padding: 21px; }
  .levels { flex-direction: column; }
  .levels button { width: 100%; }
  .hud { gap: 12px; flex-wrap: wrap; font-size: 12px; }
  .prompt { font-size: 21px; }
  .map-wrap svg { min-height: 350px; }
  .actions button { width: 100%; }
  .result { padding: 17px; }
  .flagline { align-items: flex-start; font-size: 47px; }
  .flagline b { overflow-wrap: anywhere; font-size: 31px; }
  .fact { font-size: 16px; }
}
@media (max-width: 350px) {
  .sub { max-width: 190px; }
  .wordmark { font-size: 21px; }
  .brand-mark { width: 31px; height: 31px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
/* Daily mode */
.daily-card { margin-top: 24px; padding: 25px; border: 1px solid rgba(217,119,6,.24); border-radius: 19px; background: linear-gradient(145deg,#fff8e8,#fffdf8); box-shadow: 0 10px 28px rgba(217,119,6,.08); text-align: left; }
.daily-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.daily-top strong { color:var(--blue); font-size:25px; }
.daily-top span { color:var(--orange); font-weight:850; }
.daily-card p { margin:8px 0 16px; line-height:1.45; }
.daily-button { width:100%; background:var(--orange); border-color:var(--orange); color:#241600; font-size:17px; }
.daily-button:hover { background:var(--orange-bright); }
.daily-stats { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:17px; color:var(--muted); font-size:13px; }
.daily-stats b { font-weight:650; }
.daily-stats strong { color:var(--blue); }
.daily-countdown { margin-top:11px; color:var(--muted); font-size:13px; }
.daily-countdown strong { color:var(--orange); font-variant-numeric:tabular-nums; letter-spacing:.4px; }
.daily-completed { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:4px 0 13px; font-weight:800; color:var(--blue); }
.daily-tiles { letter-spacing:5px; font-size:24px; line-height:1.4; }
.secondary-modes { margin-top:14px; }
.secondary-modes .mode-choice { min-height:135px; padding:20px; }
.daily-final-stats { margin:13px 0; color:var(--muted); font-weight:700; line-height:1.7; }
@media (max-width:600px) {
  .daily-card { margin-top:18px; padding:20px; }
  .daily-top strong { font-size:22px; }
  .daily-stats { gap:7px 12px; }
  .secondary-modes .mode-choice { min-height:120px; }
  .daily-completed { align-items:flex-start; flex-direction:column; }
}

/* Warm travel-journal identity */
:root {
  --cream: #f8efe2;
  --cream-deep: #f1dfc8;
  --blue: #173b57;
  --blue-hover: #102f48;
  --green: #3f7658;
  --green-bright: #5f936d;
  --orange: #c76b3b;
  --orange-bright: #df8754;
  --sky: #e7f0ec;
  --text: #243a45;
  --muted: #6e746f;
  --line: #dfd0bc;
  --panel: #fffaf2;
  --ocean: #dcecf0;
  --land: #9fc8a5;
  --land2: #77ad83;
  --shadow: 0 18px 48px rgba(77, 55, 35, .09);
}
body {
  background:
    radial-gradient(circle at 8% 2%, rgba(199,107,59,.11), transparent 25rem),
    radial-gradient(circle at 94% 14%, rgba(63,118,88,.09), transparent 24rem),
    linear-gradient(180deg, #fbf4e9 0%, var(--cream) 58%, #f5eadb 100%);
}
.top { padding: 4px 4px 0; }
.brand { transition: transform .18s ease; }
.brand:hover { transform: rotate(-1deg) translateY(-1px); }
.card { border-color: rgba(119,83,49,.13); background: rgba(255,250,242,.93); box-shadow: var(--shadow); }
#home { position: relative; overflow: hidden; border-radius: 30px; background: rgba(255,250,242,.82); }
#home::after { content:""; position:absolute; width:220px; height:220px; right:-115px; top:-115px; border:1px solid rgba(199,107,59,.12); border-radius:50%; box-shadow:0 0 0 24px rgba(199,107,59,.035),0 0 0 48px rgba(199,107,59,.025); pointer-events:none; }
#home h1 { position:relative; z-index:1; margin-bottom:4px; }
.home-welcome { position:relative; z-index:1; margin:0 0 4px !important; color:var(--orange) !important; font-size:13px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.daily-card { position:relative; isolation:isolate; overflow:hidden; margin-top:22px; padding:27px; border:0; border-radius:25px 25px 25px 9px; background:linear-gradient(135deg,#173b57 0%,#214d64 64%,#2f625f 100%); box-shadow:0 18px 38px rgba(23,59,87,.18); color:#fff9ef; }
.daily-card::before { content:""; position:absolute; z-index:-1; width:180px; height:180px; right:-64px; top:-78px; border:1px solid rgba(255,240,211,.18); border-radius:50%; box-shadow:0 0 0 22px rgba(255,240,211,.035),0 0 0 44px rgba(255,240,211,.025); }
.daily-card::after { content:""; position:absolute; z-index:-1; width:80px; height:80px; right:34px; bottom:-44px; border-radius:50%; background:rgba(224,135,84,.16); }
.daily-top strong { color:#fffaf1; font-size:26px; letter-spacing:-.5px; }
.daily-top span { padding:5px 9px; border:1px solid rgba(255,255,255,.2); border-radius:999px; background:rgba(255,255,255,.08); color:#ffd8b8; font-size:13px; }
.daily-card p { color:rgba(255,250,241,.78); }
.daily-button { min-height:52px; border:0; border-radius:15px; background:#f2b36f; color:#3f2a1f; box-shadow:0 8px 18px rgba(0,0,0,.12); }
.daily-button:hover { background:#ffc27d; }
.daily-stats { padding-top:2px; color:rgba(255,250,241,.72); }
.daily-stats strong { color:#fff5e6; }
.daily-countdown { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:15px; padding-top:13px; border-top:1px solid rgba(255,255,255,.13); color:rgba(255,250,241,.68); }
.daily-countdown strong { color:#ffd8b8; font-size:15px; }
.daily-completed { margin:2px 0 14px; color:#fff9ef; }
.daily-errors { margin-top:4px; color:var(--muted); font-size:14px; font-weight:750; }
.daily-card .daily-errors { color:rgba(255,250,241,.7); }
.daily-marks { display:flex; align-items:center; gap:7px; min-height:24px; }
.daily-mark { display:inline-block; width:19px; height:19px; flex:0 0 auto; border:2px solid rgba(255,255,255,.55); border-radius:50%; box-shadow:inset 0 1px 1px rgba(255,255,255,.28),0 2px 5px rgba(0,0,0,.08); }
.daily-mark-green { background:#57a56d; }
.daily-mark-yellow { background:#e8b84f; }
.daily-mark-orange { background:#df7d45; }
.daily-mark-red { background:#c9554d; }
.daily-marks-final { justify-content:center; gap:10px; margin:4px 0 10px; }
.daily-marks-final .daily-mark { width:25px; height:25px; border-color:rgba(255,250,242,.9); box-shadow:0 3px 9px rgba(77,55,35,.12); }
.final-errors { margin:-3px 0 13px; color:var(--muted); }
.secondary-modes { gap:12px; }
.secondary-modes .mode-choice { min-height:128px; border-color:rgba(119,83,49,.13); border-radius:19px 19px 19px 7px; background:rgba(255,252,246,.72); box-shadow:none; }
.secondary-modes .mode-choice::before { width:4px; opacity:.8; }
.secondary-modes .mode-choice strong { font-size:20px; }
.secondary-modes .mode-choice span { font-size:14px; }
.mode-choice:hover { border-color:rgba(119,83,49,.22); box-shadow:0 10px 24px rgba(77,55,35,.08); }
.map-wrap { border-color:#bfd0cb; border-radius:24px 24px 24px 10px; box-shadow:0 14px 34px rgba(23,59,87,.1); }
.result { border-radius:24px 24px 24px 9px; }
.fact { border:1px solid rgba(63,118,88,.1); background:#edf3ec; }
.final { border-radius:28px 28px 28px 10px; }

@media (max-width:600px) {
  .app { padding:10px 10px 24px; }
  #home { min-height:auto; margin:10px auto 0; padding:19px 16px 18px; border-radius:23px; }
  #home h1 { font-size:1.65rem; }
  .home-welcome { font-size:11px; }
  .daily-card { margin-top:15px; padding:19px 17px; border-radius:21px 21px 21px 8px; }
  .daily-top strong { font-size:21px; }
  .daily-card p { margin:7px 0 13px; font-size:13px; }
  .daily-button { min-height:50px; font-size:16px; }
  .daily-stats { display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; margin-top:14px; font-size:12px; }
  .daily-stats span:last-child { grid-column:1 / -1; }
  .daily-countdown { margin-top:12px; padding-top:11px; font-size:12px; }
  .daily-countdown strong { font-size:14px; }
  .daily-completed { flex-direction:row; align-items:center; gap:10px; font-size:13px; }
  .daily-marks { gap:5px; }
  .daily-mark { width:16px; height:16px; border-width:1.5px; }
  .secondary-modes { grid-template-columns:1fr 1fr; gap:9px; margin-top:10px; }
  .secondary-modes .mode-choice { min-height:112px; padding:15px 13px; border-radius:16px 16px 16px 6px; }
  .secondary-modes .mode-choice strong { margin-bottom:6px; font-size:16px; }
  .secondary-modes .mode-choice span { font-size:12px; line-height:1.35; }
  .map-wrap { border-radius:18px 18px 18px 7px; }
  .daily-marks-final .daily-mark { width:23px; height:23px; }
}
@media (max-width:370px) {
  .secondary-modes { grid-template-columns:1fr; }
  .secondary-modes .mode-choice { min-height:94px; }
  .daily-countdown { align-items:flex-start; flex-direction:column; gap:4px; }
}

/* GeoFact identity & experience polish */
:root {
  --ink: #18394b;
  --paper: #fffaf1;
  --terracotta: #c96f46;
  --terracotta-dark: #a95636;
  --forest: #3f7658;
  --sun: #efb76f;
}
body::before, body::after { content:""; position:fixed; z-index:-1; pointer-events:none; border-radius:50%; }
body::before { width:360px; height:360px; left:-210px; bottom:8vh; border:1px solid rgba(24,57,75,.07); box-shadow:0 0 0 38px rgba(24,57,75,.018),0 0 0 76px rgba(24,57,75,.012); }
body::after { width:250px; height:250px; right:-155px; top:36vh; border:1px dashed rgba(201,111,70,.11); }
.app { position:relative; }
.top { max-width:1040px; margin-left:auto; margin-right:auto; }
.brand-mark { filter:drop-shadow(0 3px 7px rgba(24,57,75,.1)); }
.sub { letter-spacing:.005em; }
#home { max-width:760px; padding:38px; }
.home-intro { position:relative; z-index:1; text-align:left; }
.home-kicker, .final-kicker { display:inline-block; margin-bottom:8px; color:var(--terracotta); font-size:11px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
#home h1 { max-width:570px; margin:0; color:var(--ink); font-size:clamp(2rem,5vw,2.8rem); line-height:1.05; letter-spacing:-1.5px; }
.home-welcome { margin-top:9px !important; color:var(--muted) !important; font-size:15px; font-weight:600; letter-spacing:0; text-transform:none; }
.daily-card { margin-top:25px; padding:29px; background:linear-gradient(138deg,#16394d 0%,#1f4c5c 55%,#3c715b 112%); }
.daily-card::before { width:205px; height:205px; right:-76px; top:-92px; }
.daily-card::after { width:92px; height:92px; background:rgba(239,183,111,.17); }
.daily-top strong { font-size:27px; }
.daily-button { position:relative; overflow:hidden; font-weight:850; letter-spacing:.01em; }
.daily-button::after { content:"→"; position:absolute; right:18px; font-size:20px; transition:transform .18s ease; }
.daily-button:hover::after { transform:translateX(3px); }
.daily-stats span { display:inline-flex; align-items:center; gap:3px; }
.secondary-modes .mode-choice { transition:transform .18s ease, background .18s ease, box-shadow .18s ease; }
.secondary-modes .mode-choice:hover { background:#fffaf2; transform:translateY(-3px) rotate(-.15deg); }
.mode-practice::after, .mode-game::after { position:absolute; right:16px; bottom:12px; color:rgba(24,57,75,.18); font-size:28px; font-weight:900; }
.mode-practice::after { content:"↗"; }
.mode-game::after { content:"→"; }
.hud { min-height:36px; }
.round-progress { display:flex; align-items:center; gap:6px; }
.round-progress-dot { width:8px; height:8px; border:1.5px solid rgba(24,57,75,.28); border-radius:50%; background:transparent; transition:transform .2s ease, background .2s ease; }
.round-progress-dot.done { border-color:var(--forest); background:var(--forest); }
.round-progress-dot.current { border-color:var(--terracotta); background:var(--terracotta); transform:scale(1.35); }
.prompt { margin-top:5px; }
.prompt strong { color:var(--ink); letter-spacing:-.4px; }
.map-wrap::after { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.45); pointer-events:none; }
.result { position:relative; overflow:hidden; padding:25px; }
.result::after { content:"FACT"; position:absolute; right:18px; top:14px; color:rgba(63,118,88,.09); font-size:38px; font-weight:950; letter-spacing:.08em; pointer-events:none; }
.fact { position:relative; padding:17px 18px 17px 22px; border-radius:5px 17px 17px 17px; }
.fact::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; border-radius:5px 0 0 5px; background:var(--terracotta); }
.final { position:relative; overflow:hidden; max-width:650px; padding:38px 34px; background:linear-gradient(160deg,rgba(255,250,242,.98),rgba(249,239,224,.98)); }
.final::before { content:""; width:94px; height:94px; margin:0 auto 15px; border:1px solid rgba(201,111,70,.18); border-radius:50%; background:radial-gradient(circle,#f3bb78 0 7px,transparent 8px),radial-gradient(circle,rgba(201,111,70,.1) 0 44%,transparent 45%); box-shadow:0 0 0 11px rgba(201,111,70,.035); }
.final::after { content:""; position:absolute; width:190px; height:190px; right:-110px; top:-105px; border:1px solid rgba(63,118,88,.12); border-radius:50%; box-shadow:0 0 0 25px rgba(63,118,88,.025); pointer-events:none; }
.final-kicker { margin-bottom:7px; }
.final h1 { color:var(--ink); font-size:clamp(1.8rem,5vw,2.35rem); letter-spacing:-.8px; }
.final-mood { margin:7px 0 2px; color:var(--muted); font-size:15px; }
.large-score { color:var(--terracotta); }
.daily-marks-final { margin:8px 0 12px; }
.daily-marks-final .daily-mark { width:29px; height:29px; }
.final-actions .primary { min-width:210px; min-height:51px; }
.primary { box-shadow:0 7px 16px rgba(63,118,88,.14); }
.secondary { border-color:rgba(24,57,75,.14); background:rgba(220,236,240,.72); }
@media (max-width:600px) {
  body::before { display:none; }
  .top { padding:3px 2px 0; }
  .sub { display:none; }
  #home { padding:22px 17px 18px; }
  #home h1 { max-width:330px; font-size:1.8rem; line-height:1.08; }
  .home-kicker { margin-bottom:6px; font-size:9px; }
  .home-welcome { margin-top:7px !important; font-size:13px; }
  .daily-card { margin-top:17px; padding:20px 17px; }
  .daily-top strong { font-size:22px; }
  .hud { display:grid; grid-template-columns:1fr auto 1fr; gap:8px; }
  #streak { text-align:left; }
  #totalScore { text-align:right; }
  #roundLabel { grid-column:1/-1; grid-row:2; text-align:center; font-size:11px; margin-top:-5px; }
  .round-progress { grid-column:2; grid-row:1; }
  .prompt { margin:5px 0 11px; font-size:20px; }
  .result { padding:18px 16px; }
  .result::after { right:11px; top:9px; font-size:29px; }
  .fact { padding:14px 14px 14px 18px; }
  .final { margin:18px auto; padding:28px 17px 22px; border-radius:23px 23px 23px 8px; }
  .final::before { width:72px; height:72px; margin-bottom:12px; }
  .final-mood { font-size:13px; }
  .large-score { margin:8px 0; }
  .daily-marks-final .daily-mark { width:25px; height:25px; }
  .final-actions { gap:8px; }
  .final-actions .primary, .final-actions .secondary { width:100%; min-width:0; }
}
@media (max-width:350px) {
  #home h1 { font-size:1.58rem; }
  .daily-top strong { font-size:20px; }
  .daily-card { padding:17px 14px; }
  .daily-stats { grid-template-columns:1fr; }
  .daily-stats span:last-child { grid-column:auto; }
}

/* Identity pass: less copy, more GeoFact */
body {
  background:
    radial-gradient(circle at 12% 7%, rgba(239,183,111,.18), transparent 24rem),
    radial-gradient(circle at 92% 26%, rgba(63,118,88,.10), transparent 28rem),
    linear-gradient(180deg,#fff8ed 0%,#fff3df 100%);
}
body::before { border-color:rgba(24,57,75,.055); box-shadow:0 0 0 42px rgba(24,57,75,.014),0 0 0 84px rgba(24,57,75,.009); }
#home { overflow:hidden; border-color:rgba(70,67,49,.09); background:rgba(255,251,242,.86); box-shadow:0 24px 65px rgba(74,54,35,.09); backdrop-filter:blur(8px); }
.home-hero { display:grid; grid-template-columns:minmax(0,1fr) 190px; align-items:center; gap:20px; min-height:180px; }
.home-intro { align-self:center; }
#home h1 { max-width:480px; font-size:clamp(2.35rem,6vw,3.45rem); line-height:.98; letter-spacing:-2.2px; text-wrap:balance; }
.home-kicker { margin-bottom:13px; color:var(--forest); letter-spacing:.18em; }
.hero-world { position:relative; width:180px; height:180px; justify-self:end; border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff8df 0 18%,#e9d5a8 19% 20%,#91bfa0 21% 23%,#dcebcf 24% 38%,#79a99e 39% 40%,#dcebcf 41% 58%,#e7b176 59% 61%,#f6e6c5 62% 100%); box-shadow:inset -18px -18px 34px rgba(24,57,75,.12),0 18px 35px rgba(64,75,58,.12); transform:rotate(-5deg); }
.hero-world::before,.hero-world::after { content:""; position:absolute; border:1px solid rgba(24,57,75,.16); border-radius:50%; inset:20px 48px; }
.hero-world::after { inset:48px 20px; }
.hero-orbit { position:absolute; pointer-events:none; border:1px dashed rgba(201,111,70,.34); border-radius:50%; }
.orbit-one { inset:-14px 12px; transform:rotate(34deg); }
.orbit-two { inset:12px -14px; transform:rotate(-28deg); }
.hero-globe { position:absolute; inset:0; display:grid; place-items:center; color:rgba(24,57,75,.22); font-size:74px; font-weight:300; }
.hero-pin { position:absolute; right:34px; top:31px; width:18px; height:18px; border:5px solid #fff5e5; border-radius:50% 50% 50% 0; background:var(--terracotta); color:transparent; box-shadow:0 4px 10px rgba(80,47,30,.18); transform:rotate(-45deg); }
.hero-stamp { position:absolute; display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(24,57,75,.12); border-radius:9px; background:#fffaf0; color:var(--terracotta); box-shadow:0 6px 15px rgba(60,48,32,.09); font-size:15px; }
.stamp-a { left:-10px; top:23px; transform:rotate(-11deg); }.stamp-b { right:-8px; bottom:29px; color:var(--forest); transform:rotate(9deg); }.stamp-c { left:8px; bottom:1px; color:var(--ink); transform:rotate(6deg); }
.daily-card { margin-top:18px; border-radius:26px 26px 26px 10px; box-shadow:0 20px 42px rgba(22,57,77,.16); }
.daily-card p { margin:7px 0 15px; font-size:14px; }
.secondary-modes { margin-top:14px; gap:10px; }
.secondary-modes .mode-choice { min-height:88px; padding:18px 19px; border-radius:17px; }
.secondary-modes .mode-choice strong { margin-bottom:4px; font-size:18px; }
.secondary-modes .mode-choice span { font-size:12px; line-height:1.25; }
.mode-practice::after,.mode-game::after { bottom:15px; font-size:22px; }

/* Facts are the reward, not another generic card */
.result { padding:26px 27px 24px; border:0; border-radius:26px 26px 26px 9px; background:linear-gradient(155deg,#fffaf0,#fff5e6); box-shadow:0 18px 42px rgba(69,51,34,.10); }
.result::after { content:"?"; right:20px; top:10px; color:rgba(201,111,70,.07); font-size:76px; font-family:Georgia,serif; transform:rotate(8deg); }
.result h2 { color:var(--forest); font-size:13px; letter-spacing:.12em; text-transform:uppercase; }
.flagline { margin-top:4px; }
.fact-reward { position:relative; margin-top:19px; padding:24px 23px 21px; border:1px solid rgba(201,111,70,.15); border-radius:4px 21px 21px 21px; background:#fffdf7; box-shadow:0 10px 24px rgba(89,62,36,.06); }
.fact-reward::before { content:"✦"; position:absolute; right:18px; top:13px; color:#e5ad69; font-size:19px; }
.fact-label { display:block; margin-bottom:8px; color:var(--terracotta-dark); font-size:11px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.fact { margin:0; padding:0; border-radius:0; background:transparent; color:var(--ink); font-size:clamp(1.08rem,2.4vw,1.28rem); line-height:1.55; font-weight:650; }
.fact::before { display:none; }
.result.result-reveal .fact-reward { animation:factRewardIn .55s .18s ease-out both; }
@keyframes factRewardIn { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } }

/* Screen transitions */
#home.home-leaving { animation:homeLeave .34s cubic-bezier(.4,0,.2,1) both; pointer-events:none; }
#playing.screen-arrive,#difficulty.screen-arrive { animation:screenArrive .42s cubic-bezier(.2,.8,.2,1) both; }
@keyframes homeLeave { to { opacity:0; transform:translateY(-8px) scale(.985); filter:blur(2px); } }
@keyframes screenArrive { from { opacity:0; transform:translateY(14px) scale(.99); } to { opacity:1; transform:none; } }
.daily-button:active { transform:scale(.985); }
.daily-button::before { content:""; position:absolute; inset:0; background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.24) 48%,transparent 70%); transform:translateX(-120%); }
.daily-button:hover::before { animation:buttonSweep .65s ease-out; }
@keyframes buttonSweep { to { transform:translateX(120%); } }

.final { border:0; box-shadow:0 22px 55px rgba(74,54,35,.11); }
.final::before { content:"✦"; color:var(--terracotta); font-size:28px; background:radial-gradient(circle,rgba(239,183,111,.28),rgba(239,183,111,.06) 52%,transparent 53%); }

@media (max-width:600px) {
  #home { padding:22px 16px 17px; }
  .home-hero { grid-template-columns:minmax(0,1fr) 92px; gap:8px; min-height:118px; }
  #home h1 { max-width:260px; font-size:clamp(1.85rem,9vw,2.35rem); letter-spacing:-1.45px; }
  .home-kicker { margin-bottom:8px; font-size:8px; letter-spacing:.15em; }
  .hero-world { width:92px; height:92px; }
  .hero-world::before { inset:11px 25px; }.hero-world::after { inset:25px 11px; }
  .hero-globe { font-size:38px; }.hero-pin { right:17px; top:15px; width:11px; height:11px; border-width:3px; }
  .hero-stamp { width:22px; height:22px; border-radius:6px; font-size:10px; }.stamp-a{left:-5px;top:10px}.stamp-b{right:-4px;bottom:12px}.stamp-c{left:4px;bottom:-2px}
  .daily-card { margin-top:13px; }
  .secondary-modes { grid-template-columns:1fr 1fr; }
  .secondary-modes .mode-choice { min-height:78px; padding:14px 13px; }
  .secondary-modes .mode-choice strong { padding-right:12px; font-size:15px; }
  .secondary-modes .mode-choice span { font-size:11px; }
  .mode-practice::after,.mode-game::after { right:10px; bottom:10px; font-size:17px; }
  .result { padding:20px 16px 18px; }
  .fact-reward { margin-top:15px; padding:19px 17px 17px; }
  .fact { font-size:1.05rem; line-height:1.5; }
}
@media (max-width:360px) {
  .home-hero { grid-template-columns:1fr 76px; }
  .hero-world { width:76px; height:76px; }
  .secondary-modes { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  #home.home-leaving,#playing.screen-arrive,#difficulty.screen-arrive,.result.result-reveal .fact-reward,.daily-button:hover::before { animation:none !important; }
}
/* Exploration collection */
.final::before { display:none !important; }
.collection-link{margin:18px auto 0;border:0;background:transparent;color:var(--blue);font-weight:850;font:inherit;cursor:pointer;padding:10px 14px;text-decoration:underline;text-decoration-color:rgba(15,61,145,.22);text-underline-offset:4px}
.collection-screen{max-width:860px;margin:28px auto;padding:28px}
.collection-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.collection-head h1{margin:0;color:var(--ink)}
.collection-count{color:var(--muted);font-weight:800;margin:5px 0 20px}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}
.flag-card{position:relative;min-height:215px;padding:16px 13px;border-radius:20px;background:#fffaf2;border:1px solid rgba(73,57,41,.11);box-shadow:0 10px 25px rgba(74,54,35,.08);display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden}
.flag-card .rarity{position:absolute;right:10px;top:9px;font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;opacity:.72}.flag-card .card-flag{font-size:54px;line-height:1;margin:25px 0 12px}.flag-card h3{font-size:15px;margin:0 0 8px;color:var(--ink)}.flag-card p{font-size:11px;line-height:1.45;color:var(--muted);margin:0}.flag-card.classic{background:linear-gradient(145deg,#fffaf2,#f7efe2)}.flag-card.silver{background:linear-gradient(145deg,#fff,#e7ebee 55%,#f9f9f7);box-shadow:0 10px 28px rgba(84,98,108,.14)}.flag-card.gold{background:linear-gradient(145deg,#fff8df,#efd08b 58%,#fff3c5);border-color:rgba(176,128,33,.28);box-shadow:0 12px 30px rgba(170,119,26,.18)}.flag-card.shiny{background:linear-gradient(135deg,#fff5e9,#e9f6ef 28%,#e9efff 55%,#fff0f5 78%,#fff8df);border-color:rgba(117,105,169,.25);box-shadow:0 13px 34px rgba(87,87,145,.18)}
.daily-chest{margin:20px auto 4px;padding:18px;border-radius:22px;background:linear-gradient(145deg,rgba(245,158,11,.12),rgba(63,118,88,.08));border:1px solid rgba(201,111,70,.18);display:flex;flex-direction:column;align-items:center;gap:5px}.daily-chest.hidden{display:none}.chest-icon{font-size:28px;color:var(--terracotta);animation:chestGlow 2.2s ease-in-out infinite}.daily-chest span{font-size:13px;color:var(--muted)}.chest-button{margin-top:8px}.card-reveal{margin:20px auto 6px;max-width:310px}.card-reveal.hidden{display:none}.card-reveal .flag-card{min-height:330px;padding:22px 20px;animation:cardPop .55s cubic-bezier(.2,.85,.25,1.2)}.card-reveal .flag-card .card-flag{font-size:76px;margin-top:36px}.card-reveal .flag-card h3{font-size:21px}.card-reveal .flag-card p{font-size:14px;line-height:1.55}.new-card-note{margin-top:10px;font-size:12px;font-weight:850;color:var(--green)}
@keyframes cardPop{from{opacity:0;transform:translateY(18px) scale(.9) rotateY(18deg)}to{opacity:1;transform:none}}@keyframes chestGlow{50%{transform:translateY(-3px) scale(1.06)}}
@media(max-width:600px){.collection-screen{margin:12px auto;padding:20px 14px}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.flag-card{min-height:190px;padding:13px 10px}.flag-card .card-flag{font-size:45px}.daily-chest{padding:15px 12px}.card-reveal .flag-card{min-height:305px}.card-reveal .flag-card .card-flag{font-size:68px}}
@media(prefers-reduced-motion:reduce){.chest-icon,.card-reveal .flag-card{animation:none!important}}


/* 2026-10 visual cleanup */
.fact-reward .fact { border:0 !important; outline:0; box-shadow:none; }
.hero-brand{width:150px;min-width:150px;display:flex;align-items:center;justify-content:center;transform:rotate(2deg);animation:heroBrandFloat 5s ease-in-out infinite}
.hero-brand img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(63,49,34,.10))}
@keyframes heroBrandFloat{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-5px) rotate(-1deg)}}
.flag-card.classic{background:linear-gradient(145deg,#fff0d7,#f4d6ad 70%,#f8e5c8);border-color:rgba(181,111,55,.22)}
.flag-card.silver{background:linear-gradient(145deg,#fff1dc,#e4d9cf 52%,#f5e4ce);border-color:rgba(151,116,91,.24)}
.flag-card.gold{background:linear-gradient(145deg,#fff0c6,#e8bd61 58%,#f8dda0);border-color:rgba(176,112,26,.34)}
.flag-card.shiny{background:linear-gradient(135deg,#ffe8c8,#f1d3ad 22%,#dce8d8 47%,#ead8e6 70%,#ffdca3);border-color:rgba(177,107,61,.30)}
.flag-card.locked .card-flag{color:var(--terracotta);font-weight:950;font-family:inherit;font-size:48px}
.flag-card.locked p{margin-top:auto;margin-bottom:auto}
@media(max-width:600px){.hero-brand{width:105px;min-width:105px}.home-hero{grid-template-columns:minmax(0,1fr) 105px}}
@media(max-width:360px){.hero-brand{width:82px;min-width:82px}.home-hero{grid-template-columns:minmax(0,1fr) 82px}}
@media(prefers-reduced-motion:reduce){.hero-brand{animation:none}}

/* GeoFact collection & pack-opening polish */
.home-alcove{
  position:relative; min-height:210px; padding:34px 34px 27px; overflow:hidden;
  grid-template-columns:minmax(0,1fr) 230px; align-items:center;
  border-radius:120px 120px 34px 34px;
  background:radial-gradient(circle at 82% 24%,rgba(245,158,11,.14),transparent 28%),linear-gradient(150deg,#fff8e9,#f7e7cc);
  border:1px solid rgba(157,98,48,.12); box-shadow:inset 0 1px rgba(255,255,255,.7),0 16px 36px rgba(74,54,35,.07);
}
.home-alcove::after{content:"";position:absolute;inset:auto -5% -55% 28%;height:180px;border:1px solid rgba(15,61,145,.08);border-radius:50%;transform:rotate(-8deg);pointer-events:none}
.home-alcove .home-intro{position:relative;z-index:1}.home-alcove h1{max-width:440px!important;margin:0!important;font-size:clamp(2.35rem,5vw,4rem)!important;line-height:.96!important;letter-spacing:-.055em!important}
.home-alcove h1::after{content:"";display:block;width:72px;height:5px;margin-top:18px;border-radius:99px;background:linear-gradient(90deg,var(--terracotta),var(--orange))}
.hero-brand{width:230px!important;min-width:230px!important;z-index:1;transform:rotate(2deg);animation:heroBrandFloat 5s ease-in-out infinite}
.hero-brand img{filter:drop-shadow(0 16px 22px rgba(63,49,34,.13))!important}

.collection-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:5px 0 20px}.collection-tools .collection-count{margin:0}.sort-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:800}.sort-control select{border:1px solid rgba(73,57,41,.14);border-radius:12px;background:#fffaf0;color:var(--ink);font:inherit;padding:9px 30px 9px 11px}
.collection-card{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.collection-card:hover{transform:translateY(-3px)}.collection-card:focus-visible{outline:3px solid rgba(15,61,145,.28);outline-offset:3px}
.collection-detail{margin:0 0 22px;padding:18px;border-radius:24px;background:linear-gradient(145deg,#fff7e7,#f8ead4);border:1px solid rgba(157,98,48,.12)}.collection-detail.hidden{display:none}.collection-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.collection-detail-head>div{display:flex;align-items:center;gap:10px}.collection-detail-head>div>span{font-size:34px}.collection-detail-head small{display:block;color:var(--terracotta-dark);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.collection-detail-head h2{margin:2px 0 0}.rarity-variants{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.rarity-variants .flag-card{min-height:180px;padding:12px 9px}.rarity-variants .card-flag{font-size:42px;margin:24px 0 9px}.rarity-variants .flag-card p{font-size:9px}.locked-variant{filter:saturate(.35);opacity:.58}.locked-variant .card-flag{color:var(--terracotta);font-weight:950}

/* Card finishes: rarity should be obvious before the label is read. */
.flag-card{isolation:isolate;transform-style:preserve-3d}.flag-card::before,.flag-card::after{content:"";position:absolute;pointer-events:none;z-index:-1}
.flag-card.classic{background:linear-gradient(145deg,#ffe9c5,#efc994 54%,#f8dfb8);border-color:rgba(157,89,42,.27);box-shadow:0 12px 26px rgba(124,76,38,.13)}
.flag-card.classic::after{inset:8px;border:1px solid rgba(130,72,33,.12);border-radius:14px}
.flag-card.silver{background:linear-gradient(125deg,#f9fbfc 0%,#b9c2c9 22%,#f7fafb 46%,#aab5bd 70%,#eef2f4 100%);border-color:rgba(84,98,108,.42);box-shadow:0 14px 32px rgba(75,89,99,.22)}
.flag-card.silver::before{inset:-35%;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.72) 48%,transparent 58%);transform:translateX(-35%) rotate(8deg);opacity:.55}
.flag-card.gold{background:linear-gradient(125deg,#fff3b7 0%,#c9972f 21%,#ffe9a0 43%,#b67a17 67%,#f7d66f 100%);border:1px solid rgba(138,88,9,.52);box-shadow:0 16px 38px rgba(151,100,18,.30),inset 0 0 0 2px rgba(255,245,190,.45)}
.flag-card.gold::after{inset:7px;border:1px solid rgba(255,249,205,.72);border-radius:14px;box-shadow:inset 0 0 16px rgba(255,255,255,.28)}
.flag-card.shiny{background:linear-gradient(125deg,#ffe8ad 0%,#bff1e1 20%,#c8d6ff 39%,#efc5ee 58%,#fff0a8 77%,#c4f3ea 100%);border:1px solid rgba(116,92,156,.46);box-shadow:0 18px 42px rgba(91,80,142,.28),0 0 28px rgba(245,191,90,.16)}
.flag-card.shiny::before{inset:-60%;background:conic-gradient(from 30deg,transparent,rgba(255,255,255,.65),transparent 22%,rgba(255,226,129,.42),transparent 45%,rgba(174,237,255,.45),transparent 68%,rgba(255,255,255,.58),transparent);animation:shinyTurn 5s linear infinite}
.flag-card.shiny::after{inset:7px;border:1px solid rgba(255,255,255,.62);border-radius:14px}
.flag-card .rarity{z-index:3;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.42);backdrop-filter:blur(4px)}
.flag-card .card-flag,.flag-card h3,.flag-card p,.new-card-note{position:relative;z-index:2}.flag-card.gold h3,.flag-card.gold p{color:#3f2b0c}.flag-card.silver h3,.flag-card.silver p{color:#29343a}.flag-card.shiny h3,.flag-card.shiny p{color:#333044}
@keyframes shinyTurn{to{transform:rotate(360deg)}}

/* Interactive exploration chest */
.daily-chest{padding:22px 16px 18px;background:radial-gradient(circle at 50% 54%,rgba(245,158,11,.16),transparent 42%),linear-gradient(145deg,#fff8e9,#f5e5cc);overflow:hidden;transition:opacity .24s ease,transform .24s ease}.daily-chest>strong{font-size:17px;color:var(--ink)}.daily-chest>span{margin-top:2px}.daily-chest.chest-fade{opacity:0;transform:scale(.96)}
.chest-stage{position:relative;width:190px;height:155px;margin:7px auto 0;border:0;background:transparent;cursor:pointer;font:inherit;color:var(--terracotta-dark);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}.chest-stage:focus-visible{outline:3px solid rgba(15,61,145,.28);outline-offset:3px;border-radius:22px}.chest-object{position:absolute;left:50%;top:8px;width:118px;height:103px;transform:translateX(-50%);filter:drop-shadow(0 14px 12px rgba(100,61,26,.20));animation:chestIdle 2.1s ease-in-out infinite}.chest-glow{position:absolute;inset:-22px;border-radius:50%;background:radial-gradient(circle,rgba(245,177,67,.35),rgba(245,177,67,.08) 45%,transparent 70%);animation:chestAura 1.8s ease-in-out infinite}.chest-body{position:absolute;left:7px;right:7px;bottom:5px;height:59px;border-radius:9px 9px 17px 17px;background:linear-gradient(135deg,#a9552c,#d9823d 48%,#8c4425);border:3px solid #71391f;box-shadow:inset 0 0 0 4px rgba(255,189,82,.18)}.chest-body::before{content:"";position:absolute;left:9px;right:9px;top:10px;height:6px;border-radius:9px;background:#efb34e;box-shadow:0 25px 0 #efb34e}.chest-lid{position:absolute;left:3px;right:3px;top:18px;height:45px;border-radius:38px 38px 8px 8px;background:linear-gradient(145deg,#bd6732,#e49443 55%,#974821);border:3px solid #71391f;transform-origin:50% 100%;z-index:2}.chest-lid::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:6px;border-radius:9px;background:#efb34e}.chest-lock{position:absolute;z-index:4;left:50%;top:56px;width:24px;height:28px;transform:translateX(-50%);border-radius:5px 5px 8px 8px;background:linear-gradient(#ffd66d,#c98b27);border:2px solid #7c4e17}.chest-lock::after{content:"";position:absolute;left:8px;top:8px;width:5px;height:8px;border-radius:5px;background:#7c4e17}.chest-cta{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;opacity:.82}
.chest-stage:hover .chest-object{filter:drop-shadow(0 16px 14px rgba(100,61,26,.27));transform:translateX(-50%) scale(1.035)}
.chest-stage.opening .chest-object{animation:chestShake .72s ease-in-out 1}.chest-stage.opening .chest-lid{animation:lidOpen .55s .72s cubic-bezier(.2,.8,.2,1) forwards}.chest-stage.opening .chest-lock{animation:lockPop .35s .55s ease-out forwards}.chest-stage.opening .chest-glow{animation:chestBurst .8s .65s ease-out forwards}.chest-stage.opening .chest-cta{opacity:0}
.card-reveal .flag-card{animation:cardRevealPremium .72s cubic-bezier(.16,.9,.22,1.12)}.card-reveal .flag-card.gold{animation:cardRevealPremium .72s cubic-bezier(.16,.9,.22,1.12),goldPulse 1.3s .7s ease-out}.card-reveal .flag-card.shiny{animation:cardRevealPremium .78s cubic-bezier(.16,.9,.22,1.12),shinyPulse 1.8s .75s ease-out}
@keyframes chestIdle{50%{transform:translateX(-50%) translateY(-5px) rotate(.8deg)}}@keyframes chestAura{50%{transform:scale(1.08);opacity:.7}}@keyframes chestShake{0%,100%{transform:translateX(-50%)}20%{transform:translateX(calc(-50% - 6px)) rotate(-2deg)}40%{transform:translateX(calc(-50% + 7px)) rotate(2deg)}60%{transform:translateX(calc(-50% - 4px)) rotate(-1deg)}80%{transform:translateX(calc(-50% + 3px)) rotate(1deg)}}@keyframes lidOpen{to{transform:translateY(-8px) rotateX(-68deg)}}@keyframes lockPop{to{transform:translate(-50%,-12px) rotate(16deg);opacity:0}}@keyframes chestBurst{45%{transform:scale(1.55);opacity:1}100%{transform:scale(2.1);opacity:0}}@keyframes cardRevealPremium{from{opacity:0;transform:translateY(24px) scale(.78) rotateY(32deg)}65%{opacity:1}to{transform:none}}@keyframes goldPulse{45%{box-shadow:0 18px 55px rgba(207,148,32,.55),0 0 38px rgba(255,215,90,.35)}}@keyframes shinyPulse{40%{box-shadow:0 20px 62px rgba(100,89,179,.48),0 0 48px rgba(144,232,255,.4)}}

@media(max-width:600px){
  .home-alcove{min-height:170px;padding:25px 20px 21px;grid-template-columns:minmax(0,1fr) 128px;border-radius:78px 78px 27px 27px}.home-alcove h1{font-size:clamp(2rem,10vw,2.7rem)!important}.home-alcove h1::after{width:52px;margin-top:12px}.hero-brand{width:128px!important;min-width:128px!important}
  .collection-tools{align-items:flex-start;flex-direction:column;gap:9px}.sort-control{width:100%;justify-content:space-between}.sort-control select{max-width:190px}.rarity-variants{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-detail{padding:14px}.collection-detail-head .text-button{padding:8px}
  .chest-stage{width:170px;height:145px}.chest-object{transform:translateX(-50%) scale(.92)}
}
@media(max-width:360px){.home-alcove{grid-template-columns:minmax(0,1fr) 96px;padding:22px 16px 19px}.hero-brand{width:96px!important;min-width:96px!important}.home-alcove h1{font-size:1.95rem!important}}
@media(prefers-reduced-motion:reduce){.flag-card.shiny::before,.chest-object,.chest-glow,.chest-stage.opening .chest-object,.chest-stage.opening .chest-lid,.chest-stage.opening .chest-lock,.chest-stage.opening .chest-glow,.card-reveal .flag-card{animation:none!important}.collection-card{transition:none}}

/* vNext polish: the words form the alcove — the container no longer does. */
.home-hero{border-radius:0!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:10px 2px 22px!important;min-height:210px!important;overflow:visible!important}
.home-hero::before,.home-hero::after{display:none!important}
.hero-arc-copy{position:relative;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding-bottom:10px}
.hero-arc{position:absolute;inset:0 0 auto;width:100%;height:150px;overflow:visible}
.hero-arc text{font-family:Georgia,'Times New Roman',serif;font-size:43px;font-weight:800;fill:var(--ink);letter-spacing:-1px}
.hero-arc-end{position:relative;margin-top:0;color:var(--terracotta);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,5vw,2.8rem);line-height:1;font-style:italic;letter-spacing:-1.2px;transform:translateY(-7px)}
.hero-brand{width:220px!important;min-width:220px!important;margin-right:8px}
.hero-brand img{width:100%;height:auto}

/* A discoverable way home even when the header logo isn't obvious. */
#playing{position:relative}.playing-home{display:block;margin:7px 4px 9px auto;padding:6px 10px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:800;cursor:pointer;opacity:.72;text-decoration:underline;text-decoration-color:rgba(70,67,49,.2);text-underline-offset:3px}.playing-home:hover{opacity:1;color:var(--blue)}

/* Bigger flag and a direct path to the album after a reveal. */
.card-reveal .flag-card .card-flag{font-size:96px!important;line-height:1;margin-top:31px!important;filter:drop-shadow(0 7px 8px rgba(55,42,27,.12))}
.reveal-collection{display:block;margin:13px auto 0;min-width:190px}

/* Chest v2: heavier object, anticipation, light leaking through before reveal. */
.daily-chest{perspective:800px}.chest-stage{width:220px;height:185px;margin-top:10px}.chest-object{top:12px;width:148px;height:126px;filter:drop-shadow(0 20px 16px rgba(83,48,22,.25))}.chest-body{left:5px;right:5px;height:70px;border-radius:11px 11px 20px 20px;border-width:4px;background:linear-gradient(125deg,#7f3d24 0%,#bd6833 20%,#e39748 49%,#a5532c 74%,#6d321f 100%);box-shadow:inset 0 0 0 5px rgba(255,190,80,.16),inset 0 -12px 18px rgba(67,28,13,.18)}
.chest-lid{left:0;right:0;top:15px;height:56px;border-radius:50px 50px 9px 9px;border-width:4px;background:linear-gradient(145deg,#7b3922,#c46b34 27%,#eea34d 52%,#a64e28 78%,#6c301d);box-shadow:inset 0 7px 9px rgba(255,205,117,.16)}
.chest-band{position:absolute;z-index:3;left:50%;top:18px;width:23px;height:101px;transform:translateX(-50%);border-radius:5px;background:linear-gradient(90deg,#9b681f,#f2c15d 45%,#fff0a1 55%,#b67b26);box-shadow:0 0 0 2px rgba(94,54,15,.65)}
.chest-lock{top:65px;width:29px;height:32px;border-radius:6px 6px 9px 9px;box-shadow:0 3px 7px rgba(70,38,10,.24)}
.chest-rays{position:absolute;left:50%;top:56px;width:18px;height:18px;transform:translate(-50%,-50%) scale(.2);border-radius:50%;opacity:0;background:#fff5b0;box-shadow:0 0 16px 8px #ffd75e,0 0 50px 25px rgba(255,191,57,.58)}
.chest-stage.opening .chest-object{animation:chestCharge .95s cubic-bezier(.4,0,.2,1) both}.chest-stage.opening .chest-lock{animation:lockPop .3s .88s ease-out forwards}.chest-stage.opening .chest-band{animation:bandFlash .35s .82s ease-out forwards}.chest-stage.opening .chest-rays{animation:raysBurst .75s .92s ease-out forwards}.chest-stage.opening .chest-lid{animation:lidOpenV2 .62s 1.03s cubic-bezier(.12,.78,.18,1) forwards}.chest-stage.opening .chest-glow{animation:chestBurst 1s .92s ease-out forwards}
@keyframes chestCharge{0%{transform:translateX(-50%)}15%{transform:translateX(calc(-50% - 3px)) rotate(-1deg)}30%{transform:translateX(calc(-50% + 4px)) rotate(1.2deg)}45%{transform:translateX(calc(-50% - 6px)) rotate(-1.8deg)}60%{transform:translateX(calc(-50% + 7px)) rotate(2deg)}75%{transform:translateX(calc(-50% - 5px)) rotate(-1.4deg)}90%{transform:translateX(calc(-50% + 3px)) rotate(.7deg)}100%{transform:translateX(-50%) translateY(-2px)}}
@keyframes bandFlash{50%{filter:brightness(1.8);box-shadow:0 0 15px 5px rgba(255,214,103,.8)}100%{opacity:.75}}
@keyframes raysBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}35%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-70%) scale(5)}}
@keyframes lidOpenV2{0%{transform:translateY(0) rotateX(0)}55%{transform:translateY(-14px) rotateX(-82deg)}100%{transform:translateY(-20px) rotateX(-108deg);opacity:.65}}

@media(max-width:600px){.home-hero{grid-template-columns:minmax(0,1fr) 145px!important;min-height:175px!important;padding:4px 0 16px!important}.hero-arc-copy{min-height:150px}.hero-arc{height:125px}.hero-arc text{font-size:35px}.hero-arc-end{font-size:2rem;transform:translateY(-12px)}.hero-brand{width:145px!important;min-width:145px!important}.chest-stage{width:190px;height:168px}.chest-object{transform:translateX(-50%) scale(.94)}.card-reveal .flag-card .card-flag{font-size:86px!important}}
@media(max-width:360px){.home-hero{grid-template-columns:minmax(0,1fr) 112px!important}.hero-brand{width:112px!important;min-width:112px!important}.hero-arc text{font-size:30px}.hero-arc-end{font-size:1.72rem}.hero-arc-copy{min-height:140px}}
@media(prefers-reduced-motion:reduce){.chest-stage.opening .chest-band,.chest-stage.opening .chest-rays{animation:none!important}}

/* Home v3 — quieter Daily, stronger invitation, mobile-safe curved headline. */
.home-hero{grid-template-columns:minmax(0,1fr) 250px!important;align-items:center!important;min-height:225px!important;gap:8px!important}
.hero-brand{width:250px!important;min-width:250px!important}
.hero-arc-copy{min-width:0;overflow:visible}
.hero-arc{left:-8%;width:116%;height:158px;overflow:visible}
.hero-arc text{font-size:39px;letter-spacing:-1.25px}
.hero-arc-end{font-size:clamp(2.05rem,5vw,2.9rem);margin-top:3px}
html[lang="en"] .hero-arc{left:-15%;width:130%}
html[lang="en"] .hero-arc text{font-size:31px;letter-spacing:-1.1px}
html[lang="en"] .hero-arc-end{font-size:clamp(1.9rem,4.6vw,2.65rem)}
.daily-card{padding:27px 28px 22px!important}
.daily-card>p{margin-bottom:17px!important}
.daily-completed{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;gap:12px!important;margin:4px 0 15px!important}
.daily-completed.hidden{display:none!important}
.daily-score-lockup{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.daily-score-lockup>strong{font-size:clamp(1.55rem,4vw,2.05rem);letter-spacing:-.04em;color:#fffaf1}
.daily-card .daily-errors{margin:0;font-size:13px}
.daily-home-streak{display:inline-flex;align-items:center;gap:6px;margin-top:13px;color:rgba(255,250,241,.78);font-size:13px;font-weight:700}
.daily-home-streak strong{color:#fff8ed;font-size:15px}
.daily-stats-hidden{display:none}
.daily-countdown{margin-top:14px!important;padding-top:12px!important;font-size:12px!important}
.daily-countdown span{font-weight:700}
.daily-countdown strong{font-size:14px!important}

/* Classic is intentionally paper-like, never metallic/gold. */
.flag-card.classic{background:linear-gradient(145deg,#f8f1e7 0%,#eee5d8 58%,#faf6ef 100%)!important;border-color:rgba(91,76,59,.18)!important;box-shadow:0 12px 27px rgba(75,60,45,.11)!important}
.flag-card.classic::after{border-color:rgba(91,76,59,.12)!important}
.flag-card.classic .rarity{background:rgba(255,255,255,.48)!important;color:#64584b!important}

/* TCG-style card inspection. */
.zoomable-card{cursor:zoom-in;transition:transform .18s ease,box-shadow .18s ease}
.zoomable-card:hover{transform:translateY(-3px) scale(1.012)}
.card-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:62px 20px 28px;background:rgba(27,29,27,.78);backdrop-filter:blur(12px);animation:modalFade .2s ease-out}
.card-modal.hidden{display:none}.modal-open{overflow:hidden}
.card-modal-content{width:min(390px,88vw);perspective:1000px}
.card-modal-content .flag-card{min-height:520px;padding:28px 25px;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.38);animation:tcgZoom .38s cubic-bezier(.16,.85,.22,1.08)}
.card-modal-content .flag-card .card-flag{font-size:118px;margin:62px 0 24px}
.card-modal-content .flag-card h3{font-size:25px;margin-bottom:16px}.card-modal-content .flag-card p{font-size:15px;line-height:1.65}
.card-modal-close{position:fixed;top:max(18px,env(safe-area-inset-top));right:20px;width:42px;height:42px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(255,255,255,.12);color:white;font-size:28px;line-height:1;cursor:pointer}
@keyframes modalFade{from{opacity:0}}@keyframes tcgZoom{from{opacity:0;transform:translateY(28px) scale(.72) rotateY(10deg)}to{opacity:1;transform:none}}

@media(max-width:600px){
 .home-hero{grid-template-columns:minmax(0,1fr) 158px!important;min-height:185px!important;gap:0!important}
 .hero-brand{width:158px!important;min-width:158px!important;margin-right:-3px!important}
 .hero-arc{left:-14%;width:128%;height:128px}
 .hero-arc text{font-size:29px}
 .hero-arc-end{font-size:1.82rem;transform:translateY(-9px)}
 html[lang="en"] .hero-arc{left:-24%;width:148%}
 html[lang="en"] .hero-arc text{font-size:22px;letter-spacing:-.7px}
 html[lang="en"] .hero-arc-end{font-size:1.62rem}
 .daily-card{padding:20px 17px 18px!important}
 .daily-completed{grid-template-columns:1fr!important;gap:8px!important}
 .daily-score-lockup>strong{font-size:1.65rem}
 .daily-countdown{align-items:center!important;flex-direction:row!important;gap:8px!important}
 .card-modal{padding:58px 13px 20px}.card-modal-content{width:min(350px,92vw)}.card-modal-content .flag-card{min-height:465px;padding:23px 20px}.card-modal-content .flag-card .card-flag{font-size:102px;margin:52px 0 21px}.card-modal-content .flag-card h3{font-size:22px}.card-modal-content .flag-card p{font-size:14px}
}
@media(max-width:360px){
 .home-hero{grid-template-columns:minmax(0,1fr) 122px!important;min-height:170px!important}.hero-brand{width:122px!important;min-width:122px!important}
 .hero-arc{left:-17%;width:134%;height:115px}.hero-arc text{font-size:25px}.hero-arc-end{font-size:1.55rem}
 html[lang="en"] .hero-arc{left:-30%;width:160%}html[lang="en"] .hero-arc text{font-size:18.5px}html[lang="en"] .hero-arc-end{font-size:1.38rem}
 .daily-countdown{align-items:flex-start!important;flex-direction:column!important;gap:3px!important}
 .card-modal-content .flag-card{min-height:430px}.card-modal-content .flag-card .card-flag{font-size:90px;margin-top:45px}
}
@media(prefers-reduced-motion:reduce){.card-modal,.card-modal-content .flag-card,.zoomable-card{animation:none!important;transition:none!important}}

/* Signature home mark — the promise now wraps the GeoFact logo itself. */
.home-hero.hero-orbit{position:relative!important;display:grid!important;place-items:center!important;grid-template-columns:1fr!important;width:min(560px,100%)!important;height:330px!important;min-height:0!important;margin:-16px auto -20px!important;padding:0!important;overflow:visible!important}
.hero-orbit-copy{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.hero-orbit-copy text{font-family:Georgia,'Times New Roman',serif;font-weight:800;fill:var(--ink);letter-spacing:-.9px;font-size:31px}
.hero-orbit-copy .orbit-bottom{fill:var(--terracotta);font-style:italic;font-size:27px}
.hero-orbit .hero-brand{position:relative!important;width:260px!important;min-width:0!important;margin:0!important;z-index:2;animation:heroFloat 4.8s ease-in-out infinite}
.hero-orbit .hero-brand img{display:block;width:100%;height:auto;filter:drop-shadow(0 13px 20px rgba(53,62,45,.08))}
html[lang="en"] .hero-orbit-copy text{font-size:25px;letter-spacing:-.65px}html[lang="en"] .hero-orbit-copy .orbit-bottom{font-size:24px}

/* Daily: product identity instead of emoji heading. */
.daily-top{align-items:center!important}.daily-label{display:inline-flex;align-items:center;gap:9px!important;font-size:12px!important;letter-spacing:.16em!important;text-transform:uppercase;color:#fff8ed!important}.daily-orbit-mark{width:22px;height:22px;border:1.5px solid rgba(255,248,237,.7);border-radius:50%;position:relative;display:inline-block}.daily-orbit-mark::before{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#f6b04a;right:-2px;top:2px;box-shadow:0 0 0 3px rgba(246,176,74,.16)}.daily-orbit-mark::after{content:"";position:absolute;left:4px;right:4px;top:10px;height:1px;background:rgba(255,248,237,.42);transform:rotate(-18deg)}.daily-number{font:800 13px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace!important;color:#f6c778!important;background:rgba(255,255,255,.07);padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.11)}

/* Custom practice: useful for teachers, parents and focused revision without cluttering the home. */
.practice-setup{max-width:760px!important}.practice-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.practice-path{appearance:none;text-align:left;padding:18px;border:1px solid rgba(62,80,61,.14);border-radius:20px;background:#fffaf2;color:var(--ink);cursor:pointer;box-shadow:0 8px 20px rgba(70,62,43,.06);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.practice-path:hover{transform:translateY(-2px);border-color:rgba(15,61,145,.24);box-shadow:0 12px 26px rgba(70,62,43,.09)}.practice-path strong,.practice-path span{display:block}.practice-path strong{font-size:17px;margin-bottom:4px}.practice-path span{font-size:13px;color:var(--muted)}.practice-picker{margin:4px 0 20px;padding:17px;border-radius:22px;background:#f8efe2;border:1px solid rgba(117,80,42,.1)}.country-search{display:grid;gap:7px;font-size:12px;font-weight:800;color:var(--muted)}.country-search input{width:100%;padding:12px 14px;border:1px solid rgba(64,71,56,.16);border-radius:14px;background:#fffdf8;font:inherit;color:var(--ink);outline:none}.country-search input:focus{border-color:rgba(15,61,145,.42);box-shadow:0 0 0 3px rgba(15,61,145,.08)}.picker-actions{display:flex;align-items:center;gap:8px;margin:10px 0}.picker-actions strong{margin-left:auto;font-size:12px;color:var(--muted)}.practice-country-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:310px;overflow:auto;padding:3px 3px 10px}.practice-country-option{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.58);font-size:13px;cursor:pointer}.practice-country-option:has(input:checked){background:#fff;color:var(--blue);box-shadow:inset 0 0 0 1px rgba(15,61,145,.15)}.practice-country-option input{accent-color:var(--green)}#startCustomPractice{width:100%;margin-top:8px}

/* TCG inspection: the card is an object you can tilt, not a static zoom. */
.card-modal-content{perspective:1100px!important;touch-action:none}.card-modal-content .flag-card.tcg-interactive{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;position:relative;overflow:hidden;cursor:grab;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry)) translateZ(0);transition:transform .42s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease;will-change:transform}.card-modal-content .flag-card.tcg-interactive.is-moving{transition:transform .06s linear;cursor:grabbing;box-shadow:0 38px 95px rgba(0,0,0,.46)}.tcg-interactive::before{content:""!important;position:absolute!important;inset:-35%!important;z-index:8!important;pointer-events:none!important;opacity:.32!important;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.95) 0 5%,rgba(255,255,255,.28) 13%,transparent 34%)!important;mix-blend-mode:screen!important;transform:none!important;animation:none!important}.tcg-interactive.silver::before{opacity:.48!important;background:linear-gradient(115deg,transparent 22%,rgba(255,255,255,.85) 42%,rgba(190,214,226,.42) 51%,transparent 70%)!important;transform:translate(calc((var(--mx) - 50%) * .15),calc((var(--my) - 50%) * .15))!important}.tcg-interactive.gold::before{opacity:.58!important;background:radial-gradient(circle at var(--mx) var(--my),#fffbd0 0 4%,rgba(255,229,126,.62) 12%,transparent 34%),linear-gradient(120deg,transparent 30%,rgba(255,255,255,.62) 48%,transparent 64%)!important}.tcg-interactive.shiny::before{opacity:.72!important;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.95),transparent 23%),linear-gradient(115deg,rgba(255,83,175,.28),rgba(80,214,255,.34),rgba(255,226,89,.3),rgba(135,94,255,.3),rgba(255,83,175,.28))!important;background-size:100% 100%,220% 220%!important;background-position:center,calc(var(--mx)) calc(var(--my))!important}.tcg-interactive>*{position:relative;z-index:3}

/* Exploration chest v3: compact travel trunk, brass hardware, clean opening silhouette. */
.daily-chest>strong{display:block;margin-bottom:6px}.chest-stage{width:240px!important;height:205px!important;border:0!important;background:transparent!important;position:relative!important;overflow:visible!important}.chest-aura{position:absolute;left:50%;top:84px;width:170px;height:110px;transform:translate(-50%,-50%) scale(.72);border-radius:50%;background:radial-gradient(circle,rgba(255,203,94,.32),rgba(255,203,94,0) 68%);opacity:.45;animation:auraBreathe 2.4s ease-in-out infinite}.chest-object{position:absolute!important;left:50%!important;top:27px!important;width:160px!important;height:120px!important;transform:translateX(-50%)!important;filter:drop-shadow(0 20px 14px rgba(61,38,22,.24))!important;animation:chestIdle 2.7s ease-in-out infinite!important}.chest-body{position:absolute;left:0!important;right:0!important;bottom:0!important;height:74px!important;border:3px solid #4f3326!important;border-radius:10px 10px 18px 18px!important;background:linear-gradient(90deg,#744733,#9a6040 17%,#b9774d 50%,#965b3d 83%,#70422f)!important;box-shadow:inset 0 5px rgba(255,224,174,.12),inset 0 -13px 20px rgba(55,28,18,.18)!important;overflow:hidden}.chest-panel{position:absolute;inset:11px 17px 13px;border:1px solid rgba(255,224,174,.18);border-radius:7px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(53,26,16,.08))}.chest-lid{position:absolute!important;left:0!important;right:0!important;top:0!important;height:54px!important;border:3px solid #4f3326!important;border-radius:56px 56px 8px 8px!important;background:linear-gradient(90deg,#6f432f,#9f6441 18%,#bc7b4d 50%,#965b3b 82%,#6d402d)!important;box-shadow:inset 0 7px rgba(255,226,178,.1)!important;transform-origin:50% 100%;z-index:4}.chest-lid-panel{position:absolute;left:18px;right:18px;top:12px;bottom:7px;border:1px solid rgba(255,226,178,.18);border-radius:38px 38px 5px 5px}.chest-band{position:absolute!important;z-index:6!important;left:50%!important;top:3px!important;width:22px!important;height:113px!important;transform:translateX(-50%)!important;border-radius:4px!important;background:linear-gradient(90deg,#8a5a1e,#d9a63e 34%,#f7d77b 52%,#b67b26 72%,#765018)!important;box-shadow:0 0 0 1px rgba(70,42,13,.65),inset 2px 0 rgba(255,243,182,.34)!important}.chest-lock{position:absolute!important;z-index:8!important;left:50%!important;top:52px!important;width:34px!important;height:31px!important;transform:translateX(-50%)!important;border:2px solid #654518!important;border-radius:7px 7px 10px 10px!important;background:linear-gradient(#f0c75f,#b67a25)!important;box-shadow:0 4px 7px rgba(54,31,11,.24)!important}.chest-lock i{position:absolute;left:50%;top:8px;width:6px;height:10px;transform:translateX(-50%);border-radius:5px;background:#70501f}.chest-corner{position:absolute;bottom:0;width:22px;height:22px;border-bottom:5px solid #c59339}.chest-corner.left{left:0;border-left:5px solid #c59339;border-radius:0 0 0 13px}.chest-corner.right{right:0;border-right:5px solid #c59339;border-radius:0 0 13px 0}.chest-light{position:absolute;z-index:3;left:50%;top:52px;width:90px;height:30px;transform:translateX(-50%) scale(.4);border-radius:50%;background:#fff7c7;box-shadow:0 0 24px 11px rgba(255,214,90,.72),0 0 70px 35px rgba(255,177,47,.28);opacity:0}.chest-stage.opening .chest-object{animation:chestBuild .9s ease-in-out both!important}.chest-stage.opening .chest-aura{animation:auraOpen 1.7s ease-out forwards}.chest-stage.opening .chest-lock{animation:lockRelease .28s .78s ease-out forwards}.chest-stage.opening .chest-band{animation:bandRelease .35s .8s ease-out forwards}.chest-stage.opening .chest-light{animation:lightRise .9s .78s ease-out forwards}.chest-stage.opening .chest-lid{animation:trunkOpen .62s .92s cubic-bezier(.15,.8,.2,1) forwards}.chest-stage.opening .chest-body{animation:bodyGlow .65s .92s ease-out forwards}
@keyframes auraBreathe{50%{opacity:.72;transform:translate(-50%,-50%) scale(.9)}}@keyframes chestIdle{50%{transform:translateX(-50%) translateY(-4px)}}@keyframes chestBuild{0%,100%{transform:translateX(-50%)}22%{transform:translateX(calc(-50% - 3px)) rotate(-.8deg)}42%{transform:translateX(calc(-50% + 4px)) rotate(1deg)}60%{transform:translateX(calc(-50% - 5px)) rotate(-1.2deg)}78%{transform:translateX(calc(-50% + 3px)) rotate(.7deg)}}@keyframes auraOpen{45%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.7)}}@keyframes lockRelease{to{transform:translate(-50%,10px) scale(.72);opacity:0}}@keyframes bandRelease{to{opacity:.18;filter:brightness(1.6)}}@keyframes lightRise{0%{opacity:0;transform:translateX(-50%) scale(.35)}45%{opacity:1;transform:translateX(-50%) translateY(-20px) scale(1.1)}100%{opacity:.1;transform:translateX(-50%) translateY(-75px) scale(2.1)}}@keyframes trunkOpen{0%{transform:translateY(0) rotateX(0)}70%{transform:translateY(-10px) rotateX(-72deg)}100%{transform:translateY(-13px) rotateX(-82deg)}}@keyframes bodyGlow{50%{filter:brightness(1.18)}}

@media(max-width:600px){.home-hero.hero-orbit{height:270px!important;margin:-22px auto -25px!important}.hero-orbit .hero-brand{width:205px!important}.hero-orbit-copy text{font-size:27px}.hero-orbit-copy .orbit-bottom{font-size:24px}html[lang="en"] .hero-orbit-copy text{font-size:21px}html[lang="en"] .hero-orbit-copy .orbit-bottom{font-size:20px}.practice-paths{grid-template-columns:1fr}.practice-country-list{grid-template-columns:1fr;max-height:280px}.chest-stage{transform:scale(.92);margin:-2px auto -6px!important}.card-modal-content .flag-card.tcg-interactive{min-height:min(480px,68vh)}}
@media(max-width:360px){.home-hero.hero-orbit{height:235px!important;margin:-25px auto -23px!important}.hero-orbit .hero-brand{width:172px!important}.hero-orbit-copy text{font-size:24px}.hero-orbit-copy .orbit-bottom{font-size:21px}html[lang="en"] .hero-orbit-copy text{font-size:18px}html[lang="en"] .hero-orbit-copy .orbit-bottom{font-size:17px}.picker-actions{flex-wrap:wrap}.picker-actions strong{width:100%;margin-left:0}}
@media(prefers-reduced-motion:reduce){.hero-orbit .hero-brand,.chest-aura,.chest-object,.chest-stage.opening .chest-aura,.chest-stage.opening .chest-lock,.chest-stage.opening .chest-band,.chest-stage.opening .chest-light,.chest-stage.opening .chest-lid,.chest-stage.opening .chest-body{animation:none!important}.tcg-interactive{transform:none!important}}

/* Identity polish v4 — consistent typography, richer hero, useful help, TCG reveal. */
.top-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.how-link{border:0;background:transparent;color:var(--muted);font:800 11px/1.2 inherit;cursor:pointer;padding:3px 2px;text-decoration:underline;text-decoration-color:rgba(70,67,49,.22);text-underline-offset:3px}.how-link:hover{color:var(--blue)}
.hero-orbit-copy text,.hero-orbit-copy .orbit-bottom{font-family:inherit!important;font-style:normal!important;font-weight:900!important;letter-spacing:-.8px!important}.hero-orbit-copy .orbit-bottom{font-weight:850!important}
.hero-orbit .hero-brand{width:292px!important;animation:heroFloat 4.4s ease-in-out infinite!important}.hero-brand{position:relative}.hero-spark,.hero-compass,.hero-route{position:absolute;pointer-events:none}.hero-spark{color:var(--terracotta);font-size:18px;opacity:.62;animation:sparkDrift 4s ease-in-out infinite}.spark-a{left:-31px;top:18px}.spark-b{right:-25px;bottom:18px;animation-delay:-1.8s;font-size:12px}.hero-compass{right:-42px;top:46%;color:var(--green);font-size:24px;font-weight:900;opacity:.5;animation:sparkDrift 5.2s ease-in-out infinite reverse}.hero-route{width:42px;height:18px;border-top:2px dashed rgba(15,61,145,.2);border-radius:50%}.route-a{left:-51px;bottom:44px;transform:rotate(24deg)}.route-b{right:-51px;top:33px;transform:rotate(-18deg)}
@keyframes sparkDrift{50%{transform:translateY(-5px) rotate(7deg);opacity:.9}}
html[lang="en"] .hero-orbit-copy text,html[lang="en"] .hero-orbit-copy .orbit-bottom{font-family:inherit!important;font-style:normal!important}
.daily-chest-mark{position:relative;width:25px;height:20px;display:inline-block;border:1.5px solid rgba(255,248,237,.74);border-radius:5px 5px 7px 7px;background:linear-gradient(180deg,#a9673d,#75432f);box-shadow:inset 0 -5px rgba(44,26,19,.16)}.daily-chest-mark::before{content:"";position:absolute;left:1px;right:1px;top:-7px;height:10px;border:1.5px solid rgba(255,248,237,.74);border-bottom:0;border-radius:12px 12px 3px 3px;background:#965b39}.daily-chest-mark i{position:absolute;left:50%;top:6px;width:6px;height:7px;transform:translateX(-50%);border-radius:2px;background:#f4c55f;box-shadow:0 0 7px rgba(244,197,95,.32)}
/* Locked rarity slots never animate: only an actually owned Shiny gets the foil life. */
.locked-variant::before,.locked-variant::after{display:none!important;animation:none!important}.locked-variant{animation:none!important;transform:none!important}
/* Help is intentionally plain enough for a first-time/non-technical visitor. */
.how-modal{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:20px;background:rgba(28,31,28,.66);backdrop-filter:blur(9px)}.how-modal.hidden{display:none}.how-sheet{position:relative;width:min(760px,94vw);max-height:min(760px,88vh);overflow:auto;padding:30px;border-radius:28px;background:#fff8eb;box-shadow:0 28px 90px rgba(0,0,0,.28);border:1px solid rgba(101,75,43,.12)}.how-sheet h2{margin:4px 0 20px;color:var(--ink)}.how-close{position:absolute;right:15px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(24,57,75,.07);color:var(--ink);font-size:25px;cursor:pointer}.how-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.how-grid article{padding:15px 16px;border-radius:18px;background:rgba(255,255,255,.62);border:1px solid rgba(78,73,52,.08)}.how-grid b{display:block;color:var(--blue);margin-bottom:5px}.how-grid p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
/* Chest v4: opening becomes a reveal sequence. The card back rises before the real card is shown. */
.chest-stage{height:230px!important}.chest-object{top:43px!important;width:174px!important;height:132px!important}.chest-body{height:80px!important;border-radius:12px 12px 21px 21px!important;background:linear-gradient(90deg,#59362a,#845039 14%,#a96943 38%,#bd7b4d 50%,#9d603f 72%,#70412f 88%,#533126)!important}.chest-lid{height:59px!important;background:linear-gradient(90deg,#543226,#805039 16%,#a86b43 42%,#bb794b 51%,#955a3c 77%,#543226)!important}.chest-band{height:125px!important;background:linear-gradient(90deg,#75511d,#c99a39 30%,#f2cf72 50%,#b47c27 72%,#654517)!important}.chest-lock{top:60px!important}.pack-card-back{position:absolute;z-index:2;left:50%;top:72px;width:92px;height:126px;transform:translate(-50%,20px) scale(.62) rotate(-3deg);border-radius:11px;border:4px solid #f1dba9;background:radial-gradient(circle at 50% 43%,#fff3d2 0 10%,transparent 11%),repeating-radial-gradient(circle at 50% 50%,transparent 0 12px,rgba(255,255,255,.08) 13px 14px),linear-gradient(145deg,#123d72,#18558a 52%,#0d315e);box-shadow:0 12px 24px rgba(21,31,42,.28);opacity:0;pointer-events:none;overflow:hidden}.pack-card-back::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,244,213,.62);border-radius:7px}.pack-card-back i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);color:#fff7e8;font:900 14px/1 inherit;letter-spacing:-.6px}.chest-stage.opening .pack-card-back{animation:cardBackRise 1.15s 1.42s cubic-bezier(.16,.84,.24,1) forwards}.chest-stage.opening .chest-object{animation:chestChargeV4 1.05s ease-in-out both!important}.chest-stage.opening .chest-lock{animation:lockRelease .28s .92s ease-out forwards!important}.chest-stage.opening .chest-band{animation:bandRelease .35s .94s ease-out forwards!important}.chest-stage.opening .chest-light{animation:lightRiseV4 1.25s .96s ease-out forwards!important}.chest-stage.opening .chest-lid{animation:trunkOpenV4 .72s 1.05s cubic-bezier(.12,.84,.18,1) forwards!important}.chest-stage.opening .chest-body{animation:bodyGlow .8s 1.02s ease-out forwards!important}.chest-stage.opening::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;animation:revealFlash .62s 2.22s ease-out forwards;background:radial-gradient(circle,rgba(255,250,221,.95),rgba(255,218,116,.38) 30%,transparent 65%);opacity:0}
@keyframes chestChargeV4{0%,100%{transform:translateX(-50%)}20%{transform:translateX(calc(-50% - 2px)) rotate(-.6deg)}38%{transform:translateX(calc(-50% + 4px)) rotate(1deg)}55%{transform:translateX(calc(-50% - 6px)) rotate(-1.5deg)}70%{transform:translateX(calc(-50% + 6px)) rotate(1.5deg)}84%{transform:translateX(calc(-50% - 3px)) rotate(-.7deg)}}
@keyframes trunkOpenV4{0%{transform:translateY(0) rotateX(0)}65%{transform:translateY(-15px) rotateX(-88deg)}100%{transform:translateY(-19px) rotateX(-104deg)}}
@keyframes lightRiseV4{0%{opacity:0;transform:translateX(-50%) scale(.25)}35%{opacity:1;transform:translateX(-50%) translateY(-18px) scale(1.25)}100%{opacity:.16;transform:translateX(-50%) translateY(-110px) scale(2.8)}}
@keyframes cardBackRise{0%{opacity:0;transform:translate(-50%,26px) scale(.58) rotate(-5deg)}28%{opacity:1}72%{opacity:1;transform:translate(-50%,-68px) scale(.96) rotate(2deg)}100%{opacity:0;transform:translate(-50%,-82px) scale(1.08) rotateY(82deg)}}
@keyframes revealFlash{0%{opacity:0;transform:scale(.55)}40%{opacity:1;transform:scale(1.08)}100%{opacity:0;transform:scale(1.5)}}
@media(max-width:600px){.hero-orbit .hero-brand{width:225px!important}.hero-spark{font-size:14px}.hero-compass{right:-28px}.route-a{left:-34px}.route-b{right:-35px}.how-sheet{padding:25px 17px 20px}.how-grid{grid-template-columns:1fr}.chest-stage{height:210px!important;transform:scale(.94);transform-origin:top center}}
@media(max-width:360px){.hero-orbit .hero-brand{width:188px!important}.hero-spark,.hero-compass,.hero-route{transform:scale(.82)}.top-actions{gap:3px}.how-link{font-size:10px}}
@media(prefers-reduced-motion:reduce){.hero-spark,.hero-compass,.chest-stage.opening .pack-card-back,.chest-stage.opening::after{animation:none!important}}

/* v5 — premium daily reward polish */
/* The whole GeoFact hero mark breathes as one object. */
.hero-orbit .hero-brand{animation:heroBrandJourney 4.6s ease-in-out infinite!important;transform-origin:50% 55%}
@keyframes heroBrandJourney{0%,100%{transform:translateY(0) rotate(-.45deg) scale(1)}50%{transform:translateY(-7px) rotate(.55deg) scale(1.012)}}

/* Flags are the hero of a collectible card. */
.card-reveal .flag-card .card-flag{font-size:122px!important;margin:24px 0 18px!important}
.card-modal-content .flag-card .card-flag{font-size:148px!important;margin:48px 0 22px!important}

/* Daily badge: the reward chest is the visual cue, not another GeoFact mark. */
.daily-chest-mark{width:28px;height:21px;border-radius:4px 4px 8px 8px;background:linear-gradient(180deg,#70442f,#4b2c21);border-color:#d7a95b;box-shadow:inset 0 -5px rgba(20,11,8,.24),0 2px 5px rgba(38,24,18,.18)}
.daily-chest-mark::before{background:linear-gradient(180deg,#815039,#5b3426);border-color:#d7a95b}
.daily-chest-mark i{background:#e3b45e;box-shadow:0 0 8px rgba(227,180,94,.28)}

/* Exploration trunk v5: aged wood, leather and brass; no toy-plastic gradients. */
.daily-chest{background:radial-gradient(ellipse at 50% 48%,rgba(232,184,101,.13),transparent 44%),linear-gradient(145deg,#fff9ed,#f2e3cb)}
.chest-stage{width:250px!important;height:232px!important;perspective:1000px}
.chest-object{width:174px!important;height:145px!important;top:21px!important;filter:drop-shadow(0 24px 18px rgba(54,34,23,.30))!important}
.chest-body{left:4px!important;right:4px!important;height:78px!important;border:2px solid #3b241b!important;border-radius:7px 7px 18px 18px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 23px),linear-gradient(180deg,#6e412c 0%,#553124 48%,#3f251d 100%)!important;box-shadow:inset 0 2px rgba(255,255,255,.07),inset 0 -18px 22px rgba(25,13,10,.22)!important}
.chest-body::before{content:"";position:absolute;inset:10px 11px 13px;border:1px solid rgba(222,177,101,.22);border-radius:4px;background:linear-gradient(90deg,transparent 48%,rgba(0,0,0,.12) 49% 51%,transparent 52%)}
.chest-lid{left:0!important;right:0!important;top:9px!important;height:67px!important;border:2px solid #3b241b!important;border-radius:54px 54px 7px 7px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 23px),linear-gradient(180deg,#7a4930,#5d3526 58%,#47291f)!important;box-shadow:inset 0 3px rgba(255,255,255,.06),inset 0 -10px 14px rgba(28,14,10,.2)!important;transform-origin:50% 100%}
.chest-lid-panel{position:absolute;inset:10px 14px 9px;border:1px solid rgba(224,180,102,.27);border-radius:40px 40px 4px 4px}
.chest-band{top:11px!important;width:20px!important;height:126px!important;border-radius:3px!important;background:linear-gradient(90deg,#70501f,#c49745 38%,#e4c274 53%,#8b6428)!important;box-shadow:0 0 0 1px #3d2a14,inset 1px 0 rgba(255,242,184,.25)!important}
.chest-lock{top:72px!important;width:31px!important;height:34px!important;background:linear-gradient(145deg,#d6ad5c,#8f6828)!important;border:2px solid #4c3518!important;box-shadow:0 4px 8px rgba(25,15,8,.3)!important}
.chest-panel{position:absolute;left:50%;top:29px;width:42px;height:28px;transform:translateX(-50%);border:1px solid rgba(219,173,91,.26);border-radius:50%;opacity:.72}
.chest-panel::after{content:"◎";position:absolute;inset:0;display:grid;place-items:center;color:#b88b45;font:700 17px/1 Georgia,serif;opacity:.8}
.chest-corner{position:absolute;bottom:4px;width:22px;height:18px;border-bottom:3px solid #a47b39}.chest-corner.left{left:4px;border-left:3px solid #a47b39;border-radius:0 0 0 11px}.chest-corner.right{right:4px;border-right:3px solid #a47b39;border-radius:0 0 11px 0}
.chest-aura{background:radial-gradient(circle,rgba(235,190,103,.23),rgba(235,190,103,.06) 42%,transparent 69%)!important}
.chest-light{background:linear-gradient(180deg,rgba(255,248,210,.98),rgba(238,185,77,.34) 48%,transparent)!important;filter:blur(1px)}
.pack-card-back{border-color:#e3c77d!important;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.08),transparent 26%),linear-gradient(145deg,#173d58,#0d283b)!important;box-shadow:0 0 0 4px #f1e4c2,0 0 0 6px #a77b39,0 20px 45px rgba(0,0,0,.3)!important}

/* A cleaner TCG reveal: charge -> unlock -> warm light -> card rises -> flip/reveal. */
.chest-stage.opening .chest-object{animation:trunkChargeV5 1.05s cubic-bezier(.3,.05,.2,1) both!important}
.chest-stage.opening .chest-lock{animation:lockDropV5 .42s .82s cubic-bezier(.2,.8,.2,1) forwards!important}
.chest-stage.opening .chest-lid{animation:trunkOpenV5 .72s 1.03s cubic-bezier(.14,.82,.16,1) forwards!important}
.chest-stage.opening .chest-light{animation:trunkLightV5 1.45s .94s ease-out forwards!important}
.chest-stage.opening .pack-card-back{animation:packRiseV5 1.25s 1.48s cubic-bezier(.14,.84,.18,1) forwards!important}
.chest-stage.opening::after{animation:revealFlash .72s 2.36s ease-out forwards!important}
@keyframes trunkChargeV5{0%,18%{transform:translateX(-50%) translateY(0)}36%{transform:translateX(-50%) translateY(-2px) rotate(-.5deg)}50%{transform:translateX(-50%) translateY(0) rotate(.7deg)}64%{transform:translateX(-50%) translateY(-3px) rotate(-1deg)}78%{transform:translateX(-50%) translateY(0) rotate(.8deg)}100%{transform:translateX(-50%) translateY(-2px)}}
@keyframes lockDropV5{0%{transform:translateX(-50%);opacity:1}60%{transform:translate(-50%,9px) rotate(8deg);opacity:1}100%{transform:translate(-50%,18px) rotate(18deg);opacity:0}}
@keyframes trunkOpenV5{0%{transform:rotateX(0) translateY(0)}58%{transform:rotateX(-82deg) translateY(-13px)}100%{transform:rotateX(-108deg) translateY(-19px)}}
@keyframes trunkLightV5{0%{opacity:0;transform:translateX(-50%) scale(.2)}28%{opacity:.9;transform:translateX(-50%) translateY(-15px) scale(1)}72%{opacity:1;transform:translateX(-50%) translateY(-88px) scale(2.15)}100%{opacity:.08;transform:translateX(-50%) translateY(-126px) scale(3)}}
@keyframes packRiseV5{0%{opacity:0;transform:translate(-50%,38px) scale(.55) rotate(-4deg)}25%{opacity:1}68%{opacity:1;transform:translate(-50%,-82px) scale(1) rotate(1deg)}88%{opacity:1;transform:translate(-50%,-90px) scale(1.06) rotateY(0)}100%{opacity:0;transform:translate(-50%,-92px) scale(1.08) rotateY(92deg)}}

@media(max-width:600px){.card-reveal .flag-card .card-flag{font-size:106px!important}.card-modal-content .flag-card .card-flag{font-size:126px!important;margin-top:42px!important}.chest-stage{transform:scale(.88)!important;margin:-7px auto -19px!important}}
@media(max-width:360px){.card-modal-content .flag-card .card-flag{font-size:108px!important}}
@media(prefers-reduced-motion:reduce){.hero-orbit .hero-brand{animation:none!important}}

/* v6 — GeoFact reveal identity + duplicate ownership */
/* Same exact typeface in both languages; only sizing adapts to the copy length. */
.hero-orbit-copy text,.hero-orbit-copy .orbit-bottom,
html[lang="fr"] .hero-orbit-copy text,html[lang="fr"] .hero-orbit-copy .orbit-bottom,
html[lang="en"] .hero-orbit-copy text,html[lang="en"] .hero-orbit-copy .orbit-bottom{
  font-family:ui-rounded,"SF Pro Rounded",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-style:normal!important;
}

/* Duplicate cards stay valuable: the physical copy count is visible but discreet. */
.flag-card .copy-count{position:absolute;z-index:5;left:10px;top:9px;min-width:25px;height:22px;padding:0 7px;display:grid;place-items:center;border-radius:999px;background:rgba(37,30,24,.78);border:1px solid rgba(255,255,255,.5);box-shadow:0 3px 9px rgba(35,24,17,.18);color:#fffaf0;font-size:10px;font-weight:950;letter-spacing:.02em;backdrop-filter:blur(5px)}
.flag-card.silver .copy-count{background:rgba(72,82,89,.78)}.flag-card.gold .copy-count{background:rgba(102,68,11,.82)}.flag-card.shiny .copy-count{background:rgba(57,48,92,.78)}

/* Exploration case: travel equipment, not a fantasy treasure chest. */
.chest-object{width:184px!important;height:146px!important;filter:drop-shadow(0 25px 19px rgba(48,32,23,.31))!important}
.chest-body{left:0!important;right:0!important;height:82px!important;border-radius:9px 9px 15px 15px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 18px),linear-gradient(180deg,#76503b,#55392c 55%,#3d2a22)!important}
.chest-body::after{content:"GEo • 47°";position:absolute;left:18px;bottom:15px;color:rgba(236,208,157,.48);font:800 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;transform:rotate(-2deg)}
.chest-lid{height:64px!important;border-radius:18px 18px 6px 6px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 18px),linear-gradient(180deg,#7d5540,#5d3d2e 64%,#493126)!important}
.chest-lid-panel{inset:11px 15px 10px!important;border-radius:12px!important}
.chest-band{width:18px!important;background:linear-gradient(90deg,#4d463d,#9c907a 28%,#c7bda9 52%,#756c5d)!important;box-shadow:0 0 0 1px #312c26,inset 1px 0 rgba(255,255,255,.2)!important}
.chest-lock{background:linear-gradient(145deg,#b9aa8b,#746952)!important;border-color:#393227!important}
.chest-corner{border-color:#817764!important}.chest-panel{border-color:rgba(213,201,174,.26)!important}.chest-panel::after{content:"⌖"!important;color:#b5a98f!important;font-family:inherit!important}
.chest-object::after{content:"";position:absolute;z-index:8;left:16px;top:84px;width:34px;height:22px;border:1px solid rgba(229,213,180,.42);border-radius:4px;background:rgba(220,197,151,.1);transform:rotate(-7deg);box-shadow:118px 12px 0 -1px rgba(220,197,151,.08),118px 12px 0 0 rgba(229,213,180,.3)}

/* The back is unmistakably GeoFact. */
.pack-card-back{display:grid!important;place-items:center!important;background:radial-gradient(circle at 50% 42%,rgba(61,141,104,.18),transparent 29%),repeating-radial-gradient(circle at 50% 50%,transparent 0 13px,rgba(255,255,255,.045) 14px 15px),linear-gradient(145deg,#0f3d69,#092a47)!important}
.pack-card-back::after{content:"";position:absolute;inset:15px;border-radius:50%;border:1px dashed rgba(239,224,184,.25)}
.pack-card-back img{position:relative;z-index:3;width:76%;height:auto;filter:brightness(0) invert(1) sepia(.1) drop-shadow(0 4px 8px rgba(0,0,0,.2));opacity:.96}

/* Reveal burst: restrained for Classic, progressively richer for rare pulls. */
.reveal-burst{position:absolute;z-index:1;left:50%;top:72px;width:18px;height:18px;transform:translate(-50%,-50%) scale(.15);border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(circle,#fff 0 8%,#ffe8a3 9% 20%,transparent 48%)}
.reveal-burst::before,.reveal-burst::after{content:"";position:absolute;left:50%;top:50%;width:250px;height:250px;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 0deg,rgba(255,232,157,.8) 0 2deg,transparent 2deg 20deg);mask:radial-gradient(circle,transparent 0 24%,#000 25% 60%,transparent 61%);-webkit-mask:radial-gradient(circle,transparent 0 24%,#000 25% 60%,transparent 61%)}
.reveal-burst::after{width:170px;height:170px;transform:translate(-50%,-50%) rotate(11deg);opacity:.55}
.chest-stage.opening .reveal-burst{animation:geoBurst .78s 2.28s cubic-bezier(.12,.72,.18,1) forwards}
.chest-stage[data-rarity="silver"].opening .reveal-burst{filter:saturate(.45) brightness(1.2)}
.chest-stage[data-rarity="gold"].opening .reveal-burst{filter:saturate(1.35);animation-duration:.92s}
.chest-stage[data-rarity="shiny"].opening .reveal-burst{background:radial-gradient(circle,#fff 0 8%,#9eefff 12%,#ffc0e8 24%,transparent 50%);filter:saturate(1.4);animation-duration:1.08s}
.chest-stage[data-rarity="shiny"].opening .reveal-burst::before{background:repeating-conic-gradient(from 0deg,#7ee7ff 0 2deg,transparent 2deg 12deg,#ff9bd6 13deg 15deg,transparent 15deg 24deg,#ffe27d 25deg 27deg,transparent 27deg 36deg)}
@keyframes geoBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.12) rotate(-8deg)}32%{opacity:1}65%{opacity:.92;transform:translate(-50%,-50%) scale(1.15) rotate(3deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.75) rotate(9deg)}}

/* The revealed card itself lands with more impact after the pack flip. */
.card-reveal{position:relative}.card-reveal::before{content:"";position:absolute;z-index:-1;left:50%;top:42%;width:260px;height:260px;transform:translate(-50%,-50%) scale(.4);border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(255,227,143,.38),transparent 66%);animation:rewardHalo .85s ease-out forwards}.card-reveal[data-rarity="shiny"]::before{background:conic-gradient(from 45deg,rgba(255,123,203,.18),rgba(105,224,255,.22),rgba(255,225,111,.2),rgba(153,121,255,.2),rgba(255,123,203,.18))}
@keyframes rewardHalo{25%{opacity:1;transform:translate(-50%,-50%) scale(.72)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.18)}}
@media(prefers-reduced-motion:reduce){.chest-stage.opening .reveal-burst,.card-reveal::before{animation:none!important}}

/* v7 — Daily CTA + expedition trunk refinement */
.daily-button::after{content:none!important}

/* Make the card back readable during the reveal: larger, cleaner and unmistakably GeoFact. */
.pack-card-back{width:112px!important;height:154px!important;top:56px!important;border-radius:14px!important;border:3px solid #ead9a9!important;background:radial-gradient(circle at 50% 44%,rgba(42,145,101,.28),transparent 30%),repeating-radial-gradient(circle at 50% 50%,transparent 0 16px,rgba(255,255,255,.05) 17px 18px),linear-gradient(145deg,#124a78,#082d4e)!important;box-shadow:0 0 0 3px rgba(9,35,57,.88),0 0 0 5px #d8bd79,0 20px 48px rgba(0,0,0,.36)!important}
.pack-card-back::before{content:""!important;position:absolute!important;inset:10px!important;border:1px solid rgba(246,231,191,.52)!important;border-radius:10px!important;background:radial-gradient(circle at center,rgba(255,255,255,.035),transparent 60%)!important}
.pack-card-back::after{content:""!important;position:absolute!important;inset:20px!important;border-radius:50%!important;border:1px dashed rgba(239,224,184,.30)!important}
.pack-card-back img{width:90%!important;max-width:none!important;opacity:1!important;filter:drop-shadow(0 5px 10px rgba(0,0,0,.28))!important}

/* A recognisable GeoFact expedition trunk: aged wood, dark forged metal, travel marks. */
.chest-object{width:194px!important;height:150px!important;top:20px!important;filter:drop-shadow(0 28px 21px rgba(42,27,20,.34))!important}
.chest-body{left:0!important;right:0!important;height:84px!important;border:3px solid #34231d!important;border-radius:7px 7px 17px 17px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 31px),linear-gradient(180deg,#74452f 0%,#603823 35%,#4b2a1c 100%)!important;box-shadow:inset 0 2px rgba(255,231,190,.08),inset 0 -20px 25px rgba(26,13,9,.25),0 0 0 1px rgba(143,91,54,.22)!important}
.chest-body::before{inset:12px 14px 14px!important;border:1px solid rgba(208,163,99,.22)!important;background:linear-gradient(90deg,transparent 49%,rgba(24,13,9,.16) 50%,transparent 51%)!important}
.chest-body::after{content:"GEOFACT  •  EXPEDITION"!important;left:20px!important;bottom:17px!important;color:rgba(231,202,150,.54)!important;font-size:7px!important;letter-spacing:.15em!important;transform:rotate(-1.5deg)!important}
.chest-lid{left:0!important;right:0!important;top:6px!important;height:72px!important;border:3px solid #34231d!important;border-radius:48% 48% 8px 8px / 60% 60% 8px 8px!important;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 31px),linear-gradient(180deg,#82513a 0%,#69402c 58%,#4d2c20 100%)!important;box-shadow:inset 0 4px rgba(255,228,183,.07),inset 0 -13px 16px rgba(27,14,10,.22)!important;transform-origin:50% 100%!important}
.chest-lid-panel{inset:12px 17px 11px!important;border:1px solid rgba(216,174,111,.25)!important;border-radius:42% 42% 5px 5px / 58% 58% 5px 5px!important}
.chest-band{top:8px!important;width:20px!important;height:132px!important;border-radius:2px!important;background:linear-gradient(90deg,#403b34,#847966 30%,#b4a68e 50%,#716757 72%,#39342e)!important;box-shadow:0 0 0 1px #211e1a,inset 1px 0 rgba(255,255,255,.16)!important}
.chest-lock{top:72px!important;width:33px!important;height:36px!important;background:linear-gradient(145deg,#a99a7e,#695f50)!important;border:2px solid #302a23!important;border-radius:4px 4px 8px 8px!important;box-shadow:0 5px 9px rgba(23,14,9,.32)!important}
.chest-panel{top:28px!important;width:48px!important;height:31px!important;border-color:rgba(221,193,142,.28)!important}.chest-panel::after{content:"◎"!important;color:#b8a37d!important;font-size:19px!important}
.chest-corner{border-color:#776d5e!important;border-width:4px!important}
.chest-object::after{left:17px!important;top:91px!important;width:37px!important;height:23px!important;border-color:rgba(225,206,171,.44)!important;background:rgba(217,191,145,.09)!important;box-shadow:123px 10px 0 -1px rgba(217,191,145,.08),123px 10px 0 0 rgba(225,206,171,.28)!important}

/* Reveal timing: the branded back pauses visibly before the face reveal. */
.chest-stage.opening .pack-card-back{animation:packRiseV7 1.42s 1.42s cubic-bezier(.12,.82,.16,1) forwards!important}
@keyframes packRiseV7{0%{opacity:0;transform:translate(-50%,34px) scale(.58) rotate(-4deg)}22%{opacity:1}68%{opacity:1;transform:translate(-50%,-54px) scale(.93) rotate(1deg)}100%{opacity:1;transform:translate(-50%,-68px) scale(1) rotate(0deg)}}
.chest-stage.opening .reveal-burst{animation-delay:2.48s!important}
.chest-stage.opening::after{animation-delay:2.5s!important}
@media(max-width:600px){.pack-card-back{width:104px!important;height:143px!important}.chest-object{transform:translateX(-50%) scale(.93)!important}}

/* v8 — longer premium reveal + high-contrast ivory GeoFact card back */
.pack-card-back{
  width:118px!important;height:162px!important;top:55px!important;
  border:3px solid #d7b866!important;
  background:
    radial-gradient(circle at 50% 43%,rgba(34,197,94,.10),transparent 31%),
    repeating-radial-gradient(circle at 50% 50%,transparent 0 17px,rgba(15,61,145,.045) 18px 19px),
    linear-gradient(145deg,#fffaf0,#f4e7c9)!important;
  box-shadow:0 0 0 3px #fffaf0,0 0 0 6px #173f73,0 24px 52px rgba(0,0,0,.34)!important;
}
.pack-card-back::before{border-color:rgba(15,61,145,.28)!important;background:radial-gradient(circle at center,rgba(255,255,255,.55),transparent 66%)!important}
.pack-card-back::after{border-color:rgba(34,197,94,.30)!important}
.pack-card-back img{width:94%!important;filter:drop-shadow(0 5px 9px rgba(18,48,75,.16))!important;opacity:1!important}

/* A deliberate four-second ritual: anticipation, opening, branded back, pause, reveal. */
.chest-stage.opening .chest-object{animation:trunkChargeV8 1.25s cubic-bezier(.3,.05,.2,1) both!important}
.chest-stage.opening .chest-lock{animation:lockDropV5 .48s 1.02s cubic-bezier(.2,.8,.2,1) forwards!important}
.chest-stage.opening .chest-lid{animation:trunkOpenV8 .82s 1.30s cubic-bezier(.14,.82,.16,1) forwards!important}
.chest-stage.opening .chest-light{animation:trunkLightV8 2.05s 1.12s ease-out forwards!important}
.chest-stage.opening .pack-card-back{animation:packRiseV8 2.05s 1.72s cubic-bezier(.12,.82,.16,1) forwards!important}
.chest-stage.opening .reveal-burst{animation-delay:3.52s!important;animation-duration:.95s!important}
.chest-stage.opening::after{animation-delay:3.54s!important;animation-duration:.86s!important}
@keyframes trunkChargeV8{0%{transform:translateX(-50%) translateY(0) rotate(0)}38%{transform:translateX(-50%) translateY(-2px) rotate(-.8deg)}55%{transform:translateX(-50%) translateY(1px) rotate(.9deg)}72%{transform:translateX(-50%) translateY(-2px) rotate(-.5deg)}100%{transform:translateX(-50%) translateY(0) rotate(0)}}
@keyframes trunkOpenV8{0%{transform:rotateX(0)}42%{transform:rotateX(-24deg)}100%{transform:rotateX(-76deg) translateY(-4px)}}
@keyframes trunkLightV8{0%{opacity:0;transform:translateX(-50%) scaleY(.12) scaleX(.4)}22%{opacity:.5}62%{opacity:1;transform:translateX(-50%) scaleY(1.2) scaleX(1.08)}100%{opacity:.55;transform:translateX(-50%) scaleY(1.45) scaleX(1.2)}}
@keyframes packRiseV8{0%{opacity:0;transform:translate(-50%,42px) scale(.52) rotate(-5deg)}18%{opacity:1}55%{opacity:1;transform:translate(-50%,-58px) scale(.96) rotate(1deg)}78%{opacity:1;transform:translate(-50%,-72px) scale(1.05) rotate(0deg)}92%{opacity:1;transform:translate(-50%,-72px) scale(1.05) rotateY(0)}100%{opacity:0;transform:translate(-50%,-72px) scale(1.08) rotateY(92deg)}}
.chest-stage[data-rarity="gold"].opening .reveal-burst{animation-duration:1.08s!important}
.chest-stage[data-rarity="shiny"].opening .reveal-burst{animation-duration:1.22s!important}
@media(max-width:600px){.pack-card-back{width:110px!important;height:151px!important}}

/* v9 — GeoFact expedition chest: cleaner silhouette, premium reveal */
.chest-object{
  width:196px!important;height:150px!important;top:20px!important;
  filter:drop-shadow(0 28px 24px rgba(31,42,45,.30))!important;
}
.chest-body{
  left:0!important;right:0!important;height:82px!important;
  border:3px solid #183e47!important;border-radius:12px 12px 20px 20px!important;
  background:linear-gradient(180deg,#356f73 0%,#285b61 52%,#204b52 100%)!important;
  box-shadow:inset 0 3px rgba(255,255,255,.10),inset 0 -18px 24px rgba(10,34,39,.20),0 0 0 1px rgba(8,35,42,.18)!important;
}
.chest-body::before{
  inset:13px 15px 14px!important;border:1px solid rgba(238,195,103,.30)!important;
  border-radius:8px!important;background:linear-gradient(90deg,transparent 49.5%,rgba(9,39,45,.12) 50%,transparent 50.5%)!important;
}
.chest-body::after{
  content:"GEOFACT"!important;left:50%!important;bottom:17px!important;transform:translateX(-50%)!important;
  color:rgba(250,220,147,.72)!important;font-size:8px!important;font-weight:900!important;letter-spacing:.22em!important;
}
.chest-lid{
  left:0!important;right:0!important;top:5px!important;height:72px!important;
  border:3px solid #183e47!important;border-radius:50px 50px 10px 10px!important;
  background:linear-gradient(180deg,#427d7e 0%,#32686d 56%,#25545a 100%)!important;
  box-shadow:inset 0 4px rgba(255,255,255,.11),inset 0 -12px 16px rgba(11,37,43,.18)!important;
  transform-origin:50% 100%!important;
}
.chest-lid-panel{inset:12px 18px 11px!important;border:1px solid rgba(242,203,116,.34)!important;border-radius:38px 38px 6px 6px!important}
.chest-band{
  top:8px!important;width:18px!important;height:130px!important;border-radius:3px!important;
  background:linear-gradient(90deg,#87621f,#d8a844 35%,#f3d47e 52%,#b27d27 72%,#73501b)!important;
  box-shadow:0 0 0 1px #5d421a,inset 1px 0 rgba(255,255,255,.26)!important;
}
.chest-lock{
  top:70px!important;width:32px!important;height:35px!important;border:2px solid #6e4a16!important;border-radius:7px 7px 10px 10px!important;
  background:linear-gradient(145deg,#f0cc70,#bd8428)!important;box-shadow:0 5px 10px rgba(25,33,32,.28)!important;
}
.chest-panel{top:27px!important;width:50px!important;height:32px!important;border-color:rgba(244,209,129,.36)!important}
.chest-panel::after{content:"◉"!important;color:#e3bd63!important;font-size:17px!important}
.chest-corner{border-color:#d0a34a!important;border-width:3px!important;opacity:.9!important}
.chest-object::after{display:none!important}
/* Keep the card back unmistakably GeoFact: ivory paper + full-colour logo. */
.pack-card-back{
  width:116px!important;height:160px!important;top:54px!important;border-radius:15px!important;
  border:3px solid #173f70!important;
  background:radial-gradient(circle at 50% 43%,#fffef9 0 30%,#fff6df 68%,#efdfb9 100%)!important;
  box-shadow:0 0 0 3px #f3cf70,0 0 0 5px rgba(15,61,145,.22),0 22px 52px rgba(17,45,62,.34)!important;
}
.pack-card-back::before{inset:10px!important;border:1px solid rgba(15,61,145,.20)!important;background:radial-gradient(circle at center,rgba(255,255,255,.75),transparent 70%)!important}
.pack-card-back::after{inset:19px!important;border:1px dashed rgba(34,197,94,.25)!important}
.pack-card-back img{width:96%!important;opacity:1!important;filter:drop-shadow(0 6px 10px rgba(17,54,78,.15))!important}
/* A slower, cleaner opening: anticipation first, impact only at the reveal. */
.chest-stage.opening .chest-object{animation:trunkChargeV9 1.45s cubic-bezier(.32,.02,.18,1) both!important}
.chest-stage.opening .chest-lock{animation:lockDropV5 .46s 1.22s cubic-bezier(.2,.8,.2,1) forwards!important}
.chest-stage.opening .chest-lid{animation:trunkOpenV9 .90s 1.48s cubic-bezier(.12,.84,.16,1) forwards!important}
.chest-stage.opening .chest-light{animation:trunkLightV8 2.35s 1.20s ease-out forwards!important}
.chest-stage.opening .pack-card-back{animation:packRiseV9 2.20s 1.98s cubic-bezier(.10,.84,.15,1) forwards!important}
.chest-stage.opening .reveal-burst{animation-delay:3.92s!important;animation-duration:1.02s!important}
.chest-stage.opening::after{animation-delay:3.94s!important;animation-duration:.92s!important}
@keyframes trunkChargeV9{0%{transform:translateX(-50%) translateY(0)}35%{transform:translateX(-50%) translateY(-2px)}58%{transform:translateX(calc(-50% - 2px)) translateY(-2px) rotate(-.45deg)}70%{transform:translateX(calc(-50% + 3px)) translateY(-2px) rotate(.65deg)}82%{transform:translateX(calc(-50% - 2px)) translateY(-2px) rotate(-.4deg)}100%{transform:translateX(-50%) translateY(-3px)}}
@keyframes trunkOpenV9{0%{transform:none}48%{transform:translateY(-3px) rotateX(-32deg)}100%{transform:translateY(-11px) rotateX(-76deg)}}
@keyframes packRiseV9{0%{opacity:0;transform:translate(-50%,30px) scale(.72) rotateY(0deg)}24%{opacity:1;transform:translate(-50%,-8px) scale(.90) rotateY(0deg)}66%{opacity:1;transform:translate(-50%,-48px) scale(1.02) rotateY(0deg)}78%{opacity:1;transform:translate(-50%,-50px) scale(1.03) rotateY(0deg)}100%{opacity:0;transform:translate(-50%,-54px) scale(1.08) rotateY(90deg)}}
@media(max-width:600px){.chest-object{transform:translateX(-50%) scale(.94)!important}.pack-card-back{width:110px!important;height:152px!important}}

/* Collection continent grouping */
.collection-grid .continent-heading{grid-column:1/-1;margin:18px 0 2px;font-size:1.05rem;color:var(--blue);letter-spacing:.01em}
.collection-grid .continent-heading:first-child{margin-top:2px}


/* Mobile polish: keep the two home shortcuts comfortably inside their cards. */
@media(max-width:600px){
  .mode-choice strong{font-size:19px!important;line-height:1.16;margin-bottom:7px}
  .mode-choice span{font-size:13px;line-height:1.35}
}
@media(max-width:360px){
  .mode-choice strong{font-size:17px!important}
  .mode-choice span{font-size:12px}
}

/* TCG modal: clip all animated/tilted finishes to the rounded card edge. */
.card-modal-content .flag-card{overflow:hidden!important;isolation:isolate}


/* Mobile home shortcuts: compact type, no decorative arrows. */
.mode-practice::after,.mode-game::after{display:none!important;content:none!important}
@media(max-width:600px){
  .mode-choice{padding:18px 14px!important}
  .mode-choice strong{font-size:16px!important;line-height:1.12!important;letter-spacing:-.2px;margin-bottom:7px!important}
  .mode-choice span{font-size:11.5px!important;line-height:1.3!important}
}
@media(max-width:360px){
  .mode-choice{padding:16px 12px!important}
  .mode-choice strong{font-size:15px!important}
  .mode-choice span{font-size:11px!important}
}


/* Home harmony: emoji + title stay together; no orphan punctuation. */
.secondary-modes .mode-choice strong{display:flex!important;align-items:center;gap:6px;white-space:nowrap;padding-right:0!important}
.secondary-modes .mode-choice strong>span{display:inline!important}
.secondary-modes .mode-choice .mode-emoji{flex:0 0 auto;font-size:.95em;line-height:1}
.secondary-modes .mode-choice>span{display:block;text-wrap:pretty}
@media(max-width:600px){
  .secondary-modes .mode-choice strong{font-size:14px!important;letter-spacing:-.35px!important;gap:4px}
  .secondary-modes .mode-choice>span{font-size:10.5px!important}
}
@media(max-width:360px){
  .secondary-modes .mode-choice strong{font-size:13px!important}
}

/* Collection is a real destination, not a quiet text link. */
.collection-link{
  display:block!important;width:min(310px,82%)!important;margin:20px auto 2px!important;
  min-height:52px!important;padding:14px 24px!important;border:1px solid rgba(15,61,145,.14)!important;
  border-radius:16px!important;background:linear-gradient(135deg,#eef7ff,#fff8e8)!important;
  box-shadow:0 10px 24px rgba(15,61,145,.09)!important;color:var(--blue)!important;
  font-size:16px!important;font-weight:900!important;text-decoration:none!important;
}
.collection-link::before{content:"✦";margin-right:9px;color:var(--orange);font-size:13px}
.collection-link:hover{transform:translateY(-1px);box-shadow:0 13px 28px rgba(15,61,145,.13)!important}

/* Daily: modern editorial map texture instead of a generic gradient card. */
.daily-card{
  background:
    radial-gradient(circle at 82% 18%,rgba(116,218,191,.20) 0 2px,transparent 3px),
    radial-gradient(circle at 70% 68%,rgba(255,198,109,.17) 0 2px,transparent 3px),
    linear-gradient(125deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.025) 50% 75%,transparent 75%),
    linear-gradient(135deg,#102f46 0%,#17485a 54%,#246456 100%)!important;
  background-size:auto,auto,42px 42px,auto!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 20px 45px rgba(16,47,70,.20),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
.daily-card::before{
  width:230px!important;height:230px!important;right:-88px!important;top:-112px!important;
  border:1px solid rgba(255,244,216,.18)!important;
  box-shadow:0 0 0 25px rgba(255,244,216,.028),0 0 0 50px rgba(255,244,216,.018)!important;
}
.daily-card::after{
  width:120px!important;height:120px!important;right:18px!important;bottom:-78px!important;
  background:radial-gradient(circle,rgba(242,170,91,.22),rgba(242,170,91,0) 68%)!important;
}


/* Home action cards — final mobile treatment. */
.secondary-modes .mode-choice strong{
  display:block!important;
  white-space:nowrap!important;
  font-size:19px!important;
  line-height:1.15!important;
  letter-spacing:-.45px!important;
  margin-bottom:6px!important;
  padding-right:0!important;
}
.secondary-modes .mode-choice>span{font-size:12.5px!important;line-height:1.3!important}
@media(max-width:600px){
  .secondary-modes .mode-choice{min-height:92px!important;padding:17px 15px!important}
  .secondary-modes .mode-choice strong{font-size:17px!important;letter-spacing:-.5px!important}
  .secondary-modes .mode-choice>span{font-size:11.5px!important}
}
@media(max-width:360px){
  .secondary-modes .mode-choice strong{font-size:15.5px!important;letter-spacing:-.55px!important}
}

/* Collection deserves a stronger invitation without competing with Daily. */
.collection-link{
  width:min(340px,88%)!important;
  min-height:58px!important;
  padding:16px 26px!important;
  font-size:17px!important;
  border-radius:18px!important;
}
.collection-link::before{font-size:15px!important;margin-right:10px!important}

/* Daily redesign: restrained modern panel, no corner circles or decorative blobs. */
.daily-card{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0) 42%),
    linear-gradient(128deg,#12384a 0%,#174b54 58%,#1f5d4f 100%)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:22px!important;
  box-shadow:0 14px 34px rgba(27,58,65,.16),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
.daily-card::before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  inset:0!important;
  width:auto!important;height:auto!important;right:auto!important;top:auto!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background:
    linear-gradient(90deg,transparent 0 72%,rgba(255,255,255,.035) 72% 72.4%,transparent 72.4%),
    linear-gradient(0deg,transparent 0 66%,rgba(255,255,255,.025) 66% 66.4%,transparent 66.4%)!important;
  opacity:.9!important;
}
.daily-card::after{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  left:0!important;right:auto!important;top:0!important;bottom:auto!important;
  width:4px!important;height:100%!important;
  border-radius:0!important;
  background:linear-gradient(180deg,#f4b45f 0%,#e28b54 48%,#61b88b 100%)!important;
  opacity:.95!important;
}
.daily-top{padding-bottom:11px!important;border-bottom:1px solid rgba(255,255,255,.10)!important}
.daily-card>p{margin-top:13px!important;color:rgba(255,252,245,.76)!important}
.daily-button{
  box-shadow:0 8px 20px rgba(5,34,26,.18)!important;
  border-color:rgba(255,255,255,.08)!important;
}


/* Daily final stats: three balanced units, never orphan the value on mobile. */
.daily-final-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:15px 0 17px!important;
  line-height:1.2!important;
}
.daily-final-stats.hidden{display:none!important}
.daily-final-stats span{
  min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;padding:10px 5px;border-radius:13px;background:rgba(255,255,255,.48);
  white-space:nowrap;
}
.daily-final-stats b{font-size:10px;font-weight:750;color:var(--muted)}
.daily-final-stats strong{font-size:17px;color:var(--blue);font-weight:900}
@media(max-width:360px){
  .daily-final-stats{gap:5px!important}
  .daily-final-stats span{padding:9px 3px}
  .daily-final-stats b{font-size:9px}
  .daily-final-stats strong{font-size:16px}
}


/* EN home shortcut: keep the full translated title on one line on mobile. */
@media(max-width:600px){
  html[lang="en"] .secondary-modes .mode-game strong{
    font-size:14px!important;
    letter-spacing:-.65px!important;
  }
}
@media(max-width:360px){
  html[lang="en"] .secondary-modes .mode-game strong{
    font-size:12.5px!important;
    letter-spacing:-.75px!important;
  }
}

/* TCG modal: clip the visual layers to the actual rounded card silhouette.
   Pseudo-element effects no longer extend beyond the card corners. */
.card-modal-content{
  border-radius:28px!important;
  transform-style:flat!important;
}
.card-modal-content .flag-card.tcg-interactive{
  clip-path:inset(0 round 28px)!important;
  -webkit-clip-path:inset(0 round 28px)!important;
  contain:paint!important;
  transform-style:flat!important;
  backface-visibility:hidden!important;
  -webkit-backface-visibility:hidden!important;
}
.card-modal-content .flag-card.tcg-interactive::before,
.card-modal-content .flag-card.tcg-interactive::after{
  border-radius:inherit!important;
}
@media(max-width:600px){
  .card-modal-content,
  .card-modal-content .flag-card.tcg-interactive{
    border-radius:24px!important;
  }
  .card-modal-content .flag-card.tcg-interactive{
    clip-path:inset(0 round 24px)!important;
    -webkit-clip-path:inset(0 round 24px)!important;
  }
}


/* Definitive mobile home fit: English challenge must stay fully inside the card. */
@media(max-width:600px){
  html[lang="en"] .secondary-modes .mode-game{
    padding-left:12px!important;
    padding-right:10px!important;
  }
  html[lang="en"] .secondary-modes .mode-game strong{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    white-space:nowrap!important;
    font-size:12.5px!important;
    line-height:1.1!important;
    letter-spacing:-.7px!important;
  }
}
@media(max-width:380px){
  html[lang="en"] .secondary-modes .mode-game strong{
    font-size:11.5px!important;
    letter-spacing:-.8px!important;
  }
}

/* TCG visual cleanup: effects live INSIDE the card, never in an oversized rectangle. */
.card-modal-content .flag-card.tcg-interactive{
  overflow:hidden!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  contain:paint!important;
  isolation:isolate!important;
}
.card-modal-content .flag-card.tcg-interactive::before{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:inherit!important;
  transform:none!important;
}
.card-modal-content .flag-card.tcg-interactive::after{
  border-radius:inherit!important;
}
/* Gold should read as rich gold, not as a washed-out card. */
.card-modal-content .flag-card.tcg-interactive.gold{
  background:linear-gradient(135deg,#fff0a8 0%,#d8a62f 23%,#ffe995 47%,#bf811c 72%,#f4cf62 100%)!important;
  box-shadow:0 24px 65px rgba(71,47,10,.38),inset 0 0 0 2px rgba(255,247,195,.48)!important;
}
.card-modal-content .flag-card.tcg-interactive.gold::before{
  opacity:.20!important;
  background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.72) 0 4%,rgba(255,224,116,.24) 13%,transparent 31%)!important;
  mix-blend-mode:soft-light!important;
}
.card-modal-content .flag-card.tcg-interactive.gold .card-flag{
  filter:drop-shadow(0 6px 7px rgba(55,38,10,.18)) saturate(1.18) contrast(1.06)!important;
}


/* Warmer, more inviting secondary home modes. */
.secondary-modes .mode-choice{
  background:linear-gradient(145deg,#fff7e8 0%,#f9ead7 100%)!important;
  border-color:rgba(174,112,61,.17)!important;
  box-shadow:0 8px 20px rgba(113,75,42,.055)!important;
}
.secondary-modes .mode-practice{
  background:linear-gradient(145deg,#fff8e9 0%,#f3ead6 100%)!important;
}
.secondary-modes .mode-game{
  background:linear-gradient(145deg,#fff5e5 0%,#f8e5d2 100%)!important;
}
.secondary-modes .mode-choice:hover{
  background:linear-gradient(145deg,#fff9ee 0%,#f7e5cf 100%)!important;
  box-shadow:0 11px 25px rgba(113,75,42,.10)!important;
}

/* Premium rarity sheen: vivid card beneath, responsive light above. */
.card-modal-content .flag-card.tcg-interactive.silver::before,
.card-modal-content .flag-card.tcg-interactive.gold::before,
.card-modal-content .flag-card.tcg-interactive.shiny::before{
  inset:0!important;
  opacity:.48!important;
  mix-blend-mode:screen!important;
  background:
    radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.92) 0 3%,rgba(255,255,255,.42) 9%,transparent 25%),
    linear-gradient(112deg,transparent 25%,rgba(255,255,255,.08) 38%,rgba(255,255,255,.42) 48%,rgba(255,255,255,.08) 58%,transparent 72%)!important;
  background-size:100% 100%,180% 180%!important;
  background-position:center,calc(var(--mx)) calc(var(--my))!important;
}
.card-modal-content .flag-card.tcg-interactive.gold::before{
  opacity:.52!important;
  background:
    radial-gradient(circle at var(--mx) var(--my),rgba(255,255,235,.98) 0 3%,rgba(255,224,112,.52) 10%,transparent 27%),
    linear-gradient(112deg,transparent 25%,rgba(255,244,181,.10) 38%,rgba(255,255,255,.55) 48%,rgba(255,211,85,.12) 58%,transparent 72%)!important;
  background-size:100% 100%,180% 180%!important;
  background-position:center,calc(var(--mx)) calc(var(--my))!important;
}
.card-modal-content .flag-card.tcg-interactive.shiny::before{
  opacity:.62!important;
  background:
    radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.98) 0 3%,rgba(255,255,255,.38) 9%,transparent 24%),
    linear-gradient(115deg,rgba(255,83,175,.24),rgba(80,214,255,.30),rgba(255,226,89,.28),rgba(135,94,255,.26),rgba(255,83,175,.24))!important;
  background-size:100% 100%,190% 190%!important;
  background-position:center,calc(var(--mx)) calc(var(--my))!important;
}
.card-modal-content .flag-card.tcg-interactive.silver .card-flag,
.card-modal-content .flag-card.tcg-interactive.gold .card-flag,
.card-modal-content .flag-card.tcg-interactive.shiny .card-flag{
  position:relative!important;
  z-index:10!important;
  filter:drop-shadow(0 6px 7px rgba(45,34,20,.16)) saturate(1.22) contrast(1.08)!important;
}


/* Home secondary modes share one visual family. */
.secondary-modes .mode-practice,
.secondary-modes .mode-game{
  background:linear-gradient(145deg,#fff7e8 0%,#f6e8d5 100%)!important;
}


/* Mobile: Practice and Challenge titles use the same visual size. */
@media(max-width:600px){
  html[lang="en"] .secondary-modes .mode-practice strong,
  html[lang="en"] .secondary-modes .mode-game strong{
    font-size:12.5px!important;
    line-height:1.1!important;
    letter-spacing:-.7px!important;
  }
}
@media(max-width:380px){
  html[lang="en"] .secondary-modes .mode-practice strong,
  html[lang="en"] .secondary-modes .mode-game strong{
    font-size:11.5px!important;
    letter-spacing:-.8px!important;
  }
}


/* Home secondary actions: same title color; Collection joins the same warm family. */
.secondary-modes .mode-practice strong,
.secondary-modes .mode-game strong{
  color:var(--blue)!important;
}
.collection-link{
  background:linear-gradient(145deg,#fff3df 0%,#f3dfc7 100%)!important;
  border:1px solid rgba(174,112,61,.20)!important;
  color:var(--blue)!important;
  box-shadow:0 8px 20px rgba(113,75,42,.07)!important;
  text-decoration:none!important;
}
.collection-link:hover{
  background:linear-gradient(145deg,#fff6e7 0%,#f1dbc0 100%)!important;
  box-shadow:0 11px 25px rgba(113,75,42,.11)!important;
}


/* Wrong guesses stay visible for the current country. */
.country-shape.country-tried,
.microstate.country-tried{
  fill:#dc4c45!important;
  stroke:#9f302d!important;
}
.country-shape.country-tried:hover{fill:#c93f39!important}
.country-shape.country-tried.country-wrong,
.microstate.country-tried.country-wrong{
  animation:countryWrongTried .42s ease-out;
}
@keyframes countryWrongTried{
  0%{fill:#dc4c45;transform:translateX(0)}
  25%{fill:#ef6a61;transform:translateX(-3px)}
  50%{fill:#c93f39;transform:translateX(3px)}
  75%{fill:#ef6a61;transform:translateX(-2px)}
  100%{fill:#dc4c45;transform:translateX(0)}
}
@media(max-width:600px){
  .distance-feedback{flex-wrap:wrap;gap:5px 9px;line-height:1.35;text-align:center}
}


/* Readable microstates: screen-sized markers with collision-aware placement. */
.microstate-marker-layer{pointer-events:none}
.microstate-marker{
  fill:#f7b955;
  stroke:#173f70;
  stroke-width:var(--marker-stroke,1px);
  vector-effect:non-scaling-stroke;
  pointer-events:all;
  cursor:pointer;
  transition:opacity .18s ease,fill .18s ease;
}
.microstate-marker:hover{fill:#ffd27d}
.microstate-marker.country-tried{fill:#dc4c45!important;stroke:#9f302d!important}
.microstate-marker.country-correct{animation:microMarkerCorrect .78s ease-out}
.microstate-marker.country-wrong{animation:microMarkerWrong .42s ease-out}
@keyframes microMarkerCorrect{0%{fill:#f7b955}35%{fill:#4ade80}100%{fill:#f7b955}}
@keyframes microMarkerWrong{0%{fill:#dc4c45}45%{fill:#ef6a61}100%{fill:#dc4c45}}
