:root{font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#1a1a2e;background:linear-gradient(180deg,#f0f4f8,#e2e8f0);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation}#root{min-height:100vh;min-height:100dvh;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:max(.25rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.25rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));overflow:hidden}button{font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.splash-screen{position:fixed;inset:0;height:100dvh;max-height:100dvh;background:#fff;display:flex;align-items:center;justify-content:center;z-index:2000;overflow:hidden}.splash-screen.splash-screen--info{align-items:flex-start;justify-content:flex-start}.splash-content{display:flex;flex-direction:column;align-items:center;gap:clamp(.75rem,3vh,3rem);padding:clamp(.5rem,2vh,2rem);width:100%;max-width:520px;max-height:100dvh;overflow:hidden}.splash-logo-btn{background:none;border:none;padding:0;cursor:pointer;width:100%;max-width:min(400px,22vh);flex-shrink:0;display:block}.splash-logo-btn:focus-visible{outline:2px solid #002F6C;outline-offset:4px;border-radius:4px}.splash-logo{width:100%;max-width:min(400px,22vh);height:auto;object-fit:contain;flex-shrink:0;display:block}.splash-title{margin:0;font-size:clamp(1rem,4vw,2.25rem);font-weight:700;text-align:center;color:#001f4d;flex-shrink:0}.splash-play-btn{padding:clamp(.6rem,2vh,1.25rem) clamp(1.5rem,4vw,3rem);font-size:clamp(1rem,3.5vw,1.5rem);font-weight:700;color:#fff;background:linear-gradient(135deg,#002f6c,#001f4d);border:none;border-radius:.75rem;cursor:pointer;box-shadow:0 4px 14px #002f6c66;transition:transform .15s ease,box-shadow .15s ease}.splash-play-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #002f6c73}.splash-play-btn:active{transform:translateY(0)}.splash-buttons{display:flex;flex-direction:column;align-items:stretch;gap:clamp(.35rem,1.5vh,.75rem);width:100%;max-width:320px;flex-shrink:0}.splash-play-btn{width:100%}.splash-info-btn{width:100%;padding:clamp(.4rem,1.5vh,.6rem) 1.25rem;font-size:clamp(.85rem,2.2vw,.95rem);font-weight:600;color:#002f6c;background:#fff;border:2px solid #e2e8f0;border-radius:.5rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}.splash-info-btn:hover{border-color:#002f6c;background:#e8f0fe}.splash-info-page{width:100%;max-width:520px;height:100%;max-height:100dvh;display:flex;flex-direction:column;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top,0px) + .5rem);padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px));padding-bottom:max(1rem,env(safe-area-inset-bottom,0px));overflow:hidden;box-sizing:border-box}.splash-info-back{align-self:flex-start;padding:clamp(.5rem,2vh,.75rem) clamp(.75rem,3vw,1rem);min-height:44px;font-size:clamp(.9rem,2.5vw,1rem);font-weight:600;color:#334155;background:#f8fafc;border:2px solid #e2e8f0;border-radius:.5rem;cursor:pointer;margin-bottom:clamp(.75rem,2vh,1rem);flex-shrink:0}.splash-info-back:hover{border-color:#002f6c;background:#e8f0fe;color:#002f6c}.splash-info-page-title{margin:0 0 1rem;font-size:1.5rem;font-weight:700;color:#001f4d}.splash-info-body{flex:1;padding:0 0 1rem;overflow-y:auto;font-size:.95rem;color:#334155}.splash-info-loading,.splash-info-error{margin:0;color:#64748b}.splash-info-markdown{margin:0}.splash-info-markdown h1,.splash-info-markdown h2{font-size:1rem;margin:0 0 .5rem;color:#334155}.splash-info-markdown p{margin:0 0 .5rem}.splash-info-markdown ul{margin:0;padding-left:1.25rem}.splash-info-markdown li{margin-bottom:.25rem}.splash-info-markdown a{color:#002f6c}.app{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:2rem;min-height:0;flex:1;height:100%;overflow:hidden}.app.landing{flex:1;min-height:0;height:100%;max-height:100dvh;gap:clamp(.25rem,1vh,.75rem);padding:clamp(.25rem,1vh,.5rem) .5rem 0;overflow:hidden}.app.landing .landing-header{margin-bottom:0;display:flex;flex-direction:column;align-items:center;gap:clamp(.2rem,.8vh,.5rem);flex-shrink:0}.app.landing .landing-header .landing-header-logo-btn{padding:0;border:none;background:none;cursor:pointer;display:block;line-height:0}.app.landing .landing-header .landing-header-logo-btn .landing-header-logo,.app.landing .landing-header .landing-header-logo{width:100%;max-width:min(400px,18vh);height:auto;object-fit:contain}.app.landing .landing-header .title{font-size:clamp(1rem,4vw,2.25rem)}.app.landing .landing-header .landing-header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center}.landing-scroll{flex:1;min-height:0;overflow-y:auto;width:100%;-webkit-overflow-scrolling:touch}.app.landing .section{padding:clamp(.4rem,1.5vh,.75rem) clamp(.5rem,2vw,1rem);border-radius:.5rem;flex-shrink:0}.app.landing .section-heading{font-size:.7rem;margin:0 0 .35rem;color:#334155}.app.landing .country-grid{gap:.5rem}.app.landing .country-card{padding:.5rem .65rem;min-width:72px;gap:.25rem;border-radius:.5rem}.app.landing .country-flag{font-size:1.75rem}.app.landing .country-name{font-size:.75rem}.app.landing .coming-soon{font-size:.6rem}.app.landing .coming-soon-message{margin:0;padding:.75rem 0;text-align:center;color:#64748b;font-size:.95rem}.app.landing .options-grid{gap:clamp(.2rem,.8vh,.4rem)}.app.landing .options-grid .option-btn:not(.disabled){background:linear-gradient(135deg,#002f6c,#001f4d);color:#fff;border-color:transparent}.app.landing .options-grid .option-btn{padding:clamp(.4rem,1.2vh,.6rem) .9rem;font-size:clamp(.8rem,2.2vw,.9rem);border-radius:.5rem}.app.landing .options-grid .option-btn.branch{padding:clamp(.35rem,1vh,.55rem) .85rem;font-size:.8rem}.app.landing .options-grid .option-btn.option-btn-with-rounds{display:flex;align-items:stretch;padding:0;gap:0;overflow:hidden;background:transparent;border:2px solid #e2e8f0}.app.landing .options-grid .option-btn.option-btn-with-rounds:not(.disabled){border-color:#002f6c}.app.landing .options-grid .option-btn-with-rounds .option-btn-label{flex:1;min-width:0;padding:clamp(.4rem,1.2vh,.6rem) .9rem;text-align:left;border-radius:.5rem 0 0 .5rem;font-weight:600}.app.landing .options-grid .option-btn-with-rounds:not(.disabled) .option-btn-label{background:linear-gradient(135deg,#002f6c,#001f4d);color:#fff}.app.landing .options-grid .option-btn-with-rounds.disabled .option-btn-label{color:#334155;background:#fff}.app.landing .options-grid .option-btn-with-rounds .option-rounds{flex-shrink:0;padding:clamp(.4rem,1.2vh,.6rem) .75rem;background:#fff;color:#002f6c;font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:center;border-radius:0 .5rem .5rem 0;border:2px solid #e2e8f0;border-left:2px solid #e2e8f0}.app.landing .options-grid .option-btn-with-rounds .option-rounds-disabled{background:#94a3b8;color:#fff;font-size:.75rem;font-weight:600;text-align:center;line-height:1.2}.app.landing .options-grid .option-btn.option-btn-with-rounds{border-radius:.5rem}.app.landing .options-grid .option-btn .icon{font-size:1.2rem}.app.landing .words-loading-inline,.app.landing .words-file-hint-inline{margin:.35rem 0 0;font-size:.8rem}.app.landing .options-grid-modules{max-height:min(22rem,45vh);overflow-y:auto;flex-shrink:1;min-height:0}.app.landing .options-grid-modules .option-btn,.app.landing .options-grid-modules .option-btn.option-btn-with-rounds{min-height:clamp(2rem,5vh,2.75rem)}.app.landing .options-grid-modules .option-btn-with-rounds .option-btn-label{min-height:clamp(2rem,5vh,2.75rem);display:flex;align-items:center}.landing-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.landing-header .title{margin:0}.mute-btn{flex-shrink:0;padding:.4rem .6rem;border-radius:.5rem;border:2px solid #e2e8f0;background:#f8fafc;font-size:1.1rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}.mute-btn:hover{border-color:#002f6c;background:#e8f0fe}.mute-btn-small{padding:.4rem .6rem;font-size:1.1rem}.quiz-header-actions{display:flex;align-items:center;gap:.5rem}.result-header{position:absolute;top:1rem;right:1rem}.title{font-size:clamp(2rem,6vw,3rem);font-weight:800;color:#1a1a2e;letter-spacing:-.02em;margin:.5rem 0 0;text-shadow:0 1px 2px rgba(0,0,0,.06)}.title span{color:#002f6c}.section{width:100%;background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 4px 20px #0000000f}.section-heading{font-size:.9rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.06em;margin:0 0 1rem}.country-grid{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.country-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-radius:.75rem;border:2px solid #e2e8f0;background:#f8fafc;min-width:100px;transition:transform .15s ease,box-shadow .15s ease}.country-card.active{border-color:#002f6c;background:#e8f0fe;cursor:pointer}.country-card.active:hover{transform:translateY(-2px);box-shadow:0 8px 24px #002f6c33}.country-card.disabled{opacity:.6;cursor:not-allowed;border-style:dashed}.country-flag{font-size:2.5rem;line-height:1}.country-name{font-size:.85rem;font-weight:600;color:#334155}.country-card.disabled .country-name{color:#94a3b8}.coming-soon{font-size:.7rem;color:#94a3b8;font-weight:500}.coming-soon-inline{font-size:.85em;color:#94a3b8;font-weight:500}.options-grid{display:flex;flex-direction:column;gap:.75rem}.option-btn{width:100%;padding:1rem 1.25rem;border-radius:.75rem;border:2px solid #e2e8f0;background:#fff;font-size:1rem;font-weight:600;color:#334155;text-align:left;transition:border-color .15s ease,background .15s ease,transform .1s ease}.option-btn:hover:not(:disabled){border-color:#001f4d;background:linear-gradient(135deg,#001f4d,#001530);transform:translate(4px)}.option-btn:active:not(:disabled){transform:translate(2px)}.option-btn.disabled,.option-btn:disabled{opacity:.65;cursor:not-allowed;pointer-events:none}.option-btn.branch{display:flex;align-items:center;gap:.75rem}.option-btn.option-btn-with-rounds:hover:not(:disabled) .option-rounds{background:#f8fafc;border-color:#001f4d;color:#002f6c}.option-btn .icon{font-size:1.5rem;opacity:.9}.app .game-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;width:100%;max-width:420px;background:#fff;border-radius:clamp(.5rem,2vw,1rem);padding:clamp(.75rem,2vh,2rem);box-shadow:0 4px 20px #0000000f}.game-view h2{margin:0 0 .5rem;font-size:1.5rem;color:#1a1a2e}.game-view .session-info{color:#64748b;font-size:.95rem;margin-bottom:2rem}.back-btn{padding:.6rem 1.2rem;border-radius:.5rem;border:2px solid #e2e8f0;background:#f8fafc;font-weight:600;color:#475569;transition:border-color .15s ease,background .15s ease}.back-btn:hover{border-color:#002f6c;background:#e8f0fe;color:#002f6c}.placeholder-note{margin-top:1.5rem;padding:1rem;background:#f1f5f9;border-radius:.5rem;font-size:.9rem;color:#64748b}.words-coming-soon{text-align:center;padding:2rem;color:#64748b;font-size:1rem}.game-view-quiz{padding:clamp(.5rem,1.5vh,1.5rem);min-height:0;display:flex;flex-direction:column;overflow:hidden}.game-view-quiz .quiz-header{flex-shrink:0}.quiz-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:clamp(.5rem,1.5vh,1.25rem);flex-wrap:wrap}.quiz-breadcrumb{font-size:clamp(.7rem,2vw,.8rem);color:#64748b}.quiz-score{font-weight:800;font-size:1.1rem}.quiz-score-value{color:#1a1a2e}.quiz-score-max{color:#94a3b8;font-weight:600}.quiz-progress{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;font-size:.9rem;font-weight:700;color:#334155}.quiz-progress-line{white-space:nowrap}.back-btn-small{padding:.4rem .8rem;font-size:.9rem}.back-btn-inline{margin-top:1rem}.quiz-image-wrap{width:100%;max-height:min(280px,35vh);flex-shrink:0;border-radius:.5rem;overflow:hidden;background:#f1f5f9;margin-bottom:clamp(.5rem,1.5vh,1.25rem)}.quiz-image{width:100%;height:auto;max-height:min(280px,35vh);object-fit:contain;display:block;vertical-align:middle}.quiz-prompt{font-size:clamp(.9rem,2.5vw,1rem);font-weight:600;color:#334155;margin:0 0 clamp(.5rem,1.5vh,1rem);flex-shrink:0}.quiz-review-btn{display:block;width:100%;margin-bottom:clamp(.35rem,1vh,.6rem);padding:.35rem .75rem;font-size:.8rem;border:1px solid transparent;border-radius:.375rem;cursor:pointer;flex-shrink:0}.quiz-review-btn--add{color:#fff;background:#16a34a;border-color:#15803d}.quiz-review-btn--add:hover{background:#15803d;border-color:#166534}.quiz-review-btn--remove{color:#fff;background:#dc2626;border-color:#b91c1c}.quiz-review-btn--remove:hover{background:#b91c1c;border-color:#991b1b}.quiz-loading{color:#64748b;margin:0 0 1rem}.words-file-hint{font-size:.9rem;color:#64748b;margin:0 0 1rem;line-height:1.5}.words-loading-inline{font-size:.9rem;color:#64748b;margin:.5rem 0 0}.words-file-hint-inline{font-size:.85rem;color:#dc2626;margin:.5rem 0 0}.options-grid-modules{max-height:16rem;overflow-y:auto}.quiz-words-prompt-wrap{width:100%;padding:clamp(.75rem,2vh,1.5rem);border-radius:.5rem;background:#f8fafc;border:2px solid #e2e8f0;margin-bottom:clamp(.5rem,1.5vh,1.25rem);flex-shrink:0}.quiz-words-prompt-label{font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem}.quiz-words-prompt{font-size:clamp(1.1rem,4vw,1.75rem);font-weight:700;color:#1a1a2e;margin:0;line-height:1.3}.quiz-words-prompt-wrap--compact .quiz-words-prompt-label,.quiz-words-prompt-wrap--compact .quiz-words-prompt{font-size:clamp(.85rem,2.2vw,1rem)}.quiz-words-prompt-wrap--compact .quiz-words-prompt{font-weight:600}.quiz-options{display:flex;flex-direction:column;gap:clamp(.35rem,1vh,.6rem);flex-shrink:1;min-height:0;overflow-y:auto}.quiz-option{width:100%;padding:clamp(.5rem,1.5vh,1rem) 1rem;border-radius:.5rem;border:2px solid #002F6C;background:linear-gradient(135deg,#002f6c,#001f4d);font-size:clamp(.85rem,2.2vw,1rem);font-weight:600;color:#fff;text-align:left;transition:border-color .15s ease,background .15s ease;flex-shrink:0}.quiz-option:hover:not(:disabled){border-color:#001f4d;background:linear-gradient(135deg,#001f4d,#001530)}.quiz-option:disabled{cursor:default}.quiz-option.correct{border-color:#16a34a;background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d;box-shadow:0 0 0 3px #16a34a40;animation:option-correct .4s ease}.quiz-option.incorrect{border-color:#dc2626;background:linear-gradient(135deg,#fef2f2,#fecaca);color:#b91c1c;box-shadow:0 0 0 3px #dc262640;animation:option-incorrect .4s ease}.quiz-option.revealed{border-color:#e2e8f0;background:#f8fafc;color:#94a3b8}@keyframes option-correct{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes option-incorrect{0%{transform:scale(1)}15%{transform:translate(-4px)}30%{transform:translate(4px)}45%{transform:translate(-2px)}to{transform:translate(0)}}.quiz-feedback{margin-top:clamp(.5rem,1vh,1rem);padding:clamp(.5rem,1.5vh,1rem) 1rem;border-radius:.5rem;font-size:clamp(.85rem,2.2vw,1rem);font-weight:700;animation:feedback-pop .35s ease;flex-shrink:0}@keyframes feedback-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.quiz-feedback.correct{background:linear-gradient(135deg,#dcfce7,#86efac);color:#166534;border:2px solid #22c55e;box-shadow:0 4px 14px #22c55e4d}.quiz-feedback.incorrect{background:linear-gradient(135deg,#fef2f2,#fca5a5);color:#b91c1c;border:2px solid #ef4444;box-shadow:0 4px 14px #ef444440}.quiz-next-btn{width:100%;margin-top:clamp(.5rem,1vh,1rem);padding:clamp(.5rem,1.5vh,1rem) 1rem;border-radius:.5rem;border:none;background:#002f6c;color:#fff;font-size:clamp(.9rem,2.2vw,1rem);font-weight:700;transition:background .15s ease,transform .1s ease;flex-shrink:0}.quiz-next-btn:hover{background:#001f4d;transform:translateY(-1px)}.game-view-result{position:relative;text-align:center;padding:clamp(.75rem,2vh,2.5rem) clamp(.75rem,2vw,2rem);min-height:0;display:flex;flex-direction:column;overflow-y:auto}.result-score{font-size:3.5rem;font-weight:800;color:#1a1a2e;line-height:1;margin-bottom:.5rem}.result-score .result-score-frac{color:#94a3b8;font-weight:600}.result-scores{margin-bottom:clamp(.35rem,1vh,.75rem)}.result-score-line{font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700;color:#334155;line-height:1.4}.result-score-line:first-child{color:#64748b;font-weight:600}.result-complete-img{display:block;width:100%;max-width:min(240px,25vh);height:auto;margin:0 auto clamp(.5rem,1.5vh,1rem);object-fit:contain}.result-title{font-size:clamp(1.1rem,3.5vw,1.5rem);color:#334155;margin:0 0 .5rem}.result-message{font-size:1.1rem;color:#64748b;margin:0 0 2rem;max-width:320px;margin-left:auto;margin-right:auto}.result-actions{display:flex;flex-direction:column;gap:clamp(.35rem,1vh,.75rem)}.result-btn{width:100%;padding:clamp(.5rem,1.5vh,1rem) 1rem;border-radius:.5rem;font-size:clamp(.9rem,2.2vw,1rem);font-weight:700;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.result-btn:hover{transform:translateY(-2px)}.result-btn-retry{background:linear-gradient(135deg,#002f6c,#001f4d);color:#fff;box-shadow:0 4px 14px #002f6c66}.result-btn-retry:hover{box-shadow:0 6px 20px #002f6c73}.result-btn-menu{background:#f1f5f9;color:#475569;border:2px solid #e2e8f0}.result-btn-menu:hover{background:#e2e8f0;color:#334155}.words-direction-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;background:#0f172abf;padding:1rem}.words-direction-popup{background:#fff;border-radius:1rem;padding:1.5rem;max-width:22rem;width:100%;box-shadow:0 20px 40px #0003}.words-direction-popup .section-heading{margin-top:0;margin-bottom:1rem;text-align:center}.words-direction-popup .options-grid{display:flex;flex-direction:column;gap:.75rem}.words-direction-popup-back{margin-top:1rem;width:100%}.ladataan-ikkuna{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;pointer-events:auto}.ladataan-ikkuna-backdrop{position:absolute;inset:0;background:#0f172ad9}.ladataan-ikkuna-content{position:relative;z-index:1;text-align:center;padding:2rem}.ladataan-ikkuna-text{font-size:1.5rem;font-weight:700;color:#f8fafc;margin:0;letter-spacing:.02em}
