:root{--cream:#fff4f2;--bg:var(--cream);--surface:#fff;--ink:#4a3a42;--ink-soft:#a98f99;--line:#f4d9e1;--stroke:#5a4650;--stroke-w:3px;--pink:#ff9db6;--pink-deep:#f06a8e;--pink-soft:#ffe0e9;--mint:#6fd6c0;--mint-deep:#37b49b;--mint-soft:#dbf5ee;--lavender:#b9a7e8;--lavender-deep:#8e77c9;--lavender-soft:#ede7fa;--lemon:#ffd46b;--lemon-deep:#e9b23d;--anchor:var(--lemon);--anchor-ink:#7a5410;--good:#17a978;--bad:#ff5140;--coral:var(--pink);--coral-deep:var(--pink-deep);--sky:var(--lavender);--radius:24px;--radius-sm:16px;--r-lg:32px;--r-tile:22px;--r-pill:999px;--shadow-soft:0 8px 22px #f06a8e29;--shadow:0 6px 0 #5a465014;--font:"NanumSquareRound", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-title:"Jua", "NanumSquareRound", sans-serif;--font-num:"Pretendard", "NanumSquareRound", sans-serif}h1,h2{font-family:var(--font-title);letter-spacing:.5px;font-weight:400}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}button{cursor:pointer;font-family:inherit}.app-shell{flex-direction:column;gap:16px;max-width:460px;min-height:100%;margin:0 auto;padding:16px 16px 32px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand h1{letter-spacing:-.5px;margin:0;font-size:20px}.brand .date{color:var(--ink-soft);font-size:12px}.mascot-wrap{flex:none;display:inline-flex}.mascot-wrap.react{animation:.5s mascotBounce}.mascot{object-fit:contain;background:var(--bg);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:50%;display:block}.mascot.sm{width:46px;height:46px}.mascot.lg{filter:drop-shadow(0 8px 12px #f06a8e38);width:124px;height:124px}.mascot.idle{transform-origin:50% 90%;animation:2.8s ease-in-out infinite idleBob}@keyframes idleBob{0%,to{transform:translateY(0)rotate(-2.5deg)}50%{transform:translateY(-7px)rotate(2.5deg)}}@keyframes mascotBounce{0%{transform:translateY(0)scale(1)}30%{transform:translateY(-14px)scale(1.06)}55%{transform:translateY(0)scale(.96)}75%{transform:translateY(-4px)scale(1.01)}to{transform:translateY(0)scale(1)}}.card{background:var(--surface);border:var(--stroke-w) solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:18px}.hud{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.hud .stat{background:var(--surface);border:var(--stroke-w) solid var(--stroke);border-radius:var(--radius-sm);text-align:center;padding:10px 8px;box-shadow:0 4px #5a465014}.hud .stat .label{color:var(--ink-soft);font-size:11px}.hud .stat .value{font-family:var(--font-num);letter-spacing:-.5px;font-variant-numeric:tabular-nums;white-space:nowrap;height:28px;font-size:22px;font-weight:800;line-height:28px}.hud .stat.timer .value.warn{color:var(--bad)}.timerbar{border-radius:var(--r-pill);border:2px solid var(--stroke);background:#fff;height:12px;overflow:hidden}.timerbar>span{background:linear-gradient(90deg, var(--mint), var(--mint-deep));height:100%;transition:width 1s linear;display:block}.timerbar>span.warn{background:linear-gradient(90deg, #ff8a7d, var(--bad))}.draft{flex-direction:column;justify-content:center;align-items:center;gap:4px;height:104px;display:flex;position:relative}.draft .word{max-width:100%;height:52px;font-family:var(--font-title);letter-spacing:3px;color:var(--ink);white-space:nowrap;justify-content:center;align-items:center;font-size:42px;display:flex;overflow:hidden}.draft .word.empty{font-family:var(--font);letter-spacing:0;color:var(--ink-soft);font-size:15px}.draft .jamos{max-width:100%;height:18px;color:var(--ink-soft);letter-spacing:4px;white-space:nowrap;font-size:13px;line-height:18px;overflow:hidden}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}.toast-line{height:22px;font-size:14px;font-weight:800;line-height:22px}.toast.good{color:var(--good)}.toast.bad{color:var(--bad)}.toast.pop{animation:.35s pop;display:inline-block}.toast.shake{animation:.35s shake;display:inline-block}.rack{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}@media (width<=380px){.rack{gap:6px}}.tile{aspect-ratio:1;border:var(--stroke-w) solid var(--stroke);border-radius:var(--r-tile);background:var(--tile-face);max-width:66px;box-shadow:0 6px 0 var(--tile-edge), 0 9px 12px #5a46501f;font-family:var(--font-title);color:var(--ink);-webkit-user-select:none;user-select:none;--tile-face:var(--pink-soft);--tile-edge:#f3c6d3;flex:0 0 calc(20% - 6.4px);place-items:center;font-size:clamp(22px,7.5vw,32px);transition:transform 80ms,box-shadow 80ms,opacity .15s;display:grid;position:relative}.tile:nth-child(3n+2){--tile-face:var(--mint-soft);--tile-edge:#b3e6da}.tile:nth-child(3n+3){--tile-face:var(--lavender-soft);--tile-edge:#d6cbf2}.tile:active{box-shadow:0 2px 0 var(--tile-edge), 0 4px 8px #5a46501f;transform:translateY(4px)}.tile.anchor{--tile-face:var(--lemon);--tile-edge:var(--lemon-deep);color:var(--anchor-ink)}.tile.anchor:after{content:"⭐";filter:drop-shadow(0 1px 1px #5a465033);font-size:16px;position:absolute;top:-8px;right:-6px}.tile.used{opacity:.34;pointer-events:none;box-shadow:0 2px 0 var(--tile-edge);transform:translateY(3px)scale(.95)}.controls{grid-template-columns:1fr 1fr 1.4fr;gap:8px;display:grid}.btn{border:var(--stroke-w) solid var(--stroke);border-radius:var(--radius-sm);font-family:var(--font-title);color:#fff;background:var(--btn-face);box-shadow:0 6px 0 var(--btn-edge), 0 8px 12px #5a46501a;--btn-face:var(--pink);--btn-edge:var(--pink-deep);padding:14px 12px;font-size:17px;transition:transform 80ms,box-shadow 80ms,opacity .15s}.btn:active{box-shadow:0 2px 0 var(--btn-edge), 0 4px 7px #5a46501a;transform:translateY(4px)}.btn.ghost{color:var(--ink-soft);--btn-face:#fff;--btn-edge:#e7d3db}.btn.submit{--btn-face:var(--pink);--btn-edge:var(--pink-deep)}.btn.share{color:#fff;--btn-face:var(--lavender);--btn-edge:var(--lavender-deep)}.btn.share.alt{color:var(--anchor-ink);--btn-face:var(--lemon);--btn-edge:var(--lemon-deep)}.share-card{text-align:center}.share-btns{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn:disabled{opacity:.5;pointer-events:none}.btn.block{width:100%;padding:16px;font-size:19px}.found{flex-wrap:wrap;gap:6px;display:flex}.found .empty{color:var(--ink-soft);font-size:13px}.chip{background:var(--mint-soft);color:var(--mint-deep);border:2px solid var(--mint);border-radius:var(--r-pill);padding:6px 14px;font-size:15px;font-weight:800}.chip.miss{color:var(--bad);background:#ffe7e3;border-color:#ffb3ab}.section-title{color:var(--ink-soft);justify-content:space-between;margin:0 0 8px;font-size:13px;font-weight:800;display:flex}.center-screen{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:24px 16px;display:flex}.center-screen h2{letter-spacing:-.5px;margin:0;font-size:26px}.center-screen p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.6}.big-score{font-family:var(--font-num);color:var(--pink-deep);letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:56px;font-weight:900}.result-grid{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.hint{color:var(--ink-soft);text-align:center;font-size:12px}.field{gap:8px;display:flex}.field input{border:var(--stroke-w) solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#fff;outline:none;flex:1;padding:13px 15px;font-family:inherit;font-size:16px;transition:border-color .15s}.field input::placeholder{color:#d3bcc6}.field input:focus{border-color:var(--pink)}.rank-list{flex-direction:column;gap:6px;display:flex}.rank-row{border-radius:var(--radius-sm);border:2.5px solid var(--line);background:#fff;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:11px 14px;display:grid}.rank-row.me{background:var(--lemon-soft,#fff6df);border-color:var(--lemon-deep)}.rank-row .num{color:var(--ink-soft);text-align:center;font-weight:800}.rank-row .nick{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.rank-row .sc{color:var(--mint-deep);font-weight:800}.muted{color:var(--ink-soft);font-size:13px}.attribution{text-align:center;color:var(--ink-soft);margin-top:auto;padding-top:12px;font-size:11px;line-height:1.6}.attribution a{color:var(--mint-deep);text-decoration:none}.error-box{color:var(--bad);border-radius:var(--radius-sm);background:#fdeeee;border:1.5px solid #f6d6d6;padding:10px 12px;font-size:13px;line-height:1.5}@keyframes tilePop{0%{opacity:0;transform:translateY(10px)scale(.6)}60%{transform:translateY(0)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes popNum{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes softpop{0%{transform:scale(1)}45%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes pulseWarn{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}@keyframes chipIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes sparkleUp{0%{opacity:0;transform:translateY(6px)scale(.5)}30%{opacity:1}to{opacity:0;transform:translateY(-44px)scale(1.15)}}.app-shell{animation:.3s both fadeUp}.tile{animation:.34s both tilePop}.tile:first-child{animation-delay:20ms}.tile:nth-child(2){animation-delay:60ms}.tile:nth-child(3){animation-delay:.1s}.tile:nth-child(4){animation-delay:.14s}.tile:nth-child(5){animation-delay:.18s}.tile:nth-child(6){animation-delay:.22s}.tile:nth-child(7){animation-delay:.26s}.tile:nth-child(8){animation-delay:.3s}.tile:nth-child(9){animation-delay:.34s}.pop-num{animation:.3s popNum;display:inline-block}.draft.anim-pop{animation:.35s softpop}.draft.anim-shake{animation:.4s shake}.sparkles{pointer-events:none;position:absolute;inset:0;overflow:visible}.sparkles span{font-size:22px;animation:.75s ease-out forwards sparkleUp;position:absolute;top:6px}.hud .stat.timer .value.warn{animation:.8s ease-in-out infinite pulseWarn}.chip{animation:.28s both chipIn}@media (prefers-reduced-motion:reduce){.app-shell,.tile,.pop-num,.draft.anim-pop,.draft.anim-shake,.sparkles span,.hud .stat.timer .value.warn,.chip,.mascot.idle,.mascot-wrap.react{animation:none!important}}
