:root{color:#dcecff;font-synthesis:none;text-rendering:optimizelegibility;background:#02060d;font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{overscroll-behavior:none;background:#02060d;min-width:320px;min-height:100dvh;overflow:hidden}button{font:inherit}.app-shell{isolation:isolate;background-color:#02060d;background-position:50%;background-size:cover;width:min(100%,560px);height:100dvh;min-height:640px;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 90px #001c4c57}body:has(.eazo-banner-root) .app-shell{height:calc(100dvh - 60px);min-height:580px}.app-shell:before{z-index:-1;content:"";pointer-events:none;background:radial-gradient(circle at 50% 54%,#083b7e1f,#0000 37%),linear-gradient(#00040a0f,#00040a4d);position:absolute;inset:0}.topbar{z-index:20;padding:calc(env(safe-area-inset-top) + 24px) 22px 0;pointer-events:none;position:absolute;top:0;left:0;right:0}.topbar-copy{text-align:center}.eyebrow{color:#a4caf69e;letter-spacing:.52em;text-indent:.52em;margin:0 0 8px;font-size:10px;font-weight:600}.topbar h1{color:#e2efff;letter-spacing:.12em;text-shadow:0 0 24px #65aeff47;margin:0;font-family:Songti SC,STSong,serif;font-size:clamp(24px,6.8vw,31px);font-weight:400;line-height:1.18}.topbar-side{top:calc(env(safe-area-inset-top) + 20px);pointer-events:auto;position:absolute;left:20px}.lang-button{color:#cfe7ffd1;letter-spacing:.06em;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;background:#030a1799;border:1px solid #76abe73d;border-radius:999px;justify-content:center;align-items:center;min-width:40px;height:34px;padding:0 12px;font-size:12px;font-weight:600;transition:color .16s,border-color .16s,transform .16s;display:inline-flex;box-shadow:inset 0 0 14px #4a94e614,0 0 24px #00245433}.lang-button:hover{color:#eaf4ff;border-color:#76abe773}.lang-button:active{transform:scale(.96)}.progress-pill{top:calc(env(safe-area-inset-top) + 20px);color:#aec9e894;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#030a1799;border:1px solid #76abe73d;border-radius:999px;align-items:baseline;gap:4px;padding:8px 12px;font-size:11px;display:flex;position:absolute;right:20px;box-shadow:inset 0 0 14px #4a94e614,0 0 24px #00245433}.progress-pill strong{color:#cfe7ff;font-variant-numeric:tabular-nums;font-size:16px;font-weight:500}.progress-star{color:#70dfff;text-shadow:0 0 10px #37bfff;margin-right:2px}.game-stage{position:absolute;inset:0}.star-bottle-canvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:grab;outline:none;width:100%;height:100%;display:block}.is-pressing .star-bottle-canvas{cursor:grabbing}.instruction{z-index:12;left:50%;bottom:calc(env(safe-area-inset-bottom) + 122px);color:#bed8f4c2;letter-spacing:.08em;white-space:nowrap;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;background:#02091485;border:1px solid #64a4e529;border-radius:999px;align-items:center;gap:9px;width:max-content;max-width:calc(100% - 48px);padding:8px 14px;font-size:12px;font-weight:450;transition:transform .22s,border-color .22s,color .22s;display:flex;position:absolute;transform:translate(-50%);box-shadow:inset 0 0 18px #3087e30f,0 0 24px #00122d57}.is-pressing .instruction{color:#d8f3ff;border-color:#57cbff57;transform:translate(-50%)scale(1.025)}.instruction-dot{background:#72e5ff;border-radius:50%;flex:none;width:5px;height:5px;animation:1.9s ease-in-out infinite instruction-pulse;box-shadow:0 0 9px #26c9ff,0 0 18px #26c9ffb8}.controls{z-index:22;padding:0 18px calc(env(safe-area-inset-bottom) + 18px);text-align:center;position:absolute;bottom:0;left:0;right:0}.palette{justify-content:center;align-items:center;gap:12px;padding:3px 8px;display:inline-flex}.color-button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;width:54px;height:54px;padding:0;transition:transform .18s,filter .18s;position:relative}.color-button:before{content:"";opacity:0;border:1px solid #0000;border-radius:50%;transition:transform .18s,opacity .18s;position:absolute;inset:1px;transform:scale(.82);box-shadow:0 0 13px #71cfff7a,inset 0 0 9px #9ddeff2e}.color-button.is-selected:before{opacity:1;border-color:#bfe3ffe6;transform:scale(1)}.color-button.is-selected{filter:brightness(1.1);transform:translateY(-2px)}.color-button img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.color-caption{color:#9bbbde7a;letter-spacing:.12em;margin:2px 0 0;font-size:10px}.action-bar{pointer-events:auto;justify-content:center;gap:10px;margin-top:14px;display:flex}.action-bar .primary-button,.action-bar .secondary-button{min-width:128px;margin:0}.completion-card{z-index:50;color:#dcecff;text-align:center;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:linear-gradient(160deg,#081327ed,#020814e6);border:1px solid #7ab7f640;border-radius:26px;width:min(100% - 42px,390px);padding:30px 24px 24px;animation:.42s cubic-bezier(.22,1,.36,1) both completion-enter;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 26px 90px #000000ad,inset 0 1px #b9deff1a}.completion-glow{pointer-events:none;background:radial-gradient(circle,#30a3ff47,#0000 68%);border-radius:50%;width:260px;height:230px;position:absolute;top:-110px;left:50%;transform:translate(-50%)}.completion-icon{color:#e5f8ff;background:#1a8de826;border:1px solid #7bd6ff57;border-radius:50%;place-items:center;width:50px;height:50px;font-size:23px;display:inline-grid;position:relative;box-shadow:0 0 30px #2eb1ff47}.completion-kicker{color:#8bc4f794;letter-spacing:.24em;margin:18px 0 8px;font-size:9px;font-weight:600}.completion-card h2{color:#edf7ff;letter-spacing:.08em;margin:0;font-family:Songti SC,STSong,serif;font-size:25px;font-weight:400}.completion-card>p:not(.completion-kicker){color:#bbd3edad;max-width:285px;margin:12px auto 20px;font-size:13px;line-height:1.7}.completion-actions{gap:10px;display:grid}.completion-actions button{cursor:pointer;border-radius:15px;min-height:48px;font-weight:620}.primary-button{color:#eafaff;background:linear-gradient(100deg,#0092ded1,#5341dfd6);border:1px solid #79d9ff5c;box-shadow:0 12px 34px #1966d642,inset 0 1px #fff3}.secondary-button{color:#cee2f6c7;background:#86b6e712;border:1px solid #85b2e02e}.share-status{color:#9fd0f7a6;margin-top:12px;font-size:11px;display:block}.is-complete .game-stage{filter:blur(2px)brightness(.58);transition:filter .42s,transform .42s;transform:scale(1.015)}@keyframes instruction-pulse{0%,to{opacity:.58;transform:scale(.82)}50%{opacity:1;transform:scale(1.12)}}@keyframes completion-enter{0%{opacity:0;transform:translate(-50%,-47%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (max-height:700px){.topbar{padding-top:calc(env(safe-area-inset-top) + 16px)}.topbar h1{font-size:23px}.instruction{bottom:calc(env(safe-area-inset-bottom) + 108px)}.controls{padding-bottom:calc(env(safe-area-inset-bottom) + 10px)}.color-button{width:48px;height:48px}}@media (min-width:700px){body{background:#01040a;place-items:center;display:grid}.app-shell{border-left:1px solid #5b99d91f;border-right:1px solid #5b99d91f;height:min(100dvh,920px)}}
