/* Cozy Cabin Cookery — Kitchen Mode & timers */
.km-bar{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem;margin:-0.8rem 0 2rem}
.km-btn{font-family:'Playfair Display',serif;font-size:0.72rem;font-weight:700;letter-spacing:0.14em;
text-transform:uppercase;color:var(--amber);background:transparent;border:1px solid var(--border-mid);
padding:0.65rem 1.1rem;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:0.5rem;
transition:border-color .2s,background .2s,color .2s;-webkit-tap-highlight-color:transparent}
.km-btn:hover,.km-btn:focus-visible{border-color:var(--amber);background:rgba(212,145,58,0.08);outline:none}
.km-btn svg{width:15px;height:15px;flex:none}
.km-toggle[aria-pressed="true"]{color:#2A1608;background:linear-gradient(135deg,#E8B84B,#D4960E 55%,#B87B0A);border-color:#8B5E0A}
.km-note{font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-hint)}
.km-clear{display:none}

/* time phrases inside steps */
.km-t{font:inherit;color:var(--rust-light);background:rgba(224,120,64,0.08);border:none;
border-bottom:1px dashed rgba(240,160,96,0.55);padding:0 0.25em;margin:0 0.05em;border-radius:3px 3px 0 0;
cursor:pointer;display:inline;line-height:inherit;-webkit-tap-highlight-color:transparent;transition:background .2s}
.km-t:hover,.km-t:focus-visible{background:rgba(224,120,64,0.2);outline:none}
.km-t svg{width:0.85em;height:0.85em;vertical-align:-0.08em;margin-left:0.3em;opacity:0.85}
.km-t.km-pop{animation:kmPop .5s ease}
@keyframes kmPop{40%{background:rgba(232,184,75,0.45)}}

/* kitchen mode page */
body.km .wrap{max-width:880px}
body.km .km-bar{position:sticky;top:0;z-index:50;margin:-0.8rem -1.4rem 2rem;padding:0.8rem 1.4rem;
background:rgba(13,8,4,0.94);border-bottom:1px solid var(--border-mid);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
body.km .km-clear{display:inline-flex}
body.km .hero-link,body.km .hero,body.km .needs-img,body.km .related,body.km .signup,body.km .back,body.km .lede{display:none}
body.km h1{font-size:2.4rem}
body.km h2{font-size:0.85rem}
body.km ul.ing li{font-size:1.2rem;padding:0.8rem 0 0.8rem 2.4rem;cursor:pointer;color:var(--text);user-select:none;-webkit-user-select:none}
body.km ol.steps li{font-size:1.28rem;line-height:1.7;padding:0.4rem 0 1.6rem 3.2rem;cursor:pointer;color:var(--text);user-select:none;-webkit-user-select:none}
body.km ol.steps li::before{width:2.1rem;height:2.1rem;font-size:0.9rem}
body.km ul.ing li::before{width:16px;height:16px;left:0.2rem;top:1.15rem;border-radius:3px;background:transparent;
border:1.5px solid var(--amber);opacity:0.8}
body.km ul.ing li.km-done::before{background:var(--amber);opacity:1}
body.km li.km-done{opacity:0.42;text-decoration:line-through;text-decoration-color:rgba(212,145,58,0.6)}
body.km ol.steps li.km-done::before{content:'✓';background:rgba(212,145,58,0.25)}
body.km li:focus-visible{outline:1px dashed var(--amber);outline-offset:4px}
body.km .km-t{font-size:1em}
@media(max-width:600px){body.km h1{font-size:1.9rem}body.km ol.steps li{font-size:1.15rem}body.km ul.ing li{font-size:1.08rem}
body.km .km-bar{margin:-0.8rem -1.1rem 1.6rem;padding:0.7rem 1.1rem}}
body.km-has-timers .wrap{padding-bottom:22rem}
@media(min-width:1000px){body.km-has-timers .wrap{margin-left:auto;margin-right:max(380px,calc((100vw - 880px)/2))}}
@media(max-width:600px){.km-timer{padding:0.6rem 0.6rem 0.7rem}.km-time{font-size:1.4rem}.km-ctrl{margin-top:0.35rem}.km-ctrl button{padding:0.35rem 0.6rem}}

/* timer tray */
.km-tray{position:fixed;right:1rem;bottom:1rem;z-index:9000;width:min(350px,calc(100vw - 2rem));max-height:62vh;
display:flex;flex-direction:column;background:#170e07;border:1px solid var(--border-mid);border-top:2px solid var(--rust);
border-radius:6px;box-shadow:0 14px 44px rgba(0,0,0,0.6);font-family:'Lora',Georgia,serif;color:var(--text)}
.km-tray[hidden]{display:none}
@media(max-width:600px){.km-tray{left:0.7rem;right:0.7rem;bottom:0.7rem;width:auto;max-height:55vh}}
.km-head{display:flex;align-items:center;gap:0.5rem;padding:0.7rem 0.8rem 0.7rem 1rem;border-bottom:1px solid var(--border)}
.km-title{flex:1;font-family:'Playfair Display',serif;font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--amber);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-title b{font-variant-numeric:tabular-nums;letter-spacing:0.06em;color:var(--text);font-weight:600;margin-left:0.4rem}
.km-icon{background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;border-radius:3px;
width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none;-webkit-tap-highlight-color:transparent}
.km-icon:hover,.km-icon:focus-visible{border-color:var(--border-mid);color:var(--amber);outline:none}
.km-icon svg{width:16px;height:16px}
.km-head .km-plus{width:auto;padding:0 0.6rem;font-family:'Playfair Display',serif;font-size:0.66rem;font-weight:700;letter-spacing:0.14em;
text-transform:uppercase;color:var(--amber);border-color:var(--border-mid);gap:0.35rem}
.km-tray.km-min .km-list,.km-tray.km-min .km-new{display:none}
.km-tray.km-min .km-head{border-bottom:none}
.km-list{overflow-y:auto;padding:0.4rem 0.6rem 0.6rem;-webkit-overflow-scrolling:touch}
.km-timer{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:0.15rem 0.6rem;
padding:0.75rem 0.7rem 0.85rem;margin-top:0.4rem;border:1px solid var(--border);border-radius:4px;background:rgba(14,8,3,0.6);overflow:hidden}
.km-name{font-family:'Playfair Display',serif;font-style:italic;font-size:0.98rem;color:var(--text);line-height:1.3;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-sub{grid-column:1/2;font-size:0.66rem;letter-spacing:0.06em;color:var(--text-hint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-time{grid-row:1/3;grid-column:2;font-family:'Playfair Display',serif;font-size:1.65rem;font-weight:600;color:var(--text);
font-variant-numeric:tabular-nums;letter-spacing:0.02em;text-align:right}
.km-ctrl{grid-column:1/3;display:flex;gap:0.35rem;margin-top:0.45rem;flex-wrap:wrap}
.km-ctrl button{font-family:'Lora',serif;font-size:0.74rem;color:var(--text-muted);background:transparent;border:1px solid var(--border-mid);
border-radius:3px;padding:0.4rem 0.7rem;cursor:pointer;display:inline-flex;align-items:center;gap:0.35rem;-webkit-tap-highlight-color:transparent}
.km-ctrl button:hover,.km-ctrl button:focus-visible{border-color:var(--amber);color:var(--amber);outline:none}
.km-ctrl button svg{width:13px;height:13px}
.km-ctrl .km-x{margin-left:auto}
.km-bar-fill{position:absolute;left:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--rust),var(--amber));transition:width .25s linear}
.km-timer.paused .km-time{color:var(--text-hint)}
.km-timer.done{border-color:var(--amber);background:rgba(212,145,58,0.12);animation:kmGlow 1.8s ease-in-out infinite}
.km-timer.done .km-time{color:#E8B84B;font-style:italic}
.km-timer.done .km-stop{color:#2A1608;background:linear-gradient(135deg,#E8B84B,#D4960E 55%,#B87B0A);border-color:#8B5E0A;font-weight:600}
@keyframes kmGlow{0%,100%{box-shadow:0 0 0 rgba(232,184,75,0)}50%{box-shadow:0 0 24px rgba(232,184,75,0.5)}}
.km-tray.km-ringing{border-top-color:#E8B84B}
@media(prefers-reduced-motion:reduce){.km-timer.done{animation:none;box-shadow:0 0 18px rgba(232,184,75,0.45)}.km-t.km-pop{animation:none}}
.km-empty{font-size:0.8rem;font-style:italic;color:var(--text-hint);padding:0.8rem 0.4rem}

/* new timer form */
.km-new{padding:0.8rem 1rem 0.9rem;border-bottom:1px solid var(--border)}
.km-new[hidden]{display:none}
.km-new label{display:block;font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-hint);margin-bottom:0.3rem}
.km-new input{font-family:'Lora',serif;font-size:0.95rem;color:var(--text);background:rgba(14,8,3,0.7);border:1px solid var(--border-mid);
border-radius:3px;padding:0.5rem 0.6rem;width:100%;min-width:0}
.km-new input:focus{outline:none;border-color:var(--rust);box-shadow:0 0 0 2px rgba(224,120,64,0.15)}
.km-dur{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.4rem;margin:0.6rem 0}
.km-dur input{text-align:center;font-variant-numeric:tabular-nums}
.km-presets{display:flex;flex-wrap:wrap;gap:0.3rem;margin-bottom:0.7rem}
.km-presets button{font-family:'Lora',serif;font-size:0.72rem;color:var(--text-muted);background:transparent;border:1px solid var(--border);
border-radius:999px;padding:0.25rem 0.65rem;cursor:pointer}
.km-presets button:hover,.km-presets button:focus-visible{border-color:var(--amber);color:var(--amber);outline:none}
.km-go{display:flex;gap:0.4rem}
.km-go button{flex:1;font-family:'Playfair Display',serif;font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
border-radius:3px;padding:0.6rem;cursor:pointer;border:1px solid var(--border-mid);background:transparent;color:var(--text-muted)}
.km-go .km-start{color:#2A1608;background:linear-gradient(135deg,#E8B84B,#D4960E 55%,#B87B0A);border-color:#8B5E0A}
@media print{.km-bar,.km-tray{display:none!important}.km-t{background:none;border:none;color:inherit;padding:0}.km-t svg{display:none}}

/* ── the cabin behind Kitchen Mode ── */
.km-bar{position:relative}
.km-cabin-frame{position:fixed;inset:0;width:100%;height:100%;border:0;z-index:0;pointer-events:none;
background:#0d0804;opacity:0;transition:opacity 1.4s ease,filter .25s ease}
.km-cabin-frame.km-lit{opacity:1}
.km-cabin-frame.km-fire-off{opacity:0!important;visibility:hidden}
body.km-fire .wrap{position:relative;z-index:1;min-height:100vh;background:rgba(13,8,4,0.8);
-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 0 70px 20px rgba(0,0,0,0.45)}
@media(max-width:600px){body.km-fire .wrap{background:rgba(13,8,4,0.74)}}
.km-cabinbtn{display:none}
body.km .km-cabinbtn{display:inline-flex}
.km-cabinbtn.km-sounding svg{color:#E8B84B;filter:drop-shadow(0 0 4px rgba(232,184,75,0.7))}
.km-cabinbtn[aria-expanded="true"]{border-color:var(--amber);background:rgba(212,145,58,0.1)}
.km-hint{flex-basis:100%;font-size:0.78rem;font-style:italic;color:var(--rust-light)}
.km-hint:empty{display:none}

.km-cabin-panel{position:absolute;top:calc(100% + 6px);right:1.4rem;z-index:60;width:min(370px,calc(100vw - 1.4rem));
max-height:min(74vh,600px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
background:#170e07;border:1px solid var(--border-mid);border-top:2px solid var(--rust);border-radius:6px;
box-shadow:0 14px 44px rgba(0,0,0,0.65);padding:0.2rem 1rem 1rem;font-family:'Lora',Georgia,serif;color:var(--text);
text-transform:none;letter-spacing:normal;line-height:1.5}
.km-cabin-panel[hidden]{display:none}
@media(max-width:600px){.km-cabin-panel{left:0.7rem;right:0.7rem;width:auto;max-height:70vh}}
.kc-head{display:flex;align-items:center;justify-content:space-between;padding:0.55rem 0 0.5rem;border-bottom:1px solid var(--border);margin-bottom:0.7rem}
.kc-title{font-family:'Playfair Display',serif;font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--amber)}
.kc-switch{display:flex;align-items:center;gap:0.55rem;font-size:0.88rem;color:var(--text-muted);cursor:pointer;margin-bottom:0.8rem}
.kc-switch input{width:1.05rem;height:1.05rem;accent-color:var(--rust);margin:0;flex:none}
.kc-sec{padding:0.75rem 0;border-top:1px solid var(--border)}
.kc-sec[hidden]{display:none}
.kc-lab{display:flex;justify-content:space-between;align-items:baseline;font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;
color:var(--text-hint);margin-bottom:0.5rem}
.kc-lab label{cursor:inherit}
.kc-val{font-family:'Playfair Display',serif;letter-spacing:0.04em;color:var(--text);font-size:0.78rem}
.km-cabin-panel input[type=range]{width:100%;accent-color:var(--rust);margin:0.1rem 0;cursor:pointer}
.kc-chips{display:flex;flex-wrap:wrap;gap:0.35rem}
.kc-chip{font-family:'Lora',serif;font-size:0.76rem;color:var(--text-muted);background:rgba(255,255,255,0.04);
border:1px solid var(--border-mid);border-radius:999px;padding:0.32rem 0.7rem;cursor:pointer;-webkit-tap-highlight-color:transparent}
.kc-chip:hover,.kc-chip:focus-visible{border-color:var(--rust);color:var(--rust-light);outline:none}
.kc-chip.on{background:rgba(224,120,64,0.16);border-color:var(--rust);color:var(--rust-light)}
.kc-row{display:flex;gap:0.45rem;align-items:stretch}
.kc-play{font-family:'Playfair Display',serif;font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
color:var(--amber);background:transparent;border:1px solid var(--border-mid);border-radius:3px;padding:0.5rem 0.8rem;cursor:pointer;flex:none;white-space:nowrap}
.kc-play.on{color:#2A1608;background:linear-gradient(135deg,#E8B84B,#D4960E 55%,#B87B0A);border-color:#8B5E0A}
.kc-track{flex:1;min-width:0;font-family:'Lora',serif;font-size:0.84rem;color:var(--text);background:rgba(14,8,3,0.7);
border:1px solid var(--border-mid);border-radius:3px;padding:0.45rem 0.5rem}
.kc-track:focus,.kc-play:focus-visible{outline:none;border-color:var(--rust)}
.kc-vol{display:flex;align-items:center;gap:0.6rem;margin-top:0.55rem;font-size:0.7rem;font-style:italic;color:var(--text-hint)}
.kc-vol[hidden]{display:none}
.kc-chips+.kc-vol{margin-top:0.7rem}
.kc-wait,.kc-fine{font-size:0.78rem;font-style:italic;color:var(--text-hint);margin:0.6rem 0 0}
.kc-wait[hidden],.kc-live[hidden]{display:none}

/* ── serving scaler ── */
.km-scale{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem;margin:-0.2rem 0 0.9rem}
.km-scale-lab{font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-hint);margin-right:0.3rem}
.km-sbtn{width:2rem;height:2rem;border-radius:50%;border:1px solid var(--border-mid);background:transparent;color:var(--amber);
font-size:1.05rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;-webkit-tap-highlight-color:transparent}
.km-sbtn:hover:not(:disabled),.km-sbtn:focus-visible{border-color:var(--amber);background:rgba(212,145,58,0.08);outline:none}
.km-sbtn:disabled{opacity:0.35;cursor:default}
.km-scount{min-width:1.8rem;text-align:center;font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
.km-schip,.km-sreset{font-family:'Lora',serif;font-size:0.78rem;color:var(--text-muted);background:transparent;border:1px solid var(--border);
border-radius:999px;padding:0.28rem 0.7rem;cursor:pointer;-webkit-tap-highlight-color:transparent}
.km-schip:hover,.km-schip:focus-visible,.km-sreset:hover,.km-sreset:focus-visible{border-color:var(--amber);color:var(--amber);outline:none}
.km-schip.on{background:rgba(224,120,64,0.16);border-color:var(--rust);color:var(--rust-light)}
.km-sreset{margin-left:0.3rem}
.km-sreset[hidden],.km-scale-note[hidden]{display:none}
.km-scale-note{font-size:0.76rem;font-style:italic;color:var(--text-hint);margin:-0.3rem 0 0.9rem}
.km-q{font-weight:600;color:var(--rust-light)}
body.km .km-scale{margin-bottom:1.1rem}
body.km .km-scount{font-size:1.3rem}
body.km .km-sbtn{width:2.4rem;height:2.4rem;font-size:1.25rem}
@media print{.km-scale,.km-scale-note,.km-cabin-frame,.km-cabin-panel{display:none!important}.km-q{color:inherit;font-weight:inherit}}

/* ── resting by the fire (15 quiet seconds) ── */
body.km .km-bar{transition:opacity 1.2s ease}
body.km-fire .wrap{transition:background-color 1.6s ease,opacity 2s ease,box-shadow 2s ease}
body.km-idle .km-bar{opacity:0}
body.km-fire.km-idle .wrap{background:rgba(13,8,4,0.6)}
@media(max-width:600px){body.km-fire.km-idle .wrap{background:rgba(13,8,4,0.6)}}
body.km-rest .wrap{opacity:0;box-shadow:none}
body.km-rest{cursor:pointer}
.kc-restsec[hidden]{display:none}
.kc-restsec .kc-switch{align-items:flex-start;margin:0;font-size:0.84rem;line-height:1.45}
.kc-restsec .kc-switch input{margin-top:0.15rem}
@media(prefers-reduced-motion:reduce){body.km .km-bar,body.km-fire .wrap{transition-duration:.4s}}
