:root{--red:#a8232c;--red2:#861a22;--green:#2d5a3d;--green2:#22462f;--gold:#c8962e;--cream:#fbf6ec;--paper:#fffdf8;--ink:#2e2622;--muted:#74675f;--line:#e6d9c6;--card:#fffdf8;--r:10px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 "Nunito",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--cream)}
a{color:var(--red)}a:hover{color:var(--red2)}
h1,h2,h3{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:600;line-height:1.18;color:#2b1f1b;letter-spacing:-.01em}
h1{font-size:clamp(1.8rem,4.4vw,2.7rem);margin:.2em 0 .4em}
h2{font-size:clamp(1.35rem,3vw,1.75rem);margin:1.2em 0 .5em}
h3{font-size:1.15rem;margin:.2em 0 .4em}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px}.narrow{max-width:820px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
.top{background:var(--cream);color:var(--ink);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}
.top:after{content:"";display:block;border-bottom:2px dashed var(--red);opacity:.55;margin:0 0 3px}
.topin{display:flex;align-items:center;justify-content:space-between;min-height:58px;gap:14px}
.logo{color:var(--red);text-decoration:none;font:600 1.45rem "Fraunces",Georgia,serif;display:flex;align-items:center;gap:8px;white-space:nowrap}
.top .logo,.top .logo:hover{color:var(--red)}
.logo-mark{display:inline-flex;width:30px;height:30px}.logo-mark svg{width:100%;height:100%}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav a{color:var(--green);text-decoration:none;padding:6px 11px;border-radius:8px;font-weight:700;font-size:.95rem}
.nav a:hover{background:#efe5d4;color:var(--red)}
.menu{display:none;background:none;border:1px solid var(--line);border-radius:8px;color:var(--green);font-size:1.4rem;cursor:pointer;padding:2px 10px}
@media(max-width:860px){.menu{display:block}.nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;padding:8px 14px}.nav.open{display:flex}}
.hero{background:var(--cream);padding:30px 0 6px;text-align:center}.hero-art{display:block;margin:0 auto 6px;width:230px;max-width:70%;height:auto}
.hero .lead{max-width:760px;margin:0 auto}
.eyebrow{display:inline-block;font-size:.8rem;color:var(--green);font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin:0}
.lead{font-size:1.12rem;color:#3d322e}
.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}
.sec{padding:30px 0}.sec.tight{padding:14px 0}.alt{background:#f4ecdd;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pagehead{padding:22px 0 6px}
.crumbs{font-size:.85rem;color:var(--muted)}.crumbs a{color:var(--muted)}
.gen{padding:14px 0 26px}
.genbox{background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:24px;max-width:980px;margin:0 auto;outline:1px dashed #d8c6ab;outline-offset:-9px}
.genform .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:12px}
.genform label{display:flex;flex-direction:column;font-weight:600;font-size:.92rem;gap:5px}
input,select{font:inherit;padding:10px 12px;border:1px solid #d9cabb;border-radius:10px;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus{outline:2px solid var(--gold);border-color:var(--gold)}
fieldset{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 12px}
legend{font-weight:700;font-size:.92rem;padding:0 6px}
.chks{display:flex;flex-wrap:wrap;gap:6px 14px}
.chk{display:flex!important;flex-direction:row!important;align-items:center;gap:6px!important;font-weight:500!important}
.chk input{width:auto}
.genbtns{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--green);color:#fff;border:0;border-radius:10px;padding:11px 20px;font:800 1rem "Nunito",system-ui,sans-serif;cursor:pointer;text-decoration:none;transition:transform .1s,background .2s}
.btn:hover{background:var(--green2);color:#fff}.btn:active{transform:scale(.97)}
.btn.big{font-size:1.08rem;padding:13px 26px;background:var(--red)}.btn.big:hover{background:var(--red2)}
.btn.ghost{background:transparent;color:var(--green);border:2px solid var(--green)}.btn.ghost:hover{background:#e9efe5;color:var(--green)}
.btn.sm{padding:7px 13px;font-size:.88rem}
.genout{margin-top:18px;display:grid;gap:14px}
.genout .idea{border-left:5px solid var(--gold)}
.genmsg{background:#f8efd9;border:1px solid #e3cf9c;padding:10px 14px;border-radius:10px;font-size:.92rem}
.ideas{display:grid;gap:14px}
.idea{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;scroll-margin-top:80px}
.idea h3{display:flex;gap:10px;align-items:baseline}
.idea .num{flex:none;background:transparent;color:var(--red);border:1.5px solid var(--red);border-radius:50%;min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font:600 .95rem "Fraunces",Georgia,serif}
.meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.86rem;color:var(--muted)}.meta b{color:var(--green);font-weight:800}
.props{margin:.5em 0;font-size:.95rem}
.steps{margin:.4em 0;padding-left:1.3em}.steps li{margin:.2em 0}
.note{margin:.6em 0 .3em;background:#eef2e8;border-left:4px solid var(--green);padding:8px 12px;border-radius:0 10px 10px 0;font-style:italic}
.note b{font-style:normal;color:var(--green)}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:.75rem;background:#f1e6d3;color:#6e4a2c;border-radius:999px;padding:2px 9px;font-weight:600}
.idea-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.minigen{background:var(--paper);border:2px dashed #d3b98d;border-radius:var(--r);padding:14px 16px;display:grid;gap:10px}
.minigen .btn{justify-self:start}
.tipbox{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:4px 18px 10px;margin:14px 0}
.tipbox h2{font-size:1.15rem}
.toc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px 16px}
.toc summary{cursor:pointer;font-weight:700}.toc ol{columns:2;column-gap:28px;font-size:.92rem}
@media(max-width:600px){.toc ol{columns:1}}
.shopbox{background:var(--paper);border:1.5px solid #e1cfa8;border-radius:var(--r);padding:6px 18px 12px;margin:18px 0}
.shopbox h2{font-size:1.15rem}
.affnote{font-size:.85rem;color:#6e5320;background:#f5ead0;display:inline-block;padding:3px 10px;border-radius:8px;margin:0 0 6px}
.shoplist{columns:2;column-gap:24px;padding-left:1.1em}@media(max-width:600px){.shoplist{columns:1}}
.faq{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 16px;margin:8px 0}
.faq summary{cursor:pointer;font-weight:700}
.relgrid,.hubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.relcard,.hubcard{display:flex;flex-direction:column;gap:4px;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r);padding:14px 16px;text-decoration:none;color:var(--ink);transition:border-color .15s}
.relcard{flex-direction:row;justify-content:space-between;align-items:center}
.relcard:hover,.hubcard:hover{border-color:var(--red);color:var(--ink)}.hubcard b,.relcard b{font-family:"Fraunces",Georgia,serif;font-weight:600}
.hubcard span{font-size:.85rem;color:var(--muted)}.hubcard.pr{border-top:4px solid var(--green)}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:700px){.feature{grid-template-columns:1fr}}
.feature>div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.3em 0}
.plain{padding-left:1.2em}.cols2{columns:2;column-gap:28px}@media(max-width:600px){.cols2{columns:1}}
.tblwrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;background:var(--paper);border-radius:12px;overflow:hidden;font-size:.94rem}
.tbl th,.tbl td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:#efe4d1;font-size:.85rem}
.filters{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:14px;position:sticky;top:66px;z-index:5}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chip{border:1px solid #d9cabb;background:var(--paper);border-radius:999px;padding:4px 11px;font:600 .82rem system-ui;cursor:pointer;color:var(--ink)}
.chip.on{background:var(--green);border-color:var(--green);color:#fff}
@media(max-width:600px){.filters{position:static}}
/* planner */
.planout{margin-top:18px}
.plantbl td:first-child{white-space:nowrap;font-weight:600}
.plantbl .we td:first-child{color:var(--red)}
.plantbl details summary{cursor:pointer;font-weight:600}
.planbtns{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.badge{display:inline-block;font-size:.7rem;font-weight:800;background:#f1e6d3;color:#6e4a2c;border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:middle}
/* letters */
.letterwrap{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start}
@media(max-width:860px){.letterwrap{grid-template-columns:1fr}}
.letterform{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:11px;position:sticky;top:80px}
@media(max-width:860px){.letterform{position:static}}
.sheetwrap{overflow-x:auto}
.sheet{background:#fffdf8;max-width:720px;margin:0 auto;aspect-ratio:8.5/11;padding:16px;box-shadow:0 2px 0 var(--line),0 6px 18px rgba(80,50,20,.08);border:1px solid var(--line);position:relative;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.sheet-in{height:100%;border:3px solid var(--red);outline:1.5px dashed var(--green);outline-offset:-11px;padding:30px 38px;display:flex;flex-direction:column;font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(.82rem,1.9vw,1.06rem);line-height:1.55}
.theme-red .sheet-in{border-color:var(--red);outline-color:var(--green)}
.theme-green .sheet-in{border-color:var(--green);outline-color:var(--gold)}
.theme-ink .sheet-in{border:4px double #222;outline-color:#888}
.sheet-top{display:flex;justify-content:space-between;align-items:center;font:800 .72em "Nunito",system-ui;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.theme-ink .sheet-top,.theme-ink .sheet-h{color:#111}
.sheet-h{font-size:2em;text-align:center;color:var(--red);margin:.5em 0 .4em;font-style:italic}
.sheet-body p{margin:.55em 0}
.sheet-sign{margin-top:auto;padding-top:.8em;font-style:italic}
.sheet-sign span{font-size:1.6em;font-family:"Caveat","Brush Script MT","Segoe Script",cursive}
.sheet-ps{font-size:.92em;color:#4a3d38}
.sheet-foot{text-align:center;font:700 .68em "Nunito",system-ui;letter-spacing:.2em;color:var(--muted);margin-top:.6em}
.blank{display:inline-block;min-width:7em;border-bottom:1.5px solid #555}
.rules{font-size:1.08em}.rules li{margin:.45em 0}
.notesheet{background:#fffdf8;max-width:720px;margin:0 auto;aspect-ratio:8.5/11;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,1fr);border:1px solid var(--line);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.ncard{border:1.5px dashed #bbb;padding:14px 16px;font-family:"Fraunces",Georgia,serif;font-size:clamp(.72rem,1.7vw,.98rem);display:flex;flex-direction:column;position:relative}
.ncard:before{content:"❄";position:absolute;right:12px;top:8px;color:var(--green);opacity:.7}
.nto{font-weight:700;color:var(--red);margin:0 0 .3em}.ncard p{margin:.2em 0}.nfrom{margin-top:auto!important;font-style:italic;color:var(--green)}
.notecard-print{max-width:480px;margin:0 auto;border:3px solid var(--red);outline:1.5px dashed var(--green);outline-offset:-10px;padding:30px;font:1.3rem/1.5 "Fraunces",Georgia,serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#printRoot{display:none}
.foot{background:#2d4a37;color:#e8eadf;padding:30px 0 20px;margin-top:30px}
.foot a{color:#f6e3bf;text-decoration:none}.foot a:hover{text-decoration:underline}
.foot .logo{color:#fff;margin-bottom:6px}
.fcols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:20px}
.fcols div{display:flex;flex-direction:column;gap:4px;font-size:.92rem}
.fcols b{color:#fff;margin-bottom:4px}
@media(max-width:760px){.fcols{grid-template-columns:1fr 1fr}}
.disclaimer{border-top:1px dashed #6b8a72;padding-top:12px;margin-top:20px}
@media print{
  @page{margin:.4in}
  body{background:#fff}
  .top,.foot,.minigen,.shopbox,.noprint,.genform,ins.adsbygoogle,.google-auto-placed,.crumbs,.relgrid,.skip,.filters,.toc,.planbtns,iframe{display:none!important}
  body.printing-one>*:not(#printRoot){display:none!important}
  body.printing-one #printRoot{display:block!important}
  #printRoot .sheet,#printRoot .notesheet{box-shadow:none;max-width:none;width:100%;height:9.9in;aspect-ratio:auto;padding:0;margin:0}
  #printRoot .sheet-in{font-size:13pt}
  #printRoot .ncard{font-size:15pt;padding:18px 20px}
  #printRoot .tbl{font-size:9pt}#printRoot .tbl td,#printRoot .tbl th{padding:2.5px 6px}#printRoot .tbl .small{font-size:8pt}#printRoot summary{list-style:none}#printRoot summary::-webkit-details-marker{display:none}
  #printRoot .swap{display:none}#printRoot .tbl td{line-height:1.25}#printRoot h2{font-size:16pt;margin:0}#printRoot .nightn{display:none}
  #printRoot details:not([open])>*:not(summary){display:none}#printRoot .plantbl details[open]>*:not(summary){display:none}
}

.sec h2{position:relative}.sec h2:after{content:"";display:block;width:46px;border-bottom:3px solid var(--red);margin-top:8px;border-radius:2px}.center h2:after,.hero h2:after{margin-left:auto;margin-right:auto}
.sprig{display:inline-block;width:22px;height:22px;vertical-align:-4px;margin-right:6px}
.foot .logo-mark{background:var(--cream);border-radius:50%;padding:3px}
.sheet-h:after,.shopbox h2:after,.tipbox h2:after,.minigen h2:after{display:none!important}
