button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--green);border-radius:7px;background:var(--green);color:#fff;padding:.65rem 1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s}button:hover,.button:hover{background:#1c513b;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.button.secondary{background:transparent;color:var(--green);border-color:var(--line)}input,textarea{border:1px solid #b9c6bc;border-radius:7px;padding:.65rem .8rem;background:var(--paper);color:var(--ink);min-width:0}main h1{font-size:clamp(1.75rem,2.8vw,2.45rem);line-height:1.4;letter-spacing:-.04em;font-weight:650}main h2{font-size:1.12rem}main small{font-size:.84rem}main strong{font-weight:600}.section-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1rem 0;font-weight:600}.section-bar .muted{font-weight:400;margin-left:.5rem}.section-bar a{font-size:.88rem}.week{margin:.3rem 0 1.55rem}.week>h2{font-size:.83rem;color:var(--muted);font-weight:500;margin-bottom:.55rem}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem}.day-card{display:flex;flex-direction:column;min-width:0;min-height:185px;padding:.9rem;background:var(--paper);border:1px solid var(--line);border-radius:9px;color:var(--ink);transition:border-color .15s,transform .15s}.day-card:hover{text-decoration:none;border-color:#7a9e83;transform:translateY(-2px)}.day-card.latest{background:#eef4eb;border-color:#9eb49e}.day-label{display:flex;justify-content:space-between;gap:.4rem;align-items:center;font-size:.77rem;color:var(--muted)}.day-label b{font-size:1rem;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.day-count{font-size:.76rem;margin:.6rem 0;color:var(--green)}.day-card ul{list-style:none;padding:0;margin:0 0 .8rem;font-size:.83rem;line-height:1.9;overflow-wrap:anywhere}.day-card li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.read-day{margin-top:auto;font-size:.76rem;color:var(--green)}.missing{background:transparent;border-style:dashed;color:#8a938c;min-height:185px}.missing>span+span{margin-top:1rem;font-size:.8rem}.missing:hover{transform:none;border-color:var(--line)}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.product-card{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:1.25rem}.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.card-heading h2{overflow-wrap:anywhere;line-height:1.45}.card-heading h2 a{color:var(--ink)}.rank{color:var(--muted);font-size:.78rem;background:var(--wash);padding:.12rem .5rem;border-radius:4px;flex-shrink:0}.speedrun{margin:.75rem 0 .8rem;font-weight:550;font-size:.94rem;line-height:1.7}.summary{list-style:none;margin:0 0 1rem;padding:0;line-height:1.75;font-size:.86rem}.summary li{margin:0 0 .6rem}.summary strong{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.08rem}.summary span{display:block}.card-bottom{margin-top:auto}.website{display:block;font-size:.78rem;overflow-wrap:anywhere;word-break:break-word}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:.65rem 0 .9rem}.tag{border-radius:4px;background:var(--wash);color:var(--muted);padding:.1rem .4rem;font-size:.69rem}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding-top:.8rem;border-top:1px solid var(--line);font-size:.8rem}.save-product{padding:.32rem .6rem;border-color:var(--line);background:#fff;color:var(--muted);font-size:.8rem;font-weight:500}.save-product:hover,.save-product[aria-pressed=true]{background:var(--accent);color:var(--green);border-color:#a5bda9}.search-label{display:flex;align-items:center;gap:.7rem;color:var(--muted);font-size:.82rem;font-weight:400}.search-label input{padding:.4rem .65rem;width:230px}.empty{border:1px dashed var(--line);border-radius:10px;padding:3rem;text-align:center;color:var(--muted);margin:1rem 0;grid-column:1/-1}#toast{position:fixed;bottom:1.7rem;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.6rem 1.2rem;border-radius:7px;box-shadow:0 3px 20px #0002;z-index:5;max-width:90vw}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.shelf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.shelf-item{border:1px solid var(--line);background:#fff;border-radius:9px;padding:1.2rem;display:flex;flex-direction:column;gap:.65rem;min-width:0}.shelf-item label{display:flex;align-items:center;gap:.6rem;font-weight:600}.shelf-item p{font-size:.9rem;color:var(--muted)}.shelf-item .card-actions{margin-top:auto}.text-button{border:0;background:transparent;padding:.2rem;color:var(--muted);font-size:.8rem;font-weight:400}.text-button:hover{background:var(--accent);color:var(--green)}.explorer{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:1.5rem;align-items:start}.research-product{background:#fff;border:1px solid var(--line);border-radius:9px;padding:1.2rem;margin-bottom:1rem;overflow-wrap:anywhere}.research-product h2{margin-bottom:.6rem}.research-product details{border-top:1px solid var(--line);padding-top:.7rem;margin-top:.8rem;font-size:.85rem}.research-product summary{cursor:pointer;color:var(--green)}.source-excerpt{white-space:pre-wrap;font-size:.8rem;max-height:340px;overflow:auto;background:var(--wash);padding:.7rem;margin-top:.7rem}.conversation{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:1.25rem}.conversation-toolbar{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted);padding-bottom:1rem;border-bottom:1px solid var(--line)}#chat-messages{min-height:190px;max-height:65vh;overflow-y:auto;overscroll-behavior:contain;padding:.5rem 0}.chat-message{margin:.8rem 0;padding:.9rem;border-radius:8px;background:var(--wash);overflow-wrap:anywhere}.chat-message.user{background:#eaf2e9;margin-left:2rem}.chat-message h3{font-size:.73rem;color:var(--muted);margin-bottom:.4rem}.chat-message .message-text{white-space:pre-wrap;font-size:.93rem;line-height:1.8}.chat-sources{border-top:1px solid var(--line);padding-top:.5rem;margin-top:.7rem;font-size:.75rem;display:flex;flex-direction:column;gap:.25rem}.suggestions{display:flex;gap:.45rem;flex-wrap:wrap;margin:.75rem 0}.suggestions button{font-size:.78rem;background:#fff;color:var(--green);border-color:var(--line);font-weight:400;padding:.4rem .6rem}.suggestions button:hover{background:var(--accent)}#chat-input{width:100%;resize:vertical;display:block;margin-top:.9rem;min-height:90px}.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.7rem}.composer-footer small{max-width:75%;font-size:.73rem;color:var(--muted)}#chat-status{font-size:.84rem;color:var(--muted);margin-top:.65rem}.subscribe-layout{display:grid;grid-template-columns:1fr 420px;gap:5rem;align-items:center;padding:3rem 4rem;background:linear-gradient(135deg,#1d3327 0%,#274a36 55%,#315a41 100%);color:#dce8de;border-radius:16px;margin:1rem 0 2rem}.subscribe-layout h1{color:#f2f7f3}.subscribe-layout .muted{color:#b8cabe}.subscribe-layout .eyebrow{color:#8fc4a4}.subscribe-benefits{color:#c9d9ce}.subscribe-layout .subscribe-card{color:var(--ink)}.subscribe-layout .subscribe-card .muted,.subscribe-layout .subscribe-card small{color:var(--muted)}.subscribe-layout h1{line-height:1.5;margin-bottom:1rem}.subscribe-benefits{padding-left:1.2rem;color:var(--muted);line-height:2.5;margin-top:1.5rem}.subscribe-card{padding:2rem;border:1px solid var(--line);border-radius:12px;background:#fff}.subscribe-card h2{font-size:1.3rem;margin-bottom:1.2rem}.subscribe-card input[type=email]{width:100%;margin:.4rem 0 1rem}.subscribe-card label{font-size:.88rem}.consent{display:flex;gap:.55rem;align-items:flex-start;color:var(--muted);font-size:.8rem!important}.consent input{margin-top:.35rem;flex-shrink:0}.subscribe-card button{width:100%;margin-top:1.1rem}.subscribe-card small{display:block;border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem;color:var(--muted);font-size:.76rem}#subscribe-status{margin-top:1rem;font-size:.83rem;color:var(--green)}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.confirmation{max-width:550px;margin:4rem auto;background:white;border:1px solid var(--line);padding:2rem;border-radius:10px}.confirmation p{margin:1rem 0}

@media(max-width:1100px){.product-grid,.shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subscribe-layout{padding:2rem 1.5rem;gap:2rem}.week-grid{gap:.4rem}.day-card{padding:.65rem}}
@media(max-width:760px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.day-card{min-height:150px;padding:.8rem}.missing{min-height:80px}.week-grid>.missing{display:none}.product-grid,.shelf-grid{grid-template-columns:1fr}.product-card{padding:1.1rem}.summary{font-size:.9rem}.explorer,.subscribe-layout{grid-template-columns:1fr;gap:1rem}.explorer{display:flex;flex-direction:column}.explorer>aside,.conversation{width:100%}.conversation{padding:1rem}.subscribe-layout{padding:1.5rem 1rem}.subscribe-card{padding:1.4rem}.section-bar{align-items:flex-start;flex-wrap:wrap}.search-label input{width:200px}.empty{padding:2rem 1rem}.composer-footer{align-items:flex-start}.research-product{padding:1rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.day-card:hover{transform:none}}

/* Shared site geometry. Channel styles must not redefine this shell. */
:root {
  color-scheme: light;
  --ink: #202925;
  --text: #33463c;
  --muted: #65716b;
  --green: #27694e;
  --line: #dfe5df;
  --paper: #fff;
  --wash: #f5f7f3;
  --accent: #e9f1e9;
  --site-width: 1440px;
  --site-gutter: 32px;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.65;
  background: var(--wash);
  color: var(--ink);
  font-synthesis: none;
  scrollbar-gutter: stable;
}
* { box-sizing: border-box; }
body { margin: 0; font-size: 1rem; line-height: 1.65; }
a { color: var(--green); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, textarea, select { font: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
input:focus, textarea:focus { outline: 2px solid #79a88b; outline-offset: 2px; }
h1, h2, h3, p { margin: 0; }
[hidden] { display: none !important; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid #79a88b; outline-offset: 3px; }
.muted { color: var(--muted); }
.eyebrow { font-size: 11px; font-weight: 650; letter-spacing: 1.5px; color: var(--green); margin-bottom: 11px; }
.skip { position: absolute; left: 20px; top: -100px; }
.skip:focus { top: 10px; background: var(--paper); z-index: 10; padding: 10px; }
.site-header, main, .site-footer { width: 100%; max-width: var(--site-width); margin-inline: auto; }
.site-header { padding: 18px var(--site-gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 16px; font-weight: 700; line-height: 28px; letter-spacing: 0; white-space: nowrap; }
.brand:hover { text-decoration: none; }
.brand-icon { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 7px; background: var(--green); color: #fff; font-size: 18px; }
.brand-sub { margin-left: 4px; padding-left: 10px; border-left: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 400; line-height: 20px; }
.site-header nav { display: flex; align-items: center; gap: 24px; }
.site-header nav a { padding: 4px 0; border-bottom: 2px solid transparent; color: var(--muted); font-size: 13px; font-weight: 600; line-height: 24px; white-space: nowrap; }
.site-header nav a:hover { text-decoration: none; }
.site-header nav a[aria-current=page] { color: var(--green); border-bottom-color: var(--green); }
main { min-height: 76vh; padding: 36px var(--site-gutter) 56px; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.page-heading > :first-child { min-width: 0; }
.page-heading .eyebrow { margin: 0 0 10px; color: var(--green); font-size: 11px; font-weight: 650; line-height: 18px; letter-spacing: 1.5px; }
.page-heading h1 { margin: 0; color: var(--ink); font-size: 34px; font-weight: 650; line-height: 1.4; letter-spacing: -.04em; }
.page-heading > :first-child > p:not(.eyebrow) { margin: 10px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.page-heading > .button { flex-shrink: 0; }
.channel-heading > :first-child { flex: 1; }
.channel-heading > :first-child > p:not(.eyebrow) { min-height: 3.3em; }
.heading-actions { display: flex; align-items: center; min-height: 60px; align-self: center; flex-shrink: 0; }
.channel-tools { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); margin-bottom: 20px; }
.channel-tools nav { display: flex; gap: 20px; }
.channel-tools nav a { display: block; border-bottom: 2px solid transparent; color: var(--muted); font-size: 13px; font-weight: 600; line-height: 1.5; }
.channel-tools nav a:hover { text-decoration: none; }
.channel-tools nav a[aria-current=page] { color: var(--green); border-bottom-color: var(--green); text-decoration: none; }
.channel-status { color: var(--muted); font-size: 11px; }
.site-footer { padding: 22px var(--site-gutter); display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
@media (min-width: 1600px) { :root { --site-width: 1560px; } }
@media (max-width: 1100px) { .brand-sub { display: none; } }
@media (max-width: 760px) {
  :root { --site-gutter: 20px; }
  .site-header { padding-block: 16px; flex-wrap: wrap; gap: 12px; }
  .site-header nav { width: 100%; justify-content: space-between; gap: 8px; }
  .site-header nav a { font-size: 12px; }
  main { padding-block: 28px 42px; }
  .page-heading { flex-direction: column; gap: 16px; margin-bottom: 24px; }
  .page-heading h1 { font-size: 28px; }
  .channel-heading > :first-child { width: 100%; }
  .heading-actions { align-self: flex-start; }
  .site-footer { flex-direction: column; gap: 6px; }
}
