*{box-sizing:border-box}html,body{color:#eef2ff;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#0b1224;height:100%;margin:0;font-family:Noto Sans TC,system-ui,sans-serif;overflow:hidden}#game-canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}#hud{pointer-events:none;opacity:0;transition:opacity .4s;position:fixed;inset:0}body.playing #hud{opacity:1}.top{top:calc(env(safe-area-inset-top) + 10px);align-items:stretch;gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.chip,.clock{-webkit-backdrop-filter:blur(6px);background:#0c12269e;border:1px solid #a0b9ff38;border-radius:14px;padding:6px 12px}.chip{flex-direction:column;align-items:center;min-width:64px;display:flex}.chip .lbl{letter-spacing:2px;color:#9fb0dd;font-size:10px}.chip b{color:#ffe6a8;font-size:18px;font-weight:900}.clock{min-width:150px}.clock-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.clock b{letter-spacing:1px;font-size:18px;font-weight:900}.moon{border-radius:50%;width:14px;height:14px;box-shadow:inset -4px -2px #d9e3ff}.sun{background:#5a5040;border-radius:50%;width:14px;height:14px;transition:background .5s,box-shadow .5s}.clock.dawn .sun{background:#ffb867;box-shadow:0 0 12px #ffb867}.clock.dawn b{color:#ffcf96}.time-bar{background:#ffffff1a;border-radius:3px;height:5px;margin-top:5px;overflow:hidden}.time-bar i{background:linear-gradient(90deg,#6f86d6 0% 80%,#ffb867 100%) 0 0/150px 100%;width:0;height:100%;display:block}#eye{opacity:0;transition:opacity .2s;position:absolute;top:0;left:0}.eye-shape{background:#141828b3;border:2px solid #ffd27a;border-radius:50%;width:38px;height:24px;position:relative;overflow:hidden;box-shadow:0 2px 10px #0006}.eye-shape:after{content:"";background:#111;border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff}.eye-shape i{background:linear-gradient(#ffd27a,#ff9f43);position:absolute;bottom:0;left:0;right:0}#eye.hot .eye-shape{border-color:#ff5a4f;animation:.25s infinite shake}#eye.hot .eye-shape i{background:linear-gradient(#ff8a4a,#ff3b3b)}@keyframes shake{50%{transform:translate(2px)}}#bubble{color:#1a2033;white-space:nowrap;opacity:0;background:#fff;border-radius:12px;padding:4px 10px;font-size:15px;font-weight:900;transition:opacity .15s;position:absolute;top:0;left:0;box-shadow:0 4px 12px #00000059}#pops{position:absolute;top:34%;left:50%;transform:translate(-50%)}.pop{white-space:nowrap;color:#ffe08a;text-shadow:0 2px #7a4b00,0 0 14px #ffc85099;font-size:20px;font-weight:900;animation:1.3s ease-out forwards rise;position:absolute;left:50%;transform:translate(-50%)}@keyframes rise{0%{opacity:0;transform:translate(-50%,12px)scale(.8)}15%{opacity:1;transform:translate(-50%)scale(1.08)}to{opacity:0;transform:translate(-50%,-46px)scale(1)}}#toast{left:50%;top:calc(env(safe-area-inset-top) + 76px);color:#2a2216;opacity:0;white-space:nowrap;background:#fff6e1f5;border-radius:14px;padding:9px 16px;font-size:15px;font-weight:900;transition:all .3s;position:absolute;transform:translate(-50%,-8px);box-shadow:0 6px 20px #00000059}#toast.show{opacity:1;transform:translate(-50%)}#hint{left:50%;bottom:calc(env(safe-area-inset-bottom) + 18px);color:#dfe6ff;opacity:0;white-space:nowrap;text-overflow:ellipsis;background:#0c122699;border-radius:999px;max-width:60vw;padding:6px 14px;font-size:13px;font-weight:700;transition:opacity .4s;position:absolute;overflow:hidden;transform:translate(-50%)}#hint.show{opacity:1}#flash{opacity:0;mix-blend-mode:screen;background:#eef3ff;position:absolute;inset:0}#joy{opacity:.7;background:radial-gradient(circle,#8caaff0f 0 55%,#8caaff24 56% 100%);border:2px solid #bed2ff59;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:left .18s ease-out,top .18s ease-out,opacity .2s;position:absolute}#joy.on{opacity:1;transition:opacity .2s}#knob{background:#e6ecffd9;border-radius:50%;width:50px;height:50px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 10px #00000059}.actions{right:calc(env(safe-area-inset-right) + 18px);bottom:calc(env(safe-area-inset-bottom) + 22px);pointer-events:auto;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:absolute}.actions .row{align-items:flex-end;gap:14px;display:flex}.round{color:#eef2ff;-webkit-backdrop-filter:blur(6px);touch-action:none;background:#101832a8;border:2px solid #bed2ff73;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:66px;height:66px;font-family:inherit;display:flex}.round.big{width:84px;height:84px}.round .ico{font-size:22px;line-height:1}.round.big .ico{font-size:26px}.round .cap{color:#b9c6ef;white-space:nowrap;font-size:10px;font-weight:700}.round:active,.round.held{background:#ffd27a59;border-color:#ffd27a}.act{color:#2a1c05;background:linear-gradient(#ffe39a,#f2b444);border:0;border-radius:999px;padding:12px 20px;font-family:inherit;font-size:16px;font-weight:900;animation:1.2s ease-in-out infinite glow;box-shadow:0 4px #a86f12,0 6px 18px #ffbe4666}@keyframes glow{50%{transform:scale(1.05)}}.overlay{background:radial-gradient(#080c1c59,#050812cc);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.card{text-align:center;background:linear-gradient(#18203ef0,#0e1328f5);border:1px solid #aabeff40;border-radius:22px;width:min(92vw,420px);max-height:92vh;padding:22px 22px 18px;overflow:auto;box-shadow:0 30px 80px #00000080}.kicker{letter-spacing:3px;color:#8fa2d8;font-size:11px}.card h1{letter-spacing:4px;color:#f4efe2;text-shadow:0 0 24px #a0beff59;margin:6px 0 4px;font-family:Noto Serif TC,serif;font-size:34px;font-weight:900}.lead{color:#c9d3f2;margin:6px 0 12px;font-size:14px;line-height:1.7}.lead b{color:#ffe08a}.rules{text-align:left;color:#c3cdee;max-width:330px;margin:0 auto 14px;padding-left:22px;font-size:13px;line-height:1.85}.rules b{color:#fff}.btn{letter-spacing:2px;color:#2a1c05;cursor:pointer;background:linear-gradient(#ffe39a,#f2b444);border:0;border-radius:999px;padding:13px 34px;font-family:inherit;font-size:18px;font-weight:900;box-shadow:0 5px #a86f12}.btn:active{transform:translateY(3px);box-shadow:0 2px #a86f12}.keys{color:#7f8db8;margin-top:12px;font-size:11px}.frame{background:linear-gradient(135deg,#c99a45,#8a5f1e,#e2b964);border-radius:4px;width:78%;margin:0 auto 10px;padding:10px;box-shadow:0 10px 30px #00000080}.frame img{aspect-ratio:4/3;object-fit:cover;border:3px solid #4a3412;width:100%;display:block}.plaque{color:#2a1c05;margin-top:6px;font-family:Noto Serif TC,serif;font-size:12px;font-weight:900}.end-title{color:#f4efe2;font-family:Noto Serif TC,serif;font-size:24px;font-weight:900}.stars{color:#ffd27a;letter-spacing:6px;margin:2px 0;font-size:34px}.score{color:#ffe08a;font-size:40px;font-weight:900;line-height:1.1}.detail{color:#c3cdee;margin:6px 0 2px;font-size:13px}.best{color:#7f8db8;margin-bottom:12px;font-size:12px}@media (orientation:portrait){.chip{min-width:54px;padding:5px 8px}.clock{min-width:120px}.card h1{font-size:30px}}@media (orientation:landscape) and (height<=520px){#end .card:has(.frame:not(.hidden)){grid-template-columns:1.1fr 1fr;align-items:center;gap:6px 18px;width:min(94vw,760px);display:grid}#end .card:has(.frame:not(.hidden)) .frame{grid-row:1/span 6;width:100%;margin:0}.card{padding:16px 18px 14px}.rules{margin-bottom:10px;line-height:1.6}.lead{margin:4px 0 8px}.card h1{font-size:28px}}
