:root{--bg:#0b0b0f;--fg:#f4f4f7;--muted:#8a8a9a;--accent:#f5a623;--accent-deep:#c97f0a;--card:#16161d;--card-hover:#1f1f29;--border:#2a2a36;--done:#4ade80}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;touch-action:manipulation;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}#app{min-height:100dvh;padding:env(safe-area-inset-top) 1rem env(safe-area-inset-bottom);flex-direction:column;display:flex}.top{justify-content:space-between;align-items:center;gap:1rem;padding-top:.5rem;display:flex}.back{color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin-left:-.5rem;padding:.5rem;font-size:1rem}.back:active{color:var(--fg)}.icon-btn{color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin-right:-.5rem;padding:.5rem;font-size:1.25rem}.icon-btn:active{color:var(--fg)}.dots{flex:1;justify-content:center;gap:6px;display:flex}.dot{background:var(--border);border-radius:50%;width:8px;height:8px}.dot.active{background:var(--accent)}.dot.done{background:var(--done)}.picker{flex-direction:column;flex:1;justify-content:center;gap:1rem;padding:2rem 0;display:flex}.picker h1{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.5rem}.picker .sub{color:var(--muted);margin-bottom:1.5rem}.recipe-card{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:14px;padding:1.25rem 1.5rem}.recipe-card:active{background:var(--card-hover)}.recipe-card .title{font-size:1.25rem;font-weight:600}.recipe-card .meta{color:var(--muted);margin-top:.25rem;font-size:.9rem}.recipe-card .count{color:var(--accent);margin-top:.5rem;font-size:.85rem}.mise{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;padding:1rem 0;display:flex}.mise:active{background:#ffffff05}.mise .no-advance{cursor:default}.mise h1{letter-spacing:-.02em;margin:1.25rem 0 .25rem;font-size:1.65rem}.mise .sub{color:var(--muted);margin-bottom:1.5rem;font-size:.95rem}.section-head{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:1.25rem 0 .5rem;font-size:.75rem;font-weight:500}.section-head:first-child{margin-top:0}.ingredient-list{flex-direction:column;gap:.5rem;margin-bottom:.5rem;display:flex}.ingredient-list:last-of-type{margin-bottom:1.5rem}.ingredient{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:.75rem;padding:.75rem 1rem;display:flex}.ingredient.checked{opacity:.4}.ingredient.checked .name{text-decoration:line-through}.ingredient .check{border:1.5px solid var(--border);width:1.1rem;height:1.1rem;color:var(--done);border-radius:4px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;font-size:.85rem;display:inline-flex}.ingredient.checked .check{background:var(--done);border-color:var(--done);color:#082014}.ingredient .qty{font-variant-numeric:tabular-nums;color:var(--accent);min-width:4rem;font-weight:500}.ingredient .name{flex:1}.ingredient .opt{color:var(--fg);opacity:.85;cursor:help;flex-basis:100%;margin-left:1.85rem;font-size:.95rem}.ingredient .opt .opt-qty{color:var(--accent);font-variant-numeric:tabular-nums;min-width:4rem;margin-right:.5em;display:inline-block}.ingredient.checked .opt{text-decoration:line-through}.runner{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;padding:1rem 0;display:flex}.runner:active{background:#ffffff05}.runner .no-advance{cursor:default}.step{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:1.5rem .5rem;display:flex}.step .index{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem;font-size:.85rem}.step-ingredients{flex-wrap:wrap;justify-content:center;gap:.4rem;max-width:22rem;margin-bottom:1.5rem;display:flex}.step-ingredients .pill{background:var(--card);border:1px solid var(--border);border-radius:999px;padding:.35rem .75rem;font-size:.85rem}.step-ingredients .pill .qty{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:.35em}.step .name{letter-spacing:-.025em;margin:0 0 1rem;font-size:2rem;font-weight:700;line-height:1.15}.step .note{color:var(--fg);opacity:.85;max-width:22rem;font-size:1.05rem;line-height:1.45}.timer{font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:-.04em;margin:.75rem 0;font-size:4.5rem;font-weight:200}.timer.done{color:var(--done)}.timer-controls{gap:.75rem;margin-top:.5rem;display:flex}.timer-btn{background:var(--card);border:1px solid var(--border);color:var(--fg);cursor:pointer;border-radius:10px;padding:.6rem 1.25rem;font-size:.95rem}.bottom{flex-direction:column;gap:.5rem;padding-bottom:.5rem;display:flex}.next-peek{text-align:center;color:var(--muted);min-height:1.5em;font-size:.9rem}.next-peek .label{letter-spacing:.08em;text-transform:uppercase;opacity:.7;margin-right:.5em;font-size:.75rem}.advance{background:var(--accent);color:#1a1308;cursor:pointer;border:none;border-radius:14px;padding:1.25rem;font-size:1.15rem;font-weight:600}.advance:active{background:var(--accent-deep)}.advance.done{background:var(--done);color:#082014}.complete{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1rem;display:flex}.complete .check{color:var(--done);font-size:4rem}.complete h2{letter-spacing:-.02em;margin:0;font-size:1.75rem}.complete p{color:var(--muted);margin:0}.complete .advance{width:100%;max-width:22rem;margin-top:2rem}.timer-stack{z-index:50;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.timer-bar{-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-top:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#16161deb;align-items:center;gap:.85rem;padding:.75rem 1rem;display:flex}.timer-stack>.timer-bar:last-child{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}.timer-bar .tb-meta{flex-direction:column;flex:1;min-width:0;display:flex}.timer-bar .tb-step{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;line-height:1.2;overflow:hidden}.timer-bar .tb-recipe{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.timer-bar .tb-time{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--accent);flex-shrink:0;font-size:1.7rem;font-weight:300}.timer-bar.paused .tb-time{opacity:.45}.timer-bar.done .tb-time{color:var(--done)}.timer-bar .tb-controls{flex-shrink:0;gap:.4rem;display:flex}.timer-bar .tb-btn{background:var(--card-hover);border:1px solid var(--border);color:var(--fg);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:9px;min-width:2.5rem;padding:.5rem;font-size:.95rem}.timer-bar .tb-btn:active{background:var(--border)}.timer-bar .tb-btn:disabled{opacity:.5;cursor:default}.timer-bar.done{border-top-color:var(--done);animation:1.1s ease-in-out infinite tb-flash}@keyframes tb-flash{0%,to{background:#16161dd1}50%{background:#4ade8029}}body.timer-active #app{padding-bottom:calc(var(--timer-dock-h,88px) + env(safe-area-inset-bottom))}@media (width>=640px){.timer-stack{gap:.5rem;width:min(34rem,100% - 2rem);bottom:1.25rem;left:50%;right:auto;transform:translate(-50%)}.timer-bar{border:1px solid var(--border);border-radius:18px;padding:.85rem .9rem .85rem 1.25rem;box-shadow:0 12px 44px #0000008c}.timer-stack>.timer-bar:last-child{padding-bottom:.85rem}.timer-bar.done{border-color:var(--done)}body.timer-active #app{padding-bottom:calc(var(--timer-dock-h,96px) + env(safe-area-inset-bottom))}}
