:root{--black:#000;--white:#fff;--green:#0f8f38;--soft:rgba(255,255,255,.68);--line:rgba(255,255,255,.22);--shade:rgba(15,143,56,.12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--black);color:var(--white);font-family:Arial,Helvetica,sans-serif}.home,.play{width:min(1100px,100%);margin:auto;padding:42px 18px}.eyebrow,.hint{font:700 11px/1.4 monospace;letter-spacing:.14em;color:var(--green);text-transform:uppercase}.home h1,.play h1{font-size:clamp(44px,10vw,88px);letter-spacing:-.09em;line-height:.82;margin:10px 0 17px}.home h1 i{font-style:normal;color:var(--green)}.intro{margin:0;color:var(--soft);font-size:16px;max-width:560px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:38px}.card{min-height:165px;padding:18px;text-decoration:none;color:var(--white);border:1px solid var(--line);background:var(--black);display:flex;flex-direction:column;transition:transform .15s,border-color .15s,background .15s}.card:hover,.card:focus-visible{transform:translate(-3px,-3px);border-color:var(--green);background:var(--shade);box-shadow:5px 5px 0 var(--green)}.card b{font:11px monospace;color:var(--green)}.card h2{font-size:28px;letter-spacing:-.06em;margin:auto 0 7px}.card span{font:12px monospace;color:var(--soft)}.back{display:inline-block;color:var(--green);font:700 13px monospace;text-decoration:none;margin-bottom:32px}.play header{margin-bottom:22px}.play h1{font-size:clamp(48px,9vw,72px)}.gamebox{max-width:700px;background:var(--black);border:1px solid var(--line);box-shadow:7px 7px 0 var(--green)}.hud{min-height:57px;display:flex;align-items:center;gap:12px;padding:10px 13px;border-bottom:1px solid var(--line)}.hud strong{font-size:24px;color:var(--green);letter-spacing:-.06em}.hud span{font:12px monospace;color:var(--soft);margin-right:auto}.hud button,.game-btn{border:1px solid var(--green);background:var(--green);color:var(--black);padding:10px 13px;font-weight:800;font-size:13px;cursor:pointer}.hint{max-width:700px;margin-top:17px;text-transform:none;letter-spacing:.03em;color:var(--soft)}#stage{position:relative;display:grid;place-items:center;min-height:390px;padding:16px;overflow:hidden}canvas{max-width:100%;height:auto;background:var(--black);touch-action:none}.mobile-controls{max-width:700px;display:flex;gap:8px;justify-content:center;margin:16px 0 0}.mobile-controls[hidden]{display:none}.mobile-controls button{width:64px;height:52px;border:1px solid var(--green);background:var(--black);color:var(--green);font-size:25px;font-weight:700;touch-action:manipulation}.mobile-controls button:active{background:var(--green);color:var(--black)}.memory-grid{display:grid;grid-template-columns:repeat(4,72px);gap:9px}.memory-card{width:72px;height:72px;border:1px solid var(--line);background:var(--black);color:transparent;font-size:30px;cursor:pointer}.memory-card.open,.memory-card.done{background:var(--white);color:var(--black)}.memory-card.done{background:var(--green)}.merge-grid{display:grid;grid-template-columns:repeat(4,72px);gap:7px;padding:7px;background:var(--line)}.tile{height:72px;display:grid;place-items:center;background:var(--black);border:1px solid var(--line);color:var(--white);font-weight:800;font-size:23px}.tile[data-v='2'],.tile[data-v='4'],.tile[data-v='8'],.tile[data-v='16'],.tile[data-v='32'],.tile[data-v='64']{background:var(--white);color:var(--black)}.tile[data-v='128'],.tile[data-v='256'],.tile[data-v='512'],.tile[data-v='1024'],.tile[data-v='2048']{background:var(--green);color:var(--black)}.connect-grid{display:grid;grid-template-columns:repeat(7,52px);gap:6px;padding:8px;background:var(--white)}.connect-cell{width:52px;height:52px;border:0;border-radius:50%;background:var(--black);cursor:pointer}.connect-cell.p1{background:var(--green)}.connect-cell.p2{background:var(--white);border:3px solid var(--green)}.whack-grid{display:grid;grid-template-columns:repeat(3,90px);gap:10px}.hole{height:90px;border:1px solid var(--line);background:var(--black);color:transparent;font-size:34px;cursor:pointer}.hole.active{background:var(--green);color:var(--black)}.reaction-box{width:min(360px,100%);height:280px;border:1px solid var(--line);color:var(--white);font:800 20px Arial,sans-serif;cursor:pointer;background:var(--black)}@media(max-width:500px){.home,.play{padding:30px 14px}.grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:28px}.card{min-height:135px;padding:13px}.card h2{font-size:21px}.card span{font-size:10px}.gamebox{box-shadow:4px 4px 0 var(--green)}#stage{min-height:330px;padding:12px}.hud{gap:8px}.hud span{font-size:10px}.hud button{padding:9px 10px}.memory-grid{grid-template-columns:repeat(4,62px)}.memory-card{width:62px;height:62px}.merge-grid{grid-template-columns:repeat(4,58px)}.tile{height:58px;font-size:18px}.connect-grid{grid-template-columns:repeat(7,38px);gap:4px}.connect-cell{width:38px;height:38px}.whack-grid{grid-template-columns:repeat(3,78px)}.hole{height:78px}.mobile-controls{margin-top:12px}.mobile-controls button{height:58px;flex:1;max-width:74px;font-size:27px}}.tic-grid{display:grid;grid-template-columns:repeat(3,86px);gap:7px;padding:7px;background:var(--white)}.tic-cell{width:86px;height:86px;border:0;background:var(--black);color:var(--white);font-size:52px;font-weight:800;cursor:pointer}.tic-cell.p1{color:var(--green)}.tic-cell.p2{color:var(--white)}@media(max-width:500px){.tic-grid{grid-template-columns:repeat(3,76px)}.tic-cell{width:76px;height:76px}}.home{position:relative}.home:before{content:"";display:block;width:46px;height:4px;background:var(--green);margin-bottom:18px}.grid .card{position:relative;overflow:hidden}.grid .card:after{content:"✦";position:absolute;right:14px;top:10px;color:var(--green);font-size:18px;opacity:.55}.grid .card:hover:after{transform:rotate(90deg)}.simon-wrap,.rps-wrap,.math-wrap{width:min(360px,100%);display:grid;gap:14px;text-align:center}.simon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.simon-pad{aspect-ratio:1;border:2px solid var(--green);background:var(--black);cursor:pointer}.simon-pad.active{background:var(--green);box-shadow:0 0 24px var(--green)}.simon-start{justify-self:center}.rps-wrap{grid-template-columns:repeat(3,1fr)}.rps-result{grid-column:1/-1;min-height:48px;margin:0;display:grid;place-items:center;color:var(--soft);font:700 13px monospace}.rps-choice,.math-option{min-height:78px;border:1px solid var(--green);background:var(--black);color:var(--white);font:800 14px Arial,sans-serif;cursor:pointer}.rps-choice:active,.math-option:active{background:var(--green);color:var(--black)}.math-question{font-size:38px;letter-spacing:-.07em;color:var(--green)}.math-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.math-option{font-size:25px}.simon{border-color:var(--green)}@media(max-width:500px){.simon-pad{min-height:115px}.rps-choice{min-height:70px;font-size:12px}.math-question{font-size:34px}}@keyframes arcade-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes arcade-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes arcade-glow{0%,100%{box-shadow:0 0 0 rgba(15,143,56,0)}50%{box-shadow:0 0 22px rgba(15,143,56,.45)}}@keyframes arcade-scan{from{transform:translateX(-120%)}to{transform:translateX(260%)}}.home h1,.play header{animation:arcade-rise .55s ease-out both}.home .intro,.play .intro{animation:arcade-rise .6s .08s ease-out both}.grid .card{animation:arcade-rise .45s ease-out both}.grid .card:nth-child(2n){animation-delay:.05s}.grid .card:nth-child(3n){animation-delay:.1s}.grid .card:before{content:'';position:absolute;top:0;left:0;width:30%;height:1px;background:var(--green);transform:translateX(-120%)}.grid .card:hover:before,.grid .card:focus-visible:before{animation:arcade-scan .55s ease-out}.gamebox{animation:arcade-rise .45s .12s ease-out both}.hud strong{animation:arcade-glow 2.4s ease-in-out infinite}.mobile-controls button,.hud button,.game-btn,.rps-choice,.math-option{transition:transform .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}.mobile-controls button:active,.hud button:active,.game-btn:active,.rps-choice:active,.math-option:active{transform:scale(.92)}#stage>div,#stage>canvas{animation:arcade-rise .35s ease-out both}.memory-card.open,.memory-card.done,.connect-cell.p1,.connect-cell.p2,.tic-cell.p1,.tic-cell.p2{animation:arcade-pop .23s ease-out}.hole.active,.simon-pad.active{animation:arcade-pop .26s ease-out,arcade-glow .55s ease-out}.math-option:hover,.rps-choice:hover{box-shadow:inset 0 0 0 2px var(--green)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}} .records{max-width:700px;margin-top:24px;padding:18px;border:1px solid var(--line);background:var(--black)}.record-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:10px}.record-head h2{margin:0;color:var(--green);font-size:24px;letter-spacing:-.05em}.record-head span,.records h3,.name-label,#record-note{font:700 11px monospace;letter-spacing:.06em;color:var(--soft);text-transform:uppercase}.name-label{display:block;margin-top:15px}.name-label input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);background:var(--black);color:var(--white);font:700 16px monospace}.name-label input:focus{outline:1px solid var(--green);border-color:var(--green)}#save-score{width:100%;margin-top:10px}#record-note{min-height:16px;text-transform:none;letter-spacing:0;margin:10px 0}.record-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--line);padding-top:10px}.records h3{color:var(--green);margin:0 0 8px}.records ol{margin:0;padding-left:22px}.records li{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.08);font:12px monospace}.records li span{color:var(--green);white-space:nowrap}@media(max-width:500px){.record-columns{grid-template-columns:1fr}.records{padding:14px}} [data-theme=light]{--black:#f5f7f4;--white:#101612;--green:#0f8f38;--soft:rgba(16,22,18,.72);--line:rgba(16,22,18,.24);--shade:rgba(8,122,55,.12)}[data-theme=light] body{background:var(--black)}.theme-toggle{position:fixed;z-index:20;top:14px;right:14px;width:46px;height:46px;border:1px solid var(--green);border-radius:50%;background:var(--black);color:var(--green);font-size:21px;cursor:pointer;box-shadow:3px 3px 0 var(--green);transition:transform .15s ease,background .15s ease,color .15s ease}.theme-toggle:active{transform:scale(.9)}[data-theme=light] .theme-toggle{box-shadow:3px 3px 0 var(--white)}[data-theme=light] .memory-card.open,[data-theme=light] .memory-card.done{color:var(--black)}@media(max-width:500px){.theme-toggle{top:10px;right:10px;width:42px;height:42px}} .home-ranking{display:flex;justify-content:space-between;align-items:center;gap:24px;max-width:700px;margin-top:28px;padding:16px 18px;border:1px solid var(--line);background:var(--black);box-shadow:5px 5px 0 var(--green);animation:arcade-rise .55s .14s ease-out both}.home-ranking .eyebrow{margin:0 0 5px}.home-ranking h2{margin:0;color:var(--green);font-size:31px;letter-spacing:-.07em}.home-ranking ol{width:min(360px,100%);margin:0;padding:0;list-style:none}.home-ranking li{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font:700 12px monospace}.home-ranking li:last-child{border-bottom:0}.home-ranking li:only-child{display:block;color:var(--soft)}.home-ranking em{font-style:normal;color:var(--green)}.home-ranking li span{color:var(--green)}@media(max-width:600px){.home-ranking{display:block;margin-top:22px;padding:14px}.home-ranking ol{margin-top:13px;width:100%}} .maze{border-color:var(--green)}.coupon-win{position:absolute;max-width:300px;padding:18px;text-align:center;border:2px solid var(--green);background:var(--black);box-shadow:6px 6px 0 var(--green);animation:arcade-rise .35s ease-out,arcade-glow 1.2s ease-in-out infinite}.coupon-win small,.coupon-win span{display:block;font:700 11px monospace;color:var(--soft)}.coupon-win strong{display:block;margin:9px 0;color:var(--green);font-size:32px;letter-spacing:-.07em} @keyframes game-breathe{0%,100%{filter:brightness(1);transform:translateY(0)}50%{filter:brightness(1.16);transform:translateY(-2px)}}@keyframes game-scan{from{background-position:0 0}to{background-position:0 32px}}@keyframes burst-out{from{opacity:1;transform:translate(-50%,-50%) scale(.2)}to{opacity:0;transform:translate(-50%,-50%) scale(3.2)}}@keyframes hud-pop{0%,100%{transform:scale(1)}45%{transform:scale(1.04)}}#stage{isolation:isolate}#stage canvas{border:1px solid var(--line);box-shadow:inset 0 0 0 1px var(--black),0 0 18px rgba(15,143,56,.14);transition:filter .2s ease,transform .2s ease}.stage-impact canvas{filter:brightness(1.25);transform:scale(1.012)}.tap-burst{position:absolute;z-index:5;width:18px;height:18px;border:2px solid var(--green);border-radius:50%;pointer-events:none;animation:burst-out .42s ease-out forwards}.hud-update{animation:hud-pop .25s ease-out}.memory-card,.connect-cell,.tic-cell,.simon-pad,.rps-choice,.math-option,.hole{transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.memory-card:active,.connect-cell:active,.tic-cell:active,.simon-pad:active,.rps-choice:active,.math-option:active,.hole:active{transform:scale(.92);filter:brightness(1.25);box-shadow:0 0 18px var(--green)}[data-game=snake] canvas,[data-game=pong] canvas,[data-game=breakout] canvas,[data-game=dodge] canvas,[data-game=maze] canvas{animation:game-breathe 2.8s ease-in-out infinite}[data-game=snake] #stage:before,[data-game=pong] #stage:before,[data-game=breakout] #stage:before,[data-game=dodge] #stage:before,[data-game=maze] #stage:before{content:"";position:absolute;inset:16px;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 14px,rgba(15,143,56,.07) 15px 16px);animation:game-scan 1.8s linear infinite}.memory-grid,.merge-grid,.connect-grid,.tic-grid,.simon-grid,.rps-wrap,.math-wrap,.whack-grid{animation:arcade-rise .35s ease-out,arcade-glow 3s ease-in-out infinite}.memory-card.open,.memory-card.done{box-shadow:0 0 14px rgba(15,143,56,.55)}.tile{transition:transform .16s ease,background .16s ease}.tile:not(:empty){animation:arcade-pop .22s ease-out}.connect-cell.p1,.connect-cell.p2,.tic-cell.p1,.tic-cell.p2{box-shadow:0 0 14px rgba(15,143,56,.5)}.rps-result{min-height:58px;border:1px solid var(--line);padding:10px;animation:arcade-glow 2.2s ease-in-out infinite}.math-question{text-shadow:3px 3px 0 var(--black)}.coupon-win{z-index:4}@media(prefers-reduced-motion:reduce){#stage canvas,.memory-grid,.merge-grid,.connect-grid,.tic-grid,.simon-grid,.rps-wrap,.math-wrap,.whack-grid{animation:none!important}} .brand-logo{display:block;width:min(230px,52vw);height:auto;margin:0 0 18px}.brand-logo-small{width:min(150px,40vw);margin:0 0 14px}body{font-family:Inter,Arial,Helvetica,sans-serif}.home,.play{padding-top:34px}.home:before{display:none}.card{min-height:152px;border-color:var(--line);box-shadow:none!important;background:var(--black)}.card:hover,.card:focus-visible{transform:translateY(-2px);background:var(--shade);box-shadow:none!important}.card:after{display:none}.card h2{font-size:25px}.gamebox,.home-ranking,.records{box-shadow:none;border-color:var(--line)}.hud{border-bottom-color:var(--line)}.hud button,.game-btn,.rps-choice,.math-option,.mobile-controls button{background:transparent;color:var(--white);border:1px solid var(--green);box-shadow:none}.hud button:active,.game-btn:active,.rps-choice:active,.math-option:active,.mobile-controls button:active{background:var(--green);color:var(--black)}.theme-toggle{box-shadow:none;border-radius:0}.theme-toggle:active{background:var(--green);color:var(--black)}.game-card{box-shadow:none}.coupon-win{box-shadow:none}.home-ranking{border-left:3px solid var(--green)}@media(max-width:500px){.brand-logo{width:180px;margin-bottom:14px}.home,.play{padding-top:26px}.card{min-height:130px}.card h2{font-size:21px}} .home>.brand-logo{width:132px;margin:4px auto 14px}.home>.eyebrow{text-align:center;font-size:10px;letter-spacing:.18em}.home>h1{text-align:center;font-size:clamp(42px,12vw,72px);line-height:.86;margin:12px auto 16px;max-width:520px}.home>.intro{text-align:center;margin-inline:auto;max-width:420px;font-size:15px;line-height:1.45}.home-ranking{margin:26px auto 0;max-width:560px}.home .grid{margin-top:30px}.home .card{min-height:144px;padding:16px}.home .card h2{font-size:23px}.home .card span{line-height:1.35}.home .card b{font-size:10px}@media(max-width:640px){.home{padding:24px 20px 34px}.home>.brand-logo{width:116px;margin:0 auto 12px}.home>h1{font-size:47px;margin:11px auto 15px}.home>.intro{font-size:15px}.home-ranking{margin-top:24px}.home .grid{gap:10px;margin-top:26px}.home .card{min-height:142px;padding:14px}.home .card h2{font-size:22px}.home .card span{font-size:10px}.home-ranking h2{font-size:28px}} .platformer{border-color:var(--green)}[data-game=platformer] canvas{animation:game-breathe 2.8s ease-in-out infinite}[data-game=platformer] #stage:before{content:"";position:absolute;inset:16px;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 14px,rgba(15,143,56,.07) 15px 16px);animation:game-scan 1.8s linear infinite}