:root{color:#f8f4e7;background:#111317;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #171b21;--paper: #fff7e7;--paper-deep: #f2dfbd;--ember: #ef5b2b;--amber: #f2b544;--teal: #2c8c7a;--mint: #dff3de;--charcoal: #111317}*{box-sizing:border-box}html,body{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{min-height:100dvh;background:linear-gradient(180deg,#2c8c7a1f,#0000 32%),#111317}button,input{font:inherit}button{touch-action:manipulation}.app-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100dvh;background:#171b21}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;color:var(--paper);background:#171b21;border-bottom:1px solid rgba(255,247,231,.12)}.brand{min-width:0}.brand span{display:block;margin-bottom:2px;color:var(--mint);font-size:.72rem;font-weight:700}.brand h1{margin:0;overflow:hidden;color:#fff;font-size:1.1rem;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.score-strip{display:grid;grid-template-columns:repeat(3,minmax(52px,1fr));gap:6px;flex:0 1 212px;min-width:174px;margin:0}.score-strip div{min-width:0;padding:6px 7px;background:#fff7e714;border:1px solid rgba(255,247,231,.14);border-radius:8px}.score-strip dt,.score-strip dd{margin:0;text-align:center}.score-strip dt{color:#fff7e7bd;font-size:.7rem}.score-strip dd{color:#fff;font-size:1rem;font-weight:800;line-height:1.1}.stage-wrap{position:relative;min-height:0;overflow:hidden;background:#202020}#gameCanvas{display:block;width:100%;height:100%}.stage-overlay{position:absolute;top:12px;right:12px;left:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none}.status-text{max-width:78%;margin:0;padding:8px 10px;color:var(--paper);font-size:.9rem;font-weight:800;line-height:1.35;background:#111317bd;border:1px solid rgba(255,247,231,.18);border-radius:8px;box-shadow:0 10px 28px #00000038}.timer-pill{flex:0 0 auto;min-width:74px;padding:8px 10px;color:var(--ink);text-align:center;background:var(--paper);border:1px solid rgba(17,19,23,.1);border-radius:8px;box-shadow:0 10px 24px #00000038}.timer-pill span{display:block;font-size:.68rem;font-weight:800}.timer-pill strong{display:block;color:#a1321a;font-size:1.22rem;line-height:1}.control-dock{display:grid;gap:10px;padding:12px 12px calc(12px + env(safe-area-inset-bottom));color:var(--ink);background:linear-gradient(180deg,#fffaf0,var(--paper-deep));border-top:1px solid rgba(17,19,23,.1);box-shadow:0 -12px 38px #00000038}.doneness-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gauge{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:7px;min-height:40px;padding:7px;background:#ffffff9e;border:1px solid rgba(23,27,33,.12);border-radius:8px}.gauge.active{border-color:#2c8c7a9e;box-shadow:inset 0 0 0 1px #2c8c7a33}.gauge-name{font-size:.84rem;font-weight:900;text-align:center}.gauge-track{position:relative;height:18px;overflow:hidden;background:#d8c7a6;border-radius:8px}.gauge-track i{position:absolute;inset:0 auto 0 0;width:0%;background:linear-gradient(90deg,#f2d77c,#ef8e2b 58%,#6a2b1c);border-radius:inherit;transition:width 90ms linear}.gauge-track b{position:absolute;inset:0;display:grid;place-items:center;color:#171b21;font-size:.72rem;line-height:1}.heat-control{display:grid;gap:8px;padding:10px;background:#ffffff8c;border:1px solid rgba(23,27,33,.12);border-radius:8px}.heat-control label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:900}.heat-control label strong{color:#a1321a;font-size:1rem}.heat-control input[type=range]{width:100%;min-height:44px;margin:0;accent-color:var(--ember)}.fire-meter{height:9px;overflow:hidden;background:#c9d8cd;border-radius:8px}.fire-meter i{display:block;width:62%;height:100%;background:linear-gradient(90deg,var(--teal),var(--amber),var(--ember));border-radius:inherit;transition:width 90ms linear}.button-row{display:grid;grid-template-columns:1.12fr .88fr .98fr;gap:8px}.button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:54px;padding:9px 8px;color:var(--paper);background:#283039;border:0;border-radius:8px;box-shadow:0 4px #0000003d}.button span{display:inline-grid;place-items:center;width:22px;height:22px;font-size:1rem;line-height:1}.button b{overflow-wrap:anywhere;font-size:.96rem;line-height:1.1}.button.primary{color:#121411;background:var(--amber)}.button.finish{background:var(--teal)}.button:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #0000003d}.button:disabled{color:#ffffff7a;background:#7f8584;box-shadow:none}.result-line{min-height:20px;margin:0;overflow:hidden;color:#4c3928;font-size:.82rem;font-weight:800;line-height:1.35;text-align:center;text-overflow:ellipsis;white-space:nowrap}@media(min-width:720px){.app-shell{max-width:860px;margin:0 auto;border-right:1px solid rgba(255,247,231,.08);border-left:1px solid rgba(255,247,231,.08)}.brand h1{font-size:1.24rem}.control-dock{grid-template-columns:1fr 1fr;align-items:end}.doneness-panel,.result-line{grid-column:1 / -1}}@media(max-height:700px){.topbar{min-height:56px;padding-top:calc(7px + env(safe-area-inset-top));padding-bottom:7px}.brand span{display:none}.control-dock{gap:7px;padding-top:8px}.heat-control{padding:8px}.button{min-height:50px}}@media(orientation:landscape)and (max-height:520px){.app-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(286px,36%);max-width:none}.topbar{grid-column:1 / -1}.stage-wrap{grid-column:1;grid-row:2}.control-dock{grid-column:2;grid-row:2;align-content:center;overflow:auto;border-top:0;border-left:1px solid rgba(17,19,23,.14);box-shadow:-10px 0 28px #0003}.doneness-panel,.button-row{grid-template-columns:1fr}.result-line{white-space:normal}}@media(max-width:370px){.topbar{gap:8px;padding-right:10px;padding-left:10px}.score-strip{grid-template-columns:repeat(3,minmax(46px,1fr));min-width:154px}.score-strip div{padding-right:5px;padding-left:5px}.button b{font-size:.88rem}}@media(max-width:520px){.score-strip{grid-template-columns:repeat(3,minmax(48px,1fr));flex-basis:174px}.score-strip div{padding-right:6px;padding-left:6px}.brand h1{font-size:1rem}}
