:root{color-scheme:light;--ink: #5a3d66;--muted: #8d7898;--pink: #ff6d9a;--pink-deep: #e24b7c;--line: rgba(122, 84, 140, .12);--card: rgba(255, 255, 255, .9);--shadow: 0 14px 40px rgba(176, 112, 150, .16);font-family:Jua,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{min-height:100dvh;background:radial-gradient(800px 420px at 0% 0%,#ffe4f2,transparent 60%),radial-gradient(700px 380px at 100% 10%,#e6e2ff,transparent 55%),#f7eef6}button,a{font:inherit;color:inherit}#app{width:min(480px,100%);height:100dvh;margin:0 auto;display:flex;flex-direction:column;position:relative;overflow:hidden;background:radial-gradient(520px 240px at 12% -8%,#ffe7f3 0%,transparent 70%),radial-gradient(420px 220px at 110% 0%,#ece7ff 0%,transparent 68%),linear-gradient(180deg,#fff8fb,#f5f2ff);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}@media(min-width:560px){body{display:grid;place-items:center}#app{height:min(920px,calc(100dvh - 32px));border-radius:32px;box-shadow:0 24px 80px #78466e2e;border:1px solid rgba(255,255,255,.8)}}.screen{flex:1;min-height:0;display:flex;flex-direction:column}.screen[hidden]{display:none!important}.scroll{flex:1;min-height:0;overflow:auto;padding:22px 18px 16px}.title-screen{text-align:center}.brand-en{margin:8px 0 0;letter-spacing:.22em;text-transform:uppercase;font-size:12px;color:var(--muted)}h1{margin:8px 0 0;font-size:2.15rem;font-weight:400;line-height:1.15}.lede{margin:8px 0 0;color:var(--muted);font-size:1.05rem}.vr-mark{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:22px;background:linear-gradient(180deg,#ff9ebb,#ff6d9a);color:#fff;box-shadow:0 8px #e24b7c;font-size:28px}.vr-mark.sm{width:auto;height:auto;padding:2px 8px 4px;border-radius:12px;box-shadow:0 4px #e24b7c;font-size:.95em;margin-right:4px;vertical-align:2px}.boot{margin:auto;text-align:center;display:grid;justify-items:center;gap:12px;padding:24px}.bubble-row{display:grid;grid-template-columns:repeat(3,max-content);justify-content:center;gap:12px 16px;margin:22px 0 8px}@media(min-width:520px){.bubble-row{grid-template-columns:repeat(6,max-content);gap:8px}}.mini-bubble{margin:0;width:58px;display:flex;flex-direction:column;align-items:center;gap:2px;animation:bob 2.6s ease-in-out infinite}.mini-bubble canvas{width:56px;height:56px;filter:drop-shadow(0 6px 8px rgba(190,120,150,.25))}.mini-bubble figcaption{font-size:11px;color:var(--muted)}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.actions{display:grid;gap:10px;margin:18px auto 0;width:min(100%,280px)}.actions.tight{width:100%;margin-top:14px}.btn{border:0;border-radius:999px;padding:14px 18px;background:linear-gradient(180deg,#ff93b6,var(--pink));color:#fff;box-shadow:0 6px 0 var(--pink-deep);cursor:pointer;font-size:1.15rem}.btn:active{transform:translateY(3px);box-shadow:0 3px 0 var(--pink-deep)}.btn.ghost{background:#fff;color:var(--ink);box-shadow:0 6px #f3d5e4}.btn:disabled{opacity:.55;cursor:default}.text-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:8px}.icon-btn{width:42px;height:42px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);cursor:pointer;font-size:1.1rem}.tips{list-style:none;padding:0;margin:18px auto;width:min(100%,320px);text-align:left;display:grid;gap:8px}.tips li{background:var(--card);border-radius:14px;padding:10px 12px;box-shadow:0 6px 16px #b482a014}.tips li:before{content:"♡ ";color:var(--pink)}.tcg-banner{display:flex;align-items:center;flex-shrink:0;gap:8px;margin:8px 16px 14px;padding:10px 12px;border-radius:16px;text-decoration:none;background:#fff;border:1.5px solid #ffe0ee;box-shadow:0 8px 18px #be789614}.title-screen .tcg-banner{margin:8px auto 18px;width:min(100%,320px)}.tcg-mark{background:#7c6cf2;color:#fff;border-radius:999px;padding:3px 8px;font-size:12px}.tcg-go{margin-left:auto;color:var(--pink)}.bar,.hud{display:flex;align-items:center;gap:10px;padding:10px 12px 4px}.bar-title,.stage-label{margin:0;font-size:1.05rem;font-weight:400}.bar-sub,.goal,.muted{margin:0;color:var(--muted);font-size:.92rem}.hud-center{flex:1;text-align:center}.score{font-size:1.35rem;line-height:1.1}.ceiling-pill{min-width:72px;text-align:center;background:#fff;border-radius:999px;padding:8px 10px;box-shadow:var(--shadow);font-size:.95rem}.ceiling-pill.warn{background:#ffe1ec;color:#d23b6e}.stage{position:relative;flex:1;min-height:0}#board{width:100%;height:100%;display:block;touch-action:none}.stage-list{padding-top:4px}.chapter{margin:14px 4px 8px;font-size:1rem;font-weight:400;color:var(--muted)}.stage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stage-btn{aspect-ratio:1;border-radius:18px;border:2px solid #ffe0ee;background:#fff;box-shadow:0 8px 16px #b4789614;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}.stage-btn.current{border-color:var(--pink);box-shadow:0 0 0 3px #ff6d9a40}.stage-btn.locked{background:#f7f2f6;color:#6f5e78;box-shadow:none;border-color:#efe3ea}.stage-num{font-size:1.25rem}.stage-stars{color:#f0b429;font-size:11px;letter-spacing:-.5px}.stage-stars.lock{color:#8d7b92;letter-spacing:0}.overlay{position:absolute;inset:0;background:#50325a47;display:flex;align-items:center;justify-content:center;padding:18px;z-index:3;overflow:auto}.overlay[hidden]{display:none!important}.card{width:min(100%,340px);background:#fff;border-radius:28px;padding:22px 18px 12px;text-align:center;box-shadow:var(--shadow)}.card h2{margin:0;font-size:1.8rem;font-weight:400}.card-kicker{margin:0 0 4px;color:var(--muted)}.score-line{margin:8px 0 0;font-size:1.2rem}.score-line strong{font-size:1.6rem;font-weight:400}.big-stars{margin-top:8px;font-size:2rem;letter-spacing:4px;color:#ecd8e4}.big-stars .on{color:#f0b429}.star-pop{display:inline-block;animation:pop .45s cubic-bezier(.2,1.4,.4,1) both}.star-pop:nth-child(2){animation-delay:.08s}.star-pop:nth-child(3){animation-delay:.16s}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.card .tcg-banner{margin:12px 0 8px}button:focus-visible,a:focus-visible{outline:3px solid #7c6cf2;outline-offset:2px}@media(prefers-reduced-motion:reduce){.mini-bubble,.star-pop{animation:none}}
