*,*::before,*::after{box-sizing:border-box}
body{margin:0;-webkit-text-size-adjust:100%}
img,svg{max-width:100%}
/* Layout: warm paper page, one centered column (max 1080px); masthead → thesis → six buying questions → shortlist table → method → footer */
:root{
  --paper:#F3EEE6; --card:#FBF8F3; --ink:#24201B; --muted:#6B6258; --rule:#D8CFC2; --accent:#7A4A2A; --accent-soft:#EADBCB;
  --display:"Hanken Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Hanken Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
:root{color-scheme:light}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
a{color:inherit}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.preview{background:var(--accent-soft);color:var(--ink);font-size:13px}
.preview .wrap{padding-block:8px}
header.mast{border-bottom:1px solid var(--rule)}
header.mast .wrap{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px;padding-block:28px 18px}
.brand{text-decoration:none}
.brand b{display:block;font-family:var(--display);font-weight:700;font-size:clamp(26px,4vw,34px);letter-spacing:.02em;line-height:1.1}
.brand span{display:block;margin-top:6px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
nav{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
nav a{text-decoration:none;color:var(--muted)}
nav a:hover{color:var(--ink)}
.thesis{padding-block:48px 36px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:24px 40px;align-items:center}
.thesis .art{width:100%;max-width:440px;justify-self:end;color:var(--ink)}
.thesis .art svg{display:block;width:100%;height:auto}
@media (max-width:760px){.thesis{grid-template-columns:1fr}.thesis .art{max-width:360px;justify-self:start}}
.thesis h1{font-family:var(--display);font-weight:700;font-size:clamp(36px,6vw,60px);line-height:1.05;letter-spacing:-.01em;margin:0;text-wrap:balance}
.thesis p{max-width:60ch;font-size:clamp(17px,2vw,20px);color:var(--muted);margin:18px 0 0}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
section{padding-block:36px;border-top:1px solid var(--rule)}
h2{font-family:var(--display);font-size:clamp(22px,3vw,28px);line-height:1.2;margin:0 0 6px;text-wrap:balance}
.lede{color:var(--muted);margin:0 0 22px;max-width:62ch}
.questions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}
.q{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:20px 20px 18px;text-decoration:none;min-width:0;transition:border-color .15s}
.q:hover{border-color:var(--accent)}
.q h3{margin:0;font-size:19px;line-height:1.3;font-weight:700;text-wrap:balance}
.q p{margin:0;color:var(--muted);font-size:15px}
.q .meta{margin-top:auto;display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.q .meta span:last-child{color:var(--muted);font-weight:500;letter-spacing:.04em}
.tablebox{position:relative;overflow-x:auto;border:1px solid var(--rule);border-radius:10px;background:var(--card)}
table{border-collapse:collapse;width:100%;min-width:760px;font-size:15px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
tr:last-child td{border-bottom:0}
td.num,td.mono{font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
td .model{font-weight:700}
td .brandname{display:block;font-size:13px;color:var(--muted)}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--ink);white-space:nowrap}
.note{font-size:13px;color:var(--muted);margin:10px 0 0}
.method{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:22px 32px}
.method div{min-width:0}
.method h3{margin:0 0 6px;font-size:16px;font-weight:700}
.method p{margin:0;color:var(--muted);font-size:15px}
footer{border-top:1px solid var(--rule);font-size:13px;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding-block:24px 40px}
footer nav{font-size:12px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.prose{max-width:68ch;padding-block:40px 56px}
.prose h1{font-family:var(--display);font-size:clamp(30px,5vw,44px);line-height:1.1;margin:0 0 18px;text-wrap:balance}
.prose h2{margin:32px 0 8px}
.prose p,.prose li{color:var(--ink)}
.q.soon{cursor:default}
.q.soon:hover{border-color:var(--rule)}
.q.soon .meta span:first-child{color:var(--muted)}
/* Guide pages */
.guide{max-width:760px;padding:28px 0 64px}
.guide h1{font-size:clamp(34px,5vw,52px);line-height:1.05;letter-spacing:-.02em;margin:10px 0 6px}
.guide .byline{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 22px}
.guide .crumbs{display:block;font-size:13px;color:var(--muted)}
.guide .crumbs a{color:var(--muted)}
.guide .crumbs span{margin:0 4px}
.guide h2{font-size:28px;margin:48px 0 12px}
.guide h3{font-size:15px;margin:20px 0 6px}
.guide p,.guide li{font-size:17px;line-height:1.6}
.guide ul,.guide ol{padding-left:20px}
.guide li{margin:6px 0}
.guide .lede{font-size:19px}
.guide .note{font-size:14px;color:var(--muted)}
.guide .cite{font-size:13px;color:var(--muted);white-space:normal}
.guide .cite a{color:var(--muted)}
.guide .tablebox{margin:12px 0}
.guide td a{text-decoration:none}
.pick{border-top:1px solid var(--rule);margin-top:48px;padding-top:8px}
.pick h2{margin-top:6px}
.pick .pricecheck{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--accent);margin:0 0 12px}
.pick .specs{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.pick .specs li{font-size:13px;margin:0;padding:4px 10px;border:1px solid var(--rule);border-radius:999px;background:var(--card)}
.pick .fit{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pick .fit div{background:var(--card);border:1px solid var(--rule);padding:12px 14px}
.pick .fit h3{margin:0 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pick .fit p{margin:0;font-size:16px}
.pick .one{font-size:15px;color:var(--muted)}
@media (max-width:640px){.pick .fit{grid-template-columns:1fr}.guide h2{font-size:24px}}
.guide h1 .code{font-family:"IBM Plex Mono",monospace;font-size:.4em;font-weight:500;color:var(--muted);letter-spacing:0;vertical-align:middle}
.guide table.kv{min-width:0}
.guide table.kv th{width:38%;text-transform:none;letter-spacing:0;font-size:14px;background:transparent}
.guide .more{margin-top:16px}
.guide .more a{font-weight:600}
/* Buy buttons, disclosure, price box */
.disclose{font-size:13px;color:var(--muted);margin:0 0 18px}
.disclose a{color:var(--muted)}
a.buy{display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:600;font-size:15px;padding:11px 16px;border-radius:2px;line-height:1.2}
a.buy:hover{background:var(--accent)}
a.buy.small{font-size:13px;padding:9px 12px;white-space:nowrap}
a.buy.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
a.buy.ghost:hover{background:var(--accent-soft)}
.buyrow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.pricebox{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--card);border:1px solid var(--rule);padding:14px 16px;margin:18px 0}
.pricebox .pb-price{display:block;font-size:26px;font-weight:700}
.pricebox .pb-note{display:block;font-size:13px;color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* QA fixes: tap targets, small text, focusable tables, mobile cards */
nav a{display:inline-flex;align-items:center;min-height:32px}
footer nav{font-size:14px}
footer nav a{display:inline-flex;align-items:center;min-height:32px}
.brand span{font-size:13px}
.guide .byline{font-size:13px}
.guide .crumbs a{display:inline-flex;align-items:center;min-height:32px}
.guide .cite{font-size:14px;line-height:2}
.guide .cite a{padding:4px 2px}
.tablebox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.guide table{min-width:680px}
.guide table.kv{min-width:0}
.guide td a .model{text-decoration:underline;text-underline-offset:3px}
.editor{background:var(--accent-soft);border-left:3px solid var(--accent);padding:6px 20px 4px;margin:40px 0}
.editor h2{margin:14px 0 6px;font-size:22px}
@media (max-width:640px){
  .tablebox.stack{border:0;background:transparent;overflow:visible}
  .tablebox.stack table{min-width:0}
  .tablebox.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tablebox.stack tbody,.tablebox.stack tr,.tablebox.stack td{display:block}
  .tablebox.stack tr{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:12px 14px;margin:0 0 10px}
  .tablebox.stack td{border:0;padding:3px 0}
  .tablebox.stack td:first-child{font-size:14px;color:var(--muted)}
  .tablebox.stack td[data-label]::before{content:attr(data-label) ": ";color:var(--muted);font-size:13px}
  .tablebox.stack td:last-child{padding-top:8px}
}
.subhead{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:32px 0 12px}
.guide table.kv thead th{background:var(--paper)}
.guide table.vs{min-width:0;font-size:14px}
.guide table.vs th[scope=row]{width:30%}
.guide table.vs td,.guide table.vs th{padding:10px 8px;word-break:normal;overflow-wrap:anywhere}
.guide table.vs{table-layout:fixed}
.guide table.vs th[scope=row]{width:28%}
.guide table.vs td,.guide table.vs th{overflow-wrap:normal;hyphens:auto}
@media (max-width:640px){
  .tablebox.stack td:first-child{font-weight:600;color:var(--ink);font-size:15px}
  .tablebox.stack td[data-label="Breville"]::before,.tablebox.stack td[data-label="De'Longhi"]::before{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-top:6px}
}
.guide td a{text-decoration:underline;text-underline-offset:3px}.guide td a.buy{text-decoration:none}
.photo{margin:18px 0 6px}
.photo img{display:block;width:100%;max-width:520px;height:auto;border-radius:4px;background:var(--card)}
.photo figcaption{font-size:13px;color:var(--muted);margin-top:6px;max-width:520px}
.photo figcaption a{color:var(--muted)}
