:root{--ink:#241c20;--cream:#fff9e8;--tomato:#ef634d;--butter:#ffd66b;--leek:#b9d59b;--sage:#688c72;--aubergine:#4b304a;--plum:#76506d;--white:#fffdf4;--shadow:0 18px 55px #3d20322a;font-family:ui-rounded,"Avenir Next","Segoe UI",system-ui,sans-serif;color:var(--ink);background:#f5eacb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 84% 8%,#ffd66b90 0 8%,transparent 28%),linear-gradient(145deg,#fff9e8,#f0ddb9);overflow-x:hidden}button,input,select{font:inherit}button{min-height:46px;border:2px solid var(--ink);border-radius:999px;padding:.65rem 1.05rem;background:var(--white);color:var(--ink);font-weight:700;cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:transform .18s,box-shadow .18s,background .18s}button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid #2476ff;outline-offset:3px}.primary{background:var(--ink);color:var(--white)}.quiet{background:transparent;box-shadow:none}.danger{color:#862d30}.skip-link{position:fixed;z-index:99;top:.5rem;left:.5rem;transform:translateY(-200%);background:#fff;padding:.75rem;visibility:hidden}.skip-link:focus-visible{visibility:visible;transform:none}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.noscript{padding:1rem;background:#fff;border:3px solid #b92020}main{max-width:1500px;margin:auto}.masthead{min-height:78vh;padding:clamp(2rem,5vw,5rem);display:grid;align-content:center;position:relative}.masthead:after{content:"";position:absolute;width:min(34vw,450px);aspect-ratio:1;right:5vw;top:10vh;background:conic-gradient(from 30deg,var(--tomato),var(--butter),var(--leek),var(--tomato));border-radius:39% 61% 70% 30%/55% 37% 63% 45%;filter:saturate(.9);z-index:-1;transform:rotate(8deg)}.kicker,.step{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:800}.masthead h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4.2rem,12vw,11rem);line-height:.72;letter-spacing:-.065em;margin:.3em 0 .25em;max-width:9ch}.masthead h1 span{display:block}.masthead h1 em{font-style:italic;color:var(--tomato);text-shadow:3px 3px 0 var(--ink)}.lede{font-size:clamp(1rem,1.8vw,1.35rem);max-width:46rem;line-height:1.5}.header-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.gather{padding:clamp(2rem,5vw,5rem);background:#fff5d8;border-radius:4rem 4rem 0 0}.section-heading{display:grid;grid-template-columns:9rem 1fr;gap:.2rem 2rem;align-items:baseline}.section-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,5vw,5rem);margin:0;line-height:.95}.section-heading>p:last-child{grid-column:2;font-size:1.1rem}.ingredient-picker{display:flex;flex-wrap:wrap;gap:.8rem;margin:2.2rem 0}.ingredient-choice{position:relative;background:var(--color,#ddd);border-radius:58% 42% 45% 55%/48% 56% 44% 52%;min-height:78px;padding:1rem 1.4rem;font-family:Georgia,"Times New Roman",serif;font-size:1.2rem;box-shadow:none}.ingredient-choice[aria-pressed="true"]{box-shadow:inset 0 0 0 5px #fff,5px 6px 0 var(--ink);transform:rotate(-2deg)}.ingredient-choice[aria-pressed="true"]:after{content:"✓";position:absolute;right:.45rem;top:.15rem;font-family:sans-serif}.custom-food{border-top:1px solid #35252b44;padding-top:1rem}.custom-food>label{font-weight:800}.custom-line{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(9rem,.35fr) auto;gap:.7rem;margin-top:.5rem}.custom-line input,.custom-line select{min-height:48px;border:2px solid var(--ink);background:#fffdf4;border-radius:1.5rem;padding:.5rem 1rem}.gather-controls{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:1rem;margin-top:2rem;align-items:stretch}fieldset{border:2px solid var(--ink);border-radius:1.5rem;padding:1rem;display:grid;gap:.45rem}legend{font-family:Georgia,"Times New Roman",serif;font-weight:800;padding:0 .4rem}.arrange{border-radius:1.5rem;font-size:1.05rem}.arrange span{display:block;font-size:.8rem;color:var(--butter);margin-top:.35rem}.counter{background:var(--ink);color:var(--white);padding:clamp(1.2rem,3vw,3rem);min-height:100vh}.counter-top{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.2rem}.counter h2,.route h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,4vw,4.5rem);line-height:.95;margin:.15rem 0}.counter-note{max-width:24rem}.day-bands{display:grid;grid-template-columns:1.15fr 1fr .9fr;min-height:55vh;border-radius:2.5rem;overflow:hidden;box-shadow:var(--shadow)}.day-band{padding:clamp(1rem,2vw,2rem);color:var(--ink);position:relative}.today{background:linear-gradient(145deg,var(--butter),var(--tomato))}.tomorrow{background:linear-gradient(145deg,#d9e7ad,var(--leek))}.later{background:linear-gradient(145deg,var(--plum),var(--aubergine));color:var(--white)}.band-copy p{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin:0}.band-copy h3{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,4.2rem);margin:0}.food-zone{display:flex;flex-wrap:wrap;align-content:flex-start;gap:.65rem;margin-top:2rem;min-height:12rem}.food-piece{--piece:#fff;position:relative;display:inline-flex;flex-direction:column;align-items:start;justify-content:center;min-width:9rem;min-height:7rem;padding:1rem 1.1rem;background:var(--piece);color:var(--ink);border:2px solid var(--ink);border-radius:62% 38% 54% 46%/43% 61% 39% 57%;transform:rotate(var(--tilt,0deg));box-shadow:4px 5px 0 #241c20cc}.food-piece strong{font-family:Georgia,"Times New Roman",serif;font-size:1.25rem}.food-piece small{opacity:.66}.piece-actions{display:flex;flex-wrap:wrap;gap:.28rem;margin-top:.55rem}.piece-actions button{font-size:.63rem;min-height:34px;min-width:34px;padding:.28rem .45rem;box-shadow:none;border-width:1px;background:#fff}.piece-actions button[aria-pressed="true"]{background:var(--ink);color:#fff}.loose-drawer{padding:1rem 0}.loose-drawer>p{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}#loose-zone{display:flex;flex-wrap:wrap;gap:.7rem}.bridge{background:#fff7df;color:var(--ink);margin:1.5rem auto;padding:1rem 1.5rem;border-radius:2rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.2rem;max-width:64rem}.bridge[hidden]{display:none}.bridge h3{font-family:Georgia,"Times New Roman",serif;font-size:1.65rem;margin:.1rem 0}.bridge p{margin:.2rem 0}.bridge-knot{display:flex;align-items:center}.bridge-knot i{width:50px;height:50px;border-radius:50%;background:var(--tomato);border:2px solid}.bridge-knot i:nth-child(2){background:var(--leek);margin-left:-18px}.bridge-knot b{margin-left:-38px;z-index:1}.route{min-height:100vh;padding:clamp(2rem,5vw,5rem);background:linear-gradient(145deg,#fff8dc,#e7ecc3)}.route-heading{max-width:52rem}.route-map{position:relative;margin:3rem 0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.5rem,3vw,3rem);min-height:24rem}.route-map:before{content:"";position:absolute;left:10%;right:10%;top:49%;height:8px;background:linear-gradient(90deg,var(--tomato),var(--sage),var(--aubergine));border-radius:99px;transform:rotate(-5deg);transform-origin:center}.route-stop{position:relative;z-index:1;align-self:center;background:#fffdf4;border:3px solid var(--ink);border-radius:2.5rem;padding:1.2rem;box-shadow:8px 9px 0 #2c2326;transform:translateY(var(--rise,0)) rotate(var(--turn,0deg))}.route-stop:nth-child(1){--rise:3rem;--turn:-3deg}.route-stop:nth-child(2){--rise:-1rem;--turn:2deg}.route-stop:nth-child(3){--rise:-5rem;--turn:-2deg}.route-stop p{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.route-stop h3{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.5rem,3vw,2.6rem);margin:.2rem 0}.route-foods{line-height:1.5}.route-foods span{display:block}.bridge-meal{color:#a12e25;font-weight:800}.plan-copy{background:var(--aubergine);color:#fff;padding:1.2rem 1.5rem;border-radius:1.5rem;max-width:58rem;font-size:1.05rem}.route-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}.saved-note{font-size:.8rem;opacity:.65}footer{background:var(--aubergine);color:#fff;padding:2rem max(2rem,5vw);display:flex;justify-content:space-between;gap:1rem}footer a{color:var(--butter)}[hidden]{display:none!important}.shake{animation:shake .35s linear}.folding .day-band{animation:fold .7s ease both}.folding .day-band:nth-child(2){animation-delay:.08s}.folding .day-band:nth-child(3){animation-delay:.16s}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes fold{50%{transform:scale(.96) rotate(-1deg);filter:saturate(1.25)}100%{transform:scale(.99)}}
@media(max-width:760px){.masthead{min-height:72vh;padding:2rem 1.1rem 3rem}.masthead:after{width:62vw;right:-12vw;top:7vh;opacity:.58}.masthead h1{font-size:clamp(4rem,22vw,7rem)}.gather{padding:2.5rem 1rem;border-radius:2rem 2rem 0 0}.section-heading{display:block}.section-heading>p:last-child{font-size:.98rem}.ingredient-picker{gap:.5rem}.ingredient-choice{min-height:64px;padding:.75rem 1rem;font-size:1rem}.custom-line{grid-template-columns:1fr}.gather-controls{grid-template-columns:1fr}.counter{padding:1.2rem .75rem}.counter-top{display:block}.day-bands{grid-template-columns:1fr;min-height:auto;border-radius:1.5rem}.day-band{display:grid;grid-template-columns:7.7rem 1fr;min-height:12rem}.band-copy h3{font-size:2rem}.food-zone{margin:0;min-height:8rem;gap:.45rem}.food-piece{min-width:7.2rem;min-height:6rem;padding:.7rem}.food-piece strong{font-size:1rem}.piece-actions button{min-width:44px;min-height:44px;font-size:.58rem}.bridge{grid-template-columns:auto 1fr;padding:1rem}.bridge button{grid-column:1/-1}.route{padding:3rem 1rem}.route-map{grid-template-columns:1fr;gap:1rem;min-height:auto}.route-map:before{left:12%;right:auto;top:5%;bottom:5%;width:8px;height:auto;transform:rotate(4deg)}.route-stop,.route-stop:nth-child(n){margin-left:1.2rem;transform:rotate(var(--turn,0deg))}.route-stop:nth-child(2){margin-left:2.4rem}.route-stop:nth-child(3){margin-left:3.6rem}footer{display:block}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}}
.masthead.collapsed{min-height:auto;padding:1rem 1.5rem 1.25rem}
.masthead.collapsed h1{font-size:clamp(1.6rem,6vw,2.1rem);line-height:1.05;margin:.2em 0}
.masthead.collapsed .kicker,.masthead.collapsed .lede{display:none}
.masthead.collapsed .header-actions{margin-top:.5rem;gap:.6rem}
@media(max-width:420px){html,body,main,.route,footer{max-width:100%;overflow-x:hidden} .masthead.collapsed{padding:1rem 1rem .9rem}.day-bands,.food-zone,.piece-actions{overflow-x:visible}.food-piece{min-width:8.2rem;max-width:calc(100vw - 2.5rem);min-height:5.8rem;padding:.6rem .75rem}.piece-actions button{min-width:44px;min-height:44px;font-size:.6rem;padding:.3rem .5rem}.bridge{padding:1rem .9rem;grid-template-columns:1fr;gap:.8rem}.bridge button{grid-column:1/-1;justify-self:start}.route-map{gap:.8rem}.route-stop{padding:1rem;max-width:100%} .counter-note{font-size:.9rem}.route{padding:1.5rem 1rem}.route-actions{flex-direction:column;align-items:stretch}.route-actions button{width:100%;min-height:48px}.plan-copy{padding:1rem;font-size:1rem;max-width:100%}.route-map:before{display:none}.route-heading h2{font-size:clamp(1.8rem,8vw,2.4rem)}}
