@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-cyrillic-ext-500-normal-pZw22qtS.woff2)format("woff2"),url(/assets/cormorant-cyrillic-ext-500-normal-CdQuyvtc.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-cyrillic-500-normal-BLlg2W5x.woff2)format("woff2"),url(/assets/cormorant-cyrillic-500-normal-B7dJQtg-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-vietnamese-500-normal-DsPuwQHi.woff2)format("woff2"),url(/assets/cormorant-vietnamese-500-normal-tGBW_mI7.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-latin-ext-500-normal-AH9qog1s.woff2)format("woff2"),url(/assets/cormorant-latin-ext-500-normal-DAuUCO41.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-latin-500-normal-EBdSCOD3.woff2)format("woff2"),url(/assets/cormorant-latin-500-normal-Dj3SQ6fR.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-cyrillic-ext-600-normal-dLR2-a_v.woff2)format("woff2"),url(/assets/cormorant-cyrillic-ext-600-normal-Dr-wLyOm.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-cyrillic-600-normal-BcIsDXzC.woff2)format("woff2"),url(/assets/cormorant-cyrillic-600-normal-CBymlcNF.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-vietnamese-600-normal-Dar_cCT6.woff2)format("woff2"),url(/assets/cormorant-vietnamese-600-normal-GIs8CF2x.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-latin-ext-600-normal-D3T6BBXG.woff2)format("woff2"),url(/assets/cormorant-latin-ext-600-normal-CD-dlDpD.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-latin-600-normal-B254Xisw.woff2)format("woff2"),url(/assets/cormorant-latin-600-normal-DUW-TI76.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-cyrillic-ext-700-normal-CxUeBwxV.woff2)format("woff2"),url(/assets/cormorant-cyrillic-ext-700-normal-DQLi_9r9.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-cyrillic-700-normal-DXLSgrt3.woff2)format("woff2"),url(/assets/cormorant-cyrillic-700-normal-Bkn4ccP1.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-vietnamese-700-normal-D7AqE_Kk.woff2)format("woff2"),url(/assets/cormorant-vietnamese-700-normal-CFDweTGB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-latin-ext-700-normal-C8asPL8E.woff2)format("woff2"),url(/assets/cormorant-latin-ext-700-normal-Gbj_m0h4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-latin-700-normal-D2NwonnS.woff2)format("woff2"),url(/assets/cormorant-latin-700-normal-DUJekpIu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-cyrillic-ext-500-italic-lV0XinYd.woff2)format("woff2"),url(/assets/cormorant-cyrillic-ext-500-italic-DVuHhQMb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-cyrillic-500-italic-BL4-EpBx.woff2)format("woff2"),url(/assets/cormorant-cyrillic-500-italic-CqJ_KUGb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-vietnamese-500-italic-C1FOHei6.woff2)format("woff2"),url(/assets/cormorant-vietnamese-500-italic-DNJXyiPE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-latin-ext-500-italic-Gi01i9d5.woff2)format("woff2"),url(/assets/cormorant-latin-ext-500-italic-6QSEi4_5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-latin-500-italic-CxaqvXto.woff2)format("woff2"),url(/assets/cormorant-latin-500-italic-D7zK65gv.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-cyrillic-ext-600-italic-B4xXtrNV.woff2)format("woff2"),url(/assets/cormorant-cyrillic-ext-600-italic-6b4SUt6V.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-cyrillic-600-italic-Bstfk8bB.woff2)format("woff2"),url(/assets/cormorant-cyrillic-600-italic-B0iN3HNJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-vietnamese-600-italic-BsmDNPvu.woff2)format("woff2"),url(/assets/cormorant-vietnamese-600-italic-Dc31djjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-latin-ext-600-italic--Y62sTC5.woff2)format("woff2"),url(/assets/cormorant-latin-ext-600-italic-B-nOxYAn.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant;font-style:italic;font-display:swap;font-weight:600;src:url(/assets/cormorant-latin-600-italic-5CFQ4RhE.woff2)format("woff2"),url(/assets/cormorant-latin-600-italic-CRDBmNm1.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-vietnamese-400-normal-BxGuknnG.woff2)format("woff2"),url(/assets/work-sans-vietnamese-400-normal-DFZk_KN_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-ext-400-normal-zfQnhXzv.woff2)format("woff2"),url(/assets/work-sans-latin-ext-400-normal-j7TZlk-s.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-400-normal-jUejSri3.woff2)format("woff2"),url(/assets/work-sans-latin-400-normal-DE1_0GuN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-vietnamese-500-normal-Czn2Xkog.woff2)format("woff2"),url(/assets/work-sans-vietnamese-500-normal-90nhZfxs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-ext-500-normal-CAKEIVkc.woff2)format("woff2"),url(/assets/work-sans-latin-ext-500-normal-CW9ss9Cz.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-500-normal-BKGnScDy.woff2)format("woff2"),url(/assets/work-sans-latin-500-normal-BmdXWF6_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-vietnamese-600-normal-DizFELYt.woff2)format("woff2"),url(/assets/work-sans-vietnamese-600-normal-ue5fzGW6.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-ext-600-normal-DNiHHggD.woff2)format("woff2"),url(/assets/work-sans-latin-ext-600-normal-B1NFRnx8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-600-normal-DB-2V89X.woff2)format("woff2"),url(/assets/work-sans-latin-600-normal-Cg-NlmS7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-cream:#fbf5ec;--color-cream-deep:#f4ecdf;--color-surface:#fffbf3;--color-ink:#37312a;--color-ink-soft:#746b5e;--color-ink-faint:#a89c8b;--color-hairline:#e8ddc9;--color-sage:#6f8f68;--color-sage-deep:#576f51;--color-sage-soft:#e7ede1;--color-sage-ink:#fffdf8;--color-honey:#d9a441;--color-honey-deep:#7a5610;--color-honey-soft:#f6e8cb;--color-feedback:#a9694a;--color-feedback-soft:#f3e6dd;--font-serif:"Cormorant", "Iowan Old Style", Georgia, serif;--font-sans:"Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.375rem;--text-xl:1.875rem;--text-2xl:2.5rem;--text-3xl:3.25rem;--text-display:3.75rem;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.55;--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;--radius-sm:.75rem;--radius-md:1.25rem;--radius-lg:1.75rem;--radius-full:999px;--shadow-soft:0 1px 2px #37312a0d, 0 4px 16px #37312a0f;--shadow-card:0 2px 6px #37312a0f, 0 14px 34px #37312a17;--shadow-lift:0 4px 10px #37312a14, 0 22px 48px #37312a1f;--shadow-sage:0 2px 6px #576f512e, 0 12px 28px #576f5138;--gradient-sage:linear-gradient(180deg, #7a9a72 0%, var(--color-sage) 55%, #657f5e 100%);--gradient-sage-deep:linear-gradient(180deg, var(--color-sage) 0%, var(--color-sage-deep) 100%);--gradient-surface:linear-gradient(180deg, #fffdf7 0%, var(--color-surface) 100%);--gradient-hero:linear-gradient(158deg, #6f8f68 0%, #56743f 62%, #4a6344 100%);--shadow-hero:0 18px 40px #4a634447;--radius-hero:2.125rem;--bg-bloom:radial-gradient(90% 55% at 15% 0%, #fdeccfd9 0%, #fdeccf00 58%), radial-gradient(100% 62% at 90% 15%, #e7ede1b3 0%, #e7ede100 58%);--ease-calm:cubic-bezier(.22, 1, .36, 1);--duration-normal:.24s;--duration-slow:.42s;--screen-max-width:30rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--bg-bloom), var(--color-cream);min-height:100dvh;color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-repeat:no-repeat;background-attachment:fixed;margin:0}body:before{content:"";z-index:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;min-height:100dvh;position:relative}h1,h2,h3{font-family:var(--font-serif);font-weight:600;line-height:var(--leading-tight);letter-spacing:-.01em;color:var(--color-ink);margin:0}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{font-family:inherit}a{color:var(--color-sage-deep)}:focus-visible{outline:2px solid var(--color-sage-deep);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.screen-shell{background:0 0;justify-content:center;width:100%;min-height:100dvh;display:flex}.screen-shell__inner{width:100%;max-width:var(--screen-max-width);min-height:100dvh;padding:max(var(--space-6), env(safe-area-inset-top)) var(--space-5) max(var(--space-6), env(safe-area-inset-bottom));flex-direction:column;display:flex}.screen-shell__inner--center{justify-content:center}.text-input{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.text-input__label{font-size:var(--text-sm);color:var(--color-ink-soft);font-weight:500}.text-input__field{width:100%;min-height:3.25rem;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-hairline);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-lg);transition:border-color var(--duration-normal) var(--ease-calm), box-shadow var(--duration-normal) var(--ease-calm)}.text-input__field::placeholder{color:var(--color-ink-faint)}.text-input__field:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.text-input__message{font-size:var(--text-sm);color:var(--color-feedback);margin:0}.button{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:3.25rem;padding:0 var(--space-5);border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;transition:transform var(--duration-normal) var(--ease-calm), background-color var(--duration-normal) var(--ease-calm), box-shadow var(--duration-normal) var(--ease-calm);border:1px solid #0000;font-weight:600;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.6}.button:active:not(:disabled){transform:scale(.98)}.button--primary{background:var(--gradient-sage);color:var(--color-sage-ink);box-shadow:var(--shadow-sage);box-shadow:var(--shadow-sage), inset 0 1px 0 #ffffff38;letter-spacing:.01em}.button--primary:hover:not(:disabled){background:var(--gradient-sage-deep);box-shadow:var(--shadow-lift), inset 0 1px 0 #ffffff38;transform:translateY(-1px)}.button--ghost{color:var(--color-sage-deep);border-color:var(--color-hairline);background:0 0}.button--ghost:hover:not(:disabled){background:var(--color-sage-soft);border-color:var(--color-sage)}.button__spinner{border-radius:var(--radius-full);opacity:.85;border:2px solid;border-top-color:#0000;width:1.125rem;height:1.125rem;animation:.7s linear infinite button-spin}@keyframes button-spin{to{transform:rotate(360deg)}}.pin-screen{gap:var(--space-5);background:var(--gradient-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);box-shadow:var(--shadow-lift);animation:pin-screen-rise var(--duration-slow) var(--ease-calm) both;flex-direction:column;display:flex}.pin-screen__brand{font-family:var(--font-serif);font-weight:700;font-size:var(--text-xl);letter-spacing:-.01em;color:var(--color-sage-deep);margin:0}.pin-screen__eyebrow{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-sage-deep);margin:calc(-1 * var(--space-3)) 0 0;font-weight:500}.pin-screen__heading{font-size:var(--text-3xl);font-style:italic}.pin-screen__subtitle{font-size:var(--text-lg);color:var(--color-ink-soft);margin-top:calc(-1 * var(--space-3))}.pin-screen__input .text-input__field{letter-spacing:.4em;text-align:center;font-family:var(--font-serif)}@keyframes pin-screen-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--gradient-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);width:100%;padding:var(--space-5);box-shadow:var(--shadow-card);text-align:left;display:block}.card--interactive{cursor:pointer;font:inherit;color:inherit;transition:transform var(--duration-normal) var(--ease-calm), box-shadow var(--duration-normal) var(--ease-calm), border-color var(--duration-normal) var(--ease-calm)}.card--interactive:hover{border-color:var(--color-sage);box-shadow:var(--shadow-lift);transform:translateY(-3px)}.card--interactive:active{box-shadow:var(--shadow-soft);transform:translateY(0)}.home-hub__hero{margin:calc(-1 * max(var(--space-6), env(safe-area-inset-top))) calc(-1 * var(--space-5)) calc(-1 * var(--space-6));padding:var(--space-7) var(--space-5) var(--space-8);border-radius:0 0 var(--radius-hero) var(--radius-hero);background:var(--gradient-hero);color:var(--color-sage-ink);box-shadow:var(--shadow-hero);animation:home-hub-rise var(--duration-slow) var(--ease-calm) both;position:relative;overflow:hidden}.home-hub__hero:after{content:"";top:calc(-1 * var(--space-7));right:calc(-1 * var(--space-7));border-radius:var(--radius-full);pointer-events:none;background:radial-gradient(circle,#ffffff24,#fff0 68%);width:12.5rem;height:12.5rem;position:absolute}.home-hub__wordmark{font-size:var(--text-display);letter-spacing:-.02em;color:var(--color-sage-ink);font-weight:700;line-height:.92;position:relative}.home-hub__tagline{margin-top:var(--space-2);font-size:var(--text-base);line-height:var(--leading-snug);opacity:.88;max-width:30ch;position:relative}.home-hub__shop{margin-bottom:var(--space-5);animation:home-hub-rise var(--duration-slow) var(--ease-calm) both;animation-delay:60ms;position:relative}.home-hub__shop-row{align-items:flex-start;gap:var(--space-4);display:flex}.home-hub__shop-icon{color:var(--color-sage-deep);margin-top:var(--space-1);flex-shrink:0}.home-hub__shop-title{font-size:var(--text-lg);margin:0 0 var(--space-1);font-weight:600}.home-hub__shop-body{font-size:var(--text-sm);color:var(--color-ink-soft);margin:0}.home-hub__pill{align-items:center;gap:var(--space-2);background:var(--color-honey-soft);color:var(--color-honey-deep);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);margin-bottom:var(--space-3);font-weight:700;display:inline-flex}.home-hub__pill-dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:var(--color-honey)}.home-hub__fresh{margin:calc(-1 * var(--space-3)) 0 var(--space-5);padding:var(--space-2) 0;color:var(--color-sage-deep);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;animation:home-hub-rise var(--duration-slow) var(--ease-calm) both;background:0 0;border:none;font-weight:500;animation-delay:90ms;display:block}.home-hub__fresh:hover{text-decoration:underline}.home-hub__nav{gap:var(--space-4);animation:home-hub-rise var(--duration-slow) var(--ease-calm) both;grid-template-columns:1fr 1fr;animation-delay:.12s;display:grid}.home-hub__tile{align-items:flex-start;gap:var(--space-4);padding-top:var(--space-6);padding-bottom:var(--space-6);flex-direction:column;display:flex}.home-hub__tile-chip{border-radius:var(--radius-md);background:var(--color-sage-soft);justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex}.home-hub__tile--recipes .home-hub__tile-chip{background:var(--color-honey-soft)}.home-hub__tile-icon{color:var(--color-sage-deep)}.home-hub__tile--recipes .home-hub__tile-icon{color:var(--color-honey-deep)}.home-hub__tile-label{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:700;display:block}.home-hub__tile-sub{font-size:var(--text-xs);color:var(--color-ink-faint);margin-top:.0625rem;display:block}.home-hub__logout{margin:var(--space-7) auto 0;color:var(--color-ink-faint);font-size:var(--text-sm);cursor:pointer;padding:var(--space-2);background:0 0;border:none}.home-hub__logout:hover{color:var(--color-ink-soft)}@keyframes home-hub-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.screen-header{margin-bottom:var(--space-5);animation:screen-header-rise var(--duration-slow) var(--ease-calm) both}.screen-header__row{min-height:2.75rem;margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.screen-header__back{width:2.75rem;height:2.75rem;margin-left:calc(-1 * var(--space-2));border-radius:var(--radius-full);color:var(--color-ink-soft);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-calm), color var(--duration-normal) var(--ease-calm), box-shadow var(--duration-normal) var(--ease-calm);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.screen-header__back:hover{background:var(--color-sage-soft);color:var(--color-sage-deep);box-shadow:var(--shadow-soft)}.screen-header__eyebrow{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-sage-deep);margin:0 0 var(--space-1);font-weight:500}.screen-header__title{font-size:var(--text-2xl)}@keyframes screen-header-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lists__group{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.lists__row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.lists__name{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-ink);margin:0}.lists__hint{font-size:var(--text-sm);color:var(--color-ink-soft);margin:var(--space-1) 0 0}.lists__chevron{color:var(--color-ink-faint);flex-shrink:0}.lists__quiet{color:var(--color-ink-soft);padding:var(--space-4) 0}.lists__add{gap:var(--space-4);margin-top:var(--space-2);flex-direction:column;display:flex}.lists__add-actions{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.lists__add-trigger{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);color:var(--color-sage-deep);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-full);transition:background-color var(--duration-normal) var(--ease-calm);background:0 0;border:none;align-self:flex-start;font-weight:500;display:inline-flex}.lists__add-trigger:hover{background:var(--color-sage-soft)}.item-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;display:flex}.item-row__tick{cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;display:inline-flex}.item-row__tick-circle{border:2px solid var(--color-hairline);border-radius:var(--radius-full);width:1.6rem;height:1.6rem;color:var(--color-sage-ink);transition:background-color var(--duration-normal) var(--ease-calm), border-color var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);justify-content:center;align-items:center;display:inline-flex}.item-row__tick-circle svg{width:1rem;height:1rem}.item-row__tick:active .item-row__tick-circle{transform:scale(.86)}.item-row--checked .item-row__tick-circle{background:var(--color-sage);border-color:var(--color-sage);animation:item-tick-pop var(--duration-normal) var(--ease-calm)}@keyframes item-tick-pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}.item-row__label{align-items:baseline;gap:var(--space-3);min-width:0;padding:var(--space-2) 0;text-align:left;cursor:text;font-family:var(--font-sans);background:0 0;border:none;flex:1;display:flex}.item-row__name{font-size:var(--text-base);color:var(--color-ink);transition:color var(--duration-normal) var(--ease-calm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item-row__measure{font-size:var(--text-sm);color:var(--color-ink-soft);flex-shrink:0}.item-row:not(.item-row--checked) .item-row__name{color:var(--color-ink-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--color-ink-faint);text-decoration-color:var(--color-ink-faint)}.item-row__delete{width:2.5rem;height:2.5rem;color:var(--color-ink-faint);cursor:pointer;border-radius:var(--radius-full);transition:color var(--duration-normal) var(--ease-calm), background-color var(--duration-normal) var(--ease-calm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.item-row__delete:hover{color:var(--color-feedback);background:var(--color-feedback-soft)}.item-row--editing{gap:var(--space-2);padding:var(--space-3) 0;flex-wrap:wrap}.item-row__edit-name,.item-row__edit-qty,.item-row__edit-unit{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);padding:var(--space-2) var(--space-3);min-height:2.75rem}.item-row__edit-name{flex:100%}.item-row__edit-name:focus-visible,.item-row__edit-qty:focus-visible,.item-row__edit-unit:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.item-row__edit-measure{gap:var(--space-2);flex:1;display:flex}.item-row__edit-qty{width:5rem}.item-row__edit-unit{width:6rem}.item-row__edit-actions{gap:var(--space-1);margin-left:auto;display:flex}.item-row__text-button{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-soft);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:0 0;border:none;font-weight:500}.item-row__text-button--accent{color:var(--color-sage-deep)}.item-row__text-button:hover{background:var(--color-cream-deep)}.list-detail__quiet{color:var(--color-ink-soft);padding:var(--space-4) 0}.list-detail__hint{font-size:var(--text-sm);color:var(--color-ink-soft);margin:0 0 var(--space-3)}.list-detail__items{margin-bottom:var(--space-5);flex-direction:column;display:flex}.list-detail__items>*+*{border-top:1px solid var(--color-hairline)}.list-detail__add{align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-full);box-shadow:var(--shadow-soft);display:flex}.list-detail__add-input{min-width:0;min-height:2.75rem;padding:0 var(--space-3);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);background:0 0;border:none;flex:1}.list-detail__add-input:focus-visible{outline:none}.list-detail__add-input::placeholder{color:var(--color-ink-faint)}.list-detail__add-button{border-radius:var(--radius-full);background:var(--color-sage);width:2.75rem;height:2.75rem;color:var(--color-sage-ink);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.list-detail__add-button:hover:not(:disabled){background:var(--color-sage-deep)}.list-detail__add-button:active:not(:disabled){transform:scale(.94)}.list-detail__add-button:disabled{opacity:.5;cursor:not-allowed}.list-detail__menu-button{border-radius:var(--radius-full);cursor:pointer;width:2.75rem;height:2.75rem;transition:background-color var(--duration-normal) var(--ease-calm);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.list-detail__menu-button:hover{background:var(--color-sage-soft)}.list-detail__dots,.list-detail__dots:before,.list-detail__dots:after{border-radius:var(--radius-full);background:var(--color-ink-soft);width:4px;height:4px;display:block}.list-detail__dots{position:relative}.list-detail__dots:before,.list-detail__dots:after{content:"";position:absolute;left:0}.list-detail__dots:before{top:-7px}.list-detail__dots:after{top:7px}.list-detail__menu{align-items:stretch;gap:var(--space-1);margin:calc(-1 * var(--space-2)) 0 var(--space-4);padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-card);animation:list-menu-drop var(--duration-normal) var(--ease-calm) both;flex-direction:column;display:flex}.list-detail__menu-item{text-align:left;font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-ink);padding:var(--space-3);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none}.list-detail__menu-item:hover{background:var(--color-cream-deep)}.list-detail__menu-item--danger{color:var(--color-feedback)}.list-detail__rename{gap:var(--space-2);padding:var(--space-1);display:flex}.list-detail__rename-input{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-cream);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-ink);flex:1}.list-detail__rename-input:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}@keyframes list-menu-drop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.recipes__import{align-items:center;gap:var(--space-4);text-align:left;width:100%;padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);background:var(--color-sage-soft);border:1px dashed var(--color-sage);border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);display:flex}.recipes__import:hover{background:#dfe7d8;transform:translateY(-1px)}.recipes__import-icon{border-radius:var(--radius-full);background:var(--color-sage);width:2.75rem;height:2.75rem;color:var(--color-sage-ink);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.recipes__import-text{flex-direction:column;display:flex}.recipes__import-title{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-ink)}.recipes__import-sub{font-size:var(--text-sm);color:var(--color-ink-soft)}.recipes__quiet{color:var(--color-ink-soft);padding:var(--space-2) 0}.recipes__list{gap:var(--space-3);flex-direction:column;display:flex}.recipes__card{align-items:center;gap:var(--space-3);padding:var(--space-4);display:flex}.recipes__star{width:2.75rem;height:2.75rem;color:var(--color-ink-faint);cursor:pointer;border-radius:var(--radius-full);transition:color var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.recipes__star:active{transform:scale(.88)}.recipes__star--on{color:var(--color-sage)}.recipes__meta{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;min-width:0;padding:0;font-family:inherit;display:block}.recipes__title{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-ink);margin:0}.recipes__source{font-size:var(--text-sm);color:var(--color-ink-soft);margin:var(--space-1) 0 0}.recipes__delete{width:2.5rem;height:2.5rem;color:var(--color-ink-faint);cursor:pointer;border-radius:var(--radius-full);transition:color var(--duration-normal) var(--ease-calm), background-color var(--duration-normal) var(--ease-calm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.recipes__delete:hover{color:var(--color-feedback);background:var(--color-feedback-soft)}.review-row{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;display:flex}.review-row__measure{gap:var(--space-2);flex-shrink:0;display:flex}.review-row__qty,.review-row__unit,.review-row__item{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base)}.review-row__qty{width:3.75rem}.review-row__unit{width:4.25rem}.review-row__item{flex:1;min-width:0}.review-row__qty:focus-visible,.review-row__unit:focus-visible,.review-row__item:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.review-row__remove{width:2.5rem;height:2.5rem;color:var(--color-ink-faint);cursor:pointer;border-radius:var(--radius-full);transition:color var(--duration-normal) var(--ease-calm), background-color var(--duration-normal) var(--ease-calm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.review-row__remove:hover{color:var(--color-feedback);background:var(--color-feedback-soft)}.import__enter{gap:var(--space-4);flex-direction:column;display:flex}.import__lede{font-size:var(--text-lg);color:var(--color-ink-soft);margin:0}.import__url,.import__title{width:100%;min-height:3.25rem;padding:0 var(--space-4);border:1px solid var(--color-hairline);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base)}.import__url:focus-visible,.import__title:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.import__note{font-size:var(--text-sm);color:var(--color-feedback);margin:0}.import__note--soft{color:var(--color-ink-soft);background:var(--color-cream-deep);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.import__manual{color:var(--color-sage-deep);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;padding:var(--space-2);background:0 0;border:none;align-self:center}.import__manual:hover{text-decoration:underline}.import__review{gap:var(--space-4);flex-direction:column;display:flex}.import__field{gap:var(--space-2);flex-direction:column;display:flex}.import__label{font-size:var(--text-sm);color:var(--color-ink-soft);font-weight:500}.import__label--section{margin:var(--space-2) 0 0}.import__lines{flex-direction:column;display:flex}.import__lines>*+*{border-top:1px solid var(--color-hairline)}.import__add-line{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);color:var(--color-sage-deep);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-full);transition:background-color var(--duration-normal) var(--ease-calm);background:0 0;border:none;align-self:flex-start;font-weight:500;display:inline-flex}.import__add-line:hover{background:var(--color-sage-soft)}.import__save{margin-top:var(--space-3)}.ingredient-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.ingredient-row__label{min-width:0;padding:var(--space-1) 0;text-align:left;cursor:text;font-family:var(--font-sans);background:0 0;border:none;flex-direction:column;flex:1;gap:2px;display:flex}.ingredient-row__name-row{align-items:center;gap:6px;min-width:0;display:flex}.ingredient-row__name{font-size:var(--text-base);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ingredient-row__edit-icon{color:var(--color-ink-faint);flex-shrink:0}.ingredient-row__measure{font-size:var(--text-sm);color:var(--color-ink-soft);flex-shrink:0}.ingredient-row__delete{align-items:center;gap:var(--space-1);height:2.5rem;padding:0 var(--space-3);background:var(--color-feedback-soft);color:var(--color-feedback);font-family:var(--font-sans);font-size:var(--text-xs);cursor:pointer;border-radius:var(--radius-full);transition:background-color var(--duration-normal) var(--ease-calm), color var(--duration-normal) var(--ease-calm);border:none;flex-shrink:0;font-weight:600;display:inline-flex}.ingredient-row__delete-label{white-space:nowrap}.ingredient-row__delete:hover{background:var(--color-feedback);color:var(--color-cream)}.ingredient-row--editing{gap:var(--space-2);flex-wrap:wrap}.ingredient-row__edit-name,.ingredient-row__edit-qty,.ingredient-row__edit-unit{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);padding:var(--space-2) var(--space-3);min-height:2.75rem}.ingredient-row__edit-name{flex:100%}.ingredient-row__edit-name:focus-visible,.ingredient-row__edit-qty:focus-visible,.ingredient-row__edit-unit:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.ingredient-row__edit-measure{gap:var(--space-2);flex:1;display:flex}.ingredient-row__edit-qty{width:5rem}.ingredient-row__edit-unit{width:6rem}.ingredient-row__edit-actions{gap:var(--space-1);margin-left:auto;display:flex}.ingredient-row__text-button{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-soft);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:0 0;border:none;font-weight:500}.ingredient-row__text-button--accent{color:var(--color-sage-deep)}.ingredient-row__text-button:hover{background:var(--color-cream-deep)}.recipe-detail__quiet{color:var(--color-ink-soft);padding:var(--space-4) 0}.recipe-detail__rename{margin:0 0 var(--space-5);padding:var(--space-2) 0;color:var(--color-sage-deep);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;font-weight:500;display:block}.recipe-detail__rename:hover{text-decoration:underline}.recipe-detail__title-edit{gap:var(--space-2);margin:0 0 var(--space-5);display:flex}.recipe-detail__title-input{min-height:2.75rem;padding:0 var(--space-3);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-ink);flex:1}.recipe-detail__title-input:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.recipe-detail__title-save{padding:0 var(--space-4);border-radius:var(--radius-full);background:var(--color-sage);color:var(--color-sage-ink);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;border:none;flex-shrink:0;font-weight:600}.recipe-detail__title-save:hover{background:var(--color-sage-deep)}.recipe-detail__label{font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-soft);margin:0 0 var(--space-2);font-weight:600}.recipe-detail__ingredients{margin-bottom:var(--space-5);flex-direction:column;display:flex}.recipe-detail__ingredients>*+*{border-top:1px solid var(--color-hairline)}.recipe-detail__add{align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-full);box-shadow:var(--shadow-soft);display:flex}.recipe-detail__add-input{min-width:0;min-height:2.75rem;padding:0 var(--space-3);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);background:0 0;border:none;flex:1}.recipe-detail__add-input:focus-visible{outline:none}.recipe-detail__add-input::placeholder{color:var(--color-ink-faint)}.recipe-detail__add-button{border-radius:var(--radius-full);background:var(--color-sage);width:2.75rem;height:2.75rem;color:var(--color-sage-ink);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.recipe-detail__add-button:hover:not(:disabled){background:var(--color-sage-deep)}.recipe-detail__add-button:active:not(:disabled){transform:scale(.94)}.recipe-detail__add-button:disabled{opacity:.5;cursor:not-allowed}.picker-row{align-items:center;gap:var(--space-3);text-align:left;width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-calm), background-color var(--duration-normal) var(--ease-calm);display:flex}.picker-row--selected{border-color:var(--color-sage);background:var(--color-sage-soft)}.picker-row__tick{border:2px solid var(--color-hairline);border-radius:var(--radius-full);width:1.6rem;height:1.6rem;color:var(--color-sage-ink);transition:background-color var(--duration-normal) var(--ease-calm), border-color var(--duration-normal) var(--ease-calm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.picker-row__tick svg{width:1rem;height:1rem}.picker-row--selected .picker-row__tick{background:var(--color-sage);border-color:var(--color-sage)}.picker-row__text{flex-direction:column;min-width:0;display:flex}.picker-row__label{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-ink)}.picker-row__hint{font-size:var(--text-sm);color:var(--color-ink-soft)}.build__quiet{color:var(--color-ink-soft);padding:var(--space-4) 0}.build__lede{font-size:var(--text-lg);color:var(--color-ink-soft);margin:0 0 var(--space-5)}.build__section{margin-bottom:var(--space-6)}.build__section-title{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-soft);margin:0 0 var(--space-3);font-weight:600}.build__group{gap:var(--space-3);flex-direction:column;display:flex}.build__error{font-size:var(--text-sm);color:var(--color-feedback);margin:0 0 var(--space-3)}.build__action{padding:var(--space-4) 0 var(--space-2);background:linear-gradient(to bottom, #fbf5ec00, var(--color-cream) var(--space-4));position:sticky;bottom:0}.shop-line{gap:var(--space-2);padding:var(--space-3) 0;flex-direction:column;display:flex}.shop-line__row{align-items:center;gap:var(--space-3);display:flex}.shop-line__picker{padding-left:var(--space-1)}.shop-line__label{min-width:0;padding:var(--space-1) 0;text-align:left;cursor:text;font-family:var(--font-sans);background:0 0;border:none;flex-direction:column;flex:1;gap:2px;display:flex}.shop-line__name-row{align-items:center;gap:6px;min-width:0;display:flex}.shop-line__name{font-size:var(--text-base);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shop-line__edit-icon{color:var(--color-ink-faint);flex-shrink:0}.shop-line__measure{font-size:var(--text-sm);color:var(--color-ink-soft);flex-shrink:0}.shop-line__delete{align-items:center;gap:var(--space-1);height:2.5rem;padding:0 var(--space-3);background:var(--color-feedback-soft);color:var(--color-feedback);font-family:var(--font-sans);font-size:var(--text-xs);cursor:pointer;border-radius:var(--radius-full);transition:background-color var(--duration-normal) var(--ease-calm), color var(--duration-normal) var(--ease-calm);border:none;flex-shrink:0;font-weight:600;display:inline-flex}.shop-line__delete-label{white-space:nowrap}.shop-line__delete:hover{background:var(--color-feedback);color:var(--color-cream)}.shop-line--editing{gap:var(--space-2);flex-flow:wrap}.shop-line__edit-name,.shop-line__edit-qty,.shop-line__edit-unit{border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);padding:var(--space-2) var(--space-3);min-height:2.75rem}.shop-line__edit-name{flex:100%}.shop-line__edit-name:focus-visible,.shop-line__edit-qty:focus-visible,.shop-line__edit-unit:focus-visible{border-color:var(--color-sage);box-shadow:0 0 0 3px var(--color-sage-soft);outline:none}.shop-line__edit-measure{gap:var(--space-2);flex:1;display:flex}.shop-line__edit-qty{width:5rem}.shop-line__edit-unit{width:6rem}.shop-line__edit-actions{gap:var(--space-1);margin-left:auto;display:flex}.shop-line__text-button{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-soft);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:0 0;border:none;font-weight:500}.shop-line__text-button--accent{color:var(--color-sage-deep)}.shop-line__text-button:hover{background:var(--color-cream-deep)}.picker{gap:var(--space-2);flex-direction:column;display:flex}.picker__status{font-size:var(--text-xs);color:var(--color-ink-soft);margin:0}.picker__cards{gap:var(--space-2);padding-bottom:var(--space-1);margin:0;list-style:none;display:flex;overflow-x:auto}.picker__card{align-items:flex-start;gap:var(--space-1);width:6.5rem;padding:var(--space-2);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--duration-normal) var(--ease-calm), box-shadow var(--duration-normal) var(--ease-calm);flex-direction:column;flex-shrink:0;display:flex}.picker__card:hover:not(:disabled){border-color:var(--color-sage);box-shadow:var(--shadow-soft)}.picker__card:disabled{opacity:.6;cursor:not-allowed}.picker__card-image{border-radius:var(--radius-sm);object-fit:contain;background:var(--color-cream-deep);width:100%;height:4.5rem}.picker__card-image--placeholder{display:flex}.picker__card-title{font-size:var(--text-xs);color:var(--color-ink);line-height:var(--leading-snug);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.picker__card-price{font-size:var(--text-xs);color:var(--color-sage-deep);font-weight:600}.picker__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.picker__text-button{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-sage-deep);cursor:pointer;padding:var(--space-1) 0;background:0 0;border:none;font-weight:500}.picker__text-button:disabled{color:var(--color-ink-faint);cursor:not-allowed}.picker__search-link{font-size:var(--text-xs);color:var(--color-ink-soft);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.picker__search-link:hover{color:var(--color-ink)}.picker__error{font-size:var(--text-xs);color:var(--color-feedback);margin:0}.picker--picked{gap:var(--space-1)}.picker__picked-product{align-items:center;gap:var(--space-2);display:flex}.picker__picked-image{border-radius:var(--radius-sm);object-fit:contain;background:var(--color-cream-deep);flex-shrink:0;width:2.5rem;height:2.5rem}.picker__picked-image--placeholder{display:block}.picker__picked-text{flex-direction:column;min-width:0;display:flex}.picker__picked-title{font-size:var(--text-xs);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker__basket-note{font-size:var(--text-xs);color:var(--color-ink-soft);background:var(--color-cream-deep);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin:0}.review__quiet{color:var(--color-ink-soft);padding:var(--space-4) 0}.review__lede{font-size:var(--text-lg);color:var(--color-ink-soft);margin:0 0 var(--space-4)}.review__lines{margin-bottom:var(--space-4);flex-direction:column;display:flex}.review__lines>*+*{border-top:1px solid var(--color-hairline)}.review__add{align-items:center;gap:var(--space-2);padding:var(--space-2);margin-bottom:var(--space-5);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-full);box-shadow:var(--shadow-soft);display:flex}.review__add-input{min-width:0;min-height:2.75rem;padding:0 var(--space-3);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);background:0 0;border:none;flex:1}.review__add-input:focus-visible{outline:none}.review__add-input::placeholder{color:var(--color-ink-faint)}.review__add-button{border-radius:var(--radius-full);background:var(--color-sage);width:2.75rem;height:2.75rem;color:var(--color-sage-ink);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.review__add-button:hover:not(:disabled){background:var(--color-sage-deep)}.review__add-button:active:not(:disabled){transform:scale(.94)}.review__add-button:disabled{opacity:.5;cursor:not-allowed}.review__reassure{font-size:var(--text-sm);color:var(--color-ink-soft);background:var(--color-cream-deep);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:0 0 var(--space-4)}.review__error{font-size:var(--text-sm);color:var(--color-feedback);margin:0 0 var(--space-3)}.review__send{padding:var(--space-4) 0 var(--space-2);background:linear-gradient(to bottom, #fbf5ec00, var(--color-cream) var(--space-4));position:sticky;bottom:0}.result-line{padding:var(--space-1) 0}.result-line__link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md);color:inherit;transition:border-color var(--duration-normal) var(--ease-calm), box-shadow var(--duration-normal) var(--ease-calm), transform var(--duration-normal) var(--ease-calm);text-decoration:none;display:flex}.result-line__link:hover{border-color:var(--color-sage);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.result-line__text{align-items:baseline;gap:var(--space-3);flex:1;min-width:0;display:flex}.result-line__name{font-size:var(--text-base);color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result-line__measure{font-size:var(--text-sm);color:var(--color-ink-soft);flex-shrink:0}.result-line__cta{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-sage-deep);flex-shrink:0;font-weight:600;display:inline-flex}.result-line--done{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.result-line__mark{border-radius:var(--radius-full);background:var(--color-sage);width:1.6rem;height:1.6rem;color:var(--color-sage-ink);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.result-line__mark svg{width:1rem;height:1rem}.result-line--done .result-line__name{color:var(--color-ink-soft)}.result-line__done-label{font-size:var(--text-xs);color:var(--color-sage-deep);flex-shrink:0}.results__quiet{color:var(--color-ink-soft);padding:var(--space-4) 0}.results__lede{font-size:var(--text-lg);color:var(--color-ink-soft);margin:0 0 var(--space-5)}.results__section{margin-bottom:var(--space-5)}.results__section-title{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-soft);margin:0 0 var(--space-3);font-weight:600}.results__saved{font-size:var(--text-sm);color:var(--color-ink-soft);background:var(--color-cream-deep);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:0 0 var(--space-4)}.results__basket{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);background:var(--color-sage);color:var(--color-sage-ink);font-size:var(--text-base);transition:background-color var(--duration-normal) var(--ease-calm);font-weight:600;text-decoration:none;display:inline-flex}.results__basket:hover{background:var(--color-sage-deep)}.results__check{font-size:var(--text-sm);color:var(--color-ink-soft);background:var(--color-cream-deep);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:0 0 var(--space-3)}.results__list{gap:var(--space-2);flex-direction:column;display:flex}.results__error{font-size:var(--text-sm);color:var(--color-feedback);margin:var(--space-4) 0 0}.results__actions{gap:var(--space-3);margin-top:var(--space-5);flex-direction:column;display:flex}.results__back-link{width:100%;margin-top:var(--space-3);padding:var(--space-2) 0;color:var(--color-ink-soft);font-family:var(--font-sans);font-size:var(--text-sm);text-align:center;cursor:pointer;background:0 0;border:none;display:block}.results__back-link:hover{text-decoration:underline}.admin__line{font-size:var(--text-base);color:var(--color-ink);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-md)}.admin__line--quiet{color:var(--color-ink-soft);padding:var(--space-4) 0;background:0 0;border:none}.admin__sub{font-size:var(--text-sm);color:var(--color-ink-soft);margin-top:var(--space-3)}
