@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@600;700;800;900&display=swap');
:root{--ink:#173b36;--muted:#638077;--green:#176b50;--green2:#2b9b6d;--cream:#fffaf0;--yellow:#ffd166;--coral:#f27c67;--blue:#74c7dd;--line:#d9e9db;--shadow:0 14px 30px rgba(23,59,54,.12)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Nunito,system-ui,sans-serif;background:#eaf6df url('assets/background.jpg') center/cover fixed;min-height:100vh}button{font:inherit;cursor:pointer;border:0}.app-shell{min-height:100vh;background:linear-gradient(135deg,rgba(244,252,231,.86),rgba(226,244,225,.84))}.topbar{height:76px;padding:14px clamp(18px,5vw,70px);display:flex;align-items:center;justify-content:space-between;background:rgba(255,250,240,.88);border-bottom:1px solid rgba(23,107,80,.1);position:sticky;top:0;z-index:10}.brand-button{background:none;color:var(--green);font-weight:900;font-size:1.15rem;display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--green);color:var(--yellow);font-size:1.5rem;box-shadow:0 4px 0 #0d4f3b}.topbar-actions{display:flex;align-items:center;gap:12px}.player-pill{font-weight:900;color:var(--green)}.ghost-button{padding:10px 15px;border:2px solid var(--line);border-radius:14px;color:var(--green);background:#fff}.app-main{max-width:1200px;margin:auto;padding:clamp(24px,5vw,64px) clamp(16px,5vw,50px)}.screen{animation:rise .35s ease}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Baloo 2',sans-serif;line-height:1.05}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--green2);font-size:.78rem;font-weight:900}.button{padding:14px 22px;border-radius:16px;font-weight:900;transition:.18s;box-shadow:0 5px 0 rgba(0,0,0,.14)}.button:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.14)}.button-primary{background:var(--green);color:white}.button-yellow{background:var(--yellow);color:var(--ink)}.button-coral{background:var(--coral);color:white}.login-layout{min-height:calc(100vh - 60px);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,7vw,90px);align-items:center}.hero-copy h1{font-size:clamp(3.2rem,7vw,6.5rem);color:var(--green);margin:10px 0}.hero-copy h1 span{color:var(--coral)}.hero-copy p{font-size:1.2rem;color:var(--muted);max-width:540px}.hero-orbit{font-size:clamp(6rem,16vw,12rem);text-align:center;filter:drop-shadow(0 14px 0 rgba(23,107,80,.15));transform:rotate(-8deg)}.card{background:rgba(255,250,240,.96);border:1px solid rgba(23,107,80,.1);border-radius:28px;box-shadow:var(--shadow);padding:clamp(24px,4vw,42px)}.login-card h2{font-size:2rem;margin-bottom:8px}.form-row{margin:18px 0}.form-row label{display:block;font-weight:900;margin-bottom:8px}.form-row input,.form-row select{width:100%;padding:15px 16px;border:2px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);font-size:1rem;outline:none}.form-row input:focus{border-color:var(--green2);box-shadow:0 0 0 4px #d6f2dc}.login-card .button{width:100%;margin-top:8px}.menu-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.menu-head h1{font-size:clamp(2.5rem,5vw,4.5rem);margin:7px 0}.menu-head p{color:var(--muted);margin:0}.player-select{background:var(--yellow);padding:12px 16px;border-radius:14px;font-weight:900;color:var(--ink)}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.game-card{position:relative;text-align:left;padding:22px;border-radius:24px;border:2px solid transparent;background:#fffaf0;box-shadow:var(--shadow);transition:.2s}.game-card:hover{transform:translateY(-5px);border-color:var(--blue)}.game-icon{font-size:3rem}.game-number{position:absolute;right:18px;top:16px;color:#b9d1bd;font-weight:900;font-size:1.4rem}.game-card h3{font-size:1.45rem;margin:12px 0 6px}.game-card p{color:var(--muted);font-size:.92rem;margin:0}.game-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;color:var(--green);font-size:.86rem;font-weight:900}.game-screen{max-width:920px;margin:auto}.game-head{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:18px}.game-head h1{font-size:clamp(2rem,5vw,3.8rem);margin:4px 0}.game-head p{color:var(--muted);margin:0}.level-select{padding:11px 13px;border-radius:13px;border:2px solid var(--line);background:#fffaf0;color:var(--green);font-weight:900}.game-board{min-height:400px;display:grid;place-items:center;text-align:center}.question-label{color:var(--green2);font-weight:900}.question-visual{font-family:'Baloo 2';font-size:clamp(4rem,12vw,8rem);font-weight:800;color:var(--green);margin:8px}.choices{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:14px;width:min(650px,100%);margin:20px auto}.choice{min-height:70px;border-radius:18px;background:#fff;border:3px solid var(--blue);color:var(--green);font-size:1.7rem;font-weight:900;box-shadow:0 5px 0 #aedbe4}.choice:hover{background:#effcff}.choice.correct{background:#bcecb8;border-color:#62b75c;color:#286b35}.choice.wrong{background:#ffd2c5;border-color:var(--coral)}.feedback{min-height:28px;font-weight:900;color:var(--green);margin:12px}.game-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}.home-link{color:var(--green);font-weight:900;text-decoration:underline;background:none}.progress{color:var(--muted);font-weight:900}.stat-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.stat{background:#eff7e7;padding:10px 15px;border-radius:14px;font-weight:900}.toast{position:fixed;right:20px;bottom:20px;background:var(--ink);color:white;padding:13px 17px;border-radius:14px;opacity:0;transform:translateY(10px);transition:.25s;z-index:30}.toast.show{opacity:1;transform:none}.small-note{font-size:.85rem;color:var(--muted);margin-top:12px}.shape{display:inline-grid;place-items:center;width:125px;height:125px;background:var(--yellow);margin:10px;border-radius:20px;font-size:5rem}.shape.circle{border-radius:50%}.shape.triangle{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}.clock{font-size:5rem}.fraction{font-size:4rem;font-family:'Baloo 2';color:var(--coral)}@media(max-width:760px){.login-layout{grid-template-columns:1fr}.hero-orbit{display:none}.menu-head,.game-head{align-items:flex-start;flex-direction:column}.choices{grid-template-columns:repeat(2,1fr)}.topbar{height:auto;gap:10px;align-items:flex-start}.topbar-actions{flex-direction:column;align-items:flex-end;gap:5px}.player-pill{font-size:.85rem}}
/* Game 1: kad nombor flip */
.cards-game-screen{max-width:1100px}.number-card-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:8px 0 28px}.number-card-grid{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:18px;max-width:900px;margin:0 auto}.number-card{appearance:none;padding:0;border:0;background:transparent;aspect-ratio:.74;perspective:1000px;transition:transform .22s ease,filter .22s ease;outline:none}.number-card:hover,.number-card.hovered,.number-card:focus-visible{transform:scale(1.1);filter:brightness(1.05);z-index:2}.number-card:focus-visible{outline:4px solid var(--coral);outline-offset:5px;border-radius:18px}.number-card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.75,.3,1)}.number-card.flipped .number-card-inner{transform:rotateY(180deg)}.number-card-face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;border-radius:18px;overflow:hidden;box-shadow:0 7px 0 rgba(23,59,54,.2)}.number-card-back{background:#f3c45e;border:5px solid #fff4cd}.number-card-back img{width:100%;height:100%;object-fit:cover}.number-card-front{background:#fffaf0;border:5px solid var(--blue);color:var(--green);font-family:'Baloo 2',sans-serif;font-size:clamp(2.4rem,5vw,4.3rem);font-weight:800;transform:rotateY(180deg)}.number-card:active{transform:scale(1.04)}@media(max-width:760px){.number-card-grid{grid-template-columns:repeat(4,minmax(62px,1fr));gap:12px}.number-card-face{border-width:3px}.number-card-actions{margin-bottom:22px}}@media(max-width:420px){.number-card-grid{grid-template-columns:repeat(3,minmax(72px,1fr));gap:11px}}
/* Navigation buttons */
.home-link{padding:14px 22px;border-radius:16px;color:var(--ink);font-weight:900;text-decoration:none;background:var(--yellow);box-shadow:0 5px 0 rgba(0,0,0,.14);transition:.18s}.home-link:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.14)}
