@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spectral.woff2) format("woff2")}
@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/spectral-500.woff2) format("woff2")}
@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/spectral-600.woff2) format("woff2")}
@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/spectral-italic.woff2) format("woff2")}
@font-face{font-family:Archivo;font-style:normal;font-weight:400 700;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo.woff2) format("woff2")}
@font-face{font-family:Archivo;font-style:italic;font-weight:400 700;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo-italic.woff2) format("woff2")}
:root{
  --paper:#f1efe9; --card:#f8f7f3; --loess:#e6dcc4; --ink:#1e1c1a; --basalt:#2a2724;
  --contour:#b08f66; --rule:#d8d1c3; --muted:#6a625a; --garnet:#7a1f2b; --garnet-ink:#5c1620;
  --serif:Spectral,"Iowan Old Style",Georgia,serif;
  --sans:Archivo,"Helvetica Neue",Arial,sans-serif;
  --measure:40rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);font-variant-numeric:tabular-nums}
main{max-width:46rem;margin:0 auto;padding:0 1rem 4rem;overflow-wrap:break-word}
main.wide{max-width:66rem}
a{color:var(--garnet);text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--contour)}
a:hover{color:var(--garnet-ink);text-decoration-color:currentColor}
a:focus-visible{outline:2px solid var(--garnet);outline-offset:2px}
header.site{max-width:66rem;margin:0 auto;padding:1.1rem 1rem .9rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--contour)}
.wordmark{font-family:var(--serif);font-weight:500;font-size:1.45rem;text-decoration:none;color:var(--ink)}
.wordmark span{color:var(--contour)}
header.site nav{display:flex;flex-wrap:wrap;gap:0 1.25rem}
header.site nav a{font-size:.95rem;text-decoration:none;color:var(--basalt);display:inline-flex;align-items:center;min-height:40px}
header.site nav a:hover{color:var(--garnet)}
h1,.h1{font-family:var(--serif);font-weight:500;font-size:2.5rem;line-height:1.1;margin:1.75rem 0 .35rem;letter-spacing:-.005em;max-width:24ch}
h2{font-family:var(--serif);font-weight:500;font-size:1.35rem;line-height:1.25;color:var(--ink);margin:2.5rem 0 .7rem;padding-bottom:.35rem;border-bottom:1px solid var(--contour);text-transform:none;letter-spacing:0}
h2.h1{border:0;padding:0}
h3{font-family:var(--serif);font-size:1.15rem;font-weight:500;margin:1.5rem 0 .4rem}
h3 .count{font-family:var(--sans);font-weight:400;color:var(--muted);font-size:.85rem;margin-left:.35rem}
p{margin:.5rem 0}
.lede{font-family:var(--serif);font-size:1.25rem;line-height:1.45;max-width:var(--measure)}
.sub{color:var(--muted);font-size:1rem;margin-top:0}
.alliance{font-size:.95rem}
.labels,.family{font-size:.95rem}
.exp{margin:.3rem 0;font-style:italic;font-size:.9rem}
.status-closed{color:#8e2626;border-left:3px solid #8e2626;padding-left:.6rem}
.closed-tag{display:inline-block;background:#8e2626;color:#fff;font-size:.75rem;padding:0 .4rem;border-radius:2px;vertical-align:middle}
.intro{padding-bottom:1.25rem}
.honesty{color:var(--muted);max-width:var(--measure)}
dl.facts{margin:.5rem 0;display:grid;grid-template-columns:7.5rem 1fr;gap:.45rem 1rem}
dl.facts dt{color:var(--muted);font-size:.9rem;padding-top:.1rem}
dl.facts dd{margin:0;overflow-wrap:anywhere}
.coord{font-size:.9rem;letter-spacing:.01em}
.tag{display:inline-block;font-size:.78rem;background:var(--card);border:1px solid var(--rule);border-radius:2px;padding:.02rem .4rem;color:var(--muted);white-space:nowrap}
.flag{color:var(--garnet);font-size:.78rem}
ul.claims{list-style:none;margin:.4rem 0;padding:0}
ul.claims>li{padding:.55rem 0;border-bottom:1px solid var(--rule)}
ul.claims>li:last-child{border-bottom:0}
.role,.meta{color:var(--muted);font-size:.9rem}
.meta{display:block}
details{margin-top:.25rem}
summary{cursor:pointer;font-size:.85rem;color:var(--muted)}
summary:hover{color:var(--garnet)}
details blockquote{font-family:var(--serif);margin:.5rem 0 .3rem;padding:.4rem .8rem;border-left:2px solid var(--contour);font-size:1rem;line-height:1.5;color:var(--basalt)}
.prov{color:var(--muted);font-size:.875rem;margin:.3rem 0}
.empty{color:var(--muted);font-style:italic;font-family:var(--serif);font-size:1.05rem}
.selfdesc{font-family:var(--serif);font-size:1.05rem;line-height:1.5;background:var(--card);border-left:2px solid var(--contour);padding:.7rem 1rem;margin:.75rem 0;max-width:var(--measure)}
.selfdesc .prov{font-family:var(--sans);margin-top:0}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
code{overflow-wrap:anywhere;font-size:.9em}
#about{border-bottom:1px solid var(--rule);padding-bottom:1.25rem;margin-bottom:.5rem}
.prose p{font-family:var(--serif);font-size:1.1rem;line-height:1.5;max-width:var(--measure)}
.correct{border-top:1px solid var(--rule);padding-top:.9rem;margin-top:1.75rem;font-size:.9rem;color:var(--muted)}
.correct+.correct{border-top:0;margin-top:.4rem;padding-top:0}
table.wines{width:100%;border-collapse:collapse;font-size:.95rem;margin:.5rem 0;font-stretch:90%}
table.wines th{text-align:left;font-size:.85rem;font-weight:500;color:var(--muted);border-bottom:1px solid var(--contour);padding:.35rem .4rem}
table.wines td{padding:.35rem .4rem;border-bottom:1px solid var(--rule);vertical-align:top}
table.wines .num{text-align:right;white-space:nowrap}
table.wines th.num{text-align:right}
.designate{display:block;font-size:.85rem;color:var(--muted)}
.critic{font-size:.8rem;color:var(--muted)}
.tag.back{border-style:dashed;font-size:.75rem}
table.wines.sales td.wine{border-right:1px solid var(--rule);padding-right:.6rem}
table.wines.sales .shelf{color:var(--garnet);text-align:center;width:5.5rem}
table.wines.sales th.num:last-child{text-align:center}
ul.dir{list-style:none;margin:.4rem 0;padding:0}
ul.dir>li{padding:.4rem 0;border-bottom:1px solid var(--rule);break-inside:avoid}
ul.dir.cols{column-width:15rem;column-gap:2rem}
ul.dir a{font-family:var(--serif);font-size:1.1rem;text-decoration:none}
ul.dir a:hover{text-decoration:underline}
ul.dir i{display:block;font-style:normal;color:var(--muted);font-size:.85rem}
p.az{line-height:1.9;font-size:.95rem}
p.az a{margin-right:1.1em;text-decoration:none;white-space:nowrap}
p.az a:hover{text-decoration:underline}
footer.site{max-width:66rem;margin:0 auto;padding:1.25rem 1rem 3rem;border-top:1px solid var(--contour);color:var(--muted);font-size:.85rem}
footer.site p{margin:.4rem 0;max-width:52rem}

/* home: the ledger */
.ledger{background:var(--loess);margin:1.5rem -1rem 0;padding:1.5rem 1rem 1.25rem;border-bottom:1px solid var(--contour)}
.ledger h1{margin-top:0;max-width:20ch}
.ledger .lede{margin-bottom:1.5rem}
ol.feeds{list-style:none;margin:0;padding:0;counter-reset:none}
ol.feeds li{display:grid;grid-template-columns:3.2rem minmax(11rem,16rem) 1fr;gap:0 1.25rem;align-items:baseline;padding:.75rem 0;border-top:1px solid var(--contour)}
ol.feeds .n{font-family:var(--serif);font-weight:500;font-size:2rem;line-height:1;color:var(--garnet)}
ol.feeds .who a{font-family:var(--serif);font-size:1.3rem;line-height:1.2;text-decoration:none;color:var(--ink)}
ol.feeds .who a:hover{color:var(--garnet)}
ol.feeds .who small{display:block;font-size:.85rem;color:var(--muted);margin-top:.15rem}
ol.feeds .who small a{font:inherit;color:var(--basalt);border-bottom:1px solid var(--contour)}
ol.feeds .who small a:hover{color:var(--garnet)}
ol.feeds .buyers{font-size:.95rem;line-height:1.5;color:var(--basalt)}
ol.feeds .buyers a{text-decoration:none;color:inherit;border-bottom:1px solid var(--contour)}
ol.feeds .buyers a:hover{color:var(--garnet)}
.ledger .prov{margin-top:1rem}
main.wide #by-district ul.dir{column-width:17rem;column-gap:2.5rem}

/* winery page: facts beside the record */
div.cols{display:grid;grid-template-columns:1fr;gap:0 3rem;align-items:start}
.cols aside.visit h2:first-child{margin-top:2.5rem}
@media (min-width:56rem){
  main:not(.wide):has(div.cols){max-width:66rem}
  div.cols{grid-template-columns:minmax(0,1fr) 17rem}
  .cols aside.visit{order:2;position:sticky;top:1rem;background:var(--card);border:1px solid var(--rule);padding:.25rem 1rem 1rem;margin-top:1.75rem}
  .cols aside.visit h2:first-child{margin-top:.75rem;border-bottom-color:var(--rule)}
  .cols aside.visit dl.facts{grid-template-columns:1fr;gap:.1rem 0}
  .cols aside.visit dl.facts dt{margin-top:.6rem}
  .cols .main{order:1;min-width:0}
  .cols .main>h2:first-child{margin-top:1.75rem}
}
@media (max-width:40rem){
  dl.facts{grid-template-columns:1fr;gap:0 0}
  dl.facts dt{margin-top:.5rem}
  h1,.h1{font-size:1.9rem}
  .lede{font-size:1.1rem}
  table.wines{font-size:.875rem}
  ol.feeds li{grid-template-columns:2.4rem 1fr;gap:0 .9rem}
  ol.feeds .buyers{grid-column:2;margin-top:.25rem}
  ol.feeds .n{font-size:1.6rem}
}
@media (prefers-reduced-motion:no-preference){a{transition:color .12s}}
@media (prefers-color-scheme:dark){
  :root{--paper:#1a1816;--card:#232020;--loess:#2a2520;--ink:#ebe5da;--basalt:#d9d2c6;--contour:#8c7354;--rule:#3a352f;--muted:#a39a8c;--garnet:#d98b93;--garnet-ink:#f0b3b9}
}
@media print{header.site nav,details,aside.visit{position:static}body{background:#fff}.ledger{background:none}}

.map-full{height:min(72vh,44rem);min-height:22rem;border:1px solid var(--rule);border-radius:4px;margin:.75rem 0}
.map-controls{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;font:500 .85rem/1.3 var(--sans);color:var(--muted)}
.map-controls label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}
.key{display:inline-block;width:.8rem;height:.8rem;border-radius:2px}
.thief-key{display:inline-flex;align-items:center;gap:.35rem}.key-star{color:var(--garnet);font-size:1.05rem;line-height:1}
:root{--vine:#4f6b3a}@media (prefers-color-scheme:dark){:root{--vine:#9bbf7a}}
.key-winery{background:var(--garnet);border-radius:50%}.key-vineyard{background:var(--vine);opacity:.6}.key-vineland{background:var(--vine);opacity:.25}.key-ava{border:1.5px dashed var(--garnet)}
.maplibregl-popup-content{font:.9rem/1.35 var(--sans);color:#1e1c1a}
.maplibregl-popup-content .what{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#6a625a}
.maplibregl-popup-content .addr{color:#6a625a;font-size:.8rem}
.maplibregl-popup-content a{color:#7a1f2b}
figure.locator{margin:.5rem 0 1rem;max-width:20rem}
figure.locator svg{display:block;width:100%;height:auto;background:var(--card);border:1px solid var(--rule);border-radius:4px}
figure.locator figcaption{font:.8rem/1.3 var(--sans);color:var(--muted);margin-top:.3rem}
.loc-valley{fill:none;stroke:var(--garnet);stroke-width:1;stroke-dasharray:4 3;opacity:.7}
.loc-rocks{fill:var(--garnet);fill-opacity:.12;stroke:var(--garnet);stroke-width:.8;stroke-dasharray:3 2}
.loc-town{fill:var(--muted)}.loc-town-t{font:9px var(--sans);fill:var(--muted)}
.loc-hit{fill:var(--garnet);stroke:var(--card);stroke-width:1.5}
.loc-hit-shape{fill:var(--garnet);fill-opacity:.55;stroke:var(--garnet);stroke-width:1}

button.pick{font:500 .9rem/1.3 var(--sans);color:var(--garnet);background:transparent;border:1px solid var(--contour);border-radius:2px;padding:.4rem .75rem;cursor:pointer;margin:.5rem 0 .25rem}
button.pick:hover{background:var(--card)}button.pick.on{background:var(--garnet);color:var(--paper);border-color:var(--garnet)}
button.pick:focus-visible{outline:2px solid var(--garnet);outline-offset:2px}
#planbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:block;text-align:center;font:500 .95rem/1.3 var(--sans);color:var(--paper);background:var(--garnet);text-decoration:none;padding:.7rem max(16px,env(safe-area-inset-left,0px)) calc(.7rem + env(safe-area-inset-bottom,0px));box-shadow:0 -2px 10px rgba(0,0,0,.18)}
#planbar:hover{color:var(--paper);background:var(--garnet-ink)}
body:has(#planbar) footer.site{padding-bottom:5rem}
.maplibregl-popup-content button.pick{margin:.4rem 0 0;font-size:.8rem;padding:.3rem .6rem;color:#7a1f2b;border-color:#b08f66}
.maplibregl-popup-content button.pick.on{background:#7a1f2b;color:#fbfaf6}
.plan{max-width:46rem}
ol.picks{list-style:none;margin:1rem 0 0;padding:0;counter-reset:stop}
ol.picks li{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.1rem .9rem;padding:.8rem 0;border-top:1px solid var(--rule);align-items:baseline}
ol.picks li::before{counter-increment:stop;content:counter(stop);font-family:var(--serif);font-size:1.25rem;color:var(--garnet);grid-row:1/3}
ol.picks .who a{font-family:var(--serif);font-size:1.25rem;line-height:1.2;text-decoration:none;color:var(--ink)}
ol.picks .who a:hover{color:var(--garnet)}
ol.picks .who small{display:block;font-size:.85rem;color:var(--muted);margin-top:.1rem}
ol.picks .facts{grid-column:2;font-size:.92rem;color:var(--basalt);line-height:1.5}
ol.picks .rm{grid-column:3;grid-row:1;font:.8rem var(--sans);color:var(--muted);background:none;border:0;border-bottom:1px solid var(--rule);padding:0;cursor:pointer}
ol.picks .rm:hover{color:var(--garnet)}
.thief-line{font-family:var(--serif);font-size:1.05rem;margin:1rem 0 0;padding-top:.8rem;border-top:1px solid var(--contour)}
.sendbox{margin-top:1.5rem;border:1px solid var(--rule);background:var(--card);padding:1rem 1.1rem}
.sendbox h2{margin:.25rem 0 .35rem;border:0;padding:0}
.sendbox>p{margin:.25rem 0 .9rem;color:var(--basalt);font-size:.95rem}
.sendbox .row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:.7rem}
.sendbox label{display:block;font-size:.85rem;color:var(--muted)}
.sendbox label.full{margin-bottom:.7rem}
.sendbox .opt{font-weight:400}
.sendbox input,.sendbox textarea{display:block;width:100%;min-width:0;margin-top:.2rem;font:1rem var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:.5rem .6rem}
.sendbox input:focus-visible,.sendbox textarea:focus-visible{outline:2px solid var(--garnet);outline-offset:1px}
.sendbox .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.sendbox .acts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem}
.btn{font:500 1rem var(--sans);background:var(--garnet);color:var(--paper);border:0;padding:.6rem 1.1rem;border-radius:2px;cursor:pointer}
.btn:hover{background:var(--garnet-ink)}.btn:disabled{opacity:.6;cursor:default}
.btn.quiet{background:transparent;color:var(--garnet);border:1px solid var(--contour)}.btn.quiet:hover{background:var(--paper)}
.btn:focus-visible{outline:2px solid var(--garnet);outline-offset:2px}
.sendbox .status{margin:.6rem 0 0;font-size:.9rem;color:var(--basalt);min-height:1.2em}
.sent{font-family:var(--serif);font-size:1.15rem;margin:1.25rem 0;padding:.9rem 1rem;border-left:3px solid var(--garnet);background:var(--card)}
@media (max-width:40rem){.sendbox .row{grid-template-columns:1fr}ol.picks li{grid-template-columns:1.6rem minmax(0,1fr) auto}}

/* --- the night plate (home) --- */
:root{--night:#171412;--copper:#c99a62;--garnet-lit:#c4384a}
body.night-top{overflow-x:clip}
body.night-top header.site{background:var(--night);color:#efe8da;border-bottom-color:#3a322c;max-width:none;padding-left:max(1rem,calc(50% - 32rem));padding-right:max(1rem,calc(50% - 32rem))}
body.night-top header.site .wordmark{color:#efe8da}
body.night-top header.site .wordmark span{color:var(--copper)}
body.night-top header.site nav a{color:#cfc4b3}
body.night-top header.site nav a:hover{color:var(--copper)}
.night{position:relative;overflow:hidden;background:var(--night);color:#efe8da;margin:0 calc(50% - 50vw);padding:.5rem max(1rem,calc(50vw - 32rem)) 1.4rem}
.night .ntext h1{color:#efe8da;font-size:clamp(2.2rem,8.5vw,3.6rem);line-height:1.02;margin:.6rem 0 .3rem;letter-spacing:-.01em;max-width:14ch;text-wrap:balance}
.night .ntext h1 i{font-style:italic;color:var(--copper)}
.night .nlede{font-family:var(--serif);font-size:1.05rem;line-height:1.45;color:#cfc4b3;max-width:34ch;margin:0 0 .4rem}
.night .ncounts{color:#9a8f80;font-size:.85rem;margin:.6rem 0 .9rem}
.night .ncounts b{color:#efe8da;font-weight:600}
.hplate{display:block;width:100%;height:auto;max-width:100%}
.hplate .hg{stroke:#3a322c;stroke-width:.5}
.hplate .hgl{fill:#6d6155;font:7px ui-monospace,"SF Mono",Menlo,monospace}
.hplate .hava{fill:#221d19;stroke:var(--copper);stroke-width:.9;stroke-opacity:.9}
.hplate .hv{fill:#8a7a66;opacity:.55}
.hplate a{outline:none}
.hplate .hw{fill:var(--garnet-lit);opacity:0;transform-box:fill-box;transform-origin:center;animation:hlit .9s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * 22ms + .4s)}
.hplate .hw.glow{fill:#ff8a99;animation:hglow 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * 22ms + 1.3s)}
.hplate a:hover .hw{fill:#fff}
.hplate .hsweep{fill:url(#hsw);opacity:0;animation:hsweep 2.4s ease-out .2s forwards}
@keyframes hlit{from{opacity:0;transform:scale(.2)}70%{opacity:1;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}
@keyframes hglow{0%,100%{opacity:0}50%{opacity:.55}}
@keyframes hsweep{0%{opacity:0;transform:translateX(-60%)}25%{opacity:.5}100%{opacity:0;transform:translateX(70%)}}
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.6rem}
.doors a{text-decoration:none;color:#efe8da;border:1px solid #4a423b;padding:.7rem .6rem;min-height:48px;display:flex;flex-direction:column;justify-content:center;border-radius:2px}
.doors a:hover,.doors a:focus-visible{border-color:var(--copper);color:#fff}
.doors a b{font-family:var(--serif);font-weight:500;font-size:1.05rem;line-height:1.1}
.doors a small{font-size:.75rem;opacity:.75;margin-top:.2rem}
.night .dawn{position:absolute;inset:0;background:var(--paper);opacity:0;pointer-events:none}
.ledger{margin-top:0}
@media (min-width:760px){
  .night{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:"text plate" "doors plate";column-gap:2rem;align-items:center;padding-top:1.5rem;padding-bottom:2rem}
  .night .ntext{grid-area:text}.night .hplate{grid-area:plate;align-self:center}.night .doors{grid-area:doors;align-self:start}
}
@media (prefers-reduced-motion:reduce){
  .hplate .hw,.hplate .hsweep{animation:none;opacity:1}
  .hplate .hsweep{opacity:0}
  .hplate .hw.glow{display:none}
}
