body.menu-open{touch-action:none;overflow:hidden}body.menu-open #root{overflow:hidden}body.menu-open .screen{overscroll-behavior:contain;touch-action:none;overflow:hidden!important}#root{z-index:1;background:#000;width:100%;position:relative}.app,.screens{background:#000;width:100%}.screen{flex-direction:column;padding:24px 18px 104px;display:flex;position:relative}body::-webkit-scrollbar{width:0;height:0}.screen.safe-area-full{padding:calc(24px + env(safe-area-inset-top))calc(18px + env(safe-area-inset-right,0px))calc(24px + env(safe-area-inset-bottom))calc(18px + env(safe-area-inset-left,0px))}.screen-body{flex-direction:column;flex:1;justify-content:center;display:flex}.screen-body .card-list{margin:0}.screen[data-screen=flags-quiz],.screen[data-screen=languages-quiz],.screen[data-screen=capitals-quiz],.screen[data-screen=kanji-quiz]{justify-content:flex-start;gap:18px;padding-top:24px;padding-bottom:24px}.flags-entry-screen,.countries-entry-screen,.languages-entry-screen,.capitals-entry-screen,.kanji-entry-screen,.morse-entry-screen{flex-direction:column;display:flex}.screen-header{text-align:center;justify-items:center;gap:8px;margin-bottom:24px;display:grid}.eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}h1{margin:0;font-size:clamp(1.8rem,5vw,2.4rem);font-weight:600}.page-header-title h1{font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit}h2{margin:0;font-size:1.1rem;font-weight:600}p{color:var(--muted);margin:0;line-height:1.5}.subtle{max-width:28rem;margin:0 auto}.status{color:var(--accent-strong);font-size:.92rem}.card-list{justify-items:center;gap:14px;display:grid}.screen>.card-list{margin-top:auto;margin-bottom:auto}.flags-entry-screen .card-list,.countries-entry-screen .card-list,.languages-entry-screen .card-list,.capitals-entry-screen .card-list{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;margin:0;padding-bottom:0;display:flex}.mode-group{flex-direction:column;flex:1;justify-content:center;place-items:center;gap:22px;width:min(520px,100%);margin:0 auto;display:flex;position:relative}.mode-block{justify-items:center;gap:8px;width:100%;display:grid}.mode-hint-slot{width:min(520px,100%);height:18px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;text-align:center;white-space:nowrap;pointer-events:none;justify-content:center;align-items:center;font-size:.72rem;display:flex;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.mode-hint{animation:1.2s forwards toggle-hint-in;position:absolute;left:50%;transform:translate(-50%)}.mode-advanced{justify-items:center;gap:10px;min-height:40px;display:grid}.mode-advanced.is-collapsed{opacity:0;pointer-events:none;visibility:hidden}.index-inline-btn{border-radius:999px;width:auto;min-width:140px;height:40px;padding:0 16px;position:static;transform:none}.mode-start-row{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:3;position:fixed;transform:translate(-50%)}.invert-hint{text-align:center;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;pointer-events:none;z-index:1;justify-items:center;gap:4px;font-size:.76rem;line-height:1.2;display:grid;position:absolute;top:62px;left:50%;transform:translate(-50%)}.countries-entry-screen .invert-hint{margin-top:0;position:absolute;top:56px;bottom:auto;left:50%;transform:translate(-50%)}.capitals-entry-screen .invert-hint{text-transform:none;letter-spacing:.08em}.countries-entry-screen .mode-group{position:relative}.invert-line{opacity:0;transform:translateY(6px)}.invert-hint.is-active{animation:1.8s forwards invert-wrap}.invert-hint.is-active .invert-line{animation:.6s forwards invert-line}.invert-hint.is-active .line-1{animation-delay:0s}.invert-hint.is-active .line-2{animation-delay:.18s}.invert-hint.is-active .line-3{animation-delay:.36s}.invert-line.line-2{letter-spacing:0;font-size:.9rem}.toggle-row{justify-content:center;align-items:center;width:100%;display:flex}.toggle-row.toggle-row-inline{gap:16px}.toggle-row.toggle-row-triplet{gap:18px}.morse-entry-screen .morse-advanced-row{grid-template-columns:repeat(3,minmax(0,1fr));place-items:center;gap:18px;width:min(520px,100%);display:grid}.toggle-stack{justify-items:center;gap:6px;display:grid}.toggle-stack.is-hidden,.toggle-btn.is-hidden{visibility:hidden;pointer-events:none}@keyframes toggle-hint-in{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.toggle-label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.filter-settings-btn{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));width:60px;height:40px;color:var(--text);z-index:4;background:0 0;border:none;border-radius:999px;place-items:center;display:grid;position:fixed;transform:translate(-50%)}.filter-settings-label{letter-spacing:.35em;text-transform:uppercase;padding-left:.35em;font-size:.7rem}.filter-overlay{z-index:7;background:0 0;place-items:center;display:grid;position:fixed;inset:0}.filter-panel{-webkit-backdrop-filter:blur(14px);width:min(320px,90vw);box-shadow:var(--shadow);text-align:center;background:#0f0f0f66;border:none;border-radius:20px;gap:14px;padding:18px 16px;animation:.22s forwards filter-pop-in;display:grid;transform:translateY(12px)scale(.98)}.filter-list{gap:10px;display:grid}.filter-option{color:var(--text);letter-spacing:.16em;text-transform:uppercase;background:0 0;border:1px solid #fff3;border-radius:999px;padding:10px 14px}.filter-option.is-active{background:var(--accent);border-color:var(--accent);color:#0a0a0a;font-weight:600}@keyframes filter-pop-in{0%{transform:translateY(12px)scale(.98)}to{transform:translateY(0)scale(1)}}@keyframes index-hint-fade{0%,75%{opacity:1}to{opacity:0}}@keyframes index-header-in{to{opacity:1;transform:translateY(0)}}@keyframes index-list-in{to{opacity:1;transform:translateY(0)}}.toggle-btn{border:1px solid var(--border);background:var(--bg-alt);width:54px;height:30px;transition:background var(--transition),border-color var(--transition);border-radius:999px;padding:0;position:relative}.toggle-dot{background:var(--text);width:22px;height:22px;transition:transform var(--transition),background var(--transition);border-radius:999px;position:absolute;top:3px;left:3px}.toggle-btn.is-on{background:var(--accent);border-color:var(--accent)}.toggle-btn.is-on .toggle-dot{background:#0a0a0a;transform:translate(24px)}@keyframes invert-line{to{opacity:1;transform:translateY(0)}}@keyframes invert-wrap{0%,70%{opacity:1}to{opacity:0}}.mode-row{flex-wrap:nowrap;justify-content:center;align-items:center;gap:12px;display:flex}.mode-segmented{border:1px solid var(--border);background:0 0;border-radius:999px;grid-template-columns:repeat(3,minmax(0,1fr));width:min(520px,100%);display:grid;overflow:hidden}.mode-segmented.mode-segmented-two{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-segmented.mode-segmented-four{grid-template-columns:repeat(4,minmax(0,1fr))}.mode-segmented.mode-segmented-five{grid-template-columns:repeat(5,minmax(0,1fr))}.mode-segmented.mode-segmented-six{grid-template-columns:repeat(6,minmax(0,1fr))}.mode-segment{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;cursor:pointer;background:0 0;border:none;padding:14px 10px;font-size:.95rem;position:relative}.mode-segment+.mode-segment{border-left:1px solid var(--border)}.mode-segment:active{background:var(--card-hover)}.mode-segment.is-included{box-shadow:inset 0 0 0 1px #ffffff59}.mode-segment.is-active{color:var(--text);background:0 0;box-shadow:inset 0 0 0 1px #fff9}.mode-segment:first-child{border-top-left-radius:999px;border-bottom-left-radius:999px}.mode-segment:last-child{border-top-right-radius:999px;border-bottom-right-radius:999px}.mode-segment.is-disabled,.mode-segment:disabled{opacity:.4;cursor:not-allowed}.mode-arrow{color:var(--muted);background:0 0;border:none;padding:6px 10px;font-size:1.6rem}.mode-section{justify-items:center;gap:12px;width:min(520px,100%);display:grid}.mode-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;width:min(520px,100%);display:grid}.mode-grid .mode-card{width:100%}.mode-row .mode-card,.mode-start-row .mode-card{width:140px}.flags-entry-screen .slider-group,.countries-entry-screen .slider-group,.languages-entry-screen .slider-group,.capitals-entry-screen .slider-group,.kanji-entry-screen .slider-group,.morse-entry-screen .slider-group{width:min(520px,100%);margin-top:8px;padding:0;position:static}.slider-group{text-align:center;justify-items:center;gap:12px;width:min(520px,100%);display:grid}.slider-header{text-align:center;justify-items:center;gap:6px;display:grid}.slider-card{border-radius:var(--radius);box-shadow:none;text-align:center;background:0 0;border:none;width:min(520px,100%);padding:16px;display:grid}.flags-entry-screen .slider-header,.countries-entry-screen .slider-header,.languages-entry-screen .slider-header,.capitals-entry-screen .slider-header,.kanji-entry-screen .slider-header,.morse-entry-screen .slider-header{width:min(520px,100%)}.capitals-entry-screen .mode-group{position:relative}.slider-value{color:var(--text);letter-spacing:.08em;text-transform:uppercase;font-size:1.1rem;font-weight:600}.count-slider{width:100%;accent-color:var(--accent)}.slider-hint{color:var(--muted);font-size:.9rem}.mode-card{border-radius:var(--radius);text-align:center;color:var(--text);box-shadow:none;transition:transform var(--transition),border-color var(--transition),background var(--transition);background:0 0;border:1px solid #ffffff52;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:min(120px,100%);min-height:60px;padding:12px 14px;display:flex}.mode-card>div{justify-items:center;gap:6px;display:grid}.mode-card h2{letter-spacing:.18em;text-transform:uppercase;overflow-wrap:anywhere;word-break:break-word;font-size:clamp(.78rem,3vw,1rem);line-height:1.2}.mode-card.large{padding:16px}.mode-card p{color:var(--muted);margin-top:6px}.mode-card:active{transform:translateY(2px)}.mode-card.is-placeholder{opacity:.55;box-shadow:none}.chip{color:var(--text);border:1px solid #ffffff1f;border-radius:999px;padding:6px 10px;font-size:.78rem}.chip.muted{color:var(--muted)}.quiz-header{justify-content:center;width:100%;margin-top:clamp(2px,.5svh,8px);margin-bottom:0;display:flex}.quiz-header.has-hint{flex-direction:column;align-items:center;gap:6px}.quiz-hint{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-align:center;font-size:.72rem}.progress{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;text-align:center;width:min(520px,100%);font-size:.9rem;position:relative}.progress-stats{letter-spacing:.08em;align-items:center;gap:10px;display:inline-flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.stat-good,.stat-bad{color:var(--muted)}.flag-frame{box-shadow:none;background:0 0;border:none;border-radius:0;place-items:center;padding:0;display:grid}.screen[data-screen=flags-quiz] .flag-frame,.screen[data-screen=languages-quiz] .flag-frame,.screen[data-screen=capitals-quiz] .flag-frame,.screen[data-screen=kanji-quiz] .flag-frame{justify-content:center;align-items:center;margin:8svh 0 0;display:flex}.screen[data-screen=flags-quiz] .flag-frame,.screen[data-screen=flags-type] .flag-frame{align-self:center;width:min(70vw,340px);height:clamp(140px,36vw,200px);margin-left:auto;margin-right:auto}.flags-pin-screen .flag-frame{width:min(100px,32vw);height:clamp(50px,8vw,80px);margin:0 auto}@media (max-width:640px){.screen[data-screen=flags-quiz] .flag-frame,.screen[data-screen=flags-type] .flag-frame{width:min(88vw,360px);height:clamp(140px,48vw,220px)}}.flag-image{object-fit:contain;object-position:center;background-color:#0000;border:none;border-radius:12px;width:100%;height:100%;display:block}.symbol-card{aspect-ratio:4/3;border:1px solid #ffffff14;border-radius:12px;place-items:center;width:min(70vw,340px);font-size:clamp(4rem,18vw,9rem);font-weight:600;line-height:1;display:grid}.symbol-card.is-name{letter-spacing:.12em;text-transform:uppercase;font-size:clamp(1.6rem,5vw,2.8rem)}.capital-card{text-align:center;border:none;border-radius:12px;place-items:center;width:min(70vw,340px);min-height:170px;padding:16px;font-size:clamp(1.3rem,5vw,2rem);font-weight:600;line-height:1.2;display:grid}.screen[data-screen=languages-quiz] .symbol-card,.screen[data-screen=languages-type] .symbol-card,.screen[data-screen=kanji-quiz] .symbol-card,.screen[data-screen=kanji-type] .symbol-card{box-shadow:none;background:0 0;border:none}.options{justify-items:center;gap:12px;margin-top:20px;display:grid}.screen[data-screen=flags-quiz] .options{margin-top:auto;margin-bottom:calc(18px + env(safe-area-inset-bottom))}.screen[data-screen=flags-quiz] .options,.screen[data-screen=languages-quiz] .options,.screen[data-screen=capitals-quiz] .options,.screen[data-screen=kanji-quiz] .options{background:0 0;margin:18px 0 0;padding:0}.option-btn{color:var(--text);text-align:center;transition:border-color var(--transition),background var(--transition),color var(--transition),transform var(--transition);background:0 0;border:1px solid #ffffff52;border-radius:14px;width:min(280px,100%);padding:10px 12px;font-size:.95rem}.option-btn.is-correct{color:#eafff1;background:0 0;border-color:#2ecc71e6}.option-btn.is-wrong{color:#ffecec;background:0 0;border-color:#e74c3ce6}.type-area{justify-items:center;gap:12px;margin-top:20px;display:grid}.screen[data-screen=flags-type] .type-area{margin-top:12px;margin-bottom:calc(18px + env(safe-area-inset-bottom))}.screen[data-screen=flags-type] .flag-frame,.screen[data-screen=languages-type] .flag-frame,.screen[data-screen=capitals-type] .flag-frame,.screen[data-screen=kanji-type] .flag-frame{margin:8svh 0 0}.screen[data-screen=flags-type] .flag-frame-wrap{border-radius:12px;width:min(70vw,340px);margin:5px auto 0;position:relative}@media (max-width:640px){.screen[data-screen=flags-type] .flag-frame-wrap{width:min(88vw,360px)}}.screen[data-screen=flags-type] .flag-frame{width:100%;height:auto;margin:0}.screen[data-screen=flags-type] .flag-image{width:100%;height:auto}.screen[data-screen=flags-type] .type-input{background:0 0}.type-input{background:var(--card);border:1px solid var(--border);color:var(--text);text-align:center;width:min(520px,100%);transition:border-color var(--transition),box-shadow var(--transition);border-radius:14px;padding:14px 16px;font-size:1rem}.type-input:focus{border-color:#ffffff59;outline:none}.screen[data-screen=flags-type] .type-input:focus{box-shadow:none;background:0 0;border-color:#0000}.screen[data-screen=flags-type] .type-input:focus::placeholder{color:#0000}.skip-btn{border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;background:0 0;border-radius:14px;width:min(520px,100%);padding:12px 16px;font-size:.95rem}.skip-btn.skip-btn-overlay{letter-spacing:.18em;-webkit-backdrop-filter:none;background:0 0;border:none;border-radius:0 12px 12px 0;place-items:center;width:50%;margin:0;padding:0;font-size:.85rem;display:grid;position:absolute;inset:0 auto 0 50%}.skip-btn.skip-btn-overlay.is-hinting{-webkit-backdrop-filter:blur(8px);border:1px dotted #ffffffb3;animation:1s forwards skip-overlay-fade}.skip-btn.skip-btn-overlay .skip-hint{text-align:center;width:100%;color:var(--muted);letter-spacing:.22em;text-transform:uppercase;pointer-events:none;font-size:.72rem;animation:1s forwards skip-hint-fade}@keyframes skip-overlay-fade{0%{opacity:.9}60%{opacity:.9}to{opacity:0}}@keyframes skip-hint-fade{0%{opacity:1}60%{opacity:1}to{opacity:0}}.results-card{border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;background:0 0;border:none;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;padding:16px;display:grid}.results-header{text-align:center;justify-items:center;gap:6px;margin-bottom:18px;display:grid}.results-subtitle{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.82rem}.results-meta{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.screen[data-screen=results].is-distance-only{justify-content:center;align-items:center;padding:0}.screen[data-screen=results]{justify-content:flex-start;padding:24px 18px}.results-body{flex-direction:column;flex:1;justify-content:center;display:flex}.results-distance-only{text-align:center;width:100%;height:100%;position:relative}.results-distance-title{text-align:center;justify-items:center;gap:4px;width:min(320px,92%);display:grid;position:absolute;top:24px;left:50%;transform:translate(-50%)}.results-distance-title-text{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.results-distance-subtitle{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.results-distance-value{letter-spacing:.2em;text-transform:uppercase;color:var(--text);font-size:clamp(2rem,8vw,4rem);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.results-distance-only .actions{opacity:0;justify-content:center;align-items:center;gap:12px;margin:0;animation:.24s forwards results-actions-in;display:grid;position:absolute;top:calc(50% + 56px);left:50%;transform:translate(-50%)translateY(6px)}.results-distance-only .actions .primary,.results-distance-only .actions .ghost{width:min(220px,100%)}@keyframes results-actions-in{to{opacity:1;transform:translate(-50%)translateY(0)}}.label{text-transform:uppercase;letter-spacing:.2em;color:var(--muted);font-size:.8rem}.list-card{border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;background:0 0;border:none;margin-top:18px;padding:16px}.incorrect-list{justify-items:center;gap:12px;max-height:36svh;margin-top:12px;display:grid;overflow-y:auto}.incorrect-item{text-align:center;grid-template-columns:1fr;justify-items:center;gap:10px;display:grid}.incorrect-meta{color:var(--muted);font-size:.85rem}.incorrect-item img{object-fit:cover;border:1px solid #ffffff1a;border-radius:8px;width:56px;height:40px}.symbol-inline{border:1px solid #ffffff1a;border-radius:8px;place-items:center;width:56px;height:40px;font-size:1.4rem;line-height:1;display:grid}.incorrect-empty{color:var(--muted);padding:10px 0}.actions{justify-items:center;gap:12px;margin-top:20px;display:grid}.game-settings-btn{top:auto;bottom:calc(18px + env(safe-area-inset-bottom));right:calc(18px + env(safe-area-inset-right));color:var(--text);letter-spacing:.12em;text-transform:uppercase;z-index:4;background:0 0;border:none;padding:0;font-size:1.1rem;position:fixed;left:auto}.game-settings-btn.is-infinite-words,.game-settings-btn.is-cryptography{top:calc(18px + env(safe-area-inset-top));bottom:auto}.game-settings-btn.is-morse{top:calc(18px + env(safe-area-inset-top));bottom:auto;left:calc(18px + env(safe-area-inset-left));right:auto}.ttt-settings-btn{top:calc(18px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right));color:var(--text);letter-spacing:.12em;z-index:4;background:0 0;border:none;padding:0;font-size:1.1rem;position:fixed;bottom:auto;left:auto}.exit-overlay{z-index:6;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.exit-card{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);text-align:center;background:#0f0f0feb;gap:14px;width:min(320px,92vw);padding:18px 20px;display:grid}.exit-actions{justify-items:center;gap:10px;display:grid}.exit-actions .primary,.exit-actions .ghost{width:min(220px,100%);min-height:46px}@media (hover:hover) and (pointer:fine){.game-settings-btn:hover{color:var(--accent)}}.index-footer-btn{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));color:var(--muted);letter-spacing:.3em;text-transform:uppercase;z-index:4;background:0 0;border:none;justify-content:center;align-items:center;height:34px;font-size:.72rem;line-height:1;display:flex;position:fixed;transform:translate(-50%)}.index-footer-btn:active{transform:translate(-50%)translateY(1px)}.index-footer-btn.index-inline-btn{border-radius:999px;min-width:140px;height:40px;padding:0 16px;position:static;bottom:auto;left:auto;transform:none}.index-footer-btn.placeholder{visibility:hidden;pointer-events:none}.text-btn{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;background:0 0;border:none;margin:24px auto 0;padding:6px 10px;font-size:.72rem;text-decoration:none}@media (hover:hover) and (pointer:fine){.text-btn:hover{color:var(--text)}}.primary,.ghost{cursor:pointer;transition:transform var(--transition),border-color var(--transition),background var(--transition),color var(--transition);border:1px solid #0000;border-radius:14px;width:min(420px,100%);padding:14px 16px;font-size:1rem}.primary{background:var(--accent);color:#0a0a0a;font-weight:600}.ghost{border-color:var(--border);color:var(--text);background:0 0}.primary:active,.ghost:active,.skip-btn:active,.option-btn:active{transform:translateY(1px)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}button:focus,button:focus-visible,.mode-card:focus,.mode-card:focus-visible,.option-btn:focus,.option-btn:focus-visible,.primary:focus,.primary:focus-visible,.ghost:focus,.ghost:focus-visible,.skip-btn:focus,.skip-btn:focus-visible{box-shadow:none;outline:none}@media (hover:hover) and (pointer:fine){.mode-card:hover,.option-btn:hover{background:0 0;border-color:#fff9}}button:disabled{cursor:not-allowed;opacity:.6}.app-footer{color:var(--muted);letter-spacing:.08em;text-align:center;padding:18px 12px 36px;font-size:.8rem}@media (min-width:760px){.screen{padding:40px 24px 120px}.screen.safe-area-full{padding:calc(40px + env(safe-area-inset-top))calc(24px + env(safe-area-inset-right,0px))calc(40px + env(safe-area-inset-bottom))calc(24px + env(safe-area-inset-left,0px))}.flag-image,.symbol-card,.capital-card{width:min(50vw,380px)}.bottom-nav{bottom:24px}}
.app-shell{flex-direction:column;width:100%;height:100dvh;min-height:100svh;display:flex;overflow:hidden}:where(.app-shell) .app{background:#000;width:100%;height:100%;min-height:100%}:where(.app-shell) .screens{background:#000;width:100%;height:100%;min-height:100%;position:relative}:where(.app-shell) .screen{opacity:0;pointer-events:none;transition:opacity var(--transition);position:absolute;inset:0;overflow:hidden}:where(.app-shell) .screen.is-active{opacity:1;pointer-events:auto}
