/* Homepage only: playful hero, interactive week board and scroll reveals. */
.hero-accent{color:var(--primary)}
.hero-squiggle{position:relative;white-space:nowrap}
.hero-squiggle svg{position:absolute;left:0;bottom:-.12em;width:100%;height:.28em;overflow:visible}
.hero-squiggle path{fill:none;stroke:var(--tertiary);stroke-width:7;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420;animation:home-draw 1.1s .5s cubic-bezier(.3,.7,.2,1) forwards}
@keyframes home-draw{to{stroke-dashoffset:0}}
.hero-callout{animation:home-bob 4s ease-in-out infinite}
.hero-callout.callout-swipe{animation-delay:-1.3s}
.hero-callout.callout-shop{animation-delay:-2.6s}
@keyframes home-bob{50%{translate:0 -8px}}

.week-board-section{padding:24px 0 72px}
.week-board{background:var(--surface);border:1px solid var(--border);border-radius:32px;padding:28px;box-shadow:var(--shadow-soft)}
.week-board-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.week-board-head h2{font-family:"Bricolage Grotesque",sans-serif;font-size:clamp(28px,3.4vw,40px);line-height:1.05;letter-spacing:-.04em;margin:6px 0 0}
.week-board-quip{font:700 17px "Bricolage Grotesque",sans-serif;color:var(--primary);min-height:24px;margin:0}
.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.week-day{position:relative;aspect-ratio:3/4.2;border-radius:20px;border:2px solid transparent;background:var(--background);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;padding:10px 6px;font:inherit;color:var(--text);transition:transform .25s cubic-bezier(.2,1.4,.4,1),border-color .2s}
.week-day:hover{transform:translateY(-5px) rotate(-1deg)}
.week-day:focus-visible{outline:3px solid rgba(111,124,75,.72);outline-offset:3px}
.week-day-name{font:700 18px "Bricolage Grotesque",sans-serif;position:relative;z-index:2}
.week-day-state{font-size:13px;line-height:1.25;color:var(--text-muted);text-align:center;position:relative;z-index:2}
.week-day-icon{position:absolute;top:14%;left:50%;width:62%;translate:-50% 0;font-size:clamp(28px,3.6vw,46px);text-align:center;line-height:1;transition:scale .35s cubic-bezier(.2,1.6,.4,1),opacity .25s;animation:home-wobble 2.6s ease-in-out infinite}
@keyframes home-wobble{50%{rotate:6deg;translate:-50% -4px}}
.week-day img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;scale:1.2;transition:opacity .35s,scale .45s cubic-bezier(.2,1.4,.4,1)}
.week-day[aria-pressed="true"]{border-color:var(--primary)}
.week-day[aria-pressed="true"] img{opacity:1;scale:1}
.week-day[aria-pressed="true"] .week-day-icon{scale:0;opacity:0}
.week-day[aria-pressed="true"]::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(33,30,25,.8))}
.week-day[aria-pressed="true"] .week-day-name,.week-day[aria-pressed="true"] .week-day-state{color:#fff}

.week-output{display:grid;grid-template-columns:1fr 1.15fr;gap:18px;margin-top:20px}
.week-list{background:var(--surface-warm);border:2px dashed var(--border);border-radius:18px;padding:20px 22px;min-height:170px}
.week-list h3{font-family:"Bricolage Grotesque",sans-serif;font-size:20px;margin:0 0 10px}
.week-list ul{list-style:none;padding:0;margin:0;columns:2;font-size:15px}
.week-list li{animation:home-slide .3s ease-out}
.week-list li::before{content:"☐ ";color:var(--secondary)}
.week-list .week-list-empty{color:var(--text-muted)}
.week-list .week-list-empty::before{content:none}
@keyframes home-slide{from{opacity:0;translate:-10px 0}}
.week-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-content:start}
.week-stat{background:var(--background);border-radius:18px;padding:16px 10px;text-align:center}
.week-stat strong{display:block;font:700 42px/1.05 "Bricolage Grotesque",sans-serif;color:var(--primary)}
.week-stat span{font-size:14px;color:var(--text-muted)}
.week-done{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--secondary);color:#fff;border-radius:18px;padding:16px 20px}
.week-done[hidden]{display:none}
.week-done strong{font-size:17px}
.week-done a{background:#fff;color:var(--text);border-radius:999px;padding:10px 18px;font-weight:600;text-decoration:none;white-space:nowrap}
.week-footnote{font-size:13px;color:var(--text-muted);margin:12px 0 0}

.home-reveal{opacity:0;translate:0 28px;transition:opacity .7s ease,translate .7s cubic-bezier(.2,.8,.2,1)}
.home-reveal.is-visible{opacity:1;translate:0 0}

@media (max-width:860px){
  .week-board{padding:18px;border-radius:24px}
  .week-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .week-output{grid-template-columns:1fr}
  .week-stat strong{font-size:34px}
}
@media (prefers-reduced-motion:reduce){
  .hero-squiggle path{animation:none;stroke-dashoffset:0}
  .hero-callout,.week-day-icon,.week-list li{animation:none}
  .home-reveal{opacity:1;translate:none;transition:none}
}
