@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff)format("woff")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2)format("woff2"),url(/assets/space-mono-latin-700-normal-D7A851RN.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--colour-text:#22261f;--colour-text-muted:#5b6b52;--colour-text-inverse:#f5ecde;--colour-surface:#fffdf7;--colour-surface-subtle:#f5ecde;--colour-surface-sunken:#efe6d5;--colour-surface-raised:#fff;--colour-brand:#2e4a34;--colour-brand-hover:#223a29;--colour-brand-soft:#e0e7d8;--colour-accent-lime:#d7e85a;--colour-accent-lime-strong:#c7d84e;--colour-accent-lime-soft:#e6edcd;--colour-accent-lilac:#c7b6e6;--colour-accent-lilac-ink:#3a2f60;--colour-accent-slate:#a9c0d6;--colour-accent-slate-ink:#22323f;--colour-positive:#3f6043;--colour-positive-soft:#e4eee3;--colour-attention:#74550f;--colour-attention-soft:#f7ebd0;--colour-error:#982f23;--colour-error-soft:#f9e3df;--colour-border:#e0d6c5;--colour-border-strong:#cabfa9;--colour-focus:#1f5fd6;--colour-focus-soft:#1f5fd638;--colour-overlay:#1b191694;--colour-placeholder-stripe-a:#efe6d3;--colour-placeholder-stripe-b:#e6dcc4;--colour-placeholder-ink:#4e4736;--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Space Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-display-weight:600;--font-display-weight-soft:500;--font-size-caption:.75rem;--font-size-small:.875rem;--font-size-body:1rem;--font-size-lead:clamp(1.05rem, 1rem + .3vw, 1.2rem);--font-size-heading-2:clamp(1.6rem, 1.3rem + 1.2vw, 2.4rem);--font-size-heading-1:clamp(2.5rem, 1.9rem + 3vw, 4.5rem);--font-size-eyebrow:.6875rem;--line-height-tight:1.02;--line-height-snug:1.15;--line-height-body:1.55;--letter-spacing-display:.01em;--letter-spacing-caps:.14em;--letter-spacing-eyebrow:.2em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--line-weight-hairline:1px;--line-weight-medium:1.5px;--line-weight-heavy:2px;--border-default:var(--line-weight-hairline) solid var(--colour-border);--border-strong:var(--line-weight-medium) solid var(--colour-border-strong);--border-outline-action:var(--line-weight-medium) solid var(--colour-brand);--border-dashed-slot:var(--line-weight-medium) dashed var(--colour-border-strong);--radius-small:.625rem;--radius-medium:.875rem;--radius-large:1.375rem;--radius-pill:999px;--shape-blob:54% 46% 44% 56% / 58% 42% 58% 42%;--shape-blob-alt:46% 54% 52% 48% / 56% 44% 56% 44%;--shape-arch:999px 999px var(--radius-medium) var(--radius-medium);--shape-lozenge:999px;--shadow-soft:0 1px 3px #2827220f;--shadow-raise:0 8px 24px #28272214;--shadow-overlay:0 1.5rem 5rem #14121038;--focus-ring-width:3px;--focus-ring-offset:3px;--focus-ring:var(--focus-ring-width) solid var(--colour-focus);--motion-fast:.12s;--motion-standard:.18s;--motion-slow:.26s;--motion-ease:cubic-bezier(.2, 0, 0, 1);--layout-content:72rem;--layout-reading:42rem;--layout-rail:15rem;--breakpoint-tablet:48rem;--breakpoint-desktop:64rem;--nav-rail-width:var(--layout-rail);--nav-mobile-height:4rem;--nav-item-min:3.6rem;--touch-target:3rem;--z-navigation:20;--z-overlay:50;--z-skip-link:100}.site-frame{background:var(--colour-surface-subtle);min-height:100vh}.page-container{width:min(100% - 2rem, var(--layout-content));margin-inline:auto}.page-content{min-width:0;padding-block:var(--space-5) calc(var(--nav-mobile-height) + var(--space-5) + env(safe-area-inset-bottom))}.page-section{position:relative}.stack{flex-direction:column;display:flex}.stack-small{gap:var(--space-3)}.stack-medium{gap:var(--space-5)}.stack-large{gap:var(--space-7)}.inline,.action-group{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.responsive-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--grid-minimum)), 1fr));display:grid}.page-header{align-items:end;gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}.page-header-copy{max-width:var(--layout-reading)}.page-header h1{margin-bottom:var(--space-4);max-width:13ch}.page-header-copy>p:not(.eyebrow){color:var(--colour-text-muted);font-size:var(--font-size-lead);margin-bottom:0}.page-header-status{margin-top:var(--space-4)}.page-header-actions{justify-self:start}.narrow-page{max-width:var(--layout-reading)}@media (width>=48rem){.page-container{width:min(100% - 3rem, var(--layout-content))}.page-content{padding-block:var(--space-7) var(--space-9)}.page-header{grid-template-columns:minmax(0,1fr) auto}.page-header-actions{justify-self:end}}@media (width>=64rem){.site-frame{grid-template-columns:var(--layout-rail) minmax(0, 1fr);grid-template-rows:1fr auto;min-height:100vh;display:grid}.page-content,.site-footer{grid-column:2}}.button,.icon-button{cursor:pointer;min-height:var(--touch-target);transition:background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);border:2px solid #0000;justify-content:center;align-items:center;display:inline-flex}.button{border-radius:var(--radius-pill);font-weight:var(--font-weight-bold);gap:var(--space-2);padding:.7rem var(--space-5);text-decoration:none}.button-primary{background:var(--colour-brand);color:var(--colour-text-inverse)}.button-primary:hover{background:var(--colour-brand-hover)}.button-secondary{border:var(--border-outline-action);color:var(--colour-brand);background:0 0}.button-secondary:hover,.button-quiet:hover{background:var(--colour-brand-soft)}.button-quiet{color:var(--colour-brand);background:0 0}.button-accent{background:var(--colour-accent-lime);color:var(--colour-brand)}.button-accent:hover{background:var(--colour-accent-lime-strong)}.button-destructive{color:var(--colour-error)}.button-destructive.button-primary,.button-destructive.button-accent{background:var(--colour-error);color:var(--colour-text-inverse)}.button-destructive.button-secondary{border-color:var(--colour-error)}.button-destructive:hover{background:var(--colour-error-soft)}.button-destructive.button-primary:hover,.button-destructive.button-accent:hover{background:var(--colour-error);filter:brightness(.9)}.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(1px)}.button:disabled,.icon-button:disabled{cursor:not-allowed;filter:none;opacity:.55;transform:none}.icon-button{border-radius:var(--radius-pill);color:var(--colour-text);min-width:var(--touch-target);padding:var(--space-2);background:0 0}.icon-button:hover{background:var(--colour-brand-soft)}.icon-button svg{width:1.4rem;height:1.4rem}.button-spinner,.spinner{border:3px solid;border-top-color:#0000;border-radius:50%;animation:.8s linear infinite spin}.button-spinner{width:1rem;height:1rem}.spinner-medium{color:var(--colour-brand);width:2rem;height:2rem}.spinner-small{color:var(--colour-brand);width:1rem;height:1rem}@keyframes spin{to{transform:rotate(360deg)}}.panel{border-radius:var(--radius-large);background:0 0;border:1px solid #0000;padding:clamp(1.25rem,4vw,2rem)}.panel-feature{background:var(--colour-accent-lilac);color:var(--colour-accent-lilac-ink)}.card{background:var(--colour-surface);border:var(--border-default);box-shadow:var(--shadow-soft)}.card:is(a,button):hover,a.card:hover,button.card:hover{box-shadow:var(--shadow-raise);transform:translateY(-1px)}.card>svg,.placeholder-icon{color:var(--colour-brand);width:1.75rem;height:1.75rem}.card h2{margin-block:var(--space-4) var(--space-2);font-size:1.35rem}.card p{color:var(--colour-text-muted);margin-bottom:0}.badge,.tag{border-radius:var(--radius-pill);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);min-height:1.75rem;padding:var(--space-1) var(--space-3);align-items:center;display:inline-flex}.badge-neutral{background:var(--colour-surface-subtle);border:var(--border-default)}.badge-positive{background:var(--colour-positive-soft);color:var(--colour-positive)}.badge-attention{background:var(--colour-attention-soft);color:var(--colour-attention)}.tag{font-family:var(--font-mono);letter-spacing:var(--letter-spacing-eyebrow);text-transform:uppercase}.tag-neutral{background:var(--colour-surface-subtle);border:var(--border-default);color:var(--colour-text-muted)}.tag-lilac{background:var(--colour-accent-lilac);color:var(--colour-accent-lilac-ink)}.tag-lime{background:var(--colour-accent-lime-soft);color:var(--colour-brand)}.tag-slate{background:var(--colour-accent-slate);color:var(--colour-accent-slate-ink)}.field,.field-group{gap:var(--space-2);display:grid}.auth-shell{background:radial-gradient(circle at 15% 12%, var(--colour-accent-lime-soft) 0 7rem, transparent 7.1rem), var(--colour-surface-subtle);align-items:center;gap:var(--space-6);min-height:100dvh;padding:var(--space-5);justify-items:center;display:grid}.auth-card{background:var(--colour-surface-raised);border:var(--border-default);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);gap:var(--space-4);max-width:30rem;padding:clamp(var(--space-5), 6vw, var(--space-8));width:100%;display:grid}.auth-card h1,.onboarding-heading h1,.invitation-card h1{font-family:var(--font-display);letter-spacing:-.025em;margin-block:0;font-size:clamp(2rem,8vw,3.25rem);font-weight:600;line-height:.98}.auth-card>p,.invitation-card>p{color:var(--colour-text-muted)}.auth-form,.auth-actions{gap:var(--space-4);display:grid}.onboarding-shell{background:radial-gradient(circle at 88% 8%, var(--colour-accent-lilac) 0 6rem, transparent 6.1rem), var(--colour-surface-subtle);align-items:start;gap:var(--space-5);min-height:100dvh;padding:clamp(var(--space-4), 5vw, var(--space-8));justify-items:center;display:grid}.onboarding-card{background:var(--colour-surface-raised);border:var(--border-default);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);max-width:44rem;padding:clamp(var(--space-5), 5vw, var(--space-8));width:100%}.onboarding-progress{color:var(--colour-text-muted);font-size:var(--font-size-small);font-family:var(--font-mono);gap:var(--space-2);font-weight:600;display:grid}.onboarding-progress progress{accent-color:var(--colour-brand);width:100%;height:.625rem}.onboarding-heading p{color:var(--colour-text-muted);margin-bottom:0}.onboarding-form,.onboarding-grid{gap:var(--space-4);display:grid}.onboarding-form>.button{justify-self:start}.choice-group{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.choice-group legend{font-size:1.1rem;font-weight:750}.choice-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.people-section{gap:var(--space-4);display:grid}.people-section>h2,.people-section>p,.person-row h3,.person-row p{margin:0}.people-section>h2{font-family:var(--font-display);font-size:1.75rem;font-weight:600}.invite-form{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.people-list{border-radius:var(--radius-large);box-shadow:var(--shadow-soft);border:0;overflow:hidden}.person-row{background:var(--colour-surface-raised);align-items:center;gap:var(--space-4);padding:var(--space-4);justify-content:space-between;display:flex}.person-row+.person-row{border-top:1px solid var(--colour-border)}.person-row p{color:var(--colour-text-muted);font-size:var(--font-size-small)}.person-actions,.dialog-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dialog-actions{justify-content:flex-end}@media (width<=36rem){.invite-form{grid-template-columns:1fr;align-items:stretch}.person-row{flex-direction:column;align-items:flex-start}}.choice-grid label{border:var(--border-default);border-radius:var(--radius-pill);cursor:pointer;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:var(--space-2) var(--space-3);display:flex}.choice-grid input{accent-color:var(--colour-brand);width:1.25rem;height:1.25rem}.home-foundation .page-header{padding-block:clamp(var(--space-4), 4vw, var(--space-8))}.home-foundation .page-header-copy{max-width:48rem}.home-foundation-grid .card{min-height:15rem;padding:clamp(var(--space-5), 4vw, var(--space-7))}.home-foundation-grid .card:nth-child(2){background:var(--colour-accent-lime-soft)}.home-foundation-grid .card:nth-child(3){background:var(--colour-accent-lilac)}.home-foundation-grid .card>svg{background:var(--colour-brand);border-radius:var(--radius-pill);box-sizing:content-box;color:var(--colour-accent-lime);padding:var(--space-2)}@media (width>=42rem){.onboarding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.auth-actions .button{justify-content:center;text-decoration:none}.form-label{align-items:baseline;gap:var(--space-2);font-weight:700;display:flex}.form-optional,.form-hint{color:var(--colour-text-muted);font-size:var(--font-size-small);font-weight:400}.field input,.field select,.field textarea{background:var(--colour-surface-subtle);border:1px solid var(--colour-border-strong);border-radius:var(--radius-small);color:var(--colour-text);min-height:var(--touch-target);padding:.7rem var(--space-3);width:100%}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--colour-focus);box-shadow:0 0 0 3px var(--colour-focus-soft);outline:0}.field textarea{resize:vertical;min-height:7rem}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--colour-error);box-shadow:inset 0 0 0 1px var(--colour-error)}.form-error,.form-hint{margin:0}.form-error{color:var(--colour-error);font-size:var(--font-size-small);font-weight:650}.state{align-items:flex-start;gap:var(--space-3);max-width:var(--layout-reading);flex-direction:column;display:flex}.state-card{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);padding:clamp(1.25rem,4vw,2rem)}.state>*{margin-bottom:0}.state h1,.state h2{max-width:18ch}.state>p:not(.eyebrow){color:var(--colour-text-muted)}.state-actions{margin-top:var(--space-2)}.state-loading{padding-block:var(--space-5);flex-direction:row;align-items:center}.state-full-page{justify-content:center;align-items:center;min-height:100vh;margin-inline:auto}.error-state{border-left:.35rem solid var(--colour-error)}.error-state small{color:var(--colour-text-muted)}.feedback{border:var(--border-default);border-radius:var(--radius-medium);align-items:center;gap:var(--space-4);padding:var(--space-4);border-left-width:.35rem;justify-content:space-between;display:flex}.feedback h2{font-family:var(--font-body);margin-bottom:var(--space-1);font-size:1rem;font-weight:750}.feedback p{color:var(--colour-text-muted);margin-bottom:0}.feedback-info{border-left-color:var(--colour-focus)}.feedback-success{background:var(--colour-positive-soft);border-left-color:var(--colour-positive)}.feedback-error{background:var(--colour-error-soft);border-left-color:var(--colour-error)}.status-list{margin:0}.status-list div{border-bottom:var(--border-default);padding-block:var(--space-3);justify-content:space-between;display:flex}.status-list div:last-child{border-bottom:0}.status-list dt{color:var(--colour-text-muted)}.status-list dd{margin:0;font-weight:700}.placeholder-icon{margin-top:var(--space-5)}.modal-surface{background:var(--colour-surface);box-shadow:var(--shadow-overlay);color:var(--colour-text);opacity:0;max-height:calc(100dvh - 2rem);transition:opacity var(--motion-standard) var(--motion-ease), transform var(--motion-standard) var(--motion-ease), display var(--motion-standard) allow-discrete, overlay var(--motion-standard) allow-discrete;border:0;margin:auto;padding:0;transform:translateY(.5rem)}.modal-surface[open]{opacity:1;transform:translateY(0)}.modal-dialog{border-radius:var(--radius-large);width:min(100% - 2rem,34rem)}.modal-sheet{border-radius:var(--radius-large) 0 0 var(--radius-large);width:min(92vw,28rem);height:100dvh;max-height:100dvh;margin:0 0 0 auto}.modal-surface::backdrop{background:var(--colour-overlay)}.modal-header{border-bottom:var(--border-default);align-items:flex-start;gap:var(--space-4);padding:var(--space-5);justify-content:space-between;display:flex}.modal-header h2{margin-bottom:var(--space-2);font-size:1.5rem}.modal-header p{color:var(--colour-text-muted);margin-bottom:0}.modal-content{padding:var(--space-5);overflow-y:auto}.photo-frame{aspect-ratio:var(--photo-frame-ratio,1 / 1);isolation:isolate;margin:0;position:relative}.photo-frame-backdrop,.photo-frame-media{border-radius:var(--photo-frame-shape,var(--shape-blob))}.photo-frame-backdrop{background:var(--photo-frame-accent,var(--colour-accent-lime));z-index:-1;position:absolute;inset:-6% -8% 4% 4%}.photo-frame-media{object-fit:cover;object-position:var(--photo-frame-position,center);width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.photo-frame-media.is-empty{background:repeating-linear-gradient(135deg, var(--colour-placeholder-stripe-a) 0 10px, var(--colour-placeholder-stripe-b) 10px 20px);color:var(--colour-placeholder-ink);font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;place-items:center;display:grid}@starting-style{.modal-surface[open]{opacity:0;transform:translateY(.5rem)}}@media (width<=24rem){.photo-frame-backdrop{inset:-3% -4% 2% 2%}}.pantry-header{grid-template-columns:minmax(0,1fr)}.pantry-header h1{margin-bottom:0}.pantry-discovery{gap:var(--space-3);display:grid}.pantry-discovery-row{align-items:end;gap:var(--space-2);grid-template-columns:minmax(5.5rem, 1fr) repeat(3, var(--touch-target));min-width:0;display:grid}.pantry-discovery-row .form-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pantry-discovery-row .button{padding:0}.pantry-discovery-row .pantry-suggestions-action{background:var(--colour-brand);border-color:var(--colour-brand);border-radius:var(--radius-pill);color:var(--colour-surface)}.pantry-discovery-row .pantry-suggestions-action:hover:not(:disabled){background:var(--colour-brand-hover)}.pantry-discovery-row .field input{height:var(--touch-target);min-height:var(--touch-target)}.pantry-filters{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));display:grid}.pantry-suggestions-dialog{gap:var(--space-3);display:grid}.pantry-suggestion-lines{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.pantry-suggestion-line{border-bottom:var(--border-default);align-items:end;gap:var(--space-2);padding:var(--space-2) 0;grid-template-columns:minmax(7rem,1fr) auto;display:grid}.pantry-suggestion-name{overflow-wrap:anywhere;min-width:0}.pantry-suggestion-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}@media (width<=42rem){.pantry-suggestion-line{grid-template-columns:1fr}}.pantry-form{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.checkbox-field{align-items:center;gap:var(--space-2);min-height:var(--touch-target);font-weight:700;display:inline-flex}.pantry-section{gap:var(--space-5);display:grid}.pantry-category{gap:var(--space-2);display:grid}.pantry-category>h3{color:var(--colour-brand);font-family:var(--font-display);margin:0;font-size:1.35rem}.pantry-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,10rem),12rem));display:grid}.pantry-card{background:var(--colour-surface-raised);border:0;border-inline-start:.3rem solid var(--colour-accent-lilac);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);min-height:6rem;padding:var(--space-3);position:relative}.pantry-card h4,.pantry-card p{margin:0}.pantry-card h4{font-family:var(--font-display);overflow-wrap:anywhere;text-align:center;text-wrap:pretty;font-size:1.25rem}.recipe-card{color:inherit;cursor:pointer;font:inherit;text-align:left;transition:box-shadow var(--motion-fast) ease, transform var(--motion-fast) ease;width:100%;overflow:hidden}.recipe-card:hover{box-shadow:var(--shadow-raise);transform:translateY(-.125rem)}.recipe-card:focus-visible{outline:3px solid var(--colour-focus);outline-offset:3px}.recipe-card-heading{color:var(--colour-brand);font-family:var(--font-display);overflow-wrap:anywhere;text-wrap:pretty;font-size:1.35rem;font-weight:700}.recipe-card-summary{color:var(--colour-text-muted);font-family:var(--font-mono);font-size:var(--font-size-small)}.recipe-card-content{gap:var(--space-2);min-width:0;display:grid}.recipe-card-photo{--photo-frame-ratio:4 / 3;margin:var(--space-1) auto 0;max-width:calc(100% - var(--space-2));width:100%;display:block}.recipe-tags{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.recipe-detail-photo{--photo-frame-accent:var(--colour-accent-lime);--photo-frame-ratio:16 / 9;--photo-frame-shape:var(--shape-blob);max-width:30rem}.pantry-card .pantry-quantity{color:var(--colour-text-muted);font-size:var(--font-size-small);margin-top:var(--space-1)}.pantry-stock-action{border-radius:var(--radius-small);font-size:var(--font-size-small);min-width:var(--touch-target);padding:var(--space-1) var(--space-2);z-index:1;background:0 0;border:0;position:absolute;bottom:0;right:0}.pantry-stock-action-out{color:var(--colour-attention);font-size:var(--font-size-caption);background:0 0}.pantry-stock-tick{color:var(--colour-text-muted);opacity:.55;font-size:.8rem}.pantry-stock-control{align-items:flex-end;gap:var(--space-2);display:flex;position:absolute;bottom:0;right:0}.pantry-stock-control .pantry-stock-action{position:static}.pantry-card>.button,.pantry-card-edit-action{box-shadow:none;background:0 0;border:0}.pantry-card-edit-action{color:inherit;cursor:pointer;height:100%;padding:0 0 var(--touch-target);text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.pantry-card>.button:hover:not(:disabled),.pantry-card-edit-action:hover{background:var(--colour-brand-soft)}.pantry-card-edit-action:focus-visible{border-radius:var(--radius-small);outline:3px solid var(--colour-focus);outline-offset:3px}.pantry-delete-action{color:var(--colour-error);justify-self:start}.empty-state{gap:var(--space-3);display:grid}.empty-state h2,.empty-state p{margin:0}.pantry-edit-form{gap:var(--space-3);grid-template-columns:1fr}.pantry-edit-field-row{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.pantry-compact-form{grid-template-columns:1fr}.pantry-quantity-fields{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (width<=30rem){.pantry-grid{gap:var(--space-1);grid-template-columns:repeat(3,minmax(0,1fr))}.pantry-card{min-height:5.25rem;padding:var(--space-1)}.pantry-card h4{font-size:.9rem;line-height:var(--line-height-snug)}.pantry-card .pantry-quantity{font-size:var(--font-size-caption)}.pantry-card>.button{font-size:var(--font-size-caption);padding:0}.pantry-stock-action{min-height:var(--touch-target);padding:var(--space-1);font-size:.6rem}.pantry-quantity-fields{grid-template-columns:1fr}}.recipe-form{gap:var(--space-4);display:grid}.recipe-library-toolbar{align-items:end;gap:var(--space-3);grid-template-columns:minmax(5.5rem,1fr) auto auto auto;min-width:0;display:grid}.recipe-library-toolbar .form-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.recipe-library-toolbar .field input{min-width:0}.recipe-library-grid{margin-top:var(--space-2)}.recipe-library-toolbar .field input{height:var(--touch-target);min-height:var(--touch-target)}.recipe-detail-dialog{gap:var(--space-4);display:grid}.recipe-detail-dialog h3,.recipe-detail-dialog p,.recipe-detail-dialog dl{margin:0}.recipe-detail-dialog ul,.recipe-detail-dialog ol{margin-block:var(--space-2) 0;padding-left:1.4rem}@media (width<=36rem){.recipe-library-header{gap:var(--space-2)}.recipe-library-header h1{margin-bottom:var(--space-1);font-size:2rem}.recipe-library-header>p{margin-bottom:0;font-size:.9rem}.recipe-library-toolbar{gap:var(--space-2)}.recipe-library-toolbar .button,.recipe-library-toolbar .field input{height:var(--touch-target);min-height:var(--touch-target);font-size:.875rem}.recipe-library-toolbar .button{padding-inline:var(--space-2);white-space:nowrap}.recipe-library-toolbar .field input{padding-inline:var(--space-2)}.recipe-library-toolbar>.button:last-child{margin-bottom:var(--space-2);grid-column:1/-1}.recipe-library-grid{gap:var(--space-1);grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-library-grid .recipe-card{border-radius:var(--radius-large);align-content:start;gap:var(--space-1);min-height:10rem;padding:var(--space-1)}.recipe-library-grid .recipe-card-heading{font-size:.9rem;line-height:var(--line-height-snug);overflow-wrap:anywhere}.recipe-library-grid .recipe-card-summary{font-size:.65rem;display:block}.recipe-library-grid .recipe-tags{display:none}.recipe-library-grid .recipe-card-detail-action{gap:var(--space-1)}.recipe-library-grid .recipe-card-quick-add{font-size:1.3rem}}.recipe-form-compact{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=36rem){.recipe-form-compact{grid-template-columns:1fr}}.meal-planner-page{gap:var(--space-6)}.page-header.meal-planner-header{max-width:54rem;display:block}.meal-planner-header .eyebrow{margin-bottom:var(--space-3)}.meal-planner-header h1{margin:0 0 var(--space-4);max-width:15ch;font-size:clamp(2.75rem,7vw,5rem);line-height:.98}.meal-planner-header>p{color:var(--colour-text-muted);font-size:var(--font-size-lead);max-width:36rem;margin:0}.meal-planner-header>.button{margin-top:var(--space-4)}.meal-week-toolbar{align-items:center;gap:var(--space-2);grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target);text-align:center;width:100%;max-width:34rem;margin-inline:auto;display:grid}.meal-week-toolbar>div{gap:var(--space-1);display:grid}.meal-week-toolbar strong{font-family:var(--font-mono);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase}.meal-week-toolbar>div button{color:var(--colour-brand-hover);cursor:pointer;font:inherit;font-size:var(--font-size-small);background:0 0;border:0;text-decoration:underline}.meal-planner-error{background:var(--colour-error-soft);border-left:.25rem solid var(--colour-error);border-radius:var(--radius-small);color:var(--colour-error);padding:var(--space-3) var(--space-4);margin:0}.meal-week{gap:var(--space-4);display:grid}.meal-day{background:var(--colour-surface-raised);border:var(--border-strong);border-radius:var(--radius-large);gap:var(--space-3);min-width:0;box-shadow:var(--shadow-soft);padding:var(--space-4);transition:border-color var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease);display:grid;position:relative;overflow:hidden}.meal-day-today{border-color:var(--colour-accent-lime-strong)}.meal-day:before{background:var(--colour-accent-lilac);content:"";width:.3rem;position:absolute;inset-block:0;inset-inline-start:0}.meal-day:nth-child(3n+2):before{background:var(--colour-accent-lime)}.meal-day:nth-child(3n):before{background:var(--colour-accent-slate)}.meal-day-drop-target{border-color:var(--colour-brand);box-shadow:inset 0 0 0 2px var(--colour-brand-soft)}.meal-day-heading{align-items:flex-start;gap:var(--space-2);justify-content:space-between;display:flex}.meal-day-heading p,.meal-day-heading h2{margin:0}.meal-day-heading p{color:var(--colour-text-muted);font-family:var(--font-mono);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-caps);text-transform:uppercase}.meal-day-heading h2{margin-top:var(--space-1);white-space:nowrap;font-size:1rem}.meal-today-badge{background:var(--colour-accent-lime-soft);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--font-size-caption);border:0;padding:.15rem .5rem;font-weight:750}.meal-day>.button{justify-content:flex-start;width:100%}.meal-day>.meal-empty-slot{border:var(--border-dashed-slot);color:var(--colour-text-muted);background:0 0;justify-content:center;min-height:7rem}.meal-day>.meal-empty-slot:hover{background:var(--colour-surface-subtle);border-color:var(--colour-brand)}.planned-meal{background:var(--colour-surface-subtle);border-radius:var(--radius-medium);align-items:center;gap:var(--space-2);padding:var(--space-3);touch-action:none;transition:opacity var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.meal-plan-photo{--photo-frame-ratio:1 / 1;width:var(--touch-target);display:block}.planned-meal.dragging{opacity:.7;transform:scale(1.02)}.meal-drag-handle{color:var(--colour-text-muted);width:1.25rem;height:1.25rem}.planned-meal-title,.meal-remove{color:inherit;cursor:pointer;background:0 0;border:0}.planned-meal-actions{flex-wrap:wrap;justify-content:flex-end;display:flex}.planned-meal-title{gap:var(--space-1);text-align:left;min-width:0;padding:0;display:grid}.planned-meal-title strong,.planned-meal-title span{overflow-wrap:anywhere}.planned-meal-title strong{font-family:var(--font-display);font-size:1.15rem;line-height:var(--line-height-snug)}.planned-meal-title span{color:var(--colour-text-muted);font-size:var(--font-size-small)}.meal-remove{border-radius:var(--radius-pill);min-height:var(--touch-target);min-width:var(--touch-target);padding:var(--space-2);justify-content:center;align-items:center;display:inline-flex}.meal-remove:hover{background:var(--colour-surface)}.meal-remove svg{width:1.1rem;height:1.1rem}.meal-drag-instructions{width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.meal-planner-permission{background:var(--colour-accent-lilac);border-radius:var(--radius-large);align-items:flex-start;gap:var(--space-3);max-width:42rem;padding:var(--space-4);width:100%;margin-inline:auto;display:flex}.meal-planner-permission>span{font-size:1.5rem}.meal-planner-permission strong,.meal-planner-permission p{margin:0}.meal-planner-permission p{color:var(--colour-text-muted);margin-top:var(--space-1)}@media (width<=36rem){.meal-planner-page{gap:var(--space-2)}.meal-planner-header h1{margin-bottom:var(--space-1);font-size:2rem;line-height:1}.meal-planner-header>p{font-size:.9rem;line-height:1.3}.meal-planner-header>.button{margin-top:var(--space-2);width:100%}.meal-week-toolbar{gap:var(--space-1)}.meal-week-toolbar strong{font-size:1rem}.meal-week{gap:var(--space-1)}.meal-day{border-radius:var(--radius-small);align-items:center;gap:var(--space-1);min-height:var(--touch-target);padding:.2rem var(--space-1);grid-template-columns:5.25rem minmax(0,1fr)}.meal-day-heading{align-items:center}.meal-day-heading p{font-size:.7rem}.meal-day-heading h2{margin-top:0;font-size:.9rem}.meal-today-badge{display:none}.meal-day>.button{min-height:var(--touch-target);padding-block:var(--space-1)}.planned-meal{min-height:var(--touch-target);grid-template-columns:1rem minmax(0,1fr) auto;gap:0;padding:0}.planned-meal-title{padding-inline:var(--space-1)}.planned-meal-title .meal-recipe-status,.planned-meal-title>span:last-child{display:none}.meal-drag-handle{width:1rem;height:1rem}.meal-planner-permission{display:none}}@media (width>=44rem){.meal-week{grid-template-columns:repeat(7,minmax(0,1fr))}.meal-day{padding:var(--space-3);align-content:start}.meal-day-heading{align-items:flex-start;min-height:4.5rem}.meal-day-heading h2{font-size:1rem}.planned-meal{min-height:5.25rem;padding:var(--space-3);grid-template-columns:minmax(0,1fr)}.meal-drag-handle{display:none}.planned-meal-actions{justify-content:flex-start}}.shopping-page{gap:var(--space-6);max-width:var(--layout-reading);width:100%;margin-inline:auto}.shopping-header>p:last-child{color:var(--colour-text-muted);max-width:38rem}.shopping-title-row{align-items:baseline;gap:var(--space-3);justify-content:space-between;display:flex}.shopping-title-row h1{margin-bottom:0}.shopping-summary{color:var(--colour-text-muted);white-space:nowrap;flex:none;margin:0}.shopping-summary strong{font-family:var(--font-display);font-size:1.5rem}.shopping-add-panel{box-shadow:none;background:0 0;border:0;padding:0}.shopping-form{align-items:end;gap:var(--space-3);grid-template-columns:minmax(12rem,2fr) minmax(6rem,.6fr) minmax(6rem,.7fr) minmax(10rem,1fr) auto;display:grid}.shopping-quick-add{grid-template-columns:minmax(0,1fr) minmax(5rem,.25fr) auto;align-items:start}.shopping-quick-add .form-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shopping-quick-add .field{min-width:0}.shopping-quick-add .field input{height:var(--touch-target);min-height:var(--touch-target)}.shopping-form .form-error{grid-column:1/-1}.shopping-form .button svg{width:1rem;height:1rem}.shopping-category{gap:var(--space-2);display:grid}.shopping-category>h2{color:var(--colour-text-muted);font-family:var(--font-mono);font-size:var(--font-size-eyebrow);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-eyebrow);text-transform:uppercase;margin:0}.shopping-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.shopping-item{align-items:center;gap:var(--space-2);grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target) var(--touch-target) var(--touch-target);min-height:var(--touch-target);padding:var(--space-1);background:0 0;border:0;border-radius:0;display:grid}.shopping-item-pantry-match{background:0 0}.shopping-pantry-info{position:relative}.shopping-pantry-info-button{border-radius:var(--radius-pill);color:var(--colour-brand);cursor:help;font:inherit;min-height:var(--touch-target);min-width:var(--touch-target);background:0 0;border:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.shopping-pantry-info-button:focus-visible{outline:3px solid var(--colour-focus);outline-offset:-3px}.shopping-pantry-tooltip{background:var(--colour-text);border-radius:var(--radius-small);bottom:calc(100% + var(--space-1));color:var(--colour-surface);max-width:min(18rem, calc(100vw - var(--space-6)));padding:var(--space-2) var(--space-3);z-index:10;width:max-content;font-size:.875rem;font-weight:400;line-height:1.4;position:absolute;right:0}.shopping-check,.shopping-icon-action{border-radius:var(--radius-pill);color:inherit;cursor:pointer;min-height:var(--touch-target);min-width:var(--touch-target);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.shopping-check{height:1.75rem;min-height:var(--touch-target);min-width:var(--touch-target);border:0;width:1.75rem;margin:auto;position:relative}.shopping-check:before{border:2px solid var(--colour-border-strong);border-radius:var(--radius-medium);content:"";width:2.25rem;height:2.25rem;position:absolute}.shopping-check svg,.shopping-icon-action svg{z-index:1;width:1.1rem;height:1.1rem;position:relative}.shopping-check svg{stroke-width:3px;width:1.35rem;height:1.35rem}.shopping-item-copy{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.shopping-item-copy strong,.shopping-item-copy span{overflow-wrap:anywhere}.shopping-item-copy strong{font-size:1.05rem;font-weight:var(--font-weight-medium)}.shopping-item-copy span{color:var(--colour-text-muted);font-size:inherit;flex:none}.shopping-item-completed .shopping-item-copy{color:var(--colour-text-muted);text-decoration:line-through}.shopping-item-completed .shopping-check{color:var(--colour-accent-lime)}.shopping-item-completed .shopping-check:before{background:var(--colour-brand);border-color:var(--colour-brand)}.shopping-completed{margin-top:var(--space-3)}.shopping-inline-edit{align-items:center;gap:var(--space-1);grid-column:2/-1;grid-template-columns:4.75rem minmax(0, 1fr) var(--touch-target) var(--touch-target);display:grid}.shopping-inline-edit input{background:var(--colour-surface);border:1px solid var(--colour-border-strong);border-radius:var(--radius-small);color:var(--colour-text);font:inherit;min-height:var(--touch-target);min-width:0;padding-inline:var(--space-2);width:100%}.shopping-inline-edit .form-error{grid-column:1/-1}@media (width<=52rem){.shopping-form{grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-form>.button{width:100%}}@media (width<=36rem){.shopping-page{gap:var(--space-3)}.shopping-header{gap:var(--space-1)}.shopping-header .eyebrow,.shopping-header>p:last-child{display:none}.shopping-header h1{margin:0;font-size:2rem}.shopping-summary strong{font-size:1.5rem}.shopping-add-panel{padding:0}.shopping-form{grid-template-columns:1fr}.shopping-quick-add{gap:var(--space-1);grid-template-columns:minmax(0,1fr) 4.75rem auto}.shopping-quick-add>.form-error{grid-column:1/-1}.shopping-quick-add .field{gap:var(--space-1);min-width:0}.shopping-quick-add .field input{min-height:var(--touch-target);padding-inline:var(--space-2);font-size:.875rem}.shopping-quick-add .button{padding-inline:var(--space-2);white-space:nowrap}.shopping-item{gap:var(--space-1);padding-inline:var(--space-1)}}.visibility-choice{border:var(--border-default);border-radius:var(--radius-large);gap:var(--space-2);padding:var(--space-3);margin:0;display:grid}.visibility-choice label{align-items:center;gap:var(--space-2);min-height:var(--touch-target);display:flex}.recipe-import-source{color:var(--colour-text-muted);font-size:var(--font-size-small);overflow-wrap:anywhere}.week-plan-dialog{gap:var(--space-4);display:grid}.week-plan-dialog h3{margin-block-end:var(--space-2)}.week-plan-proposals{gap:var(--space-1);display:grid}.week-plan-proposal{border:var(--border-default);border-radius:var(--radius-medium);padding:0 var(--space-1) 0 0;transition:border-color var(--motion-fast) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0;display:grid;overflow:hidden}.week-plan-proposal.dragging{opacity:.7;transform:scale(1.01)}.week-plan-proposal.drop-target{border-color:var(--colour-brand)}.week-plan-drag-zone{touch-action:none;grid-template-columns:.625rem minmax(0,1fr);align-items:stretch;min-width:0;display:grid}.week-plan-drag-handle{background:var(--colour-brand);cursor:grab;border:0;border-radius:0;justify-content:center;align-self:stretch;align-items:center;min-width:.625rem;min-height:2.75rem;padding:0;display:inline-flex}.week-plan-proposal:has(.week-plan-drag-handle:focus-visible){outline:3px solid var(--colour-focus);outline-offset:2px}.week-plan-drag-handle:active{cursor:grabbing}.week-plan-proposal-actions svg{width:1rem;height:1rem}.recipe-search-field{min-width:0;position:relative}.week-plan-proposal label{align-items:center;min-width:0;display:flex}.recipe-search-field input{appearance:none;text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;min-height:44px;font-size:1.1rem;overflow:hidden}.recipe-search-field input::-webkit-search-decoration{appearance:none}.recipe-search-results{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-medium);box-shadow:var(--shadow-soft);max-height:min(18rem,45vh);padding:var(--space-1);inset-inline:0;top:calc(100% + var(--space-1));z-index:3;display:grid;position:absolute;overflow-y:auto}.recipe-search-results button{border-radius:var(--radius-small);color:inherit;cursor:pointer;min-height:var(--touch-target);padding:var(--space-2);text-align:left;background:0 0;border:0}.recipe-search-results button:hover,.recipe-search-results button.active{background:var(--colour-brand-soft)}.recipe-search-results p{color:var(--colour-text-muted);font-size:var(--font-size-small);padding:var(--space-2);margin:0}.week-plan-proposal-actions{justify-content:flex-end;display:flex}.week-plan-proposal-actions .icon-button{min-width:2.75rem;min-height:2.75rem;padding:var(--space-1)}.week-plan-proposal-actions .icon-button:first-child svg{transform:translateX(var(--space-1))}.week-plan-proposal-actions .icon-button:last-child svg{transform:translateX(calc(var(--space-1) * -1))}@media (width<=480px){.week-plan-dialog{gap:var(--space-3)}}.recipe-card{padding-bottom:var(--space-5);position:relative}.recipe-card-detail-action{color:inherit;cursor:pointer;align-items:flex-start;gap:var(--space-3);text-align:left;background:0 0;border:0;flex-direction:column;width:100%;min-height:100%;padding:0;display:flex}.recipe-card-detail-action:focus-visible{border-radius:var(--radius-medium);outline:3px solid var(--colour-focus);outline-offset:3px}.recipe-card-quick-add{border-radius:var(--radius-small);color:var(--colour-brand);cursor:pointer;min-width:44px;min-height:44px;padding:0 var(--space-2) var(--space-2) 0;z-index:1;background:0 0;border:0;justify-content:flex-end;align-items:flex-end;font-size:1.65rem;font-weight:850;line-height:1;display:inline-flex;position:absolute;bottom:-2px;right:-2px}.recipe-card-quick-add:disabled{cursor:wait;opacity:.55}.recipe-card-quick-add:focus-visible{outline:3px solid var(--colour-focus);outline-offset:3px}.reconciliation-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.reconciliation-item{border:1px solid var(--colour-border);border-radius:var(--radius-large);align-items:center;gap:var(--space-3);padding:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.reconciliation-item p{color:var(--colour-text-muted);margin:var(--space-1) 0 0}@media (width>=40rem){.reconciliation-item{grid-template-columns:minmax(0,1fr) auto}}.pantry-update-columns{gap:var(--space-3);grid-template-columns:1fr;display:grid}.reconciliation-item.compact{padding:var(--space-2) var(--space-3)}.reconciliation-attention-item{border:1px solid var(--colour-border);border-radius:var(--radius-large);align-items:center;gap:var(--space-3);padding:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.reconciliation-attention-item select{width:100%;min-height:44px}@media (width>=40rem){.pantry-update-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.reconciliation-attention-item{grid-template-columns:minmax(0,1fr) minmax(12rem,auto)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flow-stack{gap:var(--space-4);display:grid}.cluster{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.plain-list{margin:0;padding:0;list-style:none}.task-row{background:var(--colour-surface-raised);border:1px solid var(--colour-border);border-radius:var(--radius-medium);box-shadow:var(--shadow-soft);overflow:hidden}.task-row label{align-items:start;gap:var(--space-3);min-height:var(--touch-target);padding:var(--space-4);display:flex}.task-row>.button,.task-row>span{margin:var(--space-3)}.task-row input[type=checkbox]{accent-color:var(--colour-brand);width:1.35rem;height:1.35rem;margin-top:.1rem}.task-row small{color:var(--colour-text-muted);font-family:var(--font-mono);font-size:var(--font-size-small);margin-top:var(--space-1);display:block}.task-row-completed{background:var(--colour-accent-lime-soft);border-color:var(--colour-brand)}.task-row-completed .task-row-title strong{color:var(--colour-text-muted);text-decoration:line-through}.compact-page-header{margin-bottom:var(--space-3)}.duration-inline-form{gap:var(--space-2);grid-template-columns:minmax(9rem,1fr) minmax(4.5rem,5.5rem) auto;align-items:start;display:grid}.duration-inline-form select,.duration-inline-form input{border:1px solid var(--colour-border);border-radius:var(--radius-pill);background:var(--colour-surface-raised);width:100%;min-height:2.75rem;color:var(--colour-text);font:inherit}.duration-inline-form select{padding:0 var(--space-3)}.duration-inline-form input{padding:0 var(--space-2)}.duration-inline-form .form-error{grid-column:1/-1;margin:0}.get-ahead-page-header h1{max-width:15ch;font-size:clamp(1.8rem,9vw,2.45rem);line-height:1.03}.get-ahead-session-picker,.get-ahead-session{max-width:48rem}.get-ahead-session-picker{background:var(--colour-accent-lime-soft)}.get-ahead-progress{background:var(--colour-brand);border-radius:var(--radius-large);color:var(--colour-text-inverse);padding:var(--space-5)}.get-ahead-progress .cluster{align-items:center}.get-ahead-progress progress{accent-color:var(--colour-accent-lime);width:100%}.get-ahead-progress p{color:var(--colour-text-inverse);margin:0}.resume-session-card{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--colour-border);border-radius:var(--radius-medium);background:var(--colour-surface-raised);display:flex}.resume-session-card p{margin:var(--space-1) 0 0;color:var(--colour-text-muted)}@media (width<=36rem){.duration-inline-form{grid-template-columns:minmax(0,1fr) 5rem}.duration-inline-form .button{grid-column:1/-1;width:100%}.resume-session-card{flex-direction:column;align-items:stretch}}.preference-form,.preference-group,.preference-person,.preference-people{gap:var(--space-4);display:grid}.preference-group,.preference-person{min-width:0;padding:var(--space-5);border:var(--border-default);border-radius:var(--radius-large);margin:0}.preference-group>legend,.preference-person>legend{padding-inline:var(--space-2);font-weight:700}.preference-safety{background:color-mix(in srgb, var(--colour-accent-lilac) 34%, var(--colour-surface-raised))}@media (width>=48rem){.preference-people{grid-template-columns:repeat(2,minmax(0,1fr))}}.feature-toggle-list{gap:var(--space-4);display:grid}.feature-toggle-row{justify-content:space-between;align-items:center;gap:var(--space-4);min-width:0;display:flex}.feature-toggle-row h2{font-size:var(--font-size-lead);margin:0}.feature-toggle-row p{margin:var(--space-1) 0 0}.feature-toggle-control{align-items:center;gap:var(--space-2);cursor:pointer;min-height:44px;display:inline-flex}.admin-metrics-grid{gap:var(--space-4);margin:0 0 var(--space-5);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.admin-metrics-grid div{min-width:0}.admin-metrics-grid dt{color:var(--colour-text-muted);font-size:var(--font-size-small)}.admin-metrics-grid dd{margin:var(--space-1) 0 0;overflow-wrap:anywhere;font-weight:600}.site-header{border-bottom:var(--border-default);z-index:var(--z-navigation);background:#f5ecdef5;position:sticky;top:0}.header-inner{align-items:center;gap:var(--space-3);justify-content:space-between;min-height:4.5rem;display:flex}.account-menu{position:relative}.account-menu-trigger{border-radius:var(--radius-pill);color:var(--colour-brand);cursor:pointer;height:var(--touch-target);width:var(--touch-target);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.account-menu-trigger:hover{background:var(--colour-brand-soft)}.account-menu-trigger svg{width:1.5rem;height:1.5rem}.account-menu-popover{background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-medium);box-shadow:var(--shadow-soft);min-width:10rem;padding:var(--space-2);right:0;top:calc(100% + var(--space-2));z-index:20;position:absolute}.account-menu-popover a,.account-menu-popover button{border-radius:var(--radius-small);color:var(--colour-text);cursor:pointer;min-height:var(--touch-target);padding:var(--space-2) var(--space-3);text-align:left;background:0 0;border:0;align-items:center;width:100%;text-decoration:none;display:flex}.account-menu-popover a:hover,.account-menu-popover button:hover{background:var(--colour-surface-subtle)}.brand{color:var(--colour-brand);align-items:center;gap:var(--space-3);text-decoration:none;display:inline-flex}.primary-navigation .navigation-link{cursor:pointer;background:0 0;border:0;font-family:inherit}.brand-mark{background:var(--colour-accent-lilac);border-radius:var(--shape-blob);color:var(--colour-brand);font-family:var(--font-display);font-size:1.6rem;font-weight:var(--font-display-weight);place-items:center;width:2.4rem;height:2.4rem;display:grid}.brand strong{font-family:var(--font-display);font-size:1.35rem;font-weight:var(--font-display-weight);letter-spacing:.14em;text-transform:uppercase}.skip-link{background:var(--colour-text);border-radius:var(--radius-small);color:#fff;left:var(--space-4);padding:var(--space-3) var(--space-4);top:var(--space-4);z-index:var(--z-skip-link);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.desktop-rail{display:none}.primary-navigation{display:flex}.primary-navigation a,.primary-navigation .navigation-link{border-radius:var(--radius-small);color:var(--colour-text-muted);font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);align-items:center;gap:var(--space-3);min-height:var(--touch-target);transition:background-color var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease);text-decoration:none;display:flex}.primary-navigation a[aria-current=page],.primary-navigation .navigation-link[aria-current=page]{color:var(--colour-brand)}.navigation-mobile{border-top:var(--border-default);min-height:calc(var(--nav-mobile-height) + env(safe-area-inset-bottom));padding:var(--space-1) max(var(--space-1), env(safe-area-inset-right)) env(safe-area-inset-bottom) max(var(--space-1), env(safe-area-inset-left));z-index:var(--z-navigation);background:#f5ecdefa;grid-template-columns:repeat(6,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.navigation-mobile a,.navigation-mobile .navigation-link{gap:var(--space-1);letter-spacing:.02em;min-height:var(--nav-item-min);min-width:0;padding:var(--space-1) 0;text-transform:uppercase;flex-direction:column;justify-content:center;font-size:clamp(.5rem,2.1vw,.625rem);position:relative}.navigation-mobile a[aria-current=page]:after,.navigation-mobile .navigation-link[aria-current=page]:after{background:var(--colour-accent-lime-strong);border-radius:var(--radius-pill);content:"";height:var(--line-weight-heavy);position:absolute;bottom:0;left:20%;right:20%}.navigation-mobile svg{width:1.4rem;height:1.4rem}.site-footer{border-top:var(--border-default);color:var(--colour-text-muted);font-size:var(--font-size-small);padding-block:var(--space-5)}.site-footer p{margin:0}@media (width<=63.999rem){.site-footer{display:none}}@media (width>=64rem){.site-header,.navigation-mobile{display:none}.desktop-rail{background:var(--colour-surface-sunken);border-right:var(--border-default);gap:var(--space-8);min-height:100vh;padding:var(--space-6) var(--space-5);flex-direction:column;grid-row:1/-1;display:flex;position:sticky;top:0}.brand-desktop{align-self:flex-start}.navigation-desktop{gap:var(--space-1);flex-direction:column}.navigation-desktop a,.navigation-desktop .navigation-link{font-family:var(--font-body);font-size:var(--font-size-small);gap:var(--space-4);padding:var(--space-3) var(--space-4)}.navigation-desktop a[aria-current=page],.navigation-desktop .navigation-link[aria-current=page]{background:var(--colour-accent-lime-soft)}.navigation-desktop svg{width:1.25rem;height:1.25rem}}.navigation-item-with-menu{position:relative}.navigation-item-with-menu>a,.navigation-item-with-menu>.navigation-link{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.navigation-submenu{background:var(--colour-surface);border:1px solid var(--colour-border);border-radius:var(--radius-medium);box-shadow:var(--shadow-soft);min-width:11rem;padding:var(--space-2);right:0;top:calc(100% + var(--space-2));z-index:20;position:absolute}.navigation-mobile .navigation-submenu{bottom:calc(100% + var(--space-2));top:auto;left:auto;right:0}.navigation-desktop .navigation-submenu{left:calc(100% + var(--space-2));top:0;right:auto}.navigation-submenu button{border-radius:var(--radius-small);color:var(--colour-text);cursor:pointer;font:inherit;min-height:44px;padding:var(--space-2) var(--space-3);text-align:left;background:0 0;border:0;width:100%}.navigation-submenu button:focus-visible,.navigation-submenu button:hover{background:var(--colour-surface-subtle);outline:3px solid var(--colour-focus);outline-offset:2px}.navigation-mobile .navigation-item-with-menu{justify-content:center;min-width:0;display:flex}.navigation-mobile .navigation-item-with-menu>.navigation-link{width:100%}.navigation-mobile a span,.navigation-mobile .navigation-link span{text-align:center;white-space:nowrap;width:100%;min-width:0;line-height:1.1;display:block}*,:before,:after{box-sizing:border-box}html{background:var(--colour-surface-subtle);color:var(--colour-text);font-family:var(--font-body);line-height:var(--line-height-body);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-width:20rem;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{font-family:var(--font-display);font-weight:var(--font-display-weight);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-heading-1);letter-spacing:var(--letter-spacing-display)}h2{font-size:var(--font-size-heading-2)}h3{font-size:1.25rem}svg{flex:none}.eyebrow{color:var(--colour-brand);font-family:var(--font-mono);font-size:var(--font-size-eyebrow);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-eyebrow);text-transform:uppercase}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
