/* growth rings chart, ring tooltip and event card: used by place + workshop pages */
.rings-svg{width:100%;height:auto;display:block;overflow:visible;touch-action:none}
.rings-svg .band{fill:transparent;cursor:pointer;transition:fill .25s}
.rings-svg .band.odd{fill:#7e5b420b}
.rings-svg .band.on{fill:color-mix(in srgb,var(--accent) 28%,transparent)}
.rings-svg .line{fill:none;stroke:var(--night);stroke-width:1.3;stroke-linejoin:round;pointer-events:none;transition:opacity .25s}
.rings-svg .line.todo{stroke-dasharray:1.2 3.2;stroke-linecap:round;opacity:.45}
.rings-svg.focus .line{opacity:.28}
.rings-svg.focus .line.on,.rings-svg.focus g.on .line{opacity:1}
.rings-svg .pith{fill:var(--soil);pointer-events:none}
.rings-svg .ev{fill:var(--night);pointer-events:none;transition:opacity .25s,r .2s}
.rings-svg .ev.up{fill:var(--linen);stroke:var(--night);stroke-width:.8}
.rings-svg .ev.special{fill:var(--autumn)}
.rings-svg .ev.dim{opacity:.18}
.rings-svg .ev.hot{fill:var(--accent);stroke:var(--night);stroke-width:.9;r:3.2}
.rings-svg .season{opacity:.85;pointer-events:none}
.rings-svg .month{font:400 6.2px var(--mono);fill:#1b221f88;text-anchor:middle;letter-spacing:.05em;pointer-events:none}
.rings-svg .tip{pointer-events:none}
.rings-svg .tip-core{fill:var(--accent)}
.rings-svg .tip.still .tip-core{fill:var(--muted)}
.rings-svg .tip-wave{fill:none;stroke:var(--accent);stroke-width:.9}

.ring-tip{position:fixed;left:0;top:0;z-index:30;width:290px;padding:14px 16px 12px;border-radius:12px;background:var(--night);color:var(--linen);
  pointer-events:none;opacity:0;transition:opacity .15s;box-shadow:0 18px 40px #1b221f40}
.ring-tip.on{opacity:1}
.ring-tip .rt-head{display:flex;justify-content:space-between;align-items:baseline;color:#efece6aa}
.ring-tip .rt-head b{font:300 26px var(--serif);color:var(--linen);letter-spacing:0;text-transform:none}
.ring-tip .rt-note{font:italic 300 15px/1.35 var(--serif);color:#efece6dd;margin-top:6px}
.ring-tip .rt-sum{color:var(--accent);margin:8px 0 6px}
.ring-tip ul{padding:0;margin:0;border-top:1px solid #efece622}
.ring-tip li{list-style:none;display:grid;grid-template-columns:8px 52px 1fr;gap:8px;align-items:center;padding:4px 0;font-size:13.5px;color:#efece6bb}
.ring-tip li i{width:6px;height:6px;border-radius:50%}
.ring-tip li .mono{font-size:10px}
.ring-tip li.up{color:#efece677;font-style:italic}
.ring-tip li.hot{color:var(--linen);font-weight:400}
.ring-tip li.hot span:last-child{border-bottom:1px solid var(--accent)}
.ring-tip .rt-foot{margin-top:8px;color:#efece666;font-size:10px}

.rings-years{display:flex;flex-wrap:wrap;gap:6px}
.rings-years button{font:inherit;font-family:var(--mono);font-size:11px;letter-spacing:.08em;border:1px solid #1b221f2a;background:none;border-radius:99px;padding:6px 10px;cursor:pointer;color:inherit}
.rings-years button:hover,.rings-years button:focus-visible{background:var(--night);color:var(--linen);outline:none}

/* event card */
.ev-overlay{position:fixed;inset:0;z-index:40;background:#1b221fcc;backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px;
  opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.ev-overlay.on{opacity:1;visibility:visible;transition:opacity .25s}
.ev-card{position:relative;width:min(940px,100%);max-height:calc(100vh - 48px);display:grid;grid-template-columns:.9fr 1.1fr;grid-template-rows:1fr auto;
  background:var(--linen);color:var(--night);border-radius:18px;overflow:hidden;transform:translateY(12px);transition:transform .3s}
.ev-overlay.on .ev-card{transform:none}
.ev-photo{position:relative;grid-row:span 2;background:#0002 center/cover;min-height:420px}
.ev-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#1b221f00 55%,#1b221fbb)}
.ev-when{position:absolute;left:22px;bottom:20px;z-index:1;color:var(--linen);display:flex;flex-direction:column;gap:4px}
.ev-when span{color:var(--accent)}
.ev-stamp{position:absolute;right:18px;bottom:16px;width:104px;height:104px;z-index:1;transform:rotate(-8deg)}
.ev-stamp-t{font:400 8.8px var(--mono);fill:var(--linen)}
.ev-body{padding:34px 36px 20px;overflow:auto}
.ev-kicker{display:flex;align-items:center;gap:8px;color:var(--soil)}
.ev-kicker i{width:8px;height:8px;border-radius:50%}
.ev-card h3{font:300 40px/1.05 var(--serif);margin:12px 0 14px}
.ev-text{font:300 18px/1.55 var(--serif);color:#1b221fdd}
.ev-meta{display:flex;flex-wrap:wrap;gap:1px;margin:22px 0 16px;background:#1b221f1a;border:1px solid #1b221f1a;border-radius:10px;overflow:hidden}
.ev-meta div{flex:1 1 110px;background:var(--linen);padding:10px 12px}
.ev-meta dt{color:#1b221f88;font-size:10px}
.ev-meta dd{margin:4px 0 0;font-family:var(--sans);font-size:15px;letter-spacing:0;text-transform:none;color:var(--night)}
.ev-chips{display:flex;flex-wrap:wrap;gap:6px}
.ev-chips span{padding:5px 11px;border-radius:99px;background:#7e5b4214;color:var(--soil);font-size:13px}
.ev-card blockquote{margin:20px 0 0;padding:4px 0 4px 16px;border-left:2px solid var(--accent);font:italic 300 20px/1.4 var(--serif)}
.ev-card blockquote cite{display:block;font:400 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#1b221f88;margin-top:6px;font-style:normal}
.ev-foot{display:flex;gap:16px;align-items:center;margin-top:22px;padding:14px;border-radius:12px;background:#fff8}
.ev-loc{width:64px;height:64px;flex:none;color:var(--night)}
.ev-foot-t{display:flex;flex-direction:column;gap:3px;font-size:14px;flex:1;min-width:0}
.ev-foot-t b{font-weight:400}
.ev-foot-t span{color:#1b221f99}
.ev-cta{align-self:flex-start;margin-top:6px;font:400 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;border:0;border-radius:99px;padding:8px 14px;background:var(--night);color:var(--linen);cursor:pointer}
.ev-cta:disabled{background:var(--spring);cursor:default}
.ev-nav{display:flex;justify-content:space-between;align-items:center;padding:12px 36px 18px;border-top:1px solid #1b221f14;color:#1b221f88}
.ev-nav button{font:inherit;background:none;border:0;cursor:pointer;color:var(--night);padding:6px 0}
.ev-nav button:disabled{opacity:.25;cursor:default}
.ev-x{position:absolute;top:14px;right:16px;width:36px;height:36px;border-radius:50%;border:0;background:var(--linen);color:var(--night);font-size:22px;line-height:1;cursor:pointer;z-index:2}
@media(max-width:760px){.ev-card{grid-template-columns:1fr}.ev-photo{grid-row:auto;min-height:220px}.ev-stamp{width:80px;height:80px}}

/* the rings section (place + workshop pages) */
.rings-sec{max-width:1180px;margin:0 auto;padding:40px 32px 96px;display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:center}
.rings-sec h2{font:300 40px/1.12 var(--serif);margin:14px 0 18px}
.rings-sec h2 em{font-style:italic}
.rings-sec p{font:300 18px/1.6 var(--serif);color:#1b221fcc;margin-bottom:22px}
.rings-chart{max-width:560px;width:100%;justify-self:center}
.rings-legend{display:flex;flex-wrap:wrap;gap:16px;color:#1b221f99;margin-bottom:22px}
.rings-legend span{display:flex;align-items:center;gap:7px}
.rings-legend i{width:8px;height:8px;border-radius:50%;background:var(--night)}
.rings-legend i.up{background:var(--linen);border:1px solid var(--night)}
.rings-legend i.sp{background:var(--autumn)}
.rings-legend i.tip{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}
.rings-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #1b221f1f;margin-bottom:24px}
.rings-stats div{padding:14px 0;border-bottom:1px solid #1b221f1f}
.rings-stats b{display:block;font:300 34px var(--serif)}
.rings-stats span{color:#1b221f88}
@media(max-width:900px){.rings-sec{grid-template-columns:1fr;gap:32px}}

/* time zoom: the focused year's seasons, months and labelled events */
.rings-svg .zoom-layer{pointer-events:none}
.rings-svg .sector{opacity:.16}
.rings-svg .tick{stroke:#1b221f;stroke-width:.35;stroke-dasharray:.8 1.4;opacity:.45}
.rings-svg .mlab{font:400 3.6px var(--mono);letter-spacing:.08em;fill:#1b221f99;text-anchor:middle;text-transform:uppercase}
.rings-svg .ev-label{font:400 4.3px var(--sans);fill:var(--night);paint-order:stroke;stroke:#ebe7df;stroke-width:1.6px;stroke-linejoin:round}
.rings-svg .ev-label.up{font-style:italic;fill:#1b221f99}
.rings-svg.zoomed .line.far{opacity:.45}
.rings-svg.zoomed .ev:not(.hot){transition:none}

/* the zoom controller */
.rz{margin-top:14px;display:flex;flex-direction:column;gap:10px;align-items:stretch}
.rz-row{display:flex;align-items:center;gap:10px}
.rz-btn,.rz-step{width:34px;height:34px;flex:none;border-radius:50%;border:1px solid #1b221f33;background:var(--linen);color:var(--night);font:300 20px/1 var(--sans);cursor:pointer}
.rz-btn:hover,.rz-step:hover{background:var(--night);color:var(--linen)}
.rz-step:disabled,.rz-all:disabled{opacity:.3;cursor:default;background:var(--linen);color:var(--night)}
.rz-range{flex:1;-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--night) var(--v,0%),#1b221f26 var(--v,0%));outline:none;cursor:pointer}
.rz-range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);border:3px solid var(--night);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 30%,transparent)}
.rz-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:3px solid var(--night)}
.rz-scale{display:flex;justify-content:space-between;color:#1b221f88;font-size:10px;padding:0 44px}
.rz-nav{justify-content:center;margin-top:4px}
.rz-year{font:300 26px var(--serif);min-width:150px;text-align:center}
.rz-all{margin-left:8px;border:1px solid #1b221f33;background:none;border-radius:99px;padding:8px 13px;cursor:pointer;color:inherit}
.rz-all:not(:disabled):hover{background:var(--night);color:var(--linen)}
.rings-years button.on{background:var(--night);color:var(--linen);border-color:var(--night)}

/* the zoomed year's overview */
.rings-detail{margin-top:8px;padding:18px 20px;border-radius:14px;background:#fff9;min-height:60px}
.rd-hint{font:italic 300 16px/1.45 var(--serif);color:#1b221f99}
.rd-head{display:flex;justify-content:space-between;align-items:baseline}
.rd-head b{font:300 34px var(--serif)}
.rd-head span{color:#1b221f88}
.rd-note{font:italic 300 17px/1.45 var(--serif);color:#1b221fcc;margin:6px 0 0}
.rd-sum{color:var(--soil);margin:10px 0 6px}
.rd-season{margin-top:12px}
.rd-season h5{display:flex;align-items:center;gap:8px;font-weight:400;color:#1b221f99;margin:0 0 4px}
.rd-season h5 i{width:8px;height:8px;border-radius:50%}
.rd-ev{display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:baseline;width:100%;text-align:left;font:300 16px var(--sans);color:var(--night);
  background:none;border:0;border-top:1px solid #1b221f14;padding:9px 2px;cursor:pointer}
.rd-ev .mono{font-size:10px;color:#1b221f88}
.rd-ev em{font:400 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#1b221f55;font-style:normal}
.rd-ev:hover{background:color-mix(in srgb,var(--accent) 16%,transparent)}
.rd-ev:hover em{color:var(--night)}
.rd-ev.up span:nth-child(2){font-style:italic;color:#1b221f99}
.rd-ev.sp span:nth-child(2)::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--autumn);margin-left:8px;vertical-align:2px}
