*{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;height:100%;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:#0000;color:#fff;background:#d9d2c3;font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Noto Sans JP,system-ui,sans-serif}.game-canvas{touch-action:none;cursor:none;display:block;position:fixed;inset:0}.hud{pointer-events:none;z-index:10;padding:calc(14px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.hud-top{flex-direction:column;align-items:center;gap:8px;display:flex}.hud-bottom{flex-direction:column;align-items:center;gap:10px;display:flex}.chips{flex-wrap:nowrap;justify-content:center;gap:8px;display:flex}.chip{color:#f3e8d8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#1e100680;border:1px solid #ffebc82e;border-radius:999px;padding:5px 12px;font-size:12px}.chip b{color:#fff;margin-inline-start:2px;font-size:14px;font-weight:600}.chip small{color:#d9c6a8;margin-inline-start:1px;font-size:10px}.chip.score b{color:#ffe6a0}.chip.combo{animation:.42s chipPulse}.chip.time b{color:#cfe9ff}.chip.speed b{color:#ffd27a}.chip.speed.fever{background:#96460c99;border-color:#ffb45a99;animation:.5s ease-in-out infinite feverPulse}.chip.speed.fever b{color:#fff0c8}@keyframes feverPulse{0%,to{box-shadow:0 0 #ffaa3c00}50%{box-shadow:0 0 12px #ffaa3cb3}}@keyframes chipPulse{0%{transform:scale(1)}28%{background:#965618cc;transform:scale(1.3)}to{transform:scale(1)}}.actions{gap:10px;display:flex}button{font:inherit;pointer-events:auto;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#1e100680;border:1px solid #ffebc838;border-radius:999px;padding:11px 24px;font-size:14px;font-weight:500;transition:transform 50ms}button:active{transform:scale(.96)}button:focus-visible{outline-offset:2px;outline:2px solid #ffb45e}.add-oil{align-items:center;gap:7px;display:inline-flex}.add-oil .oil-left{color:#4a2206;background:#ffb45aeb;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.add-oil:disabled{opacity:.45;cursor:not-allowed}.add-oil:disabled:active{transform:none}.add-oil:disabled .oil-left{color:#f3e8d8;background:#ffebc84d}.overlay{z-index:20;pointer-events:auto;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay.start .ov-title,.overlay.clear .ov-title{background:linear-gradient(#fff7e0 0%,#ffd884 45%,#ff9b39 100%);-webkit-text-fill-color:#0000;color:#ffce72;filter:drop-shadow(0 6px 22px #ffaa3c99);-webkit-background-clip:text;background-clip:text}.overlay.start .ov-bg{background:radial-gradient(circle at 50% 42%,#46240a80,#120802d1)}.overlay.start .ov-title{white-space:normal;font-size:clamp(28px,8vw,64px);line-height:1.15;animation:.6s cubic-bezier(.18,1.5,.4,1) both ovPop}.overlay.clear .ov-bg{background:radial-gradient(circle at 50% 40%,#ffce6e80,#6e340866 38%,#140802b3)}.overlay.clear .ov-title{animation:.6s cubic-bezier(.18,1.5,.4,1) both ovPop,2.6s ease-in-out .6s infinite ovFloat}.overlay.clear .ov-stat b{color:#ffdf95}.overlay.over .ov-bg{background:radial-gradient(circle at 50% 46%,#78160a8c,#0e0403d9)}.overlay.over .ov-title{color:#ff5947;text-shadow:0 6px 26px #ff2814a6,0 0 3px #2a0000;font-size:clamp(34px,11vw,88px);animation:.55s cubic-bezier(.3,1.4,.4,1) both ovSlam}.overlay.over .ov-btn:not(.share){color:#400;background:linear-gradient(#ffb1a4,#ff6a52);box-shadow:0 8px 24px #ff3c2866}.ov-bg{animation:.3s both ovFade;position:absolute;inset:0}.ov-inner{text-align:center;max-width:90vw;padding:24px;position:relative}.ov-title{letter-spacing:.03em;white-space:nowrap;font-size:clamp(44px,15vw,104px);font-weight:800;line-height:1}.ov-sub{color:#ffe8c8;text-shadow:0 1px 6px #0009;opacity:0;margin-top:14px;font-size:15px;font-weight:600;animation:.5s .35s both ovFadeUp}.ov-stats{opacity:0;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:22px;animation:.5s .5s both ovFadeUp;display:flex}.ov-stat{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#140a0480;border:1px solid #ffe1b440;border-radius:16px;min-width:88px;padding:12px 18px}.ov-stat span{color:#e9d4b4;letter-spacing:.08em;font-size:11px;display:block}.ov-stat b{color:#fff;margin-top:4px;font-size:30px;font-weight:800;display:block}.ov-breakdown{color:#e9d4b4;opacity:0;margin-top:12px;font-size:12px;animation:.5s .55s both ovFadeUp}.ov-rank{color:#ffe6c2;opacity:0;margin-top:18px;font-size:16px;font-weight:700;animation:.5s .6s both ovFadeUp}.ov-rank b{color:#ffd56a;margin:0 4px;font-size:24px}.ov-buttons{flex-direction:column;align-items:center;gap:12px;margin-top:26px;display:flex}.ov-btn{font:inherit;color:#3a1d08;cursor:pointer;opacity:0;background:linear-gradient(#ffe09a,#ffb24a);border:none;border-radius:999px;padding:14px 38px;font-size:16px;font-weight:700;transition:transform 60ms;animation:.5s .6s both ovFadeUp;box-shadow:0 8px 24px #ff962866}.ov-btn:active{transform:scale(.95)}.ov-btn.secondary{color:#ffe6c2;box-shadow:none;background:#1e10068c;border:1px solid #ffe1b44d;padding:12px 30px;font-size:15px;animation-delay:.68s}.ov-btn.share{color:#fff;background:#000;padding:12px 30px;font-size:15px;animation-delay:.64s;box-shadow:0 8px 24px #00000059}.ov-btn.share svg{vertical-align:-3px;margin:0 1px}.name-field{opacity:0;width:min(320px,80vw);margin:26px auto 0;animation:.5s .45s both ovFadeUp}.name-input{width:100%;font:inherit;text-align:center;color:#fff;-webkit-user-select:text;user-select:text;background:#140a048c;border:1px solid #ffe1b44d;border-radius:999px;outline:none;padding:13px 18px;font-size:16px}.name-input::placeholder{color:#ffe6c88c}.name-input:focus{border-color:#ffb45e}.name-hint{color:#d9c6a8;margin-top:8px;font-size:11px}.rank-modal{background:linear-gradient(#281608f5,#180c04f5);border:1px solid #ffe1b440;border-radius:20px;flex-direction:column;width:min(440px,92vw);max-height:86vh;animation:.4s cubic-bezier(.18,1.4,.4,1) both ovPop;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000080}.rank-head{text-align:center;padding:20px 20px 12px}.rank-head h2{color:#ffd884;font-size:24px;font-weight:800}.rank-head p{color:#d9c6a8;margin-top:4px;font-size:12px}.rank-list{-webkit-overflow-scrolling:touch;padding:4px 14px 14px;overflow-y:auto}.rank-row{border-radius:12px;align-items:center;gap:12px;padding:10px;font-size:14px;display:flex}.rank-row:nth-child(odd){background:#ffebc80a}.rank-row.top1 .rank-num{color:#ffd24a}.rank-row.top2 .rank-num{color:#e8e2d2}.rank-row.top3 .rank-num{color:#f0a657}.rank-row.placeholder{pointer-events:none}.rank-row.placeholder .rank-num{color:#c9b48f66}.rank-row.placeholder .rank-name,.rank-row.placeholder .rank-time,.rank-row.placeholder .rank-score{color:#ffebc833;font-weight:500}.rank-row.skeleton{pointer-events:none}.rank-row.skeleton .sk-bar{background:linear-gradient(90deg,#ffebc814 25%,#ffebc833 50%,#ffebc814 75%) 0 0/200% 100%;border-radius:7px;height:14px;animation:1.2s ease-in-out infinite skShimmer;display:block}.rank-row.skeleton .rank-num .sk-bar{width:16px;margin:0 auto}.rank-row.skeleton .rank-time .sk-bar{width:38px;margin-inline-start:auto}.rank-row.skeleton .rank-score .sk-bar{width:48px;margin-inline-start:auto}.rank-num{text-align:center;color:#c9b48f;flex:none;width:34px;font-weight:800}.rank-name{text-overflow:ellipsis;white-space:nowrap;color:#fff7ea;flex:1;min-width:0;overflow:hidden}.rank-time{text-align:end;color:#d9c6a8;font-variant-numeric:tabular-nums;flex:none;width:56px;font-size:12px}.rank-score{color:#ffe6a0;text-align:end;font-variant-numeric:tabular-nums;flex:none;width:90px;font-weight:800}.rank-empty{text-align:center;color:#d9c6a8;padding:40px 20px;font-size:14px}.rank-close{align-self:center;margin:4px 16px 18px}@keyframes ovPop{0%{opacity:0;transform:scale(.2)rotate(-8deg)}60%{opacity:1;transform:scale(1.16)rotate(3deg)}to{transform:scale(1)rotate(0)}}@keyframes ovSlam{0%{opacity:0;letter-spacing:.5em;transform:translateY(-70px)scale(2.2)}65%{opacity:1;transform:translateY(0)scale(.9)}to{transform:scale(1)}}@keyframes ovFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes ovFade{0%{opacity:0}to{opacity:1}}@keyframes ovFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes skShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.lang-switcher{top:calc(10px + env(safe-area-inset-top));z-index:25;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;cursor:pointer;background:#140a048c;border:1px solid #ffd28c40;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;display:inline-flex;position:fixed;inset-inline-end:calc(10px + env(safe-area-inset-right));box-shadow:0 4px 16px #0000004d}.lang-globe{font-size:14px;line-height:1}.lang-select{appearance:none;color:#ffe8c8;font:inherit;cursor:pointer;background:0 0;border:none;outline:none;font-size:13px;font-weight:600}.lang-select:disabled{opacity:.6;cursor:default}.lang-select option{color:#1a0e04;background:#fff}.score-page{background:radial-gradient(circle at 50% 42%,#db7a2a 0%,#b8551b 36%,#7c3409 68%,#2c1404 100%);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.score-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.score-droplet{border-radius:50%;display:block;position:absolute;transform:translate(-50%,-50%)}.score-chopstick{background-image:linear-gradient(90deg,#e6c187,#c39f5b);border-radius:999px;height:2.2vmin;min-height:12px;position:absolute}.score-chopstick.a{width:50vmin;top:4%;right:-6%;transform:rotate(38deg)}.score-chopstick.b{width:50vmin;top:11%;right:-9%;transform:rotate(45deg)}.score-vignette{background:radial-gradient(circle,#0000 46%,#0000009e 100%);position:absolute;inset:0}.score-card{z-index:1;text-align:center;max-width:90vw;position:relative}.score-kicker{letter-spacing:.18em;color:#ffce72;font-size:14px;font-weight:700}.score-badge{color:#3a1d08;background:linear-gradient(#ffe09a,#ffb24a);border-radius:999px;margin-top:12px;padding:4px 14px;font-size:14px;font-weight:800;display:inline-block}.score-name{color:#fff7ea;word-break:break-word;margin-top:14px;font-size:clamp(22px,6vw,34px);font-weight:800}.score-big{background:linear-gradient(#fff7e0 0%,#ffd884 45%,#ff9b39 100%);-webkit-text-fill-color:#0000;filter:drop-shadow(0 6px 22px #ffaa3c8c);-webkit-background-clip:text;background-clip:text;margin-top:4px;font-size:clamp(64px,20vw,132px);font-weight:800;line-height:1}.score-meta{color:#ffe6c2;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:14px;font-size:16px;font-weight:700;display:flex}.score-meta b{color:#ffd56a;margin:0 3px}.score-sub{color:#ffe8c8;margin-top:16px;font-size:16px;font-weight:600}.score-cta{color:#3a1d08;background:linear-gradient(#ffe09a,#ffb24a);border-radius:999px;margin-top:30px;padding:14px 40px;font-size:16px;font-weight:700;text-decoration:none;display:inline-block;box-shadow:0 8px 24px #ff962866}
