
:root{--paper:#f4efe6;--paper2:#ebe4d6;--ink:#1c1a17;--ink2:#4a453d;--mute:#7b7468;--ox:#8a2b1f;--rule:#cfc6b4}
*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 Newsreader,Georgia,serif}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;margin:0;line-height:1.12}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:var(--ink);color:var(--paper);padding:8px;z-index:99}
:focus-visible{outline:2px solid var(--ox);outline-offset:3px}
.ui,.kick,.by,.label,.mnav,.mast-top,.crumbs,.byline,.st-k{font-family:"Libre Franklin",system-ui,sans-serif}
/* masthead */
.mast{max-width:1280px;margin:0 auto;padding:0 28px;text-align:center}
.mast-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.msearch{position:relative;width:220px}.msearch input{width:100%;border:0;border-bottom:1px solid var(--ink);background:none;font:italic 15px Newsreader,serif;padding:4px 0;outline:none;color:var(--ink)}
.hits{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,90vw);background:var(--paper);border:1px solid var(--ink);box-shadow:0 18px 40px -20px rgba(0,0,0,.4);text-align:left;z-index:30;max-height:60vh;overflow:auto;text-transform:none;letter-spacing:0}
.hit{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--rule)}.hit:hover{background:var(--paper2)}.hit img{width:36px;height:36px;border-radius:8px}
.hit b{display:block;font:600 16px "Playfair Display"}.hit small{font:500 12px "Libre Franklin";color:var(--mute)}.hit-empty{padding:12px;margin:0;font-style:italic}
.plate{display:inline-block;font:800 clamp(52px,10vw,120px)/1 "Playfair Display",serif;letter-spacing:-.03em;margin:22px 0 4px}.plate i{font-weight:600;color:var(--ox)}
.plate.sm{font-size:40px;margin:0}
.motto{margin:0 0 16px;font-style:italic;color:var(--ink2);font-size:16px}
.mnav{display:flex;justify-content:center;gap:4px 30px;flex-wrap:wrap;padding:12px 0;border-top:3px double var(--ink);border-bottom:3px double var(--ink);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.mnav a{padding:2px 0;border-bottom:2px solid transparent}.mnav a:hover,.mnav a[aria-current]{border-color:var(--ox);color:var(--ox)}
.paper{max-width:1280px;margin:0 auto;padding:32px 28px 72px}
/* type bits */
.kick{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ox);margin-bottom:8px}
.hl{font:600 21px/1.2 "Playfair Display",serif}.hl:hover{color:var(--ox)}
.by{display:block;font-size:12.5px;font-weight:500;color:var(--mute);margin-top:4px}
.stand{font-size:21px;line-height:1.45;color:var(--ink2);font-style:italic;margin:12px 0 0}
.label{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--ink);padding-top:8px;margin:0 0 16px;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.label a{font-weight:600;letter-spacing:.04em;text-transform:none;color:var(--ox)}
.rule-double{border-top:3px double var(--ink);margin:44px 0 28px}
/* front */
.front{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.95fr) minmax(0,1fr);gap:0}
.front>*{padding:0 26px}.front>*:first-child{padding-left:0}.front>*:last-child{padding-right:0}.front>*+*{border-left:1px solid var(--rule)}
.lead h1{font-size:clamp(38px,4.6vw,62px);font-weight:800;letter-spacing:-.02em}.lead h1 a:hover{color:var(--ox)}
.lead figure{margin:20px 0 14px}.lead figure img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.9)}
figcaption{font:italic 14px Newsreader;color:var(--mute);margin-top:6px;padding-bottom:6px;border-bottom:1px solid var(--rule)}
.dropcap:first-letter,.dc>p:first-of-type:first-letter{float:left;font:800 74px/.8 "Playfair Display",serif;margin:8px 10px 0 0;color:var(--ox)}
.cont{font:600 15px "Libre Franklin";color:var(--ox)}
.second{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--rule)}.second:last-child{border:0}
.second img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:12px}.second .kick{display:block}.second p{margin:6px 0 0;font-size:16.5px;color:var(--ink2)}
.rank{list-style:none;margin:0;padding:0}.rank li{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--rule)}
.rk{font:800 30px/1 "Playfair Display";color:var(--ox);width:38px;flex:none;text-align:right}.rank .hl{font-size:18px}.rank p{margin:6px 0 0;font-size:16px;color:var(--ink2)}
.issue{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.issue-col{padding:0 22px 26px;border-left:1px solid var(--rule)}.issue-col:nth-child(4n+1){border-left:0;padding-left:0}.issue-col:nth-child(4n){padding-right:0}
.entry{display:flex;gap:14px;align-items:flex-start;padding:10px 0}.entry img{border-radius:12px;flex:none}.entry p{margin:6px 0 0;font-size:16px;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.heads{list-style:none;margin:6px 0 0;padding:0}.heads li{border-top:1px dotted var(--rule);padding:8px 0;font:600 16.5px "Playfair Display"}.heads a:hover{color:var(--ox)}
.stories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.story{display:block;padding:0 22px 8px;border-left:1px solid var(--rule)}.story:first-child{border:0;padding-left:0}
.st-n{display:block;font:800 52px/1 "Playfair Display";color:var(--paper2);-webkit-text-stroke:1px var(--ox)}.st-k{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ox);margin:8px 0 4px}
.story b{font:600 21px/1.25 "Playfair Display"}.story:hover b{color:var(--ox)}
.stories.list{grid-template-columns:minmax(0,1fr);max-width:900px}.story.wide{display:flex;gap:24px;border:0;border-bottom:1px solid var(--rule);padding:22px 0}.story.wide p{margin:8px 0 0;color:var(--ink2);font-size:17px}
/* page head */
.phead{text-align:center;max-width:820px;margin:0 auto 36px}.phead h1{font-size:clamp(40px,6vw,72px);font-weight:800;letter-spacing:-.02em}
.crumbs{font-size:13px;font-weight:600;color:var(--mute);margin-bottom:16px}.crumbs a{color:var(--ox)}
/* A-Z */
.az-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;justify-content:center;gap:2px;background:var(--paper);padding:10px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:26px;font:700 15px "Libre Franklin"}
.az-bar a{width:32px;text-align:center;padding:4px 0}.az-bar a:hover{background:var(--ink);color:var(--paper)}
.az{columns:2;column-gap:56px;column-rule:1px solid var(--rule)}.az-g{break-inside:avoid;margin-bottom:24px;scroll-margin-top:70px}
.az-l{font:800 44px/1 "Playfair Display";color:var(--ox);border-bottom:2px solid var(--ink);padding-bottom:4px;margin-bottom:6px}
.az ul,.toc ul{list-style:none;margin:0;padding:0}.az li a,.toc li a{display:flex;align-items:baseline;gap:8px;padding:6px 0}
.az-n{font:600 18px "Playfair Display"}.dots{flex:1;border-bottom:1.5px dotted var(--mute);transform:translateY(-4px);min-width:20px}.az-m{font:500 13px "Libre Franklin";color:var(--mute);white-space:nowrap}
.az li a:hover .az-n,.toc li a:hover .az-n{color:var(--ox)}
.toc{max-width:760px;margin:0 auto}.toc .az-n{font-size:24px}.toc li a{padding:10px 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.cat-lead{max-width:820px;margin:0 auto 24px;border-top:3px double var(--ink);border-bottom:3px double var(--ink);padding:10px 0}.cat-lead .hl{font-size:30px}.cat-lead img{width:80px;height:80px}
.cols3{columns:3;column-gap:40px;column-rule:1px solid var(--rule)}.cols3 .entry{break-inside:avoid;border-bottom:1px solid var(--rule)}
/* review */
.review{max-width:1180px;margin:0 auto}.narrow{max-width:760px}
.rv-head{text-align:center;max-width:860px;margin:0 auto 26px}.rv-head h1{font-size:clamp(40px,6.4vw,80px);font-weight:800;letter-spacing:-.025em}
.byline{font-size:13px;font-weight:600;color:var(--mute);letter-spacing:.04em;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--rule);display:inline-block}
.hero{margin:0 0 30px}.hero img{width:100%;max-height:560px;object-fit:cover}
.rv-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}.rv-body,.rv-side{min-width:0}
.prose{font-size:19px;line-height:1.7}.prose p{margin:0 0 18px}.prose h2,.prose h3{font-family:"Playfair Display";margin:28px 0 10px}.prose h3{font-size:23px}.prose ul,.prose ol{padding-left:24px}.prose li{margin:6px 0}
.prose a{color:var(--ox);text-decoration:underline}
.sub{font-size:30px;margin:40px 0 14px;padding-top:12px;border-top:1px solid var(--ink)}
.pull{margin:34px 0;padding:18px 0;border-top:3px double var(--ink);border-bottom:3px double var(--ink);font:italic 600 27px/1.35 "Playfair Display";color:var(--ox);text-align:center}
.gallery{display:flex;gap:12px;overflow-x:auto;margin:26px 0;padding-bottom:8px;scrollbar-width:thin}.gallery img{height:300px;width:auto;flex:none}
.verdict{display:grid;grid-template-columns:150px minmax(0,1fr);gap:26px;margin-top:44px;padding:28px;background:var(--paper2);border-top:4px solid var(--ink)}
.v-score{text-align:center;border-right:1px solid var(--rule);padding-right:22px}.v-score b{display:block;font:800 68px/1 "Playfair Display";color:var(--ox)}.v-score span{font:600 13px "Libre Franklin";text-transform:uppercase;letter-spacing:.1em}.v-score small{display:block;color:var(--mute);font-size:14px;margin-top:6px}
.v-body h2{font-size:30px;margin-bottom:12px}.v-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px}.v-cols h3{font:700 13px "Libre Franklin";letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.v-cols ul{margin:0;padding-left:18px;font-size:16.5px}.v-cols li{margin:6px 0}
.get{display:inline-block;border:1.5px solid var(--ink);padding:11px 20px;font:700 14px "Libre Franklin";letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--paper);transition:background .2s}
.get:hover{background:var(--ox);border-color:var(--ox)}.get.block{display:block;text-align:center;margin-top:16px}
.side-box{margin-bottom:34px}.spec{width:100%;border-collapse:collapse;font-size:15.5px}.spec th{text-align:left;font:600 12.5px "Libre Franklin";text-transform:uppercase;letter-spacing:.06em;color:var(--mute);padding:8px 10px 8px 0;vertical-align:top;white-space:nowrap}
.spec td{padding:8px 0;border-bottom:1px solid var(--rule);word-break:break-word}.spec tr th{border-bottom:1px solid var(--rule)}
.dist{width:100%;border-collapse:collapse;font:500 13px "Libre Franklin"}.dist th{text-align:left;font-weight:600;padding:4px 8px 4px 0;white-space:nowrap}.dist td:nth-child(2){width:100%}.dist i{display:block;height:8px;background:var(--ox)}.dist td:last-child{padding-left:8px;color:var(--mute)}
.bigsearch{display:flex;max-width:720px;margin:0 auto 30px;border-bottom:2px solid var(--ink)}.bigsearch input{flex:1;min-width:0;border:0;background:none;font:italic 24px Newsreader;padding:10px 0;outline:none}.bigsearch button{border:0;background:none;font:700 14px "Libre Franklin";letter-spacing:.1em;text-transform:uppercase;color:var(--ox);cursor:pointer}
.results{max-width:720px;margin:0 auto}
.nf{text-align:center;padding:10vh 0;max-width:720px;margin:0 auto}.nf h1{font-size:clamp(36px,6vw,64px);font-weight:800}
/* colophon */
.colophon{border-top:3px double var(--ink);max-width:1280px;margin:0 auto;padding:30px 28px 40px}
.col-in{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.col-in p{color:var(--ink2);font-size:16px;max-width:440px}
.colophon h4{font:700 12.5px "Libre Franklin";letter-spacing:.14em;text-transform:uppercase;margin:6px 0 10px}.colophon nav a{display:block;padding:3px 0;font-size:16px}.colophon nav a:hover{color:var(--ox)}
.col-fine{font:500 12.5px "Libre Franklin";color:var(--mute);border-top:1px solid var(--rule);padding-top:14px;margin-top:22px}
@media (max-width:1100px){.front{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.mid{display:none}.issue{grid-template-columns:repeat(2,minmax(0,1fr))}.issue-col:nth-child(n){border-left:1px solid var(--rule);padding:0 22px 26px}.issue-col:nth-child(2n+1){border-left:0;padding-left:0}.stories{grid-template-columns:1fr 1fr;row-gap:22px}.story:nth-child(3){border:0;padding-left:0}.rv-grid{grid-template-columns:minmax(0,1fr) 280px;gap:36px}.cols3{columns:2}}
@media (max-width:780px){
  body{font-size:17px}.mast,.paper,.colophon{padding-left:16px;padding-right:16px}
  .mast-top{flex-wrap:wrap;justify-content:center}.mast-mid{display:none}.msearch{width:100%}.hits{left:0;right:0;width:auto}
  .mnav{gap:4px 18px;font-size:12px;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.mnav::-webkit-scrollbar{display:none}.mnav a{white-space:nowrap}
  .front,.issue,.stories,.two,.rv-grid,.v-cols,.col-in{grid-template-columns:minmax(0,1fr)}
  .front>*{padding:0}.front>*+*{border-left:0;border-top:1px solid var(--rule);margin-top:24px;padding-top:12px}
  .issue-col:nth-child(n){border-left:0;padding:0 0 18px}.story,.story:nth-child(n){border:0;padding:0}.story.wide{gap:16px}
  .az,.cols3{columns:1}.az-bar a{width:26px}
  .stand{font-size:18px}.pull{font-size:22px}.gallery img{height:240px}
  .verdict{grid-template-columns:minmax(0,1fr);padding:20px}.v-score{border-right:0;border-bottom:1px solid var(--rule);padding:0 0 14px}
  .prose{font-size:18px}
}
