:root{--ink:#20222e;--muted:#8a8b95;--purple:#7b5ce1;--line:#e9e9ed}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#fbfbfd;color:var(--ink);font-family:'DM Sans','Noto Sans KR',sans-serif;font-size:14px}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ad98ef;outline-offset:5px}.topbar{height:88px;max-width:1280px;margin:auto;padding:0 54px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:70px}.logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:26px;letter-spacing:-1px}.logo>span{font-size:21px;letter-spacing:-.9px}.dot{color:var(--purple)}nav{display:flex;gap:30px;height:100%;align-items:center}nav>a,nav>button{position:relative;font-size:13px;font-weight:600;background:none;border:0;padding:0;color:#91919b}nav .active{color:var(--ink)}nav>a.active:after{content:'';position:absolute;bottom:-33px;left:0;right:0;height:3px;background:var(--purple)}#favorite-count{font-size:10px;border-radius:5px;background:#eeecf5;padding:2px 6px;margin-left:5px}.header-note{margin-left:auto;font-size:11px;color:#92939c;white-space:nowrap}.header-note i{display:inline-block;width:6px;height:6px;background:#a0bf82;border-radius:50%;margin-right:7px}main{max-width:1172px;margin:auto}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:466px;margin:38px 0 49px;border-radius:22px;background:#efedf7;overflow:hidden;position:relative}.hero-copy{padding:47px 0 32px 45px;z-index:1}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;display:flex;gap:12px;align-items:center;color:#7c738f}.eyebrow>span+span{font-size:17px}.hero h1{font-size:52px;font-weight:900;line-height:1.26;letter-spacing:-2.8px;margin:22px 0 17px}.purple{color:var(--purple)}.spark{display:inline-block;font-size:48px;margin-left:10px;vertical-align:top}.hero p{color:#84808e;font-size:13px;line-height:1.85;margin:0 0 23px}.primary{display:inline-flex;align-items:center;gap:42px;background:var(--ink);color:white;border:0;border-radius:9px;padding:14px 20px;font-size:12px;font-weight:600}.primary span{font-size:18px}.primary:hover{background:#49386f}.hero-foot{display:flex;gap:18px;margin-top:25px;font-size:10px;color:#938ba4}.hero-art{position:relative;min-height:445px}.orbit{position:absolute;border:1px solid #dcd7ed;border-radius:50%;width:355px;height:355px;left:90px;top:50px}.orbit-two{width:440px;height:440px;left:47px;top:7px}.tile{position:absolute;width:150px;height:150px;display:flex;align-items:center;justify-content:center;border-radius:31px;box-shadow:0 15px 0 #0000000a,inset 0 2px 2px #ffffff60;font-size:85px}.tile-purple{left:86px;top:77px;background:#8d6cde;color:#daccff;transform:rotate(-15deg);z-index:3;box-shadow:0 11px 0 #6f50bd,0 25px 30px #67528b25}.tile-lime{left:258px;top:53px;background:#d3e7a4;color:#68823c;transform:rotate(12deg);gap:27px;font-size:39px;line-height:1.15;box-shadow:0 10px 0 #b1c78b,0 25px 30px #67528b20}.tile-pink{left:146px;top:249px;background:#edb9ca;color:#c76b8a;transform:rotate(10deg);z-index:4;box-shadow:0 10px 0 #d098ae,0 25px 30px #67528b20}.tile-blue{left:325px;top:218px;background:#b6c9ed;color:#647fb7;transform:rotate(-14deg);box-shadow:0 10px 0 #91a9d5,0 25px 30px #67528b20}.floating{position:absolute}.tiny-star{left:28px;top:245px;color:#9c86c7;font-size:34px}.art-star{right:40px;top:77px;color:#a592ca;font-size:32px}.art-caption{position:absolute;bottom:20px;right:38px;font-size:8px;letter-spacing:2px;color:#9c93ae}.section-title{display:flex;align-items:center;justify-content:space-between}.small{font-size:9px;letter-spacing:1.6px;color:#9895a5}h2{font-size:25px;letter-spacing:-1px;margin:8px 0 0}h2>span{font-size:13px;color:#aba3bb;margin-left:8px;vertical-align:middle}.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px 12px;gap:8px;background:white;width:260px}.search>span{font-size:24px;line-height:18px;color:#93919d}.search input{border:0;background:none;font:inherit;min-width:0;width:100%;font-size:11px;outline:none}.search input::placeholder{color:#a5a2ae}kbd{font-size:10px;color:#aaa6b4;background:#f5f4f8;padding:2px 5px;border-radius:3px}.filter-row{display:flex;justify-content:space-between;align-items:center;margin:24px 0 22px}.filters{display:flex;gap:7px}.filters button{border:1px solid #e9e7ef;border-radius:7px;background:white;color:#888390;font-size:11px;padding:9px 14px}.filters button.selected{color:white;background:var(--ink);border-color:var(--ink)}.filters button span{margin-left:5px;color:#b9b2ca;font-size:10px}.collection-note{font-size:10px;color:#aaa6b4}.collection-note span{font-size:20px;margin-left:9px}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.game-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-5px);box-shadow:0 12px 25px #2420310b}.game-art{height:188px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.game-art:after{content:'';position:absolute;width:180px;height:180px;border:1px solid #ffffff50;border-radius:50%;transform:scale(1.5);pointer-events:none}.badge{position:absolute;top:14px;left:14px;font-size:8px;font-weight:700;letter-spacing:.5px;background:#ffffffb0;border-radius:4px;padding:5px 7px;z-index:1;color:#6c627d}.favorite{position:absolute;right:12px;top:12px;width:29px;height:29px;border-radius:50%;border:0;background:#ffffffa8;color:#7e7189;font-size:19px;z-index:2}.favorite.saved{color:#ae64c2;background:#fff}.card-content{padding:20px}.card-top{display:flex;align-items:center;gap:7px;font-size:9px;color:#a3a0ac}.card-top span:first-child{color:#8c7aa7}.card-content h3{font-size:18px;letter-spacing:-.6px;margin:8px 0 7px}.card-content p{font-size:11px;color:#a09ba8;line-height:1.7;margin:0 0 19px}.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #f0eef4;padding-top:13px}.card-bottom>span{font-size:9px;color:#a39daa}.play{border:0;background:#f4f2f8;color:#81758f;padding:7px 11px;border-radius:6px;font-size:10px}.play:hover{background:#e8e0f7}.preview{position:relative;z-index:1}.numbers{display:grid;grid-template-columns:repeat(3,46px);gap:5px;transform:rotate(-10deg)}.numbers span{height:43px;border-radius:6px;background:#eee6ff;color:#8d74b7;display:grid;place-items:center;font-size:20px;font-weight:800;box-shadow:0 3px 0 #af9aca}.numbers span:nth-child(3n){background:#d2b6f0;color:white}.numbers span:nth-child(5){background:#8b67b9;color:white}.snake{width:150px;height:115px;background:linear-gradient(90deg,#ffffff15 1px,transparent 1px),linear-gradient(#ffffff15 1px,transparent 1px);background-size:23px 23px}.snake i{position:absolute;background:#80a959;border-radius:5px;width:25px;height:25px;box-shadow:0 3px 0 #6e934c}.snake i:nth-child(1){left:20px;top:55px}.snake i:nth-child(2){left:43px;top:55px}.snake i:nth-child(3){left:66px;top:55px}.snake i:nth-child(4){left:66px;top:32px}.snake i:nth-child(5){left:89px;top:32px}.snake b{position:absolute;left:125px;top:15px;color:#e1918b;font-size:28px}.memory{display:flex;gap:10px;transform:rotate(-7deg)}.memory span{display:grid;place-items:center;width:60px;height:85px;border-radius:9px;background:#fff0ef;color:#da8e9c;font-size:35px;box-shadow:0 5px 0 #d59fa8}.memory span:nth-child(2){transform:rotate(17deg) translateY(5px);background:#d89bab;color:white}.reaction{width:95px;height:95px;border-radius:50%;background:#f5c971;color:#fff4d8;display:grid;place-items:center;font-size:65px;box-shadow:0 7px 0 #dcb15c,0 0 0 16px #ffffff25,0 0 0 32px #ffffff15}.tictac{display:grid;grid-template-columns:repeat(3,36px);gap:6px;transform:rotate(8deg)}.tictac span{width:36px;height:36px;display:grid;place-items:center;background:#ffffff50;border-radius:4px;color:#7195c3;font-size:32px;font-weight:700}.rps{font-size:57px;letter-spacing:-12px;transform:rotate(-10deg);filter:drop-shadow(0 6px 0 #00000010)}#empty{text-align:center;padding:65px;color:#999}.coming-banner{margin-top:37px;background:#f1eff6;border:1px dashed #d9d3e5;border-radius:12px;padding:24px;display:flex;align-items:center;gap:17px}.banner-icon{width:43px;height:43px;background:#e6e1ef;color:#a395b6;border-radius:11px;display:grid;place-items:center;font-size:30px}.coming-banner h3{margin:0 0 5px;font-size:13px}.coming-banner p{margin:0;font-size:11px;color:#a29aaf}.coming-banner>span{margin-left:auto;font-size:8px;letter-spacing:1.6px;color:#a097ae}.coming-banner b{font-size:23px;margin-left:15px}footer{margin-top:51px;border-top:1px solid var(--line);display:flex;align-items:center;padding:27px 0 35px;gap:25px;color:#a8a4af;font-size:10px}footer .logo{font-size:22px;color:#97909f}footer .logo>span{font-size:14px}footer>span:last-child{margin-left:auto;font-size:9px}dialog{border:1px solid var(--line);border-radius:22px;text-align:center;padding:45px;max-width:calc(100% - 32px);width:400px;box-shadow:0 30px 100px #19112230}dialog::backdrop{background:#24203170;backdrop-filter:blur(5px)}dialog .eyebrow{display:block;margin-top:20px}dialog p{color:#999;line-height:1.9;font-size:13px;margin:20px 0 26px}.modal-icon{font-size:60px;color:var(--purple)}.close{position:absolute;right:14px;top:10px;background:none;border:0;color:#999;font-size:26px}@media(min-width:1450px){.hero{margin-top:48px}}@media(max-width:1250px){main{margin:0 40px}.topbar{padding:0 40px}.hero-art{transform:scale(.9);transform-origin:center}.hero h1{font-size:46px}}@media(max-width:900px){.header-note{display:none}.hero-art{transform:scale(.72);transform-origin:left center}.hero-copy{padding-left:30px}.hero{grid-template-columns:1fr 44%;min-height:430px}.hero h1{font-size:40px}.hero-foot{gap:10px;font-size:8px}.game-grid{gap:15px}.card-content{padding:15px}.collection-note{display:none}.game-art{height:165px}.search{width:225px}}@media(max-width:650px){.topbar{height:72px;padding:0 20px;gap:20px;justify-content:space-between}.logo>span{font-size:17px}.logo{font-size:23px}nav{gap:15px}nav>a,nav>button{font-size:10px}nav>a.active:after{bottom:-28px}main{margin:0 20px}.hero{margin:24px 0 33px;display:block;min-height:580px}.hero-copy{padding:30px 25px}.hero h1{font-size:43px}.hero p{font-size:12px}.hero-art{position:absolute;bottom:-60px;right:-40px;width:400px;height:300px;min-height:0;transform:scale(.57);transform-origin:center}.hero-foot{position:relative;z-index:4;margin-top:20px}.hero-copy .primary{position:relative;z-index:4}.hero-art .art-caption{display:none}.section-title{display:block}h2{font-size:22px}.search{width:100%;margin-top:20px}.filter-row{margin:17px 0}.filters{gap:6px}.filters button{padding:9px 10px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.game-art{height:145px}.preview{scale:.8}.card-content{padding:13px}.card-content h3{font-size:16px}.card-content p{font-size:10px;min-height:34px;margin-bottom:10px}.card-top{font-size:8px}.card-bottom{gap:4px}.card-bottom>span{font-size:8px}.play{font-size:9px;padding:6px}.coming-banner{padding:18px;gap:12px}.coming-banner h3{font-size:12px}.coming-banner p{font-size:10px}.coming-banner>span{display:none}footer{gap:10px;flex-wrap:wrap}footer>span:nth-child(2){display:none}.badge{font-size:7px;left:9px;top:10px}.favorite{right:8px;top:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.game-card{transition:none}}

/* Compact game library */
.game-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 24px}
.game-card{background:none;border:0;border-radius:0;overflow:visible;text-align:center}
.game-card:hover{transform:none;box-shadow:none}
.icon-wrap{position:relative}
.game-launch{display:grid;place-items:center;width:100%;aspect-ratio:1;border:0;border-radius:25px;overflow:hidden;box-shadow:inset 0 0 0 1px #00000003;transition:transform .18s,box-shadow .18s}
.game-launch:hover{transform:translateY(-4px);box-shadow:0 10px 24px #30234c13}
.game-symbol{display:grid;place-items:center;width:100%;height:100%;pointer-events:none}
.icon-wrap .favorite{top:9px;right:9px;width:25px;height:25px;font-size:17px}
.game-name{display:block;border:0;background:none;color:var(--ink);font-size:13px;font-weight:700;letter-spacing:-.3px;margin:13px auto 0;padding:0 3px;line-height:1.5}
.game-name:hover{color:var(--purple)}
.game-status{display:block;font-size:9px;color:#a39daa;margin-top:4px}
.number-icon{display:grid;place-items:center;width:63%;aspect-ratio:1;background:#9271c0;color:#fff;border-radius:15px;font-size:clamp(22px,2.8vw,36px);font-weight:900;letter-spacing:-1.5px;box-shadow:0 6px 0 #7959a8;transform:rotate(-7deg)}
.snake-icon{width:74%;height:74%;filter:drop-shadow(0 4px 0 #5f813120)}
.memory-icon{display:flex;align-items:center;justify-content:center;width:80%;height:65%}
.memory-icon>span{display:grid;place-items:center;width:47%;height:84%;border-radius:9px;background:#fff0f0;color:#d1889a;font-size:42px;transform:rotate(-12deg);box-shadow:0 5px 0 #d59fa8}
.memory-icon>span+span{transform:rotate(12deg) translate(-4px,4px);background:#dba0b0;color:#fff0f0}
.bolt-icon{display:grid;place-items:center;width:62%;aspect-ratio:1;background:#f2c568;color:#fff5db;border-radius:50%;font-size:76px;line-height:1;box-shadow:0 5px 0 #dcb15c}
.xo-icon{display:flex;align-items:center;font-size:70px;letter-spacing:-8px;font-weight:700;color:#7294c2;transform:rotate(-8deg)}
.xo-icon>span{color:#91acd1;font-size:60px;margin-left:7px}
.hand-icon{font-size:76px;transform:rotate(-9deg);filter:drop-shadow(0 5px 0 #00000009)}
@media(max-width:1000px){.game-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 20px}.number-icon{font-size:32px}}
@media(max-width:650px){.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 14px}.game-launch{border-radius:20px}.game-name{font-size:11px;margin-top:10px}.game-status{font-size:8px}.number-icon{font-size:25px;border-radius:11px}.memory-icon>span{font-size:32px}.bolt-icon{font-size:57px}.xo-icon{font-size:52px}.xo-icon>span{font-size:43px}.hand-icon{font-size:56px}.icon-wrap .favorite{top:6px;right:6px;width:22px;height:22px;font-size:15px}}
@media(prefers-reduced-motion:reduce){.game-launch{transition:none}}

.fallback-game-icon{font-size:60px;font-weight:800;color:#80679b}
.ice-hub-icon{width:80%;height:80%;transform:rotate(-8deg);filter:drop-shadow(0 6px 0 #8bafc013)}
.balls-hub-icon{width:80%;height:80%;transform:rotate(-7deg);filter:drop-shadow(0 5px 0 #91749e11)}

.tidy-hub-icon{width:79%;height:79%;transform:rotate(-8deg);filter:drop-shadow(0 5px 0 #9379bc13)}

.sides-hub-icon{width:80%;height:80%;transform:rotate(-6deg);filter:drop-shadow(0 5px 0 #8b9db31a)}
