*{box-sizing:border-box}
:root{
 --bg:#f4f1ea;--panel:#fbf8f2;--panel2:#ece6db;--text:#151816;--muted:#736f68;
 --line:#d7d0c4;--gold:#c9953b;--gold2:#e7bd6b;--goldText:#4b3212;
 --green:#4a765f;--blue:#5aa5d9;--orange:#d48b36;--shadow:0 16px 35px rgba(55,45,32,.10);
 --embossHi:rgba(255,255,255,.9);--embossLo:rgba(54,45,32,.18)
}
body.dark{
 --bg:#0e1110;--panel:#171a18;--panel2:#1d211f;--text:#f5f3ee;--muted:#a5a29b;
 --line:#303531;--gold:#e2aa4e;--gold2:#f5c76f;--goldText:#16110a;
 --green:#6fb58e;--blue:#65b7e9;--orange:#e49d40;--shadow:0 18px 42px rgba(0,0,0,.30);
 --embossHi:rgba(255,255,255,.055);--embossLo:rgba(0,0,0,.65)
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;letter-spacing:-.01em;transition:.2s}
button,select,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.topbar{
 position:sticky;top:0;z-index:50;height:78px;display:flex;align-items:center;justify-content:space-between;
 padding:0 max(22px,calc((100vw - 1220px)/2));background:color-mix(in srgb,var(--bg) 94%,transparent);
 backdrop-filter:blur(16px);border-bottom:1px solid var(--line)
}
.brand-wrap{display:flex;align-items:center;gap:10px}.brand-logo{width:48px;height:48px;object-fit:contain}
.brand-copy{display:flex;align-items:baseline;gap:9px;letter-spacing:.15em}.brand-copy b{font-size:17px}.brand-copy span{font-size:9px;color:var(--gold)}
.top-actions{display:flex;gap:8px}
.soft-btn,.icon-btn,.square-btn,.back-btn{
 border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:10px 14px;
 box-shadow:6px 6px 13px var(--embossLo),-4px -4px 10px var(--embossHi);transition:.16s
}
.soft-btn:hover,.icon-btn:hover,.square-btn:hover,.back-btn:hover{transform:translateY(-1px);border-color:var(--gold)}
.soft-btn:active,.icon-btn:active,.square-btn:active,.back-btn:active{
 transform:translateY(1px);box-shadow:inset 4px 4px 8px var(--embossLo),inset -3px -3px 7px var(--embossHi)
}
.icon-btn{width:43px;height:43px;padding:0}.full{width:100%}
main{max-width:1220px;margin:auto;padding:36px 22px 100px}
.eyebrow{font-size:10px;font-weight:850;letter-spacing:.18em;color:var(--gold)}
.home{max-width:950px;margin:auto}.hero{padding:9vh 0 6vh}.hero p{max-width:650px;color:var(--muted);font-size:18px}
h1{font:600 clamp(52px,8vw,88px)/.92 Georgia,serif;letter-spacing:-.055em;margin:14px 0 22px}h1 em,h2 em{color:var(--gold);font-weight:400}
.gold-btn{
 border:1px solid #f0c878;background:linear-gradient(145deg,var(--gold2),var(--gold));
 color:var(--goldText);font-weight:850;border-radius:14px;padding:14px 20px;
 box-shadow:7px 7px 15px var(--embossLo),-4px -4px 10px var(--embossHi),inset 1px 1px 1px rgba(255,255,255,.38);
 transition:.16s
}
.gold-btn:hover{transform:translateY(-2px);filter:brightness(1.03)}.gold-btn:active{transform:translateY(1px);box-shadow:inset 4px 4px 8px rgba(96,58,10,.25)}
.home-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.method-home,.method-card,.roast-grid button,.pill-row button,.ratio-row button,.grind-scroll button{
 border:1px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 98%,white),color-mix(in srgb,var(--panel) 96%,black));
 border-radius:16px;box-shadow:7px 7px 15px var(--embossLo),-4px -4px 10px var(--embossHi);transition:.16s
}
.method-home:hover,.method-card:hover,.roast-grid button:hover,.pill-row button:hover,.ratio-row button:hover,.grind-scroll button:hover{transform:translateY(-2px);border-color:var(--gold)}
.method-home{min-height:135px;text-align:left;padding:20px;display:flex;flex-direction:column;gap:5px}.method-icon{font-size:25px;color:var(--gold)}
.method-home small,.method-card small{color:var(--muted)}.signature{text-align:center;color:var(--muted);font-size:12px;margin-top:45px}
.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.builder{min-width:0}
.back-btn{margin-bottom:20px}.intro{margin:0 0 24px}.intro h2{font:600 44px/1 Georgia,serif;letter-spacing:-.04em;margin:8px 0}.intro p{color:var(--muted);margin:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.method-panel,.controls-panel{padding:22px}.section-head,.control-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.section-head>div,.control-title{justify-content:flex-start}.section-head h3,.control-title h3{margin:0;font-size:16px}.section-head small,.control-title small{color:var(--muted)}
.num{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--gold2);color:var(--goldText);font-weight:900;margin-right:8px;box-shadow:2px 2px 7px var(--embossLo),-2px -2px 6px var(--embossHi)}
.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.method-card{position:relative;text-align:left;min-height:150px;padding:18px;display:flex;flex-direction:column;gap:5px}.method-card .line-icon{font-size:27px;color:var(--gold)}.method-card i{position:absolute;right:14px;bottom:14px;font-style:normal}
.method-card.active,.roast-grid button.active,.pill-row button.active,.ratio-row button.active,.grind-scroll button.active{
 border-color:var(--gold);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 70%,transparent),7px 7px 15px var(--embossLo),-4px -4px 10px var(--embossHi),inset 0 0 22px color-mix(in srgb,var(--gold) 8%,transparent)
}
.select{margin-top:14px;width:100%;padding:12px;border:1px solid var(--line);background:var(--panel2);border-radius:12px}
.controls-panel{margin-top:14px}.control-block{padding:18px 0;border-bottom:1px solid var(--line)}.control-block:first-child{padding-top:2px}.control-block:last-child{border-bottom:0;padding-bottom:2px}
.control-title{margin-bottom:13px}.control-title b{color:var(--gold)}
.roast-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.roast-grid button{padding:13px}.bean{margin-right:8px}.light-bean{color:#c58c52}.med-bean{color:#8b552b}.dark-bean{color:#51301f}
.dose-line{display:grid;grid-template-columns:44px 1fr 44px;gap:12px;align-items:center}.dose-line input,.advanced input{width:100%;accent-color:var(--gold)}
.square-btn{height:44px;padding:0;font-size:20px}.pill-row,.ratio-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.pill-row button,.ratio-row button{padding:9px 15px}
.pill-row button.active,.ratio-row button.active{background:linear-gradient(145deg,var(--gold2),var(--gold));color:var(--goldText)}
.grind-scroll{display:grid;grid-template-columns:repeat(7,minmax(88px,1fr));gap:8px;overflow-x:auto;padding:3px 2px 9px;scrollbar-width:thin}.grind-scroll button{min-height:88px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:11px;white-space:nowrap}
.grind-dot{display:block;width:28px;height:28px;border-radius:50%;background-color:#5a4028;box-shadow:inset 2px 2px 4px #1a130e,inset -2px -2px 4px #9b724b}
.g1{background-image:radial-gradient(#b88b5b 1px,transparent 1px);background-size:3px 3px}.g2{background-image:radial-gradient(#c09361 1.2px,transparent 1.2px);background-size:4px 4px}.g3{background-image:radial-gradient(#d0a16c 1.3px,transparent 1.3px);background-size:5px 5px}.g4{background-image:radial-gradient(#d6a977 1.5px,transparent 1.5px);background-size:6px 6px}.g5{background-image:radial-gradient(#dfaF7b 1.7px,transparent 1.7px);background-size:7px 7px}.g6{background-image:radial-gradient(#e5b786 2px,transparent 2px);background-size:8px 8px}.g7{background-image:radial-gradient(#efc79a 2.2px,transparent 2.2px);background-size:9px 9px}
.grind-scale{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;color:var(--gold);font-size:12px}.grind-scale i{height:1px;background:linear-gradient(90deg,var(--gold),var(--line),var(--gold))}
.tip{display:flex;gap:10px;align-items:flex-start;background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:11px 13px;margin-top:11px}.tip span{color:var(--gold)}.tip p{margin:0;color:var(--muted);font-size:12px}.tip b{color:var(--text)}
.custom-btn{margin-left:auto}.advanced{margin-top:13px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:16px}.advanced>div{margin-bottom:14px}.advanced>div:last-child{margin-bottom:0}.advanced label{display:flex;justify-content:space-between;margin-bottom:6px}
.pro-tip{margin-top:14px;padding:15px 17px;display:flex;gap:12px;align-items:flex-start}.pro-tip .tip-icon{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:var(--gold)}.pro-tip p{margin:2px 0 0;color:var(--muted)}
.summary{position:sticky;top:96px;padding:18px}.summary-title{text-align:center;padding:4px 0 15px}.summary-title>span{display:block;color:var(--gold);font-weight:900;letter-spacing:.12em}.summary-title small{color:var(--muted)}
.summary-items{display:grid;gap:10px}.summary-items>div{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--panel2);box-shadow:inset 2px 2px 6px var(--embossLo),inset -2px -2px 6px var(--embossHi)}
.summary-items p{margin:0}.summary-items small{display:block;color:var(--muted)}.summary-items strong{font-size:20px}
.metric-icon{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;font-weight:900}.coffee-icon{background:#4e3520;color:var(--gold2)}.water-icon{background:#193d51;color:var(--blue)}.temp-icon{background:#493419;color:var(--orange)}.time-icon{background:#1d442c;color:#7bdd9a}.grind-icon{background:#463a2d;color:#d2a66f}
.summary .big{width:100%;margin-top:14px;padding:15px 12px}.summaryAdjust{margin-top:10px}.save-mini{display:flex;justify-content:space-between;align-items:center;margin-top:13px;padding:14px;border:1px solid var(--line);border-radius:14px}.save-mini b{display:block;color:var(--gold)}.save-mini small{color:var(--muted)}
.timer-card,.journal-card{margin-top:14px;padding:20px}.timer-top{display:flex;justify-content:space-between;gap:15px}.timer-top h3{margin:3px 0}.timer-top strong{font:750 37px/1 ui-monospace,monospace}.timer-card>p,.journal-card>p{color:var(--muted)}
.progress{height:7px;background:var(--panel2);border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--gold)}
.step-dots{display:flex;gap:5px;margin:12px 0}.step-dots i{height:4px;flex:1;background:var(--panel2);border-radius:9px}.step-dots i.on{background:var(--gold)}
.timer-actions{display:flex;gap:8px}.taste{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.taste button{border:1px solid var(--line);background:var(--panel2);padding:9px 13px;border-radius:11px}.taste button.active{border-color:var(--gold);color:var(--gold)}
.journal-card textarea{width:100%;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);margin-bottom:10px}.saved-msg{min-height:20px;color:var(--green);font-weight:800}
dialog{width:min(650px,calc(100% - 26px));max-height:80vh;overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--text);padding:20px}dialog::backdrop{background:#000a}.dialog-head{display:flex;justify-content:space-between}.dialog-head h2{margin:3px 0}.dialog-head button{border:0;background:none;font-size:25px}.history-item{padding:14px 0;border-bottom:1px solid var(--line)}.history-item small{display:block;color:var(--muted)}.danger{margin-top:16px}
.mobile-brewbar{display:none}
@media(max-width:860px){
 .topbar{height:66px;padding:0 14px}.brand-logo{width:39px;height:39px}.brand-copy b{font-size:14px}.brand-copy span{display:none}.top-actions .soft-btn span{display:none}
 main{padding:22px 13px 110px}.studio-grid{display:block}.summary{position:static;margin-top:14px}.intro h2{font-size:38px}.method-grid{grid-template-columns:1fr}.method-card{min-height:105px}
 .home-methods{grid-template-columns:1fr}.hero{padding:7vh 0 5vh}
 .mobile-brewbar{display:flex;position:fixed;z-index:60;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:10px;padding:9px 9px 9px 14px;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:17px;box-shadow:0 12px 35px rgba(0,0,0,.3);backdrop-filter:blur(16px)}
 .mobile-brewbar small{display:block;color:var(--muted);font-size:10px}.mobile-brewbar b{font-size:13px}.mobile-brewbar .gold-btn{padding:11px 14px;white-space:nowrap}
 .grind-scroll{display:flex}.grind-scroll button{min-width:94px}.summary .big{display:none}
}
@media(max-width:520px){
 .section-head{display:block}.section-head small{display:block;margin:5px 0 0 36px}.roast-grid{grid-template-columns:repeat(3,1fr)}.roast-grid button{padding:11px 5px;font-size:12px}
 .pill-row,.ratio-row{gap:7px}.pill-row button,.ratio-row button{padding:8px 12px}.custom-btn{margin-left:0}
 .timer-actions{display:grid;grid-template-columns:2fr 1fr 1fr}.timer-actions button{padding-inline:8px}
 .summary-items{grid-template-columns:1fr 1fr}.summary-items>div{padding:10px}.summary-items strong{font-size:17px}.metric-icon{width:34px;height:34px}
 h1{font-size:51px}
}
/* v2.6 polish */
@media(min-width:861px){
  main{max-width:1320px;padding-left:28px;padding-right:28px}
  .studio-grid{grid-template-columns:minmax(0,1fr) 350px;gap:26px}
}
.builder{animation:fadeUp .28s ease both}
.summary{animation:fadeUp .34s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.panel{transition:border-color .18s,box-shadow .18s,transform .18s}
.method-panel,.controls-panel{padding:20px}
.controls-panel{margin-top:12px}
.control-block{padding:14px 0}
.control-title{margin-bottom:11px}
.method-card{min-height:138px}
.method-card .line-icon,.method-home .method-icon{
  width:34px;height:34px;display:grid;place-items:center;color:var(--gold)
}
.method-card .line-icon svg,.method-home .method-icon svg{
  width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round
}
.method-card.active .line-icon{
  filter:drop-shadow(0 0 7px color-mix(in srgb,var(--gold) 45%,transparent))
}
.summary{
  padding:22px;
  border-color:color-mix(in srgb,var(--gold) 22%,var(--line));
  box-shadow:0 20px 50px rgba(0,0,0,.28), inset 0 1px 0 var(--embossHi)
}
.summary-title{
  padding:2px 0 18px;
  border-bottom:1px solid var(--line);
  margin-bottom:13px
}
.summary-title>span{font-size:12px;letter-spacing:.16em}
.summary-title>b{
  display:block;font:600 26px/1.15 Georgia,serif;margin:5px 0 3px;letter-spacing:-.03em
}
.summary-items>div{min-height:68px}
.summary-items strong{font-size:22px}
.summary .big{
  min-height:50px;
  letter-spacing:.02em;
  box-shadow:0 10px 22px color-mix(in srgb,var(--gold) 18%,transparent), inset 0 1px 1px rgba(255,255,255,.4)
}
.rec-badge{
  display:inline-flex;align-items:center;vertical-align:middle;
  margin-left:7px;padding:4px 7px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line));
  background:color-mix(in srgb,var(--gold) 12%,var(--panel));
  color:var(--gold);font:800 9px/1.1 Inter,system-ui,sans-serif;letter-spacing:.02em
}
.grind-scroll button{min-height:80px}
.grind-dot{width:26px;height:26px}
.tip{margin-top:9px;padding:10px 12px}
.pro-tip{margin-top:12px}
.intro{margin-bottom:18px}
.back-btn{margin-bottom:16px}
.select{transition:opacity .18s,transform .18s}
.method-card,.summary-items>div,.roast-grid button,.pill-row button,.ratio-row button,.grind-scroll button{
  will-change:transform
}
.method-card:active,.roast-grid button:active,.pill-row button:active,.ratio-row button:active,.grind-scroll button:active{
  transform:translateY(1px);
  box-shadow:inset 4px 4px 8px var(--embossLo),inset -3px -3px 7px var(--embossHi)
}
#summaryGrind{font-size:17px}
@media(max-width:860px){
  .builder{animation:none}
  .summary{animation:none;padding:16px}
  .summary-title{display:flex;align-items:center;justify-content:space-between;text-align:left;padding-bottom:12px}
  .summary-title>b{font-size:21px;margin:0}
  .summary-title small{display:none}
  .summary-items{grid-template-columns:1fr 1fr}
  .summary-items>div{min-height:62px}
  .method-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));overflow-x:auto;padding:3px 2px 10px;scroll-snap-type:x proximity}
  .method-card{min-width:150px;min-height:120px;scroll-snap-align:start}
  .rec-badge{display:block;width:max-content;margin:6px 0 0}
  .control-block{padding:13px 0}
  .intro{margin-bottom:16px}
}
@media(max-width:520px){
  .method-grid{grid-template-columns:repeat(3,150px)}
  .summary-items{grid-template-columns:1fr 1fr}
  .summary-items>div{gap:8px}
  #summaryGrind{font-size:14px}
}

/* v2.7 - premium typography + custom Hario Switch preset picker */
:root{
  --font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
}
body{font-family:var(--font-ui);font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility}
h1,h2,.summary-title>b{font-family:var(--font-display)}
.intro h2{font-family:var(--font-display);font-weight:500}
.method-card b,.control-title h3,.summary-items strong,.summary-title>span,.gold-btn{letter-spacing:-.015em}
.section-head h3,.control-title h3{font-weight:800}
.method-card b{font-size:16px;font-weight:800}
.method-card small{font-size:12.5px;line-height:1.45}
.summary-items small{font-size:11.5px}
.summary-items strong{font-weight:800}
.summary-title>b{font-size:29px;font-weight:500}
.summary-preset{
  display:block;
  margin-top:4px;
  color:var(--gold);
  font-style:normal;
  font-weight:750;
  font-size:13px
}
.switch-preset{position:relative;margin-top:14px;z-index:12}
.switch-preset-button{
  width:100%;
  border:1px solid color-mix(in srgb,var(--gold) 68%,var(--line));
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--panel) 94%,var(--gold) 6%),
    color-mix(in srgb,var(--panel2) 94%,var(--gold) 6%)
  );
  border-radius:15px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  text-align:left;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--gold) 18%,transparent),
    7px 7px 15px var(--embossLo),
    -4px -4px 10px var(--embossHi),
    inset 0 1px 0 color-mix(in srgb,var(--gold) 13%,transparent);
  transition:.18s ease
}
.switch-preset-button:hover{
  border-color:var(--gold);
  transform:translateY(-1px);
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--gold) 35%,transparent),
    0 8px 24px color-mix(in srgb,var(--gold) 9%,transparent),
    7px 7px 15px var(--embossLo),
    -4px -4px 10px var(--embossHi)
}
.switch-preset-button small{
  display:block;
  color:var(--muted);
  font-size:10.5px;
  margin-bottom:2px;
  letter-spacing:.01em
}
.switch-preset-button strong{
  display:block;
  font-size:15px;
  font-weight:800
}
.preset-button-right{display:flex;align-items:center;gap:10px}
.recommended-chip{
  display:inline-flex;align-items:center;
  padding:6px 9px;
  border-radius:999px;
  color:var(--gold);
  border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));
  background:color-mix(in srgb,var(--gold) 9%,var(--panel));
  font-size:10px;font-weight:800;white-space:nowrap
}
.chevron{font-size:19px;color:var(--gold);transition:transform .18s}
.switch-preset.open .chevron{transform:rotate(180deg)}
.switch-preset-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  width:min(520px,100%);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--gold) 48%,var(--line));
  border-radius:15px;
  background:color-mix(in srgb,var(--panel) 96%,black 4%);
  box-shadow:0 20px 46px rgba(0,0,0,.38), inset 0 1px 0 var(--embossHi);
  backdrop-filter:blur(18px)
}
.switch-preset-menu button{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  padding:12px 14px;
  display:grid;
  grid-template-columns:34px 1fr 24px;
  gap:10px;
  align-items:center;
  text-align:left;
  transition:.16s
}
.switch-preset-menu button:last-child{border-bottom:0}
.switch-preset-menu button:hover{
  background:color-mix(in srgb,var(--gold) 8%,var(--panel))
}
.switch-preset-menu button.active{
  background:linear-gradient(90deg,
    color-mix(in srgb,var(--gold) 15%,var(--panel)),
    color-mix(in srgb,var(--gold) 4%,var(--panel))
  )
}
.switch-preset-menu button.active b,
.switch-preset-menu button.active i,
.switch-preset-menu button.active .preset-icon{color:var(--gold)}
.switch-preset-menu .preset-icon{
  width:30px;height:30px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:9px;color:var(--muted)
}
.switch-preset-menu b{display:block;font-size:14px}
.switch-preset-menu small{display:block;color:var(--muted);font-size:11px;margin-top:1px}
.switch-preset-menu i{font-style:normal;text-align:center;color:var(--muted)}
@media(max-width:860px){
  .recommended-chip{display:none}
  .switch-preset-menu{width:100%}
}

/* v2.8 mobile method layout: show all 3 methods at once */
@media(max-width:860px){
  .method-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
    overflow:visible !important;
    padding:2px 0 8px !important;
  }
  .method-card{
    min-width:0 !important;
    min-height:118px !important;
    padding:12px 10px !important;
    border-radius:14px !important;
    scroll-snap-align:none !important;
  }
  .method-card .line-icon{
    width:27px !important;
    height:27px !important;
    margin-bottom:3px;
  }
  .method-card .line-icon svg{
    width:24px !important;
    height:24px !important;
  }
  .method-card b{
    font-size:13px !important;
    line-height:1.15;
  }
  .method-card small{
    font-size:10px !important;
    line-height:1.25 !important;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .method-card i{
    right:8px !important;
    bottom:7px !important;
    font-size:12px;
  }
  .method-panel{
    padding:16px 14px !important;
  }
  .section-head{
    margin-bottom:12px !important;
  }
}

@media(max-width:430px){
  .method-grid{
    gap:6px !important;
  }
  .method-card{
    min-height:112px !important;
    padding:10px 8px !important;
  }
  .method-card b{
    font-size:12px !important;
  }
  .method-card small{
    font-size:9.5px !important;
  }
}

/* v2.9 icon & emboss refinement */
.back-btn{
  display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:9px 15px;
  border:1px solid color-mix(in srgb,var(--line) 82%,var(--gold) 18%);
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--panel) 97%,white 3%),
    color-mix(in srgb,var(--panel2) 96%,black 4%)
  );
  box-shadow:
    7px 7px 15px var(--embossLo),
    -4px -4px 10px var(--embossHi),
    inset 1px 1px 1px rgba(255,255,255,.07);
  font-weight:720;
}
.back-btn .home-arrow{
  color:var(--gold);font-size:18px;line-height:1;
  transition:transform .16s ease
}
.back-btn:hover .home-arrow{transform:translateX(-2px)}
.back-btn:hover{
  border-color:color-mix(in srgb,var(--gold) 55%,var(--line));
  box-shadow:
    9px 9px 18px var(--embossLo),
    -5px -5px 12px var(--embossHi),
    inset 1px 1px 1px rgba(255,255,255,.09)
}
.method-card .line-icon{
  width:42px!important;height:42px!important;
  display:grid!important;place-items:center!important;
  border-radius:12px;
  color:#f3f0e8;
  background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 96%,white 4%),color-mix(in srgb,var(--panel) 95%,black 5%));
  border:1px solid color-mix(in srgb,var(--line) 88%,white 12%);
  box-shadow:4px 4px 9px var(--embossLo),-3px -3px 7px var(--embossHi);
}
.method-card .line-icon svg{
  width:29px!important;height:29px!important;
  stroke:currentColor!important;fill:none!important;
  stroke-width:2.35!important;stroke-linecap:round!important;stroke-linejoin:round!important
}
.method-card.active .line-icon{
  color:var(--gold2);
  border-color:color-mix(in srgb,var(--gold) 62%,var(--line));
  background:linear-gradient(145deg,color-mix(in srgb,var(--gold) 11%,var(--panel)),color-mix(in srgb,var(--panel2) 96%,black 4%));
  box-shadow:0 0 14px color-mix(in srgb,var(--gold) 18%,transparent),4px 4px 9px var(--embossLo),-3px -3px 7px var(--embossHi)
}
.card-arrow{
  position:absolute!important;right:13px!important;bottom:13px!important;
  width:29px;height:29px;display:grid;place-items:center;
  border-radius:50%;font-style:normal!important;font-size:22px!important;line-height:1;
  color:var(--text);
  border:1px solid var(--line);
  background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 96%,white 4%),color-mix(in srgb,var(--panel) 95%,black 5%));
  box-shadow:4px 4px 8px var(--embossLo),-3px -3px 6px var(--embossHi)
}
.method-card.active .card-arrow{
  color:var(--goldText);
  border-color:var(--gold);
  background:linear-gradient(145deg,var(--gold2),var(--gold));
  box-shadow:0 0 14px color-mix(in srgb,var(--gold) 28%,transparent),4px 4px 8px var(--embossLo)
}
@media(max-width:860px){
  .method-card .line-icon{width:34px!important;height:34px!important;border-radius:10px}
  .method-card .line-icon svg{width:24px!important;height:24px!important}
  .card-arrow{width:24px;height:24px;right:7px!important;bottom:7px!important;font-size:18px!important}
  .back-btn{min-height:40px;padding:8px 13px}
}

/* v3.0 Guided Brewing Mode */
.brew-guide{
  position:fixed;inset:0;z-index:200;
  overflow:auto;
  background:
    radial-gradient(circle at 50% 16%,color-mix(in srgb,var(--gold) 7%,transparent),transparent 28%),
    var(--bg);
  color:var(--text)
}
.guide-header{
  position:sticky;top:0;z-index:5;height:72px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 max(20px,calc((100vw - 760px)/2));
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg) 94%,transparent);
  backdrop-filter:blur(18px)
}
.guide-brand{display:flex;align-items:center;gap:10px}.guide-brand img{width:42px;height:42px;object-fit:contain}
.guide-brand div{display:flex;align-items:baseline;gap:8px}.guide-brand b{letter-spacing:.14em}.guide-brand small{color:var(--gold);font-size:9px;letter-spacing:.14em}
.guide-close{
  width:42px;height:42px;border:1px solid var(--line);border-radius:13px;
  background:linear-gradient(145deg,var(--panel),var(--panel2));color:var(--text);
  font-size:25px;box-shadow:5px 5px 12px var(--embossLo),-3px -3px 8px var(--embossHi)
}
.guide-shell{width:min(680px,calc(100% - 28px));margin:0 auto;padding:26px 0 46px}
.guide-meta{display:flex;justify-content:center;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-weight:700}
.guide-meta>span:first-child{color:var(--gold)}.guide-meta i{width:4px;height:4px;border-radius:50%;background:var(--line)}
.guide-stage{text-align:center;padding-top:22px}
.guide-step-kicker{font-size:10px;letter-spacing:.18em;font-weight:850;color:var(--gold)}
.guide-stage h2{font:500 clamp(42px,8vw,62px)/1 var(--font-display);margin:8px 0 7px;letter-spacing:-.04em}
.guide-stage>p{margin:0;color:var(--muted);font-size:16px}
.guide-clock-wrap{display:grid;place-items:center;margin:23px 0 17px}
.guide-ring{position:relative;width:210px;height:210px}
.guide-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.guide-ring circle{fill:none;stroke-width:5}
.ring-track{stroke:var(--panel2)}
.ring-progress{
  stroke:var(--gold);stroke-linecap:round;
  stroke-dasharray:326.73;stroke-dashoffset:326.73;
  filter:drop-shadow(0 0 5px color-mix(in srgb,var(--gold) 35%,transparent));
  transition:stroke-dashoffset .35s linear
}
.guide-clock{position:absolute;inset:0;display:grid;place-content:center}
.guide-clock strong{font:800 43px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.05em}
.guide-clock small{margin-top:7px;color:var(--muted)}
.pour-target{
  width:min(330px,100%);margin:0 auto;padding:14px 18px;
  border:1px solid color-mix(in srgb,var(--gold) 36%,var(--line));border-radius:17px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--gold) 7%,var(--panel)),var(--panel));
  box-shadow:8px 8px 18px var(--embossLo),-4px -4px 10px var(--embossHi)
}
.pour-target small{display:block;color:var(--muted);font-size:9px;letter-spacing:.15em;font-weight:800}
.pour-target strong{display:block;color:var(--gold);font-size:35px;line-height:1.2;margin:2px 0}
.pour-target span{display:block;color:var(--muted);font-size:11px}
.guide-progress{margin:26px 0 17px;text-align:left}
.guide-progress-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;color:var(--muted)}
.guide-progress-head b{color:var(--gold)}
.guide-track{height:7px;background:var(--panel2);border-radius:99px;overflow:hidden;margin:8px 0 10px}
.guide-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));border-radius:99px;transition:width .35s linear}
.guide-dots{display:flex;gap:6px}.guide-dots i{height:4px;flex:1;border-radius:9px;background:var(--panel2)}.guide-dots i.on{background:var(--gold)}
.next-step{text-align:left;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.next-step small{display:block;color:var(--gold);font-size:9px;letter-spacing:.14em}.next-step b{font-size:13px}
.guide-recipe-strip{
  display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;
  border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--panel)
}
.guide-recipe-strip div{padding:13px;text-align:center;border-right:1px solid var(--line)}.guide-recipe-strip div:last-child{border:0}
.guide-recipe-strip small{display:block;color:var(--muted);font-size:10px}.guide-recipe-strip b{display:block;margin-top:2px;font-size:14px}
.guide-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.guide-secondary{
  min-height:47px;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(145deg,var(--panel),var(--panel2));color:var(--text);font-weight:800;
  box-shadow:6px 6px 13px var(--embossLo),-3px -3px 8px var(--embossHi)
}
.guide-secondary:active{box-shadow:inset 4px 4px 8px var(--embossLo),inset -3px -3px 7px var(--embossHi)}
.guide-note{text-align:center;color:var(--muted);font-size:11px;margin:17px auto 0;max-width:430px}
.brew-guide.finished .guide-step-kicker{color:#77c995}
.brew-guide.finished .pour-target{border-color:#397b54}
@media(max-width:520px){
  .guide-header{height:62px;padding:0 13px}.guide-brand img{width:36px;height:36px}.guide-brand small{display:none}
  .guide-shell{width:calc(100% - 24px);padding-top:18px}
  .guide-stage{padding-top:15px}.guide-stage h2{font-size:43px}
  .guide-ring{width:178px;height:178px}.guide-clock strong{font-size:37px}
  .guide-clock-wrap{margin:17px 0 14px}
  .pour-target{padding:11px 15px}.pour-target strong{font-size:31px}
  .guide-progress{margin:20px 0 14px}
  .guide-recipe-strip{grid-template-columns:1fr 1fr}
  .guide-recipe-strip div:nth-child(2){border-right:0}.guide-recipe-strip div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .guide-actions{position:sticky;bottom:8px;z-index:3;padding:7px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--panel) 95%,transparent);backdrop-filter:blur(14px)}
}
