:root{--ink:#232752;--accent:#6258df;--soft:#f4f3ff;--line:#dfdff0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Nunito','Noto Sans KR',system-ui,sans-serif!important;color:var(--ink)}.portal{margin:0!important;min-height:100vh;background:radial-gradient(circle at 8% 12%,#e4defd 0,transparent 35%),radial-gradient(circle at 96% 20%,#d4f4fb 0,transparent 27%),#f6f7ff;overflow-x:hidden}.site-shell{max-width:1170px;margin:auto;padding:0 26px}.site-nav{height:98px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:14px;color:#292d5d;font-size:22px;font-weight:900;letter-spacing:1.2px}.brand b{color:#655ce6}.brand-ball{width:30px;height:30px;border:3px solid #36345c;border-radius:50%;display:inline-block;background:linear-gradient(#ff6e7b 0 43%,#34365c 43% 56%,white 56%);position:relative;box-shadow:0 4px 0 #d5d8f3}.brand-ball:after{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:white;border:2px solid #35345b;left:8px;top:8px}.nav-small{color:#9a9cbb;font-size:12px;letter-spacing:2px;font-weight:800}.hero-banner{border-radius:32px;min-height:368px;overflow:hidden;position:relative;background:linear-gradient(110deg,#6552e0 0%,#8071f0 58%,#9ca5fd 100%);box-shadow:0 24px 38px #7261d126;display:grid;grid-template-columns:1fr 1fr}.hero-banner:after{content:'';position:absolute;width:680px;height:680px;border:2px solid #ffffff22;border-radius:50%;top:-185px;right:-100px}.hero-copy{padding:55px 0 50px 65px;z-index:2}.eyebrow{font-size:12px;color:#eeebff;font-weight:900;letter-spacing:2.4px}.hero-copy h1{color:white;font-size:clamp(35px,4.25vw,56px);line-height:1.24;letter-spacing:-2px;margin:16px 0}.hero-copy h1 span{color:#fff0a4}.hero-copy p{color:#f1efff;font-size:15px;line-height:1.9;margin:0 0 23px}.hero-cta{display:inline-flex;gap:26px;text-decoration:none;background:#ffe576;color:#453b83;padding:13px 22px;border-radius:12px;box-shadow:0 5px 0 #dfba58;font-weight:900;transition:transform .15s}.hero-cta:hover{transform:translateY(-3px)}.hero-pokemon{position:relative;min-height:350px;z-index:1}.hero-chu,.hero-char{position:absolute;object-fit:contain;filter:drop-shadow(4px 15px 4px #39398742);animation:bob 3.5s ease-in-out infinite alternate}.hero-chu{height:290px;width:290px;right:70px;top:24px;transform:rotate(-10deg)}.hero-char{height:155px;width:155px;right:0;bottom:5px;animation-delay:1s}.hero-orbit{position:absolute;border:2px solid #ffffff24;border-radius:50%;width:350px;height:350px;right:30px;top:12px}.orbit-2{width:235px;height:235px;right:87px;top:68px}.hero-star{position:absolute;color:#fff7b5;font-size:45px}.s1{left:2%;top:19%}.s2{right:12%;top:10%}@keyframes bob{from{translate:0 -6px}to{translate:0 12px}}.game-section{padding:66px 0 78px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.section-heading h2{font-size:32px;letter-spacing:-1.3px;margin:9px 0 0}.section-heading p{color:#8c8fae;font-size:13px;margin:0 0 8px}.eyebrow.purple{color:#7d72de}.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:21px}.arcade-card{display:flex;flex-direction:column;text-decoration:none;overflow:hidden;background:white;border:1px solid #e6e5f4;border-radius:22px;box-shadow:0 12px 28px #40426b0d;transition:transform .2s,box-shadow .2s;color:inherit}.arcade-card[href]:hover{transform:translateY(-7px);box-shadow:0 24px 35px #49447e20}.card-picture{height:205px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center}.pink .card-picture{background:radial-gradient(circle at 50% 70%,#ffe8ee 0,#ffd6e6 60%,#ffc8dc 100%)}.blue .card-picture{background:radial-gradient(circle at 50% 70%,#ddf3ff 0,#c3e7fd 70%,#a9d9fc 100%)}.mint .card-picture{background:radial-gradient(circle at 50% 70%,#e6fff0 0,#caf8e5 70%,#b6efdb 100%)}.soon .card-picture{background:linear-gradient(130deg,#ececf8,#e4e3f4)}.card-picture:after{content:'';width:230px;height:230px;position:absolute;border:2px solid #ffffff79;border-radius:50%;top:38px;left:calc(50% - 115px)}.card-picture img{width:185px;height:185px;object-fit:contain;z-index:1;filter:drop-shadow(0 11px 3px #53637c29);animation:bob 3s ease-in-out infinite alternate}.card-index{position:absolute;left:16px;top:17px;z-index:2;background:#ffffffb8;border-radius:7px;font-weight:900;letter-spacing:.8px;padding:6px 9px;font-size:10px}.card-flash{position:absolute;bottom:13px;right:13px;z-index:2;border-radius:7px;background:#ffffffad;color:#54527f;padding:6px 8px;font-size:11px;font-weight:900}.card-body{padding:19px 19px 22px;flex:1;display:flex;flex-direction:column}.mini-tag{color:#7d73d8;font-size:11px;font-weight:900}.card-body h3{font-size:19px;letter-spacing:-.5px;margin:9px 0 10px}.card-body p{font-size:12px;color:#797e9b;line-height:1.7;flex:1;margin:0 0 18px}.card-link{display:flex;align-items:center;justify-content:space-between;color:#615add;font-size:13px;font-weight:900}.card-link b{font-size:19px}.card-link.disabled{color:#aaaac4}.silhouette{z-index:2;color:#a19db9;font-size:110px;font-weight:900;text-shadow:0 9px 2px #a19db92a}footer{padding:25px 0 55px;text-align:center;color:#8e91b0;border-top:1px solid #dedff0;font-size:12px;font-weight:800}footer p{font-size:10px;font-weight:500;margin:8px}
/* Shared game skin */
body.game-body{margin:0!important;min-height:100vh;background:radial-gradient(circle at 18% 20%,#e8defe 0,transparent 34%),radial-gradient(circle at 87% 81%,#caeefd 0,transparent 40%),#f6f6ff!important;overflow:auto!important;display:flex;align-items:center;justify-content:center;padding:25px 12px}.game-body .game-container{width:100%;max-width:560px!important;background:#fff!important;border-radius:24px!important;border:1px solid #e7e5fa;box-shadow:0 18px 45px #55518f23!important;padding:24px!important;overflow:hidden;position:relative}.game-body .game-container:before{content:'';position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,#ff8eb2,#ffd77b,#83dccf,#a99cfc)}.game-body .nav-bar{margin:10px 0 18px!important}.game-body .btn-back{color:#7876a6!important;font-size:13px!important;font-weight:800!important}.game-body .btn-back:hover{color:#6159d5!important}.game-body .btn-mute{font-size:12px!important;padding:7px 10px!important;background:#f0effb!important;border:1px solid #e5e3f9!important;border-radius:10px;color:#6964a2!important}.game-name{font-size:clamp(22px,4vw,27px);font-weight:900;letter-spacing:-1px;text-align:center;color:#353365;margin:8px 0 3px}.game-caption{font-size:12px;color:#8588ac;text-align:center;margin:0 0 18px}.game-body .status-bar{background:#f7f7ff;padding:14px 9px!important;border:1px solid #e9e8f8!important;border-radius:14px;margin-bottom:18px!important}.game-body .info-label{font-size:10px!important;color:#9899b6!important;letter-spacing:.4px!important}.game-body .info-value{font-size:24px!important;color:#443f7a!important}.game-body .timer-value{color:#f16c91!important}.game-body .board{gap:8px!important;padding:2px!important}.game-body .tile{border-radius:13px!important;overflow:hidden;border:1px solid #ffffffa3!important;box-shadow:0 4px 0 var(--shadow,#a7a8cf)!important;transition:transform .12s,filter .15s!important}.game-body .tile:hover:not(.is-empty):not(.is-animating){filter:brightness(1.09)}.game-body .tile .poke-mon{position:absolute;width:65%;height:65%;object-fit:contain;right:0;bottom:-5%;pointer-events:none;image-rendering:auto;filter:drop-shadow(0 2px 1px #17134222);animation:pokemon-wiggle 1.3s ease-in-out infinite alternate}.game-body[data-game="numbers"] .tile{font-size:clamp(15px,5vw,28px)!important;align-items:flex-start!important;justify-content:flex-start!important;padding:10px!important;color:#343654!important;text-shadow:0 1px 1px #ffffff9c}.game-body[data-game="numbers"] .tile .poke-mon{width:60%;height:60%;right:2%;bottom:0;opacity:.86}.game-body[data-game="types"] .tile .poke-mon{width:74%;height:74%;left:13%;bottom:10%;right:auto;filter:drop-shadow(0 3px 1px #14134438)}.game-body[data-game="sync"] .tile .poke-mon{width:74%;height:74%;left:13%;bottom:11%;right:auto}.game-body[data-game="sync"] .tile.state-0{background:#f0f1fc!important}.game-body[data-game="sync"] .tile.state-1{background:linear-gradient(135deg,#fff5af,#ffd95b)!important}.game-body[data-game="sync"] .tile.state-2{background:linear-gradient(135deg,#c7f5ff,#64b9fb)!important}.game-body .tile.is-selected{outline:4px solid #6355eb!important;outline-offset:-3px!important;z-index:2}.game-body .tile.is-fever{border:2px solid #f15aa9!important}.game-body .overlay{background:#fffffff5!important;border-radius:22px!important;backdrop-filter:blur(9px);padding:20px!important}.game-body .overlay h2{font-size:28px!important;letter-spacing:-1px;color:#444080!important}.game-body .overlay p{font-size:13px!important;line-height:1.9!important;color:#787c9d!important;max-width:380px}.game-body .btn-action{border-radius:13px!important;padding:13px 29px!important;background:linear-gradient(120deg,#7261e7,#9683ec)!important;box-shadow:0 5px 0 #5548b2!important;font-size:15px!important}.game-body .btn-action:hover{filter:brightness(1.08)}.game-body .board{position:relative}.game-body .target-badge{font-size:12px!important}.game-body .target-badge.yellow{background:#fff6c2!important}.game-body .target-badge.blue{background:#d2efff!important}.help-strip{font-size:11px;line-height:1.7;text-align:center;color:#9090af;margin:17px 0 0}.overlay-pokemon{display:block;width:104px;height:104px;object-fit:contain;margin:0 auto 5px;animation:bob 1.8s ease-in-out infinite alternate}@keyframes pokemon-wiggle{from{translate:0 -2px;rotate:-3deg}to{translate:0 2px;rotate:3deg}}@media(max-width:1000px){.game-grid{grid-template-columns:repeat(2,1fr)}.site-shell{max-width:740px}.hero-copy{padding-left:35px}.hero-chu{right:5px;width:250px;height:250px}.hero-char{right:0}}@media(max-width:550px){.site-shell{padding:0 15px}.site-nav{height:75px}.brand{font-size:17px}.nav-small{font-size:8px;letter-spacing:.5px}.hero-banner{grid-template-columns:1fr;min-height:410px;border-radius:23px}.hero-copy{padding:30px 22px 0}.hero-copy h1{font-size:34px}.hero-copy p{font-size:12px}.hero-cta{padding:9px 15px;font-size:12px}.hero-pokemon{position:absolute;right:0;bottom:0;height:205px;width:210px;min-height:0}.hero-chu{height:165px;width:165px;right:10px;top:20px}.hero-char{width:85px;height:85px;right:0;bottom:0}.hero-orbit{width:190px;height:190px;right:0;top:0}.orbit-2{display:none}.game-section{padding-top:42px}.section-heading h2{font-size:25px}.section-heading p{display:none}.game-grid{grid-template-columns:1fr;gap:14px}.arcade-card{flex-direction:row;min-height:148px}.card-picture{width:135px;min-width:135px;height:auto}.card-picture img{width:120px;height:120px}.card-picture:after{width:135px;height:135px;left:0}.card-index{font-size:8px;left:7px;top:8px}.card-flash{font-size:8px;right:4px;bottom:5px}.card-body{padding:17px 13px}.card-body h3{font-size:16px;margin:5px 0}.card-body p{font-size:11px;margin-bottom:8px}.game-body{padding:10px 6px!important;align-items:flex-start}.game-body .game-container{padding:14px!important;margin:auto}.game-body .board{gap:6px!important}.game-body[data-game="numbers"] .tile{padding:6px!important;font-size:17px!important}.game-body .status-bar{padding:9px 5px!important}.game-body .info-value{font-size:22px!important}.game-body .overlay h2{font-size:22px!important}.game-body .overlay p{font-size:12px!important}}

/* Offline-friendly image placeholders */
.card-picture:before{content:"✦";position:absolute;font-size:105px;opacity:.2;color:#5755ad;z-index:0}.pink .card-picture:before{content:"⚡"}.blue .card-picture:before{content:"💧"}.mint .card-picture:before{content:"🌿"}.hero-pokemon:before{content:"⚡";position:absolute;top:70px;right:115px;font-size:100px;opacity:.15}.poke-fallback{position:absolute;right:12%;bottom:4%;font-size:28px;line-height:1;pointer-events:none}.game-body[data-game="types"] .poke-fallback,.game-body[data-game="sync"] .poke-fallback{right:35%;bottom:22%}

/* Rainbow Rush repair: filled tile always has its assigned color, empty tile is truly empty. */
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-red"]{background:linear-gradient(180deg,#FF4B4B,#E60000)!important;}
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-orange"]{background:linear-gradient(180deg,#FFA033,#FF7700)!important;}
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-yellow"]{background:linear-gradient(180deg,#FFF033,#FFD600)!important;}
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-green"]{background:linear-gradient(180deg,#33E64A,#00C814)!important;}
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-blue"]{background:linear-gradient(180deg,#4DC3FF,#0099FF)!important;}
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-indigo"]{background:linear-gradient(180deg,#4A00E0,#2B0099)!important;}
.game-body[data-game="types"] .tile:not(.is-empty)[data-color="color-violet"]{background:linear-gradient(180deg,#E633FF,#B300E6)!important;}
.game-body[data-game="types"] .tile.is-empty .poke-mon,
.game-body[data-game="types"] .tile.is-empty .poke-fallback{display:none!important}
/* Fourth arcade card: pond survival. */
.pond-card .card-picture{background:radial-gradient(circle at 50% 70%,#d9f7ff 0,#9fe5fb 65%,#6fc5ed 100%)}
.pond-card .card-picture:before{content:"🌊"}
