@import "https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&display=swap";:root{--bg-top:#cfeaff;--bg-bottom:#f3fbff;--card:#fff;--card-soft:#fbfdff;--ink:#283452;--ink-soft:#6b7a99;--line:#dfe8f4;--sky:#2fa8e8;--sky-deep:#1c84c4;--sun:#ffc234;--sun-deep:#e8a312;--grass:#3ecf8e;--grass-deep:#27a96e;--coral:#ff6f87;--coral-deep:#e84e69;--violet:#9b7bf5;--violet-deep:#7d5ce0;--correct:#18c47f;--wrong:#ffa552;--radius-lg:26px;--radius-md:18px;--shadow-soft:0 2px 6px #28345214, 0 10px 24px -10px #2834522e;--shadow-pop:0 4px 10px #2834521a, 0 18px 40px -14px #28345247;font-family:"Baloo 2",Segoe UI,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:radial-gradient(60vw 36vh at 85% -6%, #ffd66680, transparent 70%), radial-gradient(48vw 30vh at 8% 4%, #ffffffd9, transparent 70%), radial-gradient(70vw 40vh at 50% 112%, #3ecf8e29, transparent 70%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 58%, #eafaf1 100%);color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:manipulation;background-attachment:fixed;overflow-x:hidden}button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.screen{flex-direction:column;align-items:center;gap:18px;min-height:100%;padding:18px;display:flex}.screen-title{text-align:center;letter-spacing:.3px;text-shadow:0 2px #fffc;margin:6px 0 0;font-size:clamp(26px,5vw,42px);font-weight:800}.top-bar{justify-content:space-between;align-items:center;gap:10px;width:100%;max-width:1100px;display:flex}.big-btn{border-radius:var(--radius-lg);border:2px solid var(--line);min-width:88px;min-height:88px;box-shadow:var(--shadow-soft);background:linear-gradient(#fff 0%,#f2f7fe 100%);border-bottom-width:6px;outline:4px solid #0000;justify-content:center;align-items:center;gap:10px;padding:14px 24px;font-size:22px;font-weight:700;transition:transform .12s,box-shadow .12s,border-color .15s,filter .15s;display:inline-flex}.big-btn:hover{filter:brightness(1.03);transform:translateY(-1px)}.big-btn:active{border-bottom-width:2px;transform:translateY(3px);box-shadow:0 1px 3px #2834521f}.big-btn.is-correct{outline-color:var(--correct);border-color:var(--correct);animation:.45s pop}.big-btn.is-wrong{border-color:var(--wrong);animation:.45s wiggle}.big-btn.is-hinted{outline-color:var(--sun);border-color:var(--sun);animation:.9s infinite pulse}.icon-btn{border:2px solid var(--line);width:60px;height:60px;box-shadow:var(--shadow-soft);background:linear-gradient(#fff,#f0f6fd);border-bottom-width:5px;border-radius:50%;justify-content:center;align-items:center;font-size:27px;transition:transform .1s,border-bottom-width .1s;display:inline-flex}.icon-btn:active{border-bottom-width:2px;transform:translateY(2px)scale(.96)}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes wiggle{0%,to{transform:translate(0)}25%{transform:translate(-10px)}50%{transform:translate(10px)}75%{transform:translate(-6px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes float-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.prompt-card{background:linear-gradient(180deg, var(--card) 0%, var(--card-soft) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);text-align:center;border:2px solid #ffffffe6;align-items:center;gap:18px;max-width:92vw;padding:18px 28px;font-size:26px;font-weight:700;animation:.35s float-in;display:flex}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));justify-items:stretch;gap:18px;width:100%;max-width:980px;animation:.4s float-in;display:grid}.round-dots{background:#ffffffb3;border-radius:999px;gap:8px;padding:8px 14px;display:flex;box-shadow:inset 0 1px 3px #28345214}.round-dot{background:#28345224;border-radius:50%;width:15px;height:15px;transition:background .2s,transform .2s}.round-dot.done{background:var(--sun);box-shadow:0 0 0 2px #ffc23459}.round-dot.current{background:var(--sky);transform:scale(1.25)}.star-counter{color:#9a6b00;box-shadow:var(--shadow-soft);background:linear-gradient(#fff8e6,#ffefc2);border:2px solid #ffdf8e;border-radius:999px;align-items:center;gap:6px;padding:8px 18px;font-size:21px;font-weight:800;display:inline-flex}.door-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;width:100%;max-width:900px;margin-top:8px;display:grid}.door{box-shadow:var(--shadow-pop), inset 0 2px 0 #ffffff73;color:#fff;text-shadow:0 2px 4px #0000002e;border:3px solid #ffffff8c;border-radius:30px;flex-direction:column;align-items:center;gap:12px;padding:38px 20px;font-size:28px;font-weight:800;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.door:after{content:"";pointer-events:none;background:linear-gradient(#ffffff47,#0000);position:absolute;inset:0 0 55%}.door:hover{transform:translateY(-4px)scale(1.01)}.door:active{transform:scale(.97)}.door .door-emoji{filter:drop-shadow(0 4px 6px #0003);font-size:76px}.game-tile{border-radius:var(--radius-md);border:2px solid var(--line);box-shadow:var(--shadow-soft);text-align:center;background:linear-gradient(#fff,#f4f8fe);border-bottom-width:5px;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;font-size:16.5px;font-weight:700;transition:transform .12s,box-shadow .12s;display:flex}.game-tile:hover{box-shadow:var(--shadow-pop);transform:translateY(-3px)}.game-tile:active{transform:scale(.96)}.game-tile .tile-emoji{filter:drop-shadow(0 3px 3px #2834522e);font-size:46px}.game-tile.locked{opacity:.45;filter:grayscale(.8)}.europe-map{filter:drop-shadow(0 10px 24px #1c5c8c40);width:100%;height:auto;max-height:70vh}.map-country{stroke:#ffffffe6;stroke-width:1.6px;stroke-linejoin:round;transition:fill .15s,filter .15s}.map-country.tappable{cursor:pointer}.map-country.tappable:hover{filter:brightness(1.08)}.map-country.dim{fill:#dbe4ee;stroke:#c7d2e0}.map-country.highlight{fill:var(--sun);stroke:#d9970a}.map-country.correct-flash{fill:var(--correct);stroke:#0d9460}.map-country.wrong-flash{fill:var(--wrong)}.memory-grid{gap:14px;width:100%;max-width:860px;display:grid}.memory-card{aspect-ratio:3/4;border-radius:var(--radius-md);perspective:700px;position:relative}.memory-card-inner{transform-style:preserve-3d;transition:transform .38s cubic-bezier(.4,1.4,.6,1);position:absolute;inset:0}.memory-card.flipped .memory-card-inner{transform:rotateY(180deg)}.memory-face{border-radius:var(--radius-md);backface-visibility:hidden;box-shadow:var(--shadow-soft);justify-content:center;align-items:center;font-size:38px;display:flex;position:absolute;inset:0}.memory-face.back{background:radial-gradient(circle at 30% 25%, #ffffff4d, transparent 55%), linear-gradient(140deg, var(--sky) 0%, var(--violet) 100%);color:#fff;text-shadow:0 3px 5px #0003;border:3px solid #ffffff80;font-size:44px}.memory-face.front{border:2px solid var(--line);background:linear-gradient(#fff,#f6f9fe);flex-direction:column;gap:4px;padding:8px;transform:rotateY(180deg)}.memory-card.matched{opacity:.85;animation:.45s pop}.pair-columns{justify-content:center;gap:clamp(20px,8vw,90px);width:100%;max-width:900px;animation:.4s float-in;display:flex}.pair-column{flex-direction:column;flex:1;gap:14px;max-width:360px;display:flex}.pair-item{border-radius:var(--radius-md);border:2px solid var(--line);min-height:88px;box-shadow:var(--shadow-soft);background:linear-gradient(#fff,#f4f8fe);border-bottom-width:5px;outline:4px solid #0000;justify-content:center;align-items:center;gap:10px;padding:10px 14px;font-size:22px;font-weight:700;transition:transform .1s,outline-color .15s,opacity .2s,border-color .15s;display:flex}.pair-item:active{transform:scale(.97)}.pair-item.selected{outline-color:var(--sky);border-color:var(--sky)}.pair-item.matched{opacity:.45;outline-color:var(--correct)}.pair-item.is-wrong{animation:.45s wiggle}.session-end{background:linear-gradient(180deg, var(--card), var(--card-soft));border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);text-align:center;border:2px solid #ffffffe6;flex-direction:column;align-items:center;gap:18px;padding:36px 44px;animation:.35s float-in;display:flex}.session-end .big-stars{letter-spacing:6px;filter:drop-shadow(0 4px 6px #9a6b004d);font-size:56px}.celebration-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#28345280;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.celebration-card{border:3px solid var(--sun);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);background:linear-gradient(#fff,#fff8e8);flex-direction:column;align-items:center;gap:14px;padding:40px 52px;font-size:26px;font-weight:800;animation:.5s pop;display:flex}.celebration-card .celebration-emoji{filter:drop-shadow(0 6px 8px #0000002e);font-size:90px}.passport-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;width:100%;max-width:900px;display:grid}.passport-stamp{border-radius:var(--radius-md);border:2px solid var(--line);box-shadow:var(--shadow-soft);background:linear-gradient(#fff,#f7faff);flex-direction:column;align-items:center;gap:6px;padding:16px 10px;font-weight:700;display:flex}.passport-stamp.empty{opacity:.45;box-shadow:none;background:0 0;border:3px dashed #c4d0e0}.profile-grid{flex-wrap:wrap;justify-content:center;gap:22px;display:flex}.profile-bubble{border-radius:var(--radius-lg);border:2px solid var(--line);width:152px;box-shadow:var(--shadow-soft);background:linear-gradient(#fff,#f2f7fe);border-bottom-width:6px;flex-direction:column;align-items:center;gap:8px;padding:24px 10px;font-size:20px;font-weight:800;transition:transform .14s;display:flex}.profile-bubble:hover{transform:translateY(-4px)}.profile-bubble:active{transform:scale(.95)}.profile-bubble .avatar{filter:drop-shadow(0 4px 5px #2834522e);font-size:58px}.puzzle-stage{flex-direction:column;align-items:center;gap:14px;display:flex}.puzzle-canvas{image-rendering:pixelated;box-shadow:var(--shadow-pop), inset 0 0 0 2px #ffffff0f;touch-action:none;background:#141b30;border:4px solid #36436b;border-radius:14px;max-width:100%}.puzzle-hud{border:2px solid var(--line);box-shadow:var(--shadow-soft);background:linear-gradient(#fff,#f2f7fe);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:8px 22px;font-size:19px;font-weight:700;display:flex}.puzzle-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#fff;text-align:center;background:#141b30c7;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:30px;font-weight:800;display:flex;position:absolute;inset:0}.touch-dpad{grid-template-rows:repeat(3,76px);grid-template-columns:repeat(3,76px);gap:6px;display:grid}.touch-dpad button{border:2px solid var(--line);box-shadow:var(--shadow-soft);color:var(--sky-deep);background:linear-gradient(#fff,#eef4fc);border-bottom-width:5px;border-radius:18px;font-size:30px}.touch-dpad button:active{border-bottom-width:2px;transform:translateY(3px)}.level-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px;width:100%;max-width:900px;display:grid}.level-tile{aspect-ratio:1;border-radius:var(--radius-md);border:2px solid var(--line);box-shadow:var(--shadow-soft);background:linear-gradient(#fff,#f2f7fe);border-bottom-width:5px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:24px;font-weight:800;transition:transform .12s;display:flex}.level-tile:hover{transform:translateY(-2px)}.level-tile.locked{opacity:.4}.level-tile.done{border-color:var(--correct);outline:3px solid #18c47f4d}.departure-board{color:#ffd34d;border-radius:var(--radius-md);letter-spacing:2px;box-shadow:var(--shadow-pop), inset 0 0 24px #ffd34d14;background:linear-gradient(#1a2238,#10162a);border:3px solid #36436b;align-items:center;gap:16px;padding:18px 30px;font-family:Consolas,monospace;font-size:26px;font-weight:700;display:flex}.outline-card{border:2px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);background:linear-gradient(#fff,#f4f8fe);justify-content:center;align-items:center;padding:18px;display:flex}.outline-shape{fill:#8db4e8;stroke:#4a72ab;stroke-width:2px;stroke-linejoin:round}
