.rdp-root{--rdp-accent-color: blue;--rdp-accent-background-color: #f0f0ff;--rdp-day-height: 44px;--rdp-day-width: 44px;--rdp-day_button-border-radius: 100%;--rdp-day_button-border: 2px solid transparent;--rdp-day_button-height: 42px;--rdp-day_button-width: 42px;--rdp-selected-border: 2px solid var(--rdp-accent-color);--rdp-disabled-opacity: .5;--rdp-outside-opacity: .75;--rdp-today-color: var(--rdp-accent-color);--rdp-dropdown-gap: .5rem;--rdp-months-gap: 2rem;--rdp-nav_button-disabled-opacity: .5;--rdp-nav_button-height: 2.25rem;--rdp-nav_button-width: 2.25rem;--rdp-nav-height: 2.75rem;--rdp-range_middle-background-color: var(--rdp-accent-background-color);--rdp-range_middle-color: inherit;--rdp-range_start-color: white;--rdp-range_start-background: linear-gradient( var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50% );--rdp-range_start-date-background-color: var(--rdp-accent-color);--rdp-range_end-background: linear-gradient( var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50% );--rdp-range_end-color: white;--rdp-range_end-date-background-color: var(--rdp-accent-color);--rdp-week_number-border-radius: 100%;--rdp-week_number-border: 2px solid transparent;--rdp-week_number-height: var(--rdp-day-height);--rdp-week_number-opacity: .75;--rdp-week_number-width: var(--rdp-day-width);--rdp-weeknumber-text-align: center;--rdp-weekday-opacity: .75;--rdp-weekday-padding: .5rem 0rem;--rdp-weekday-text-align: center;--rdp-gradient-direction: 90deg;--rdp-animation_duration: .3s;--rdp-animation_timing: cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction: -90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity: unset}.rdp-root{position:relative;box-sizing:border-box}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--spacing:.25rem;--container-md:28rem;--font-weight-semibold:600;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.z-10{z-index:10}.z-20{z-index:20}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.hidden{display:none}.table{display:table}.min-h-0{min-height:0}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-1{padding-top:var(--spacing)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.62rem\]{font-size:.62rem}.text-\[1\.55rem\]{font-size:1.55rem}.text-\[clamp\(2\.2rem\,6vw\,3\.2rem\)\]{font-size:clamp(2.2rem,6vw,3.2rem)}.leading-none{--tw-leading:1;line-height:1}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.text-\[color\:var\(--muted\)\]{color:var(--muted)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(min-width:40rem){.sm\:block{display:block}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:text-\[1\.85rem\]{font-size:1.85rem}}}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--paper: #fff8f3;--paper-deep: #f7ebe3;--paper-edge: #e8d2d6;--ink: #4a342e;--ink-soft: #6b524a;--muted: #a88990;--blush: #e8a4b0;--blush-deep: #d48496;--peach: #f3c4b8;--mint: #d8c4c8;--gingham: #f0c0c8;--cream: #faf3ec;--rose-gold: #c9958a;--terracotta: #d48496;--terracotta-deep: #c06e82;--gold: #c9958a;--gold-soft: #e8c4b8;--cover: #faf3ec;--cover-ink: #4a342e;--serif: "Cormorant Garamond", Georgia, serif;--script: "Parisienne", "Great Vibes", cursive;--sans: "Source Sans 3", system-ui, sans-serif;--hand: "Caveat", cursive}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;overscroll-behavior:none;overscroll-behavior-x:none}body{font-family:var(--sans);color:var(--ink);background-color:#f3d6dc;background-image:radial-gradient(ellipse 90% 55% at 50% 0%,rgba(255,248,243,.55),transparent 58%),linear-gradient(180deg,#faf3ec47,#f3d6dc1f),url(/textures/gingham-mantel.png);background-size:auto,auto,280px 280px;background-position:center,center,center;background-repeat:no-repeat,no-repeat,repeat;touch-action:manipulation}html.book-flipping,html.book-flipping body{overflow:hidden!important;overscroll-behavior:none;overscroll-behavior-x:none}.app{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none;overscroll-behavior-x:none;touch-action:manipulation}.home-shelf{min-height:0;height:100%}.shelf-wall{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 85% 50% at 50% 0%,rgba(255,248,243,.2),transparent 55%),linear-gradient(165deg,#c47a6c,#b86f62 45%,#a86256)}.shelf-wall:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.16;background-image:url(/textures/gingham-mantel.png);background-size:180px 180px;mix-blend-mode:soft-light}.shelf-brand{color:#fff8f3!important;text-shadow:0 2px 10px rgba(40,18,14,.28)}.shelf-kicker{color:#fff8f3bf}.shelf-hero-title{font-family:var(--script);font-weight:400;color:#fff8f3;text-shadow:0 2px 16px rgba(40,18,14,.28)}.shelf-btn-ghost{background:#fff8f329!important;color:#fff8f3!important;border-color:#fff8f338!important}.shelf-btn-ghost:hover{background:#fff8f347!important}.shelf-hint{color:#fff8f3b8;font-family:var(--hand);text-transform:none;letter-spacing:.04em}.shelf-dedication-main{margin:0;font-family:var(--hand);font-size:clamp(1.05rem,2.8vw,1.35rem);line-height:1.35;color:#fff8f3;text-shadow:0 2px 12px rgba(40,18,14,.28)}.shelf-dedication-sub{margin:.35rem 0 0;font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#fff8f394}.spine-band{position:relative;width:100%;padding:0 .5rem;display:flex;justify-content:center}.spine-stage{width:fit-content;max-width:100%}.spine-cluster{--spine-h: clamp(15rem, 48vh, 24rem);--spine-w: clamp(3.6rem, 10vw, 5.4rem);position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:center;gap:.4rem;height:var(--spine-h);padding:0 .35rem}.spine-book{position:relative;height:100%;width:var(--spine-w);border:0;padding:0;background:transparent;cursor:pointer;font:inherit;touch-action:manipulation;flex:0 0 var(--spine-w)}.spine-book-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;border-radius:2px 3px 2px 2px;box-shadow:0 14px 18px #28120e47;image-rendering:auto;-webkit-font-smoothing:antialiased}.spine-book-count{position:absolute;left:50%;bottom:.4rem;transform:translate(-50%);z-index:2;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#fff8f3eb;border-radius:999px;padding:.14rem .38rem;line-height:1;box-shadow:0 2px 6px #28120e2e;white-space:nowrap}.spine-decor{height:92%;width:auto;max-width:clamp(6.5rem,16vw,9.5rem);object-fit:contain;object-position:bottom center;pointer-events:none;-webkit-user-select:none;user-select:none;flex:0 0 auto;filter:drop-shadow(0 12px 16px rgba(40,18,14,.24))}.shelf-board{position:relative;z-index:1;margin-top:-.1rem;width:100%}.shelf-board-face{height:clamp(16px,2.2vh,22px);border-radius:2px;background:linear-gradient(180deg,#fffefb,#f4ebe2 60%,#e9dfd4);box-shadow:0 1px #ffffffe6 inset,0 14px 28px #28120e42}.shelf-board-lip{height:9px;margin:0 3px;border-radius:0 0 3px 3px;background:linear-gradient(180deg,#d9cfc3,#c7b9ab)}@media(max-width:640px){.spine-cluster{--spine-h: clamp(13.5rem, 46vh, 18rem);--spine-w: clamp(3rem, 13vw, 3.9rem);gap:.25rem}.spine-decor{height:90%;max-width:5.5rem}}@media(max-width:380px){.spine-decor:first-child{display:none}}.rf-input[type=number],select.rf-input{-moz-appearance:none;appearance:none;-webkit-appearance:none}select.rf-input{background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:2rem}.header{display:flex;align-items:center;justify-content:space-between;padding:.55rem 1.15rem;background:#fff8f3d1;border-bottom:1px solid rgba(212,132,150,.18);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:10;box-shadow:0 1px #ffffff8c inset}.brand-lockup{display:flex;align-items:center;gap:.45rem;min-width:0}.brand-bow{width:40px;height:40px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(74,52,46,.12));transform:rotate(-8deg)}.brand{margin:0;font-family:var(--script);font-style:normal;font-weight:400;font-size:2.15rem;color:var(--blush-deep);letter-spacing:.01em;line-height:1}.header-actions{display:flex;align-items:center;gap:.5rem}.compact-header-actions{display:flex;align-items:center;flex-shrink:0;min-width:0}.compact-header-inline,.compact-header-narrow{display:flex;align-items:center;gap:.5rem}.compact-header-narrow{display:none}.header-overflow{position:relative}.header-overflow-trigger{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:0;border-radius:999px;border:1.5px solid transparent;background:transparent;color:var(--ink-soft);font-family:var(--sans);font-size:1.35rem;line-height:1;letter-spacing:.08em;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.header-overflow-trigger:hover,.header-overflow-trigger[aria-expanded=true]{color:var(--ink);background:#d484961f;border-color:#d4849647}.header-overflow-trigger.is-shelf{background:#fff8f329;color:#fff8f3;border-color:#fff8f338}.header-overflow-trigger.is-shelf:hover,.header-overflow-trigger.is-shelf[aria-expanded=true]{background:#fff8f347;color:#fff8f3;border-color:#fff8f359}.header-overflow-panel{position:absolute;top:calc(100% + .4rem);right:0;z-index:40;min-width:11.5rem;padding:.35rem;border-radius:1rem;border:1px solid rgba(212,132,150,.28);background:#fff8f3f5;box-shadow:0 12px 28px #4a342e29,0 1px #ffffffb3 inset;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-overflow-item{display:flex;align-items:center;width:100%;min-height:2.75rem;padding:.55rem .9rem;border:0;border-radius:.75rem;background:transparent;color:var(--ink);font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;text-align:left;cursor:pointer;transition:background .18s ease}.header-overflow-item:hover,.header-overflow-item:focus-visible{background:#e8a4b038;outline:none}@media(max-width:640px){.compact-header-inline{display:none}.compact-header-narrow{display:flex}.compact-header-actions .btn-save{min-height:2.75rem;padding:.5rem .95rem}.shelf-header .brand-bow{width:34px;height:34px}.shelf-header .brand{font-size:1.55rem}}.btn-save,.btn-ghost-light{display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:.5rem 1rem;border-radius:999px;cursor:pointer;transition:background .25s ease,transform .2s ease,box-shadow .2s ease}.btn-save{border:1.5px solid rgba(212,132,150,.55);background:var(--cream);color:var(--ink);box-shadow:0 6px 16px #d484962e}.btn-save:hover{background:#ffe8ec;transform:translateY(-1px);box-shadow:0 8px 18px #d484963d}.btn-ghost-light{border:1.5px solid transparent;background:#fff8f373;color:var(--ink-soft)}.btn-ghost-light:hover{background:#fff8f3d9}.stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem .8rem 1.2rem;overflow:hidden}.stage-message{text-align:center;color:var(--ink-soft)}.stage-title{font-family:var(--script);font-style:normal;font-size:2.4rem;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.4)}.stage-sub{margin-top:.5rem;color:#f7ead0cc}.loading-dots:after{content:"…";animation:dots 1.4s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"…"}}.book-zone{display:flex;flex-direction:column;align-items:center;flex:1;width:100%;height:100%;max-height:100%;min-height:0;overflow:hidden}.book-slot{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.book-wrap{flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;overscroll-behavior:none;overscroll-behavior-x:none;touch-action:none}.book-wrap .stf__parent{width:100%!important;height:100%!important;max-width:100%;max-height:100%;overflow:hidden!important;touch-action:none!important;-ms-touch-action:none!important;overscroll-behavior:none;overscroll-behavior-x:none}.book-wrap .stf__block{perspective:5600px!important;perspective-origin:50% 42%;touch-action:none!important;overscroll-behavior-x:none}.book-wrap .stf__block,.book-wrap .stf__item,.book-wrap .stf__outerShadow,.book-wrap .stf__innerShadow,.book-wrap .stf__hardShadow,.book-wrap .stf__hardInnerShadow{overscroll-behavior:none}.book-wrap .stf__hardShadow,.book-wrap .stf__hardInnerShadow{opacity:.5;mix-blend-mode:multiply}html.book-cover-swing .book-wrap .stf__hardShadow,html.book-cover-swing .book-wrap .stf__hardInnerShadow{opacity:.38}.flipbook{margin:0 auto;box-shadow:0 18px 40px #5032282e,0 4px 12px #5032281a}html.book-cover-swing .flipbook{box-shadow:0 14px 32px #50322829,0 4px 10px #5032281a}.sheet{background:radial-gradient(ellipse 130% 100% at 50% 45%,transparent 58%,rgba(160,124,66,.16) 100%),repeating-linear-gradient(0deg,transparent 0 2px,rgba(120,90,45,.016) 2px 4px),linear-gradient(160deg,var(--paper) 0%,var(--paper-deep) 100%);border:1px solid var(--paper-edge);overflow:hidden}.stf__item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.stf__item.--right:not(.sheet-cover):after{background:linear-gradient(90deg,rgba(69,40,24,.12),transparent 34px)}.stf__item.--left:not(.sheet-cover):after{background:linear-gradient(270deg,rgba(69,40,24,.12),transparent 34px)}.sheet-cover{background:var(--cover);border:1px solid #d8d0c4;color:var(--cover-ink);backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d}.sheet-endpaper{background-color:var(--cover);background-image:url(/covers/endpaper.png);background-size:cover;background-position:center;border:1px solid var(--paper-edge);backface-visibility:hidden;-webkit-backface-visibility:hidden}.endpaper{height:100%}.cover{position:relative;height:100%;overflow:hidden;background:var(--cover);display:flex;align-items:center;justify-content:center}.cover-art{width:100%;height:100%;object-fit:contain;object-position:center;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.cover-note{position:absolute;left:50%;top:58%;transform:translate(-50%);z-index:1;margin:0;max-width:62%;text-align:center;font-family:var(--hand);font-size:clamp(.95rem,2.8vw,1.25rem);line-height:1.25;color:var(--ink-soft);pointer-events:none;opacity:.92}.cover-count-badge{position:absolute;left:50%;bottom:14%;transform:translate(-50%);z-index:1;margin:0;padding:0;font-family:var(--sans);font-size:clamp(.68rem,1.8vw,.78rem);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--blush-deep);background:none;border:0;pointer-events:none;white-space:nowrap;opacity:.85}.gallery{height:100%;display:flex;flex-direction:column;padding:1.5rem 1.5rem 1.3rem}.folio{margin:0 0 1rem;text-align:center;font-family:var(--hand);font-style:normal;font-size:1.05rem;letter-spacing:.06em;color:var(--blush-deep)}.gallery-grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1.05rem 1rem}.cell{display:flex;flex-direction:column;min-height:0;border:0;padding:0;background:none;cursor:pointer;text-align:center;font-family:inherit;transition:transform .3s ease;position:relative;z-index:2;touch-action:pan-x;-webkit-tap-highlight-color:transparent;outline:none;contain:layout paint}.cell *{pointer-events:none}.cell:nth-child(odd){transform:rotate(-1.1deg)}.cell:nth-child(2n){transform:rotate(1deg)}@media(hover:hover){.cell:hover{transform:rotate(0) scale(1.03);z-index:3}}html.book-flipping .cell,html.book-flipping .cell:nth-child(odd),html.book-flipping .cell:nth-child(2n){transform:none!important;transition:none!important}html.book-flipping .cell-frame img{filter:none!important}.cell-pad{cursor:default;visibility:hidden}.cell-frame{flex:1;min-height:0;overflow:hidden;background:#fff;padding:5px 5px 0;border:1.5px solid rgba(44,42,40,.18);box-shadow:3px 3px #2c2a2814;border-radius:2px}.cell-frame img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:saturate(.94) sepia(.06);content-visibility:auto}.cell-empty{display:grid;place-items:center;height:100%;color:var(--muted)}.cell-caption{padding:.45rem .2rem .15rem;font-family:var(--hand);font-size:1.06rem;line-height:1.1;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.filler{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;color:var(--gold);font-size:1.5rem}.filler p{margin:0;font-family:var(--hand);font-size:1.5rem;color:var(--muted)}.photo{position:relative;height:100%;margin:0;display:flex;flex-direction:column;padding:1.4rem 1.4rem 1.1rem}.photo-matte{flex:1;min-height:0;background:#fff;padding:9px;border:1px solid rgba(160,124,66,.4);box-shadow:0 6px 16px #45281840;transform:rotate(-.6deg)}.photo-matte img,.photo-matte video.photo-video{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:saturate(.95) sepia(.05)}.photo-matte video.photo-video{background:#1a120c;filter:none}.photo-empty{height:100%;display:grid;place-items:center;background:var(--paper-deep);color:var(--muted);font-size:2.2rem}.photo figcaption{padding-top:1rem;text-align:center}.photo-tags{margin:0 0 .35rem;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--terracotta)}.photo-title{margin:0;font-family:var(--script);font-weight:400;font-size:clamp(1.6rem,4vw,2.2rem);line-height:1.15;color:var(--ink)}.photo-time{margin:.4rem 0 0;font-family:var(--hand);font-size:1.15rem;color:var(--muted)}.content{height:100%;padding:1.4rem .7rem 1.4rem 1.4rem}.content-scroll{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding-right:.6rem;scrollbar-width:thin;scrollbar-color:var(--gold-soft) transparent;position:relative;z-index:2}.content-head{position:relative;min-height:2.4rem;padding-top:.15rem;margin-bottom:.35rem}.content-head .husband-heart{position:absolute;top:0;right:0;z-index:3}.content-head .lede{padding-right:2.6rem}.husband-heart{position:absolute;top:.55rem;right:.55rem;z-index:4;width:2.35rem;height:2.35rem;display:grid;place-items:center;border:1.5px solid rgba(212,132,150,.45);border-radius:999px;background:#fff8f3eb;color:var(--blush-deep);font-size:1.15rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px #4824281f;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.husband-heart:hover{transform:scale(1.06);background:#fff0f3}.husband-heart:active{transform:scale(.96)}.husband-heart.is-loved{background:linear-gradient(160deg,#ffe4ea,#f7c4d0);border-color:#c06e828c;color:#c06e82;box-shadow:0 6px 14px #c06e8247}.photo .husband-heart{top:.85rem;right:.85rem}.lede{margin:0 0 1.2rem;font-family:var(--serif);font-style:italic;font-size:1.12rem;line-height:1.45;color:var(--ink-soft)}.section-title{margin:1.3rem 0 .55rem;font-family:var(--hand);font-weight:600;font-size:1.45rem;color:var(--blush-deep)}.section-title:first-of-type{margin-top:0}.ingredients{list-style:none;margin:0;padding:0}.ingredients li+li{border-top:1px dotted rgba(160,124,66,.5)}.ing{display:flex;align-items:flex-start;gap:.55rem;padding:.45rem 0;cursor:pointer;font-size:.86rem;line-height:1.4;color:var(--ink-soft)}.ing input{margin-top:.18rem;accent-color:var(--terracotta)}.ing strong{font-weight:600;color:var(--terracotta-deep)}.ing.checked span{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--gold-soft)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}.steps li{display:grid;grid-template-columns:2rem 1fr;gap:.45rem}.step-num{font-family:var(--serif);font-style:italic;font-size:1.12rem;color:var(--terracotta)}.step-text{font-size:.86rem;line-height:1.55;color:var(--ink-soft);padding-top:.1rem}.source{margin:1.4rem 0 0;font-size:.74rem;color:var(--muted)}.source a{color:var(--terracotta);text-underline-offset:3px}.end-page{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.end-fleuron{margin:0 0 .9rem;font-size:1.5rem;color:var(--blush-deep)}.end-title{margin:0;font-family:var(--script);font-weight:400;font-size:2.4rem;color:var(--ink)}.end-sub{margin:.8rem 0 0;font-family:var(--hand);font-size:1.3rem;color:var(--muted);max-width:24ch}.book-controls{position:relative;z-index:20;flex-shrink:0;margin-top:.85rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:min(92vw,660px);pointer-events:auto}.nav-btn{position:relative;z-index:21;width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(212,132,150,.45);background:var(--cream);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;pointer-events:auto;touch-action:manipulation;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 6px 16px #d4849633}.nav-btn:hover{background:#ffe8ec;transform:scale(1.06);box-shadow:0 8px 18px #d4849647}.nav-center{text-align:center}.nav-hint,.nav-indicator{display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);text-shadow:none}.nav-indicator{margin-top:.3rem;letter-spacing:.2em;color:var(--ink)}.nav-back{position:relative;z-index:21;border:0;background:none;color:var(--blush-deep);font-family:var(--hand);font-size:1.2rem;cursor:pointer;pointer-events:auto;touch-action:manipulation;text-shadow:none}.nav-back:hover{color:var(--terracotta-deep)}.search-fab{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(5.5rem,calc(env(safe-area-inset-bottom) + 5rem));z-index:40;width:56px;height:56px;border:0;border-radius:50%;background:linear-gradient(160deg,#f3c4c8 0%,var(--blush-deep) 100%);color:#fff8f3;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 28px #d4849659,0 1px #ffffff59 inset;transition:transform .2s ease,filter .2s ease}.search-fab:hover{transform:scale(1.06);filter:brightness(1.04)}.home-shelf .search-fab,.manage .search-fab{bottom:max(1.25rem,calc(env(safe-area-inset-bottom) + 1rem))}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#281c167a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:flex-start;justify-content:center;padding:max(12vh,2.5rem) 1rem 1.5rem}.search-panel{width:min(640px,100%);max-height:min(78dvh,720px);display:flex;flex-direction:column;background:linear-gradient(180deg,#fff8f3f5,#fff3f0f5),url(/textures/scallop-panel.png);background-size:cover;background-position:center;border-radius:28px;border:1px solid rgba(232,164,176,.45);box-shadow:0 28px 70px #78465047;overflow:hidden;position:relative}.search-panel:before{content:"";position:absolute;top:.35rem;left:50%;width:52px;height:52px;transform:translate(-50%);background:url(/textures/pajarita-bow.png) center / contain no-repeat;pointer-events:none;z-index:2;filter:drop-shadow(0 2px 4px rgba(74,52,46,.12))}.search-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem;padding:2.4rem .85rem .75rem;border-bottom:1px solid rgba(212,132,150,.16);background:#fffcf9b8}.search-bar-icon{display:grid;place-items:center;width:2.4rem;color:var(--rose-gold)}.search-input{width:100%;border:0;background:transparent;outline:none;font-family:var(--sans);font-size:clamp(1.2rem,4.2vw,1.65rem);font-weight:500;letter-spacing:-.02em;color:var(--ink);padding:.55rem .2rem}.search-input::placeholder{color:var(--muted);font-weight:400}.search-input::-webkit-search-cancel-button{display:none}.search-close{width:40px;height:40px;border:0;border-radius:50%;background:#2c2a280f;color:var(--ink-soft);font-size:1.5rem;line-height:1;cursor:pointer}.search-close:hover{background:#2c2a281f}.search-results{list-style:none;margin:0;padding:.45rem;overflow:auto;flex:1;min-height:0}.search-empty{padding:2rem 1.2rem;text-align:center;color:var(--muted);font-size:.95rem}.search-hit{width:100%;display:grid;grid-template-columns:56px 1fr;gap:.75rem;align-items:center;text-align:left;border:0;border-radius:14px;background:transparent;padding:.55rem .65rem;cursor:pointer;font-family:var(--sans);color:var(--ink);transition:background .15s ease}.search-hit.is-active,.search-hit:hover{background:#e8a4b047}.search-hit-thumb{width:56px;height:56px;border-radius:12px;overflow:hidden;background:#e8e0d4;flex-shrink:0}.search-hit-thumb img{width:100%;height:100%;object-fit:cover;display:block}.search-hit-placeholder{display:block;width:100%;height:100%;background:radial-gradient(circle at 30% 30%,rgba(232,164,160,.35),transparent 55%),#e8e0d4}.search-hit-text{min-width:0;display:flex;flex-direction:column;gap:.15rem}.search-hit-title{font-size:1.05rem;font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hit-meta{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hint{margin:0;padding:.55rem 1rem .85rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center}.search-quick-filters{display:flex;flex-wrap:wrap;gap:.4rem;padding:.35rem .95rem .55rem;border-bottom:1px solid rgba(212,132,150,.12);background:#fffcf98c}.search-chip,.discover-chip{border:1px solid rgba(212,132,150,.35);background:#fff8f3e6;color:var(--ink-soft);font-family:var(--sans);font-size:.68rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.search-chip.is-on,.discover-chip.is-on{background:linear-gradient(160deg,#f3c4c8 0%,var(--blush-deep) 100%);border-color:transparent;color:#fff8f3}@media(max-width:640px){.search-fab{right:max(.85rem,env(safe-area-inset-right));bottom:max(5.25rem,calc(env(safe-area-inset-bottom) + 4.75rem));width:52px;height:52px}.home-shelf .search-fab,.manage .search-fab{bottom:max(1rem,calc(env(safe-area-inset-bottom) + .85rem))}.search-overlay{padding:max(8vh,1rem) .65rem .65rem;align-items:stretch}.search-panel{max-height:none;height:min(88dvh,100%);border-radius:20px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#281c1673;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:flex-end;justify-content:center;padding:.75rem;z-index:50}@media(min-width:520px){.modal-backdrop{align-items:center;padding:1.25rem}}.modal{width:min(440px,100%);max-height:min(92dvh,920px);overflow:auto;background:var(--cream);padding:0;border-radius:22px 22px 16px 16px;border:1px solid rgba(232,164,176,.4);box-shadow:0 24px 60px #78465047,0 2px #ffffff73 inset;-webkit-overflow-scrolling:touch}@media(max-width:519px){.modal{width:100%;max-height:min(90dvh,920px);border-radius:22px 22px 0 0;margin-bottom:env(safe-area-inset-bottom,0)}}.recipe-form{padding:1.15rem 1.15rem 1.35rem;display:flex;flex-direction:column;gap:.85rem;background:radial-gradient(ellipse 80% 40% at 50% 0%,rgba(255,255,255,.55),transparent 60%)}.rf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.rf-eyebrow{margin:0 0 .15rem;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blush-deep)}.rf-title{margin:0;font-family:var(--script);font-size:2.15rem;font-weight:400;line-height:1.05;color:var(--blush-deep)}.rf-icon-btn{width:36px;height:36px;border:0;border-radius:50%;background:#2c2a280f;color:var(--ink-soft);font-size:1.35rem;line-height:1;cursor:pointer;flex-shrink:0;display:grid;place-items:center;transition:background .2s ease}.rf-icon-btn:hover{background:#2c2a281f}.rf-icon-btn-sm{width:32px;height:32px;font-size:1.15rem;align-self:center}.rf-card{background:#fffdf9;border-radius:16px;padding:1rem 1rem 1.05rem;box-shadow:0 1px #2c2a280a;border:1px solid rgba(44,42,40,.06)}.rf-assist{background:linear-gradient(160deg,#fff7f2,#fffdf9);border-color:#e8a4a059}.rf-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.rf-card-title{margin:0 0 .55rem;font-family:var(--sans);font-size:.95rem;font-weight:650;letter-spacing:-.01em;color:var(--ink)}.rf-card-top .rf-card-title{margin-bottom:0}.rf-chip{font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blush-deep);background:#e8a4a038;padding:.25rem .55rem;border-radius:999px}.rf-hint{margin:0 0 .85rem;font-size:.8rem;line-height:1.45;color:var(--muted)}.rf-check{display:flex;gap:.65rem;align-items:flex-start;margin:0 0 .85rem;padding:.7rem .8rem;border:1px dashed rgba(160,124,66,.45);background:#fffcf5b3;cursor:pointer;font-size:.88rem;line-height:1.35;color:var(--ink)}.rf-check input{margin-top:.2rem;flex-shrink:0;accent-color:var(--blush-deep, #c47874)}.rf-check strong{display:block;font-weight:600}.rf-check-sub{display:block;margin-top:.2rem;font-size:.78rem;color:var(--muted);font-weight:400}.rf-video-saved code{font-size:.75rem;word-break:break-all}.rf-linkish{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:0;color:var(--blush-deep, #c47874);text-decoration:underline;cursor:pointer;font:inherit}.rf-field{display:block;margin-bottom:.7rem}.rf-field:last-child{margin-bottom:0}.rf-label{display:block;margin-bottom:.35rem;font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--ink-soft)}.rf-input{width:100%;box-sizing:border-box;border:1px solid rgba(44,42,40,.12);background:#f3eee6;border-radius:12px;padding:.72rem .85rem;font-size:.95rem;font-family:var(--sans);color:var(--ink);outline:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.rf-input:focus{border-color:#d4847ebf;background:#fff;box-shadow:0 0 0 3px #e8a4a038}.rf-textarea{resize:vertical;min-height:4.5rem;line-height:1.4}.rf-grid-2{display:grid;grid-template-columns:96px 1fr;gap:.65rem}.rf-file-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.rf-drop{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:76px;margin-bottom:.7rem;padding:.85rem 1rem;border:1.5px dashed rgba(44,42,40,.22);border-radius:14px;background:#ffffff8c;cursor:pointer;font-family:var(--sans);color:var(--ink);transition:border-color .15s ease,background .15s ease}.rf-drop:hover{border-color:var(--blush-deep);background:#fff}.rf-drop-title{font-size:.9rem;font-weight:600}.rf-drop-sub{font-size:.75rem;color:var(--muted)}.rf-photo{position:relative;margin-bottom:.7rem;border-radius:14px;overflow:hidden;aspect-ratio:16 / 10;background:#e8e0d4}.rf-photo img{width:100%;height:100%;object-fit:cover;display:block}.rf-photo-clear{position:absolute;top:.55rem;right:.55rem;border:0;border-radius:999px;padding:.35rem .7rem;background:#14100c8c;color:#fff;font-size:.72rem;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rf-ing-list,.rf-step-list{display:flex;flex-direction:column;gap:.5rem}.rf-ing{display:grid;grid-template-columns:52px 52px 1fr 32px;gap:.4rem;align-items:center}.rf-ing .rf-input{margin:0;padding:.62rem .55rem;font-size:.88rem}.rf-step{display:grid;grid-template-columns:28px 1fr 32px;gap:.4rem;align-items:start}.rf-step-num{width:28px;height:28px;margin-top:.55rem;border-radius:50%;background:#e8a4a047;color:var(--blush-deep);font-size:.78rem;font-weight:700;display:grid;place-items:center}.rf-btn,.rf-btn-sm{border:0;font-family:var(--sans);cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease}.rf-btn:disabled{opacity:.45;cursor:not-allowed}.rf-btn{width:100%;border-radius:14px;padding:.85rem 1rem;font-size:.9rem;font-weight:650}.rf-btn-sm{border-radius:999px;padding:.35rem .75rem;font-size:.75rem;font-weight:650;background:#2c2a280f;color:var(--ink)}.rf-btn-sm:hover{background:#2c2a281f}.rf-btn-accent{background:var(--ink);color:#fffaf4}.rf-btn-accent:hover:not(:disabled){transform:translateY(-1px)}.rf-btn-primary{background:var(--blush);color:var(--ink)}.rf-btn-primary:hover:not(:disabled){background:#e0908c;transform:translateY(-1px)}.rf-btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid rgba(44,42,40,.12)!important}.rf-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:.55rem;position:sticky;bottom:0;padding-top:.35rem;background:linear-gradient(180deg,transparent,var(--cream) 28%)}.form-status{margin:0;padding:.85rem 1rem;border-radius:14px;border:0}.form-status strong{display:block;font-family:var(--sans);font-size:.85rem;font-weight:700;margin-bottom:.15rem}.form-status p{margin:0;font-size:.84rem;line-height:1.4}.form-status.is-error{background:#fce8e4;color:#6a302c}.form-status.is-ok{background:#e7f3ec;color:#2f4a3c}.btn-secondary,.btn-tiny{border:0;background:#2c2a280f;color:var(--ink);font-family:var(--sans);cursor:pointer;border-radius:999px}.btn-secondary{width:100%;padding:.75rem 1rem;font-size:.85rem;font-weight:650}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-tiny{padding:.35rem .75rem;font-size:.75rem;font-weight:650}.btn-tiny.danger{background:#d4847e26;color:var(--blush-deep)}.btn-primary{width:100%;border:0;background:var(--blush);color:var(--ink);padding:.85rem 1rem;font-size:.9rem;font-weight:650;border-radius:14px;cursor:pointer}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.manage{min-height:100%;display:flex;flex-direction:column;background-color:#f3d6dc;background-image:linear-gradient(180deg,#fff8f38c,#f3d6dc33),url(/textures/gingham-mantel.png);background-size:auto,280px 280px;background-repeat:no-repeat,repeat;color:var(--ink)}.manage-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 1rem;background:#fff8f3e0;border-bottom:1px solid rgba(212,132,150,.18);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.manage-header .brand-bow{width:34px;height:34px}.manage-brand{margin:0;font-family:var(--script);font-size:1.85rem;line-height:1;color:var(--blush-deep)}.btn-ghost{border:0;background:transparent;color:var(--ink-soft);font-family:var(--sans);font-size:.85rem;cursor:pointer;padding:.4rem .2rem}.btn-ghost:hover{color:var(--ink)}.manage-body{flex:1;min-height:0;overflow:auto;padding:1rem;max-width:720px;width:100%;margin:0 auto;box-sizing:border-box}.manage-empty{text-align:center;padding:2.5rem 1rem;color:var(--ink-soft)}.manage-empty .btn-secondary{margin-top:1rem;max-width:240px}.manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.manage-card{display:grid;grid-template-columns:64px 1fr auto;gap:.75rem;align-items:center;background:#fffdf9;border:1.5px solid rgba(44,42,40,.14);border-radius:12px;padding:.65rem;box-shadow:2px 2px #2c2a280f}.manage-thumb{width:64px;height:64px;border-radius:8px;overflow:hidden;background:var(--paper-deep);display:grid;place-items:center;color:var(--blush-deep);border:1px solid rgba(44,42,40,.1)}.manage-thumb img{width:100%;height:100%;object-fit:cover;display:block}.manage-meta h2{margin:0 0 .2rem;font-family:var(--serif);font-size:1.05rem;font-weight:600;line-height:1.25}.manage-meta p{margin:0;font-size:.75rem;color:var(--muted);line-height:1.35}.manage-actions{display:flex;flex-direction:column;gap:.35rem}.manage-actions .btn-tiny{min-width:4.5rem}.manage-actions .btn-tiny.danger{border:1px solid rgba(192,110,104,.45);color:var(--blush-deep);background:#fffaf4;box-shadow:none;font-size:.72rem;padding:.25rem .55rem}@media(max-width:640px){.manage-card{grid-template-columns:56px 1fr}.manage-actions{grid-column:1 / -1;flex-direction:row;justify-content:flex-end}.header-actions .btn-ghost-light{padding:.5rem .7rem;font-size:.7rem}}.btn-primary:hover:not(:disabled){background:#e0908c}.import-note{margin:1rem 0 0;font-size:.78rem;line-height:1.5;color:var(--muted)}@media(max-width:640px){.header{padding:.55rem .75rem}.brand{font-size:1.35rem}.stage{padding:.2rem .1rem .35rem;justify-content:center}.book-controls{margin-top:.4rem;gap:.55rem;width:min(96vw,520px)}.nav-btn{width:42px;height:42px}.nav-hint{display:none}.gallery{padding:.7rem .55rem .55rem}.folio{font-size:.68rem;margin-bottom:.45rem}.gallery-grid{gap:.45rem .4rem}.cell-caption{font-size:.72rem;padding:.25rem .1rem 0}.cell-frame{padding:3px 3px 0}.photo{padding:.55rem}.photo-title{font-size:1.05rem}.content{padding:.65rem .3rem .65rem .65rem}.lede{font-size:.82rem}.section-title{font-size:1.05rem}.ing,.step-text{font-size:.72rem}}@media(max-width:900px)and (orientation:landscape){.header{padding:.35rem .75rem}.stage{padding:.25rem .4rem .4rem}.book-controls{margin-top:.35rem}}.book-zone[data-book-portrait="1"] .gallery{padding:.85rem .75rem .7rem}.book-zone[data-book-portrait="1"] .photo{padding:.75rem}.book-zone[data-book-portrait="1"] .photo-title{font-size:clamp(1.25rem,5.5vw,1.6rem)}.book-zone[data-book-portrait="1"] .content{padding:1rem .55rem 1rem 1rem}.book-zone[data-book-portrait="1"] .lede{font-size:1.05rem}.book-zone[data-book-portrait="1"] .section-title{font-size:1.25rem}.book-zone[data-book-portrait="1"] .ing,.book-zone[data-book-portrait="1"] .step-text{font-size:.92rem}.book-zone[data-book-portrait="1"] .husband-heart{width:2.1rem;height:2.1rem;font-size:1.05rem;top:.45rem;right:.45rem}.book-zone[data-book-portrait="1"] .photo .husband-heart{top:.55rem;right:.55rem}.favorites-page{background:radial-gradient(ellipse 80% 42% at 50% -8%,rgba(255,248,243,.72),transparent 58%),radial-gradient(ellipse 55% 40% at 100% 30%,rgba(232,164,176,.14),transparent 60%),linear-gradient(180deg,#faf3ec52,#f3d6dc1a)}.favorites-header{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.45rem .85rem;background:#fff8f3c7;border-bottom:1px solid rgba(212,132,150,.14);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0}.favorites-header .brand-bow{width:28px;height:28px}.favorites-brand{margin:0;font-family:var(--script);font-size:1.25rem;color:var(--blush-deep);line-height:1}.favorites-kicker{margin:.1rem 0 0;font-family:var(--sans);font-size:.52rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.favorites-header-heart{width:1.6rem;text-align:center;color:var(--blush-deep);font-size:1rem;opacity:.8}.favorites-body{flex:1;min-height:0;overflow:auto;padding:0 0 1.75rem;width:100%;box-sizing:border-box}.favorites-masthead{text-align:center;padding:.75rem 1rem .55rem;max-width:28rem;margin:0 auto}.favorites-masthead-title{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(1.05rem,3vw,1.25rem);line-height:1.25;color:var(--ink);letter-spacing:-.01em}.favorites-masthead-script{font-family:var(--script);font-weight:400;font-size:clamp(1.35rem,4vw,1.65rem);color:var(--blush-deep);line-height:1}.favorites-count{margin:.3rem 0 0;font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.favorites-status{text-align:center;margin:1.25rem 1rem;font-family:var(--script);font-size:1.2rem;color:var(--ink-soft)}.favorites-list{list-style:none;margin:0 auto;padding:0 .75rem;max-width:36rem;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(212,132,150,.18)}.favorites-row{display:flex;align-items:center;gap:.7rem;width:100%;min-height:4.25rem;padding:.45rem .15rem;border:0;border-bottom:1px solid rgba(212,132,150,.14);background:transparent;cursor:pointer;color:inherit;font:inherit;text-align:left;-webkit-tap-highlight-color:transparent}.favorites-row:hover{background:#fff8f373}.favorites-row:focus-visible{outline:2px solid var(--blush-deep);outline-offset:-2px}.favorites-row-thumb{flex:0 0 64px;width:64px;height:64px;border-radius:.35rem;overflow:hidden;background:linear-gradient(145deg,#e8b4bc,#c06e82 60%,#8f453c)}.favorites-row-thumb-img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.94) sepia(.06)}.favorites-row-thumb-fallback{display:grid;place-items:center;width:100%;height:100%;font-size:1.25rem;color:#fff8f3e6}.favorites-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.28rem}.favorites-row-title{font-family:var(--serif);font-weight:600;font-size:1.05rem;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorites-row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.favorites-chip{display:inline-flex;align-items:center;padding:.12rem .45rem;border-radius:.25rem;font-family:var(--sans);font-size:.58rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;line-height:1.25}.favorites-chip--cat{color:var(--ink);background:#faf3ecf2;border:1px solid rgba(212,132,150,.28)}.favorites-chip--time{color:var(--blush-deep);background:#f3c4c873;border:1px solid rgba(212,132,150,.28)}.favorites-row-heart{flex:0 0 auto;color:var(--blush-deep);font-size:.85rem;opacity:.85;padding:0 .25rem}.favorites-colophon{margin:.85rem auto 0;padding:0 .75rem;text-align:center;font-family:var(--hand);font-size:.9rem;color:var(--muted)}.favorites-empty{max-width:18rem;margin:1rem auto 0;padding:1.1rem 1rem 1.15rem;text-align:center;border-top:1px solid rgba(212,132,150,.2);border-bottom:1px solid rgba(212,132,150,.2);background:#fff8f359}.favorites-empty-seal{display:inline-block;font-size:1.1rem;color:var(--blush-deep)}.favorites-empty-title{margin:.3rem 0 0;font-family:var(--script);font-weight:400;font-size:1.45rem;color:var(--blush-deep);line-height:1.15}.favorites-empty-body{margin:.4rem auto 0;font-family:var(--hand);font-size:.95rem;line-height:1.3;color:var(--ink-soft)}.favorites-empty-cta{margin:.85rem auto 0;max-width:180px}@media(max-width:420px){.favorites-row-thumb{flex-basis:56px;width:56px;height:56px}.favorites-row{min-height:3.85rem;gap:.55rem}.favorites-row-title{font-size:.98rem}.favorites-header .btn-ghost{font-size:.78rem}}.menus-home-ctas{margin-top:1.1rem;display:flex;flex-direction:column;align-items:center;gap:.45rem}.menus-home-cta{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.55rem 1.35rem .65rem;border:1px solid rgba(212,132,150,.45);border-radius:999px;background:linear-gradient(165deg,#fff8f3eb,#f3c4b88c);color:var(--ink);cursor:pointer;box-shadow:0 4px 14px #4a342e14}.menus-home-cta-label{font-family:var(--hand);font-size:1.15rem;line-height:1;color:var(--blush-deep)}.menus-home-cta-sub{font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.menus-home-plan-link{border:none;background:transparent;cursor:pointer;font-family:var(--hand);font-size:1.02rem;color:#fff8f3e0;text-decoration:underline;text-underline-offset:.18em;padding:.15rem .4rem}.menus-home-plan-link:hover{color:#fff8f3}.shelf-soft-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .85rem}.discover-page,.collections-page{background:radial-gradient(ellipse 80% 42% at 50% -8%,rgba(255,248,243,.72),transparent 58%),radial-gradient(ellipse 55% 40% at 0% 40%,rgba(200,180,150,.12),transparent 55%),linear-gradient(180deg,#faf3ec52,#f3d6dc1a)}.discover-header,.collections-header{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.45rem .85rem;background:#fff8f3c7;border-bottom:1px solid rgba(212,132,150,.14);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0}.discover-header .brand-bow,.collections-header .brand-bow{width:28px;height:28px}.discover-brand,.collections-brand{margin:0;font-family:var(--script);font-size:1.25rem;color:var(--blush-deep);line-height:1}.discover-kicker,.collections-kicker{margin:.1rem 0 0;font-family:var(--sans);font-size:.52rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.discover-header-link,.collections-header-link{font-family:var(--sans);font-size:.78rem;font-weight:650;letter-spacing:.04em;color:var(--blush-deep);text-decoration:none;padding:.25rem .35rem}.collections-header-spacer{width:2.5rem}.discover-body,.collections-body{flex:1;min-height:0;overflow:auto;padding:0 0 2rem;width:100%;box-sizing:border-box}.discover-masthead,.collections-masthead{text-align:center;padding:.9rem 1.1rem .5rem;max-width:28rem;margin:0 auto}.discover-title,.collections-title{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,3.4vw,1.4rem);line-height:1.2;color:var(--ink)}.discover-title-script,.collections-title-script{font-family:var(--script);font-weight:400;font-size:clamp(1.55rem,5vw,1.95rem);color:var(--blush-deep);line-height:1}.discover-lede,.collections-lede{margin:.45rem 0 0;font-family:var(--hand);font-size:1rem;line-height:1.35;color:var(--ink-soft)}.discover-fridge{max-width:28rem;margin:.65rem auto 0;padding:0 1rem}.discover-fridge-label{display:block;font-family:var(--sans);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}.discover-fridge-input{width:100%;box-sizing:border-box;resize:vertical;min-height:3.2rem;padding:.7rem .85rem;border-radius:14px;border:1px solid rgba(212,132,150,.35);background:linear-gradient(180deg,#fffcf9f2,#fff3f0e6);font-family:var(--sans);font-size:1rem;color:var(--ink);outline:none;box-shadow:0 8px 24px #7846500f}.discover-fridge-input:focus{border-color:var(--blush-deep)}.discover-fridge-input::placeholder{color:var(--muted)}.discover-fridge-count{margin:.35rem 0 0;font-family:var(--hand);font-size:.9rem;color:var(--muted)}.discover-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;padding:.75rem 1rem .25rem}.discover-collections{max-width:36rem;margin:.85rem auto 0;padding:0 .85rem}.discover-collections-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.discover-section-title{margin:0;font-family:var(--serif);font-size:.95rem;font-weight:600;color:var(--ink)}.discover-see-all{font-family:var(--sans);font-size:.72rem;font-weight:650;color:var(--blush-deep);text-decoration:none}.discover-collection-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}@media(max-width:520px){.discover-collection-row{grid-template-columns:1fr}}.discover-collection-card,.collections-card{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .8rem;text-decoration:none;color:inherit;border-radius:14px;border:1px solid rgba(212,132,150,.22);background:#fff8f3b8;min-height:4.5rem;transition:transform .18s ease,box-shadow .18s ease}.discover-collection-card:hover,.collections-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #7846501a}.discover-collection-card.accent-peach,.collections-card.accent-peach,.collection-detail-masthead.accent-peach{background:linear-gradient(160deg,#ffecdcf2,#fff8f3e6)}.discover-collection-card.accent-sage,.collections-card.accent-sage,.collection-detail-masthead.accent-sage{background:linear-gradient(160deg,#e6ecdcf2,#fff8f3e6)}.discover-collection-card.accent-blush,.collections-card.accent-blush,.collection-detail-masthead.accent-blush{background:linear-gradient(160deg,#fae4e8f2,#fff8f3e6)}.discover-collection-title,.collections-card-title{font-family:var(--serif);font-weight:650;font-size:.95rem;line-height:1.2;color:var(--ink)}.discover-collection-sub,.collections-card-sub{font-family:var(--hand);font-size:.85rem;color:var(--ink-soft);line-height:1.25}.collections-card-go{margin-top:auto;padding-top:.35rem;font-family:var(--sans);font-size:.68rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--blush-deep)}.discover-browse-hint{margin:.85rem auto .35rem;padding:0 1rem;text-align:center;font-family:var(--hand);font-size:.95rem;color:var(--muted);max-width:28rem}.discover-status,.collections-status{text-align:center;margin:1.25rem 1rem;font-family:var(--script);font-size:1.2rem;color:var(--ink-soft)}.discover-list{list-style:none;margin:.5rem auto 0;padding:0 .75rem;max-width:36rem;width:100%;box-sizing:border-box;border-top:1px solid rgba(212,132,150,.18)}.discover-row{display:flex;align-items:center;gap:.7rem;width:100%;min-height:4.25rem;padding:.5rem .15rem;border:0;border-bottom:1px solid rgba(212,132,150,.14);background:transparent;cursor:pointer;color:inherit;font:inherit;text-align:left;-webkit-tap-highlight-color:transparent}.discover-row:hover{background:#fff8f373}.discover-row-thumb{flex:0 0 64px;width:64px;height:64px;border-radius:.35rem;overflow:hidden;background:linear-gradient(145deg,#e8b4bc,#c06e82 60%,#8f453c)}.discover-row-thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.94) sepia(.06)}.discover-row-thumb-fallback{display:grid;place-items:center;width:100%;height:100%;color:#fff8f3e6;font-size:1.1rem}.discover-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.22rem}.discover-row-title{font-family:var(--serif);font-weight:600;font-size:1.05rem;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.discover-row-meta{display:flex;flex-wrap:wrap;gap:.3rem}.discover-meta-chip{display:inline-flex;align-items:center;padding:.12rem .45rem;border-radius:.25rem;font-family:var(--sans);font-size:.58rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:#faf3ecf2;border:1px solid rgba(212,132,150,.28)}.discover-meta-chip--time{color:var(--blush-deep);background:#f3c4c873}.discover-meta-chip--match{color:#5a6b4a;background:#dce8d2b3;border-color:#8ca07859}.discover-row-detail{font-family:var(--hand);font-size:.85rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.discover-score{flex:0 0 auto;font-family:var(--serif);font-weight:650;font-size:.95rem;color:var(--blush-deep);padding:0 .2rem}.collections-grid{list-style:none;margin:.75rem auto 0;padding:0 .85rem;max-width:36rem;display:grid;gap:.65rem}.badges-grid{list-style:none;margin:.75rem auto 0;padding:0 .85rem 1.5rem;max-width:36rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.55rem}.badges-chip{display:flex;flex-direction:column;gap:.2rem;min-height:4.4rem;padding:.85rem .9rem;text-decoration:none;color:inherit;border:1px solid rgba(160,124,66,.28);background:#fffcf5e0;box-shadow:0 4px 12px #4528180f;transition:transform .18s ease,box-shadow .18s ease}.badges-chip:hover{transform:translateY(-2px);box-shadow:0 8px 18px #4528181a}.badges-chip.accent-blush{background:linear-gradient(160deg,#fff0f3f2,#fffcf5e6);border-color:#d4849659}.badges-chip.accent-peach{background:linear-gradient(160deg,#ffecdcf2,#fffcf5e6);border-color:#d4966e59}.badges-chip.accent-sage{background:linear-gradient(160deg,#e8f0e4f2,#fffcf5e6);border-color:#8ca88266}.badges-chip.accent-cream{background:linear-gradient(160deg,#fff8e6fa,#fffcf5e6);border-color:#bea06459}.badges-chip-name{font-family:var(--script);font-size:1.35rem;line-height:1.05;color:var(--blush-deep);text-transform:lowercase}.badges-chip-count{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.collections-empty{max-width:18rem;margin:1.25rem auto 0;text-align:center;padding:1rem}.collections-empty-title{margin:0;font-family:var(--script);font-size:1.45rem;color:var(--blush-deep)}.collections-empty-body{margin:.4rem 0 .85rem;font-family:var(--hand);color:var(--ink-soft)}.collection-detail-masthead{max-width:28rem;margin:.75rem auto .35rem;padding:1rem 1.1rem;border-radius:16px;text-align:center;border:1px solid rgba(212,132,150,.18)}.collection-detail-title{margin:0;font-family:var(--serif);font-size:clamp(1.35rem,4vw,1.7rem);font-weight:600;color:var(--ink);line-height:1.15}.collection-detail-sub{margin:.4rem 0 0;font-family:var(--hand);font-size:1.05rem;color:var(--ink-soft)}.collection-detail-count{margin:.45rem 0 0;font-family:var(--sans);font-size:.65rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.menus-page{min-height:0}.menus-user-page{background:radial-gradient(ellipse 80% 45% at 50% 0%,rgba(255,248,243,.45),transparent 60%),linear-gradient(180deg,rgba(250,243,236,.35),transparent 40%)}.menus-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-shrink:0;padding:.7rem .9rem;z-index:20}.menus-header .brand-bow{width:28px;height:28px}.menus-brand{font-family:var(--script);font-size:1.4rem;color:var(--blush-deep)}.menus-kicker{margin-top:.12rem;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menus-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:.15rem .85rem 1.5rem;-webkit-overflow-scrolling:touch}.menus-toolbar{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.menus-week-nav{display:flex;align-items:center;justify-content:center;gap:.55rem}.menus-nav-btn{flex-shrink:0;width:2.35rem;height:2.35rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(232,164,176,.4);border-radius:999px;background:#fff8f3a6;color:var(--ink-soft);font-family:var(--serif);font-size:1.45rem;line-height:1;cursor:pointer;padding:0;transition:background .2s ease,color .2s ease,border-color .2s ease}.menus-nav-btn:hover{background:#fff8f3f2;color:var(--blush-deep);border-color:#d484968c}.menus-nav-btn:focus-visible{outline:2px solid var(--blush-deep);outline-offset:2px}.menus-view-switch{display:flex;align-items:center;justify-content:center}.menus-view-switch-track{position:relative;display:grid;grid-template-columns:1fr 1fr;width:9.5rem;padding:.12rem;border-radius:999px;border:1px solid rgba(212,132,150,.4);background:#f7ebe3b8;box-shadow:inset 0 1px #ffffff8c}.menus-view-switch-pill{position:absolute;top:.12rem;bottom:.12rem;width:calc(50% - .16rem);border-radius:999px;background:#fff8f3f2;border:1px solid rgba(232,164,176,.45);box-shadow:0 1px 4px #d4849629;pointer-events:none;z-index:0}.menus-view-switch-opt{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;padding:.32rem .4rem;border:none;background:transparent;cursor:pointer;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1;color:var(--muted);border-radius:999px}.menus-view-switch-opt.is-active{color:var(--blush-deep)}.menus-menu-card{position:relative;max-width:26rem;margin:0 auto;width:100%;padding:1.15rem 1rem 1.2rem;border-radius:16px;overflow:hidden;border:1px solid rgba(201,149,138,.4);box-shadow:0 12px 28px #4a342e1a,0 1px #ffffff80 inset;background-color:#faf3ec;background-image:linear-gradient(165deg,#fff8f3c7,#faf3ec9e 45%,#f7ebe3d1),url(/covers/endpaper.png);background-size:auto,cover;background-position:center,center}.menus-menu-card-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 70% 45% at 50% 0%,rgba(255,248,243,.5),transparent 70%),linear-gradient(180deg,transparent 65%,rgba(243,196,184,.1));opacity:.85}.menus-menu-card-head,.menus-menu-card-body{position:relative;z-index:1}.menus-menu-card-head{text-align:center;margin-bottom:.85rem;display:flex;flex-direction:column;align-items:center;gap:.12rem;padding-bottom:.75rem;border-bottom:1px solid rgba(201,149,138,.28)}.menus-menu-card-script{margin:0;font-family:var(--script);font-size:clamp(1.75rem,6vw,2.15rem);line-height:1.05;color:var(--blush-deep)}.menus-menu-card-date{margin:0;font-family:var(--serif);font-size:.98rem;letter-spacing:.03em;color:var(--ink-soft)}.menus-menu-card-body{display:flex;flex-direction:column;gap:.15rem}.menus-menu-course{padding:.65rem 0;border-top:1px dashed rgba(201,149,138,.32)}.menus-menu-course:first-child{border-top:none;padding-top:.15rem}.menus-menu-course-title{margin:0 0 .4rem;font-family:var(--sans);font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blush-deep);text-align:left}.menus-menu-course-empty{margin:0;text-align:left;font-family:var(--serif);font-size:.95rem;font-style:italic;color:var(--muted);padding:.15rem 0}.menus-menu-course-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.menus-menu-dish{width:100%;display:flex;align-items:center;gap:.7rem;padding:.2rem .15rem .2rem 0;border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;color:var(--ink);transition:background .18s ease;-webkit-tap-highlight-color:transparent}.menus-menu-dish:hover,.menus-menu-dish:active{background:#fff8f38c}.menus-menu-dish:focus-visible{outline:2px solid var(--blush-deep);outline-offset:2px}.menus-menu-dish-photo,.menus-menu-dish-photo-fallback{width:4.25rem;height:4.25rem;border-radius:12px;object-fit:cover;flex-shrink:0;box-shadow:0 2px 10px #4a342e1f}.menus-menu-dish-photo-fallback{background:linear-gradient(135deg,var(--peach),var(--gingham))}.menus-menu-dish-copy{display:flex;flex-direction:column;gap:.12rem;min-width:0;flex:1}.menus-menu-dish-title{font-family:var(--serif);font-size:1.18rem;font-weight:600;line-height:1.2;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menus-menu-dish-meta{font-family:var(--sans);font-size:.78rem;color:var(--ink-soft)}.menus-menu-dish-chevron{flex-shrink:0;font-family:var(--serif);font-size:1.35rem;line-height:1;color:var(--blush);padding-right:.15rem;transition:color .18s ease,transform .18s ease}.menus-menu-dish:hover .menus-menu-dish-chevron{color:var(--blush-deep);transform:translate(2px)}.menus-footnote a{color:var(--blush-deep);text-decoration:underline;text-underline-offset:.15em}.menus-footnote a:hover{color:var(--ink)}.menus-status{text-align:center;color:var(--ink-soft);font-family:var(--hand);font-size:1.15rem;margin:1rem 0}.menus-status--ok{color:var(--ink)}.menus-ai-bar{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin:.35rem auto .15rem;max-width:28rem;text-align:center}.menus-ai-bar--plan{margin:.85rem 0 .25rem;align-items:flex-start;text-align:left;max-width:none}.menus-ai-btn:disabled{opacity:.65;cursor:wait}.menus-ai-hint{margin:0;font-family:var(--hand);font-size:.98rem;color:var(--ink-soft);line-height:1.25}.menus-week-board{display:grid;grid-template-columns:repeat(7,minmax(8rem,1fr));gap:.5rem;overflow-x:auto;padding-bottom:.45rem;scroll-snap-type:x proximity}.menus-day-col{scroll-snap-align:start;min-width:8rem;border:1px solid rgba(232,210,214,.85);border-radius:14px;background:#fff8f3e0;padding:.5rem .45rem .55rem;box-shadow:0 2px 8px #4a342e0a}.menus-day-col--browse{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.menus-day-col--browse:hover{transform:translateY(-1px);box-shadow:0 6px 14px #4a342e14;border-color:#d4849673}.menus-day-col--browse:focus-visible{outline:2px solid var(--blush-deep);outline-offset:2px}.menus-day-col.is-today{position:relative;border-color:var(--blush-deep);background:#fff2f4f2;box-shadow:0 0 0 1px #e8a4b059,0 4px 12px #d4849624}.menus-day-col.is-today .menus-day-name{color:var(--blush-deep)}.menus-day-col.is-today .menus-day-num{color:var(--ink);font-weight:600}.menus-day-head{margin-bottom:.3rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding-bottom:.35rem;border-bottom:1px solid rgba(232,210,214,.7)}.menus-today-badge{display:inline-block;font-size:.55rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blush-deep);background:#fff8f3eb;border:1px solid rgba(232,164,176,.5);border-radius:999px;padding:.1rem .4rem;line-height:1.2}.menus-day-name{font-family:var(--sans);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.menus-day-num{font-family:var(--serif);font-size:1.4rem;line-height:1;color:var(--ink)}.menus-slot{margin-top:.3rem;padding-top:.28rem;border-top:1px dashed rgba(232,210,214,.75)}.menus-slot:first-of-type{border-top:none;padding-top:.1rem}.menus-slot--browse{display:flex;flex-direction:column;gap:.2rem}.menus-slot-label{font-family:var(--sans);font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blush-deep)}.menus-slot-empty{font-family:var(--serif);font-size:.95rem;color:var(--muted);padding:.05rem 0;opacity:.7}.menus-week-dish{display:flex;align-items:center;gap:.35rem;min-width:0}.menus-week-dish-thumb,.menus-week-dish-fallback{width:1.85rem;height:1.85rem;border-radius:7px;flex-shrink:0;object-fit:cover}.menus-week-dish-fallback{background:linear-gradient(135deg,var(--peach),var(--gingham))}.menus-week-dish-title{font-family:var(--serif);font-size:.8rem;font-weight:600;line-height:1.2;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menus-footnote{margin:.85rem auto 0;max-width:28rem;text-align:center;font-family:var(--sans);font-size:.82rem;color:var(--ink-soft)}.menus-plan-intro{margin:0 auto .25rem;max-width:36rem;text-align:center;font-family:var(--hand);font-size:1.12rem;color:var(--ink-soft);line-height:1.35}.menus-plan-body{display:flex;flex-direction:column;gap:1rem;max-width:42rem;margin:0 auto;width:100%}.menus-calendar-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;padding:.65rem .5rem .85rem;border-radius:18px;border:1px solid var(--paper-edge);background:linear-gradient(165deg,#fff8f3f5,#f7ebe3e6);box-shadow:0 4px 16px #4a342e0f}.menus-calendar-hint{margin:0;max-width:22rem;text-align:center;font-family:var(--hand);font-size:1.02rem;color:var(--ink-soft);line-height:1.3}.menus-ai-bar--after-range{width:100%;max-width:22rem;margin:.15rem 0 0;align-items:center;text-align:center}.menus-ai-clear{margin-top:.15rem;font-size:.85rem;padding:.2rem .55rem}.menus-daypicker{--rdp-accent-color: var(--blush-deep);--rdp-accent-background-color: rgba(232, 164, 176, .28);--rdp-range_middle-background-color: rgba(232, 164, 176, .16);--rdp-range_start-date-background-color: rgba(232, 164, 176, .42);--rdp-range_end-date-background-color: rgba(232, 164, 176, .42);--rdp-today-color: var(--blush-deep);--rdp-selected-border: 2px solid var(--blush-deep);--rdp-day-height: 2.35rem;--rdp-day-width: 2.35rem;margin:0;font-family:var(--sans);color:var(--ink)}.menus-daypicker .rdp-month_caption{font-family:var(--serif);font-size:1.2rem;font-weight:500}.menus-daypicker .rdp-weekday{font-size:.65rem;font-weight:700;letter-spacing:.08em;color:var(--muted)}.menus-daypicker .rdp-day_button{border-radius:999px;position:relative}.menus-daypicker .menus-day--has-meals .rdp-day_button:after{content:"";position:absolute;bottom:.2rem;left:50%;width:.28rem;height:.28rem;border-radius:999px;background:var(--blush);transform:translate(-50%)}.menus-daypicker .rdp-selected .rdp-day_button,.menus-daypicker .rdp-range_start .rdp-day_button,.menus-daypicker .rdp-range_end .rdp-day_button{background:var(--rdp-accent-background-color);color:var(--ink);font-weight:700}.menus-daypicker .rdp-range_middle .rdp-day_button{background:var(--rdp-range_middle-background-color);border-radius:0;font-weight:600}.menus-daypicker .rdp-range_start .rdp-day_button{border-radius:999px 0 0 999px}.menus-daypicker .rdp-range_end .rdp-day_button{border-radius:0 999px 999px 0}.menus-daypicker .rdp-range_start.rdp-range_end .rdp-day_button{border-radius:999px}.menus-daypicker .menus-day--edit-focus .rdp-day_button{box-shadow:0 0 0 2px var(--blush-deep)}.menus-plan-heading{margin:0;font-family:var(--serif);font-size:clamp(1.5rem,4.5vw,1.9rem);font-weight:500;color:var(--ink)}.menus-plan-heading-script{font-family:var(--script);color:var(--blush-deep);font-size:1.15em}.menus-plan-sub{margin:.25rem 0 .75rem;font-family:var(--hand);font-size:1.1rem;color:var(--ink-soft)}.menus-meal-sections{display:flex;flex-direction:column;gap:.85rem}.menus-meal-section{border:1px solid var(--paper-edge);border-radius:14px;background:#fff8f3e0;padding:.7rem .75rem .8rem}.menus-meal-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.menus-meal-section-title{margin:0;font-family:var(--serif);font-size:1.2rem;font-weight:500;color:var(--ink)}.menus-add-btn{padding:.35rem .75rem;font-size:.78rem}.menus-meal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.menus-meal-empty{font-family:var(--hand);font-size:1.05rem;color:var(--muted);padding:.2rem .1rem}.menus-meal-row{display:flex;align-items:center;gap:.45rem;border-radius:10px;border:1px solid rgba(232,210,214,.75);background:#faf3ecbf;overflow:hidden}.menus-meal-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:.65rem;padding:.4rem .45rem;border:none;background:transparent;cursor:pointer;text-align:left;color:var(--ink)}.menus-meal-thumb,.menus-meal-thumb-fallback{width:2.6rem;height:2.6rem;border-radius:8px;object-fit:cover;flex-shrink:0}.menus-meal-thumb-fallback{background:linear-gradient(135deg,var(--peach),var(--gingham))}.menus-meal-row-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.menus-meal-row-title{font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menus-meal-row-meta{font-size:.7rem;color:var(--muted)}.menus-meal-remove{flex-shrink:0;margin-right:.45rem;padding:.3rem .5rem;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.menus-meal-remove:hover{color:var(--blush-deep);background:#e8a4b02e}@media(max-width:720px){.menus-header{padding:.5rem .6rem}.menus-brand{font-size:1.28rem}.menus-body{padding:.1rem .7rem 1.35rem}.menus-week-board{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(8.5rem,72vw)}.menus-menu-card{padding:1rem .85rem 1.05rem}.menus-menu-dish-photo,.menus-menu-dish-photo-fallback{width:3.85rem;height:3.85rem}.menus-menu-dish-title{font-size:1.12rem}}@media(min-width:900px){.menus-body{padding-left:1.25rem;padding-right:1.25rem}.menus-plan-body{max-width:48rem}.menus-menu-card{max-width:28rem}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shopping-home-cta{border-color:#c9958a80;background:linear-gradient(165deg,#fff8f3f0,#e8c4b87a)}.shopping-page{min-height:0;background:radial-gradient(ellipse 80% 45% at 50% 0%,rgba(255,248,243,.45),transparent 60%),linear-gradient(180deg,rgba(250,243,236,.35),transparent 40%)}.shopping-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-shrink:0;padding:.7rem .9rem;z-index:20}.shopping-header .brand-bow{width:28px;height:28px}.shopping-brand{font-family:var(--script);font-size:1.55rem;color:var(--ink)}.shopping-kicker{margin-top:.15rem;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shopping-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.25rem .9rem 1.75rem;-webkit-overflow-scrolling:touch}.shopping-masthead{text-align:center;margin:.35rem auto 1rem;max-width:26rem}.shopping-masthead-title{margin:0;font-family:var(--serif);font-size:clamp(1.65rem,5.5vw,2.15rem);font-weight:500;line-height:1.15;color:var(--ink)}.shopping-masthead-script{font-family:var(--script);font-size:1.15em;color:var(--blush-deep)}.shopping-masthead-sub{margin:.45rem 0 0;font-size:.88rem;color:var(--ink-soft)}.shopping-week-bar{display:flex;justify-content:center;margin-bottom:.85rem}.shopping-week-btn{display:flex;flex-direction:column;align-items:center;gap:.12rem;width:min(100%,22rem);padding:.65rem 1.1rem .75rem;border:1px solid rgba(212,132,150,.4);border-radius:1.1rem;background:linear-gradient(165deg,#fff8f3f2,#f3c4b86b);color:var(--ink);cursor:pointer;box-shadow:0 4px 14px #4a342e12}.shopping-week-btn:disabled{opacity:.65;cursor:wait}.shopping-week-btn-label{font-family:var(--hand);font-size:1.2rem;line-height:1.1;color:var(--blush-deep)}.shopping-week-btn-sub{font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.shopping-add{display:grid;grid-template-columns:1fr minmax(3.5rem,4.5rem) auto;gap:.4rem;align-items:stretch;max-width:28rem;margin:0 auto .85rem}.shopping-add-field input{width:100%;height:100%;min-height:2.55rem;padding:.45rem .7rem;border:1px solid var(--paper-edge);border-radius:.75rem;background:#fff8f3e6;color:var(--ink);font-family:var(--sans);font-size:.95rem}.shopping-add-field input:focus{outline:2px solid rgba(212,132,150,.45);outline-offset:1px}.shopping-add-btn{min-height:2.55rem;padding-left:.95rem;padding-right:.95rem}.shopping-status{text-align:center;font-size:.88rem;color:var(--ink-soft);margin:.35rem 0 .75rem}.shopping-status--ok{color:var(--blush-deep)}.shopping-status--err{color:#9a3d4a}.shopping-empty{text-align:center;max-width:22rem;margin:1.5rem auto;padding:1.25rem 1rem}.shopping-empty-title{margin:0;font-family:var(--hand);font-size:1.55rem;color:var(--blush-deep)}.shopping-empty-body{margin:.45rem 0 0;font-size:.92rem;line-height:1.45;color:var(--ink-soft)}.shopping-groups{display:flex;flex-direction:column;gap:1.15rem;max-width:28rem;margin:0 auto}.shopping-group-title{margin:0 0 .45rem;font-family:var(--hand);font-size:1.2rem;color:var(--ink-soft);letter-spacing:.01em}.shopping-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.shopping-row{display:flex;align-items:center;gap:.55rem;padding:.55rem .55rem .55rem .45rem;border:1px solid rgba(232,210,214,.85);border-radius:.85rem;background:#fff8f3d1}.shopping-row.is-checked{opacity:.58;background:#f7ebe3a6}.shopping-check{flex-shrink:0;width:1.55rem;height:1.55rem;border-radius:.4rem;border:1.5px solid rgba(212,132,150,.65);background:#fff8f3f2;color:var(--blush-deep);cursor:pointer;display:grid;place-items:center;padding:0}.shopping-check:focus-visible{outline:2px solid rgba(212,132,150,.55);outline-offset:2px}.shopping-check-mark{font-size:.85rem;font-weight:700;line-height:1}.shopping-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.08rem}.shopping-row-name{font-family:var(--serif);font-size:1.05rem;line-height:1.25;color:var(--ink)}.shopping-row.is-checked .shopping-row-name{text-decoration:line-through;text-decoration-color:#d484968c}.shopping-row-qty{font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--ink-soft)}.shopping-remove{flex-shrink:0;width:1.75rem;height:1.75rem;border:none;border-radius:999px;background:transparent;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer}.shopping-remove:hover{color:var(--blush-deep);background:#e8a4b02e}.shopping-footnote{text-align:center;margin:1.5rem auto .5rem;max-width:22rem;font-size:.82rem;color:var(--ink-soft)}.shopping-footnote a{color:var(--blush-deep);text-underline-offset:.15em}.shopping-footnote a:hover{color:var(--terracotta-deep)}@media(min-width:640px){.shopping-header{padding:.85rem 1.25rem}.shopping-brand{font-size:1.7rem}.shopping-body{padding-left:1.25rem;padding-right:1.25rem}}.recipe-cook-bar{margin:0 0 1rem;padding:.55rem 0 .15rem;border-bottom:1px dotted rgba(160,124,66,.35)}.recipe-cook-actions{display:flex;flex-wrap:wrap;gap:.35rem}.recipe-cook-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(160,124,66,.4);background:#fff8f3e6;color:var(--ink-soft);font-family:var(--hand);font-size:.95rem;font-weight:600;line-height:1;padding:.42rem .65rem;border-radius:.45rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,color .15s ease}.recipe-cook-btn:hover:not(:disabled){border-color:#c06e828c;color:var(--ink);background:#fff5f0}.recipe-cook-btn:disabled{opacity:.55;cursor:default}.recipe-cook-btn--primary{background:linear-gradient(160deg,#f7d4c8,#e8a4b0);border-color:#c06e8273;color:var(--ink)}.recipe-cook-btn--toggle.is-on{background:linear-gradient(160deg,#ffe8c8,#f3c4b8);border-color:#c9958aa6;color:var(--terracotta-deep)}.recipe-last-cooked{margin:.45rem 0 0;font-family:var(--hand);font-size:1rem;color:var(--muted)}.recipe-notes{margin-top:.4rem}.recipe-notes-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.recipe-notes-head .section-title{margin-bottom:.35rem}.recipe-notes-status{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.recipe-notes-field{display:block;width:100%;min-height:4.5rem;resize:vertical;margin:0;padding:.55rem .65rem;border:1px solid rgba(160,124,66,.4);border-radius:.45rem;background:#fffcf8eb;color:var(--ink-soft);font-family:var(--serif);font-size:.9rem;line-height:1.45;box-shadow:inset 0 1px 2px #4528180a}.recipe-notes-field:focus{outline:2px solid rgba(212,132,150,.45);outline-offset:1px;border-color:#c06e8280}.recipe-notes-field::placeholder{color:var(--muted);font-style:italic}.cook-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(255,248,243,.72),transparent 60%),linear-gradient(180deg,#faf3ec,#f3d6dc);color:var(--ink);padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.cook-mode-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.85rem 1rem .55rem;border-bottom:1px solid rgba(160,124,66,.28)}.cook-mode-exit{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(160,124,66,.4);background:#fff8f3f2;color:var(--ink-soft);font-family:var(--hand);font-size:1.05rem;font-weight:600;padding:.45rem .7rem;border-radius:.5rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.cook-mode-heading{min-width:0;text-align:center}.cook-mode-kicker{margin:0;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--blush-deep)}.cook-mode-title{margin:.1rem 0 0;font-family:var(--script);font-weight:400;font-size:clamp(1.35rem,5vw,1.9rem);line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cook-mode-progress{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--terracotta);min-width:3.2rem;text-align:right}.cook-mode-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.5rem 1.25rem 1.25rem;display:flex;flex-direction:column;justify-content:center;max-width:40rem;width:100%;margin:0 auto}.cook-mode-step-label{margin:0 0 .75rem;font-family:var(--hand);font-size:1.35rem;color:var(--blush-deep)}.cook-mode-step-text{margin:0;font-family:var(--serif);font-size:clamp(1.45rem,5.5vw,2.05rem);line-height:1.4;color:var(--ink)}.cook-mode-empty{margin:0;font-family:var(--hand);font-size:1.4rem;color:var(--muted);text-align:center}.cook-mode-nav{display:flex;gap:.65rem;padding:.85rem 1rem 1.15rem;border-top:1px solid rgba(160,124,66,.28);max-width:40rem;width:100%;margin:0 auto}.cook-mode-nav-btn{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1.5px solid rgba(160,124,66,.45);background:#fff8f3f2;color:var(--ink);font-family:var(--hand);font-size:1.25rem;font-weight:600;padding:.85rem .75rem;border-radius:.65rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.cook-mode-nav-btn:disabled{opacity:.4;cursor:default}.cook-mode-nav-btn--primary{background:linear-gradient(160deg,#f7d4c8,#e8a4b0);border-color:#c06e8280}.book-zone[data-book-portrait="1"] .recipe-cook-btn{font-size:.88rem;padding:.38rem .55rem}.book-zone[data-book-portrait="1"] .recipe-notes-field{font-size:.84rem}.recipe-print{display:none}@media print{@page{margin:1.4cm}html,body{height:auto!important;overflow:visible!important;background:#fff8f3!important;background-image:none!important;color:#4a342e!important}body *{visibility:hidden!important}.recipe-print,.recipe-print *{visibility:visible!important}.recipe-print{display:block!important;position:absolute;left:0;top:0;width:100%;padding:0;background:#fff8f3;color:#4a342e;font-family:Cormorant Garamond,Georgia,serif}.recipe-print-header{text-align:center;border-bottom:1px solid rgba(160,124,66,.45);padding-bottom:.85rem;margin-bottom:1.1rem}.recipe-print-brand{margin:0 0 .35rem;font-family:Parisienne,cursive;font-size:1.6rem;color:#d48496}.recipe-print-title{margin:0;font-family:Parisienne,cursive;font-weight:400;font-size:2.4rem;line-height:1.15;color:#4a342e}.recipe-print-lede{margin:.55rem auto 0;max-width:36rem;font-style:italic;font-size:1.05rem;color:#6b524a}.recipe-print-meta{margin:.4rem 0 0;font-family:Caveat,cursive;font-size:1.15rem;color:#a88990}.recipe-print-section{break-inside:avoid;margin-bottom:1.15rem}.recipe-print-section h2{margin:0 0 .45rem;font-family:Caveat,cursive;font-size:1.55rem;font-weight:600;color:#d48496}.recipe-print-section ul,.recipe-print-section ol{margin:0;padding:0;list-style:none}.recipe-print-section li{margin:0;padding:.28rem 0;border-top:1px dotted rgba(160,124,66,.4);font-size:1rem;line-height:1.45;color:#6b524a}.recipe-print-section li:first-child{border-top:none}.recipe-print-section ol li{display:grid;grid-template-columns:2.1rem 1fr;gap:.4rem;border-top:none;padding:.4rem 0}.recipe-print-step-num{font-style:italic;color:#d48496}.recipe-print-notes{margin:0;white-space:pre-wrap;font-style:italic;font-size:1.02rem;line-height:1.5;color:#6b524a}.recipe-print-footer{margin-top:1.6rem;padding-top:.7rem;border-top:1px solid rgba(160,124,66,.35);text-align:center;font-family:Caveat,cursive;font-size:1.15rem;color:#a88990}.cook-mode{display:none!important}}.kitchen-ai{display:flex;flex-direction:column;gap:1rem;margin:.85rem 0 1.1rem;padding:.85rem .9rem;border-radius:14px;background:linear-gradient(160deg,#fff8f0b8,#f4e4d673);border:1px solid rgba(160,124,66,.18)}.kitchen-ai--book{font-size:.92rem}.kitchen-ai--form{margin-top:.85rem}.kitchen-ai-block+.kitchen-ai-block{padding-top:.85rem;border-top:1px dashed rgba(160,124,66,.28)}.kitchen-ai-title{margin:0;font-family:var(--serif);font-size:1.05rem;font-weight:500;color:var(--ink)}.kitchen-ai-hint{margin:.2rem 0 .55rem;font-size:.78rem;line-height:1.4;color:var(--muted)}.kitchen-ai-scale-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.45rem .55rem;margin-bottom:.55rem}.kitchen-ai-field{display:flex;flex-direction:column;gap:.2rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.kitchen-ai-field--block{width:100%;margin-bottom:.45rem}.kitchen-ai-field input,.kitchen-ai-field textarea{font:inherit;font-size:.92rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink);padding:.4rem .55rem;border-radius:10px;border:1px solid rgba(160,124,66,.28);background:#ffffffa6;min-width:4.2rem;width:100%;resize:vertical}.kitchen-ai-arrow{align-self:center;padding-bottom:.35rem;color:var(--muted)}.kitchen-ai-presets{display:flex;flex-wrap:wrap;gap:.3rem;margin-left:auto}.kitchen-ai-chip,.menus-ai-preset-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(160,124,66,.28);background:#ffffff8c;color:var(--ink);font:inherit;font-size:.78rem;padding:.28rem .65rem;border-radius:999px;cursor:pointer}.kitchen-ai-chip.is-active,.menus-ai-preset-chip.is-active{background:#e8a4b059;border-color:#c8788c8c;color:var(--blush-deep, #b85a6e)}.kitchen-ai-go{width:100%}.kitchen-ai-status{margin:.45rem 0 0;font-size:.8rem;color:var(--muted);line-height:1.35}.kitchen-ai-suggestions{list-style:none;margin:.55rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.kitchen-ai-suggestion{width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(160,124,66,.2);background:#ffffff8c;border-radius:12px;padding:.55rem .7rem;cursor:pointer;display:grid;gap:.15rem}.kitchen-ai-suggestion:hover{border-color:#c8788c73}.kitchen-ai-suggestion-main{color:var(--ink);font-size:.92rem}.kitchen-ai-suggestion-meta{font-size:.75rem;color:var(--muted)}.kitchen-ai-suggestion-apply{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blush-deep, #b85a6e)}.section-title-meta{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--muted)}.menus-ai-presets{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:.35rem}.stats-page{min-height:100%;background:radial-gradient(ellipse at 20% 0%,rgba(255,230,220,.55),transparent 55%),radial-gradient(ellipse at 90% 20%,rgba(240,220,200,.4),transparent 50%),linear-gradient(180deg,#f8f1e8,#efe4d6)}.stats-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem}.stats-brand{font-family:var(--serif);font-size:1.15rem;color:var(--ink)}.stats-kicker{margin:.15rem 0 0;font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.stats-header-spacer{width:4.5rem}.stats-body{max-width:28rem;margin:0 auto;padding:.5rem 1.25rem 2.5rem}.stats-intro{text-align:center;font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--muted);margin:0 0 1.4rem;line-height:1.45}.stats-status{text-align:center;color:var(--muted);font-size:.9rem}.stats-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.stats-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;padding:1.1rem 1rem;border-radius:16px;background:#ffffff6b;border:1px solid rgba(160,124,66,.14)}.stats-item-value{font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--ink)}.stats-item-label{font-size:.88rem;color:var(--muted)}.stats-item-link,.stats-item-recipe{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;color:var(--blush-deep, #b85a6e);text-decoration:underline;text-underline-offset:.15em;cursor:pointer;margin-top:.15rem}.stats-item-eyebrow{font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.stats-item-recipe{font-family:var(--serif);font-size:1.35rem;font-style:italic;text-decoration:none;color:var(--ink)}.stats-item-recipe:hover{color:var(--blush-deep, #b85a6e)}.home-soft-strip{display:flex;flex-direction:column;align-items:center;gap:.45rem;margin:.85rem 0 .15rem;max-width:22rem;width:100%;padding:0 .75rem}.home-lunch-reminder{display:flex;align-items:stretch;gap:.4rem;width:100%}.home-lunch-main{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(160,124,66,.2);background:linear-gradient(135deg,#fffaf4d9,#ffece4b3);border-radius:14px;padding:.65rem .85rem;text-align:left;cursor:pointer}.home-lunch-label{display:block;font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.home-lunch-title{display:block;margin-top:.15rem;font-family:var(--serif);font-size:1.05rem;font-style:italic;color:var(--ink);line-height:1.25}.home-lunch-bell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(160,124,66,.22);background:#ffffff80;border-radius:14px;padding:.4rem .55rem;font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--muted);cursor:pointer;white-space:nowrap}.home-lunch-bell.is-on{background:#e8a4b04d;color:var(--blush-deep, #b85a6e);border-color:#c8788c73}.home-lunch-hint{margin:0;font-size:.72rem;color:var(--muted);text-align:center;line-height:1.35}.home-soft-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem .45rem;margin:0;font-size:.75rem;color:var(--muted)}.home-soft-stats-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;font:inherit;color:var(--blush-deep, #b85a6e);text-decoration:underline;text-underline-offset:.12em;cursor:pointer;padding:0}.auth-gate-loading{height:100%;display:grid;place-items:center;font-family:var(--serif);font-size:1.25rem;color:var(--ink-soft)}.login-page{position:relative;height:100%;min-height:0;display:grid;place-items:center;padding:1.5rem;overflow:auto}.login-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 70% 45% at 50% 15%,rgba(255,248,243,.65),transparent 60%),linear-gradient(180deg,#faf3ec59,#f3d6dc26)}.login-card{position:relative;z-index:1;width:min(100%,22rem);display:flex;flex-direction:column;align-items:stretch;gap:.55rem;padding:1.75rem 1.5rem 1.6rem;background:#fff8f3eb;border:1px solid rgba(212,132,150,.22);border-radius:18px;box-shadow:0 18px 40px #4a342e14;text-align:center}.login-bow{margin:0 auto .15rem;display:block}.login-brand{margin:0;font-family:var(--script);font-size:clamp(2.4rem,8vw,3rem);line-height:1;color:var(--ink)}.login-title{margin:.35rem 0 0;font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--ink-soft)}.login-lede{margin:0 0 .75rem;font-size:.88rem;line-height:1.45;color:var(--muted)}.login-label{align-self:flex-start;font-size:.75rem;font-weight:650;letter-spacing:.02em;color:var(--ink-soft)}.login-input{width:100%;border:1px solid rgba(212,132,150,.35);border-radius:12px;background:#fff;padding:.75rem .9rem;font-size:1rem;color:var(--ink)}.login-input:focus{outline:2px solid rgba(232,164,176,.55);outline-offset:1px}.login-error{margin:0;font-size:.82rem;color:var(--blush-deep)}.login-submit{margin-top:.35rem}
