/* last_modified_by: Minh; last_modified_date: 2026-10-27 */
:root{--bg:#f7f2e6;--ink:#163c31;--muted:#526357;--ochre:#8c4d2d;--accent:#e1b963;--panel:#e5eadb;--line:#c9cbb9;--white:#fffdf6;--radius:12px;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:72px;--small:.85rem;--body:1.05rem;--title:clamp(2rem,5vw,3.5rem);--hero:clamp(3.1rem,7vw,6.2rem);--ease:160ms ease;--green:#f0f3e8;--yellow:#f8edcf;--red:#f5e8e0;--measure:72ch;--display:Georgia,"Times New Roman",serif;--caption:.8rem;--chapter:clamp(1.6rem,3vw,2.15rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:var(--body)/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,textarea,input{font:inherit}button,a,input,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}img,svg{max-width:100%}[hidden]{display:none!important}
.masthead,.site-footer{max-width:1240px;margin:auto;padding:var(--s3) var(--s4)}.masthead{display:flex;justify-content:space-between;gap:var(--s3);align-items:center;border-bottom:1px solid var(--line)}.brand{font-size:2rem;letter-spacing:-.08em;font-weight:800;text-decoration:none;line-height:1}.brand-dot{color:var(--ochre)}.site-nav{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);justify-content:flex-end}.site-nav a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;border-bottom:2px solid transparent;font-size:.92rem}.site-nav a[aria-current="page"],.site-nav a:hover{border-bottom-color:var(--ochre)}
.spread,.catalog,.article{max-width:1240px;margin:auto}.spread{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--s6);padding:var(--s6) var(--s4);align-items:center}h1,h2,h3,p{margin-top:0}h1,h2,.meal-note h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.04em}h1{font-size:var(--title);line-height:1.08}.hero h1{font-size:var(--hero);margin-bottom:var(--s3)}h1 em,h2 em{font-style:italic;color:var(--ochre)}.lead{font-size:1.2rem;max-width:38rem}.eyebrow,.note-number,.note-footer{font-size:.72rem;font-weight:700;letter-spacing:.13em}.eyebrow{margin-bottom:var(--s3)}
.primary,.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:56px;border-radius:var(--radius);padding:var(--s2) var(--s3);text-decoration:none;font-weight:650}.primary{border:2px solid var(--ink);background:var(--ink);color:var(--white);transition:background var(--ease),transform var(--ease)}.primary:hover{background:#285b4e}.primary:active{transform:translateY(1px)}.text-link{border:1px solid var(--line);background:var(--white);min-height:44px}:focus-visible{outline:3px solid var(--ochre);outline-offset:4px}.micro,.muted{color:var(--muted);font-size:var(--small)}
.meal-note{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4);transform:rotate(2deg)}.lights{display:grid;gap:var(--s2);margin:var(--s3) 0}.light{display:grid;grid-template-columns:28px 1fr;gap:var(--s2);align-items:center}.bulb{width:18px;height:18px;border-radius:50%;border:2px solid var(--ink)}.bulb.stop{background:#8d3b32}.bulb.wait{background:var(--accent)}.bulb.go{background:#4f6b45}.note-footer{display:block;border-top:1px solid var(--line);padding-top:var(--s2);margin-top:var(--s3)}
.catalog{padding:0 var(--s4) var(--s6);display:grid;gap:var(--s3)}.gift{display:grid;grid-template-columns:120px 1fr auto;gap:var(--s3);align-items:center;padding:var(--s3);border-top:1px solid var(--line);text-decoration:none}.gift:hover h2{color:var(--ochre)}.index{font:700 .8rem/1 Georgia,serif;letter-spacing:.12em}.gift h2{font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 var(--s1)}.gift p{margin:0;color:var(--muted);max-width:46rem}.article{padding:var(--s5) var(--s4) var(--s6);max-width:820px}.prose>*+*{margin-top:1rem}.prose h2{font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.2}.prose ol,.prose ul{padding-left:1.2rem}.prose a{text-underline-offset:3px}.prose .lead{max-width:none}
.traffic{border:1px solid var(--line);border-left:8px solid var(--ink);border-radius:var(--radius);background:var(--white);padding:var(--s3);margin:var(--s2) 0}.traffic h3{font-family:Georgia,serif;font-size:1.45rem;font-weight:400;margin-bottom:var(--s1)}.traffic.green{border-left-color:#4f6b45;background:#f3f6ee}.traffic.yellow{border-left-color:var(--accent);background:#fbf6e8}.traffic.red{border-left-color:#8d3b32;background:#f8f1ee}.traffic p:last-child{margin-bottom:0}
.meals{display:grid;gap:var(--s2);margin:var(--s3) 0}.meals dt{font-size:.72rem;font-weight:700;letter-spacing:.12em}.meals dd{margin:0 0 var(--s2);padding-bottom:var(--s2);border-bottom:1px solid var(--line)}.meals p{margin:.35rem 0 0;color:var(--muted)}
details{border-top:1px solid var(--line);padding:var(--s2) 0}details:last-child{border-bottom:1px solid var(--line)}summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:650}summary:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}.checklist{margin-top:var(--s4)}.checklist fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s2);margin:0 0 var(--s3)}.checklist legend{padding:0 var(--s1);font-family:Georgia,serif;font-size:1.2rem}.check-item{display:flex;gap:var(--s2);align-items:flex-start;min-height:44px;padding:var(--s2);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);cursor:pointer}.check-item:has(input:focus-visible){outline:3px solid var(--ochre);outline-offset:3px}.check-item:has(input:checked){background:var(--panel);border-color:var(--ink)}.check-item input{width:22px;height:22px;margin-top:.2rem;accent-color:var(--ink);flex:none}#check-count{font-weight:650}.prose .safety{border-top:1px solid var(--line);padding-top:var(--s3)}
.workspace{max-width:760px;margin:auto;padding:var(--s5) var(--s4) var(--s6);min-height:70vh}.step-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s2);font-size:var(--small)}.text-button{color:var(--ink);border:0;background:transparent;min-height:44px;padding:var(--s1);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.text-button:hover{color:var(--ochre)}progress{display:block;appearance:none;border:0;width:100%;height:5px;background:var(--line);margin-bottom:var(--s5);border-radius:var(--radius);overflow:hidden}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value,progress::-moz-progress-bar{background:var(--ink)}.hint{color:var(--muted)}fieldset{border:0;padding:0;margin:var(--s4) 0;display:grid;gap:var(--s2)}.choice{display:flex;align-items:center;gap:var(--s2);min-height:64px;padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);cursor:pointer}.choice:hover,.choice:has(input:checked){border-color:var(--ink)}.choice:has(input:checked){background:var(--panel);border-width:2px;padding:calc(var(--s2) - 1px) calc(var(--s3) - 1px)}.choice:has(input:focus-visible){outline:3px solid var(--ochre);outline-offset:3px}.choice input{width:20px;height:20px;accent-color:var(--ink);flex:none}.action-card{background:var(--panel);border-left:4px solid var(--ink);padding:var(--s4);border-radius:var(--radius);margin:var(--s4) 0}.action-card h2{font-size:1.8rem;line-height:1.3;margin-top:var(--s2)}.reflection{padding:var(--s3) 0}.support{border-top:1px solid var(--line);padding-top:var(--s4)}label[for=summary]{display:block;margin-top:var(--s3);font-size:var(--small)}textarea{width:100%;resize:vertical;min-height:180px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);color:var(--ink);padding:var(--s2);font-size:var(--small)}#copy-status{font-size:var(--small);font-weight:600}.safety{font-size:var(--small);color:var(--muted);border-top:1px solid var(--line);padding-top:var(--s3);margin-top:var(--s4)}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:var(--s2);font-size:.75rem;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.missing{max-width:760px;margin:auto;padding:var(--s6) var(--s4)}
@media(max-width:760px){.masthead,.site-footer,.spread,.catalog,.article,.workspace{padding-left:var(--s3);padding-right:var(--s3)}.masthead,.site-footer,.gift{display:flex;flex-direction:column;align-items:flex-start}.site-nav{justify-content:flex-start}.spread{grid-template-columns:1fr;gap:var(--s4);padding-top:var(--s5)}.hero h1{font-size:clamp(2.7rem,12vw,4.6rem)}.meal-note{transform:none}.primary,.text-link,.workspace .primary{width:100%}.choice{padding:var(--s2)}}
.brand{display:inline-flex;align-items:center;min-height:44px}.site-nav a{min-width:44px;justify-content:center}.text-button:hover{color:#75472a}
summary{justify-content:space-between;gap:var(--s2)}summary::after{content:"";width:var(--s1);height:var(--s1);border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);flex:none;margin-right:var(--s1)}details[open]>summary::after{transform:rotate(225deg)}
.masthead{padding-top:var(--s2);padding-bottom:var(--s2);max-width:1280px}.site-nav{gap:var(--s2)}.site-nav a{font-size:var(--small)}.site-footer{max-width:1280px;margin-top:var(--s5);font-size:var(--small)}
.catalog-intro{max-width:1280px;margin:auto;padding:var(--s5) var(--s4) var(--s4);display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:0 var(--s5)}.catalog-intro .eyebrow{grid-column:1/-1;margin-bottom:var(--s2)}.catalog-intro h1{font-size:clamp(2.8rem,5.5vw,5rem);margin:0;line-height:1.04}.catalog-intro>p:last-child{max-width:var(--measure);margin:0 0 var(--s1);font-size:1.15rem}.catalog{max-width:1280px;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2);padding-bottom:var(--s5)}
.gift{display:flex;flex-direction:column;align-items:stretch;gap:var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);min-width:0;transition:background var(--ease),border-color var(--ease)}.gift:hover{background:var(--panel);border-color:var(--ink)}.gift-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s1)}.gift .index{font-family:inherit;font-size:.68rem;letter-spacing:.08em}.gift-arrow{font-size:1.3rem}.gift h2{font-size:clamp(1.45rem,2.1vw,2rem);line-height:1.2;margin:0;overflow-wrap:anywhere}.gift p{font-size:var(--small)}.gift-open{display:flex;justify-content:space-between;gap:var(--s2);font-size:var(--small);font-weight:650;margin-top:auto;padding-top:var(--s2);border-top:1px solid var(--line)}.gift-1{background:var(--panel)}.gift-4{background:var(--ink);color:var(--white);border-color:var(--ink)}.gift-4 p{color:var(--white)}.gift-4 .gift-open{border-color:var(--muted)}.gift-4:hover{background:#234f40}.gift-4:hover h2{color:var(--accent)}
.home-source{max-width:1280px;margin:auto;padding:var(--s5) var(--s4);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--s6)}.home-source h2{font-size:var(--title);line-height:1.15}.home-source .source-image{margin:0}.home-source img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.article{max-width:1280px;padding-top:var(--s4)}.article-header{max-width:960px;padding:var(--s2) 0 var(--s5)}.article-header .eyebrow{margin:var(--s3) 0 var(--s2)}.article-header h1{font-size:clamp(2.3rem,5vw,4.5rem);line-height:1.13;text-wrap:balance;margin-bottom:var(--s3)}.breadcrumb,.read-start{display:inline-flex;min-height:44px;align-items:center;text-underline-offset:4px;font-size:var(--small)}.read-start{gap:var(--s3);font-weight:650}.reading-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s6);align-items:start}.toc{position:sticky;top:var(--s3);max-height:calc(100dvh - var(--s5));overflow-y:auto;padding-right:var(--s2)}.toc>.eyebrow{margin:0 0 var(--s2)}.toc nav{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}.toc a{display:block;padding:var(--s1) 0;min-height:44px;border-bottom:1px solid var(--line);text-decoration:none;font-size:var(--caption);line-height:1.5;overflow-wrap:anywhere}.toc a:hover{color:var(--ochre);text-decoration:underline}.prose{min-width:0;max-width:860px}.prose p,.source-list{max-width:var(--measure)}.source-paragraph>p{margin-bottom:var(--s2)}.prose .chapter{font-family:var(--display);font-size:var(--chapter);line-height:1.25;font-weight:400;letter-spacing:-.025em;padding-top:var(--s4);margin-top:var(--s5);border-top:1px solid var(--line);scroll-margin-top:var(--s3);text-wrap:balance}.prose>.chapter:first-child{margin-top:0}.prose hr{border:0;border-top:1px solid var(--line);margin:var(--s4) 0}.prose hr+.chapter{border:0;margin-top:var(--s3);padding-top:0}.prose .day-heading{padding:var(--s3);background:var(--ink);color:var(--white);border:0;border-radius:var(--radius);margin-top:var(--s6)}.source-callout{padding:var(--s3);border-left:3px solid var(--ink);background:var(--panel);border-radius:0 var(--radius) var(--radius) 0;line-height:1.8;overflow-wrap:anywhere;margin:var(--s3) 0}.source-callout.green{background:var(--green);border-color:#426541}.source-callout.yellow{background:var(--yellow);border-color:#986713}.source-callout.red{background:var(--red);border-color:#923e2b}.source-list li{padding-left:var(--s1);margin-bottom:var(--s1)}.source-image{margin:var(--s4) 0}.source-image img{display:block;width:100%;height:auto;border-radius:var(--radius);background:var(--panel)}figcaption{color:var(--muted);font-size:var(--caption);line-height:1.5;padding-top:var(--s1);overflow-wrap:anywhere}figcaption a{display:inline-block;min-height:44px;align-content:center;text-underline-offset:3px}
.table-wrap{max-width:100%;margin:var(--s3) 0;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:var(--small);line-height:1.6;table-layout:fixed}caption{text-align:left;color:var(--muted);font-size:var(--caption);padding:0 0 var(--s2)}th,td{padding:var(--s2);border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}thead{background:var(--panel)}thead th{font-weight:650}tbody th{font-weight:650}.cell-label{display:none}.meal-table table,.meal-table tbody{display:block}.meal-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.meal-table tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--white);margin-bottom:var(--s3);overflow:hidden}.meal-table th{grid-column:1/-1;background:var(--panel);font-size:var(--small);font-weight:700;letter-spacing:.05em;padding:var(--s1) var(--s3)}.meal-table td{padding:var(--s2) var(--s3);border:0;min-width:0}.meal-table td:nth-child(2){grid-column:1/-1;font-family:var(--display);font-size:1.4rem;line-height:1.4;padding-bottom:var(--s1)}.meal-table td:nth-child(3){grid-column:1/-1;padding-top:var(--s1);padding-bottom:var(--s3);border-bottom:1px solid var(--line)}.meal-table td:nth-child(2) .cell-label{display:none}.meal-table td:nth-child(n+8){grid-column:1/-1}.meal-table:has(thead th:nth-child(7):last-child) td:nth-child(6),.meal-table:has(thead th:nth-child(7):last-child) td:nth-child(7){grid-column:1/-1}.meal-table:has(thead th:nth-child(7):last-child) td:nth-child(4),.meal-table:has(thead th:nth-child(7):last-child) td:nth-child(5){grid-column:span 2}.cell-label{font-family:inherit;font-size:var(--caption);color:var(--muted);line-height:1.5;margin-bottom:var(--s1)}.meal-table .cell-label{display:block}.meal-table td:nth-child(n+4):nth-child(-n+7) .cell-value{font-variant-numeric:tabular-nums}.meal-table .total-row{background:var(--panel)}.meal-table .total-row td:nth-child(2),.meal-table .total-row td:nth-child(3){display:none}.meal-table .total-row td:nth-child(n+8):empty{display:none}
.tracker{margin:var(--s3) 0}.tracker .checklist{margin:0}.tracker th,.tracker td{padding:var(--s1)}.tracker .check-item{display:inline-flex;justify-content:center;align-items:center;width:44px;height:44px;padding:0;border:0;background:transparent}.tracker .check-item input{margin:0}.tracker table{table-layout:auto}.tracker .cell-value{display:flex;flex-wrap:wrap}.tracker td .cell-value{min-width:44px}.tracker table th{font-size:var(--caption)}.tracker #check-count{font-size:var(--small)}
@media(min-width:1100px){.article-traffic .prose{max-width:780px}.article-traffic .reading-layout{gap:var(--s6)}}
@media(max-width:1000px){.catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-layout{grid-template-columns:180px minmax(0,1fr);gap:var(--s4)}.home-source{gap:var(--s4)}}
@media(max-width:760px){.masthead{display:grid;grid-template-columns:1fr;gap:var(--s1);padding:var(--s1) var(--s3)}.brand{font-size:1.7rem}.site-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;width:100%;justify-content:stretch}.site-nav a{font-size:.68rem;white-space:nowrap;min-width:0;letter-spacing:-.02em}.catalog-intro{display:block;padding:var(--s3) var(--s3)}.catalog-intro .eyebrow{margin-bottom:var(--s1);font-size:.66rem}.catalog-intro h1{font-size:2.7rem}.catalog-intro>p:last-child{font-size:var(--small);margin-top:var(--s2)}.catalog{gap:var(--s1);padding-bottom:var(--s4)}.gift{padding:var(--s2);gap:var(--s2)}.gift .index{font-size:.55rem;letter-spacing:.04em}.gift h2{font-size:1.3rem;line-height:1.2}.gift p{font-size:.77rem}.gift-open{font-size:.72rem}.home-source{grid-template-columns:1fr;padding:var(--s4) var(--s3);gap:var(--s3)}.home-source h2{font-size:2rem}.article{padding-top:var(--s2)}.article-header{padding-bottom:var(--s3)}.article-header .eyebrow{margin-top:var(--s2)}.article-header h1{font-size:2.3rem}.reading-layout{display:block}.toc{position:static;max-height:none;margin-bottom:var(--s4);padding:var(--s2);border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}.toc nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s2)}.toc a{font-size:.75rem}.toc .eyebrow{font-size:.65rem}.prose .chapter{margin-top:var(--s4);padding-top:var(--s3)}.prose .day-heading{margin-top:var(--s5);padding:var(--s2)}.source-callout{padding:var(--s2);font-size:1rem;line-height:1.75}.source-image{margin:var(--s3) 0}.meal-table td{padding:var(--s2)}.meal-table th{padding:var(--s1) var(--s2)}.meal-table td:nth-child(2){font-size:1.3rem}.meal-table td:nth-child(3){padding-bottom:var(--s2)}.meal-table td:nth-child(n+4):nth-child(-n+7){grid-column:span 2}.meal-table td:nth-child(n+8){grid-column:1/-1}.table-wrap:not(.meal-table) th,.table-wrap:not(.meal-table) td{padding:var(--s1);font-size:.72rem}.tracker .table-wrap{overflow:visible}.tracker table,.tracker tbody{display:block}.tracker thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.tracker tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s1);border-bottom:1px solid var(--line);margin:var(--s2) 0;padding-bottom:var(--s2)}.tracker th{grid-column:1/-1;border:0}.tracker td{border:0;padding:0!important}.tracker td:last-child{grid-column:1/-1}.tracker .check-item:has(input){width:44px;min-width:44px}.tracker td .cell-value{gap:0}.site-footer{margin-top:var(--s3)}.workspace{padding-top:var(--s4)}progress{margin-bottom:var(--s4)}}
@media(max-width:360px){.masthead,.catalog-intro,.catalog,.article,.workspace,.home-source{padding-left:var(--s2);padding-right:var(--s2)}.catalog-intro h1{font-size:2.4rem}.gift{padding:var(--s2) 12px}.gift h2{font-size:1.2rem}.gift p{font-size:.72rem}.site-nav a{font-size:.64rem}.toc nav{grid-template-columns:1fr}.meal-table td{padding:var(--s2) 12px}}
.prose{overflow-wrap:anywhere}.meal-table .total-row td:nth-child(2),.meal-table .total-row td:nth-child(3){display:block}.meal-table .total-row td.empty-source-cell{display:none}
.meal-table caption{display:block;width:100%;white-space:normal}
.source-image img{max-height:520px;object-fit:contain}.home-source .source-image img{max-height:none;object-fit:cover}
@media(max-width:760px){.catalog{row-gap:var(--s1)}.gift{gap:var(--s1)}.gift p{margin-bottom:var(--s1)}.gift-open{padding-top:var(--s1)}.source-image img{max-height:400px}.home-source .source-image img{max-height:none}.toc{padding:var(--s2)}.article-traffic .toc nav{grid-template-columns:1fr}.article-traffic .article-header h1{font-size:2rem}}
@media(max-width:760px){.site-nav{grid-template-columns:1fr 1fr 1.6fr 1fr 1fr;gap:0}.site-nav a{font-size:.72rem;text-align:center;justify-content:center}}
@media(max-width:360px){.site-nav a{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
