:root{--bg:#faf6f1;--surface:#fff;--ink:#1d1613;--ink-muted:#6f6560;--line:#ece4dc;--accent:#c4513d;--accent-hover:#ad4433;--accent-ink:#fff;--accent-soft:#f7e6e0;--sage-soft:#e9eee2;--sage:#4f6b46;--danger:#b3261e;--danger-soft:#fbe9e7;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-sm:12px;--radius:18px;--radius-lg:24px;--radius-pill:999px;--shadow:0 1px 2px #3c1e140a, 0 8px 24px #3c1e140f;--gutter:20px;--content-max:1200px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}@media (width>=768px){:root{--gutter:32px}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}h1,h2,h3,p{margin:0}a{color:var(--accent);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.display{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(2rem,6vw,2.75rem);font-weight:700;line-height:1.1}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:.8125rem;font-weight:500}.muted{color:var(--ink-muted)}.page{max-width:var(--content-max);padding:calc(env(safe-area-inset-top) + 32px) var(--gutter) calc(env(safe-area-inset-bottom) + 32px);justify-items:start;gap:12px;margin:0 auto;display:grid}.btn{border-radius:var(--radius-pill);min-height:48px;font:600 1rem/1 var(--font-body);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 22px;text-decoration:none;transition:background-color .15s,transform .1s;display:inline-flex}.btn:hover{text-decoration:none}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-quiet{background:var(--accent-soft);color:var(--accent)}.page-loader{place-items:center;min-height:100dvh;display:grid}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:.875rem;font-weight:500}.field-control{position:relative}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:52px;color:var(--ink);font:400 1rem var(--font-body);padding:0 16px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-control:has(.field-toggle) input{padding-right:72px}.field-toggle{border-radius:var(--radius-sm);height:40px;color:var(--ink-muted);font:500 .875rem var(--font-body);cursor:pointer;background:0 0;border:0;margin:auto 0;padding:0 12px;position:absolute;inset:0 6px 0 auto}.field-toggle:hover{color:var(--ink)}.field-hint{color:var(--ink-muted);font-size:.8125rem}.form-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);padding:12px 14px;font-size:.9375rem}.field textarea{resize:vertical;min-height:120px;padding:14px 16px;line-height:1.55}.field-label-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.optional{color:var(--ink-muted);font-weight:400}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn-sm{min-height:40px;padding:0 18px;font-size:.9375rem}.btn-danger-quiet{color:var(--danger);background:0 0}.btn-danger-quiet:hover:not(:disabled){background:var(--danger-soft)}.icon-btn{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;text-decoration:none;display:inline-grid}.icon-btn:hover{background:var(--accent-soft);text-decoration:none}.section-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;line-height:1.2}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-height:36px;color:var(--ink);font:500 .875rem var(--font-body);cursor:pointer;padding:0 14px}.chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip-static{background:var(--accent-soft);min-height:30px;color:var(--accent);cursor:default;border-color:#0000;align-items:center;display:inline-flex}.group+.group{margin-top:20px}.group-title{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:16px 0 4px;font-size:.8125rem;font-weight:600}.ingredient-list{margin:12px 0 0;padding:0;list-style:none}.ingredient{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.ingredient strong{font-weight:600}.ingredient.is-checked>span:last-child{color:var(--ink-muted);text-decoration:line-through}.checkbox{color:#fff;border:1.5px solid #cdbfb5;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.ingredient.is-checked .checkbox{background:var(--sage);border-color:var(--sage)}.import-banner{border-radius:var(--radius);background:var(--sage-soft);color:var(--sage);align-items:flex-start;gap:10px;padding:14px 16px;font-size:.9375rem;display:flex}.import-banner strong{color:var(--ink)}.library-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.library-count{font-size:.875rem}.library-count strong{color:var(--ink)}.library-empty{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;gap:10px;padding:28px;display:flex}.home-loading{place-items:center;padding:48px 0;display:grid}.search{align-items:center;display:flex;position:relative}.search-icon{color:var(--ink-muted);pointer-events:none;position:absolute;left:18px}.search input{border-radius:var(--radius);background:var(--surface);width:100%;min-height:56px;box-shadow:var(--shadow);color:var(--ink);font:400 1rem var(--font-body);border:1px solid #0000;padding:0 60px 0 52px}.search input::placeholder{color:#9a8f89}.search input:focus{border-color:var(--accent);outline:none}.search-filter{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--accent);place-items:center;display:grid;position:absolute;right:8px}.search-filter:hover{background:var(--accent-soft)}.tile-icon{border-radius:50%;flex:none;place-items:center;width:46px;height:46px;display:grid}.legal-inline{color:var(--ink-muted);font-size:.8125rem}.legal-inline a{color:inherit;text-underline-offset:2px;text-decoration:underline}.legal-inline a:hover{color:var(--ink)}.logo{font-family:"Montserrat", var(--font-body);letter-spacing:.32em;color:var(--ink);margin:0 -.32em 0 0;font-weight:600;line-height:1;display:inline-block}.logo-md{font-size:clamp(1.75rem,8vw,2.25rem)}.logo-sm{font-size:1.375rem}.logo-lg{font-size:clamp(2.25rem,11vw,3rem)}.auth{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 40px) var(--gutter) calc(env(safe-area-inset-bottom) + 40px);flex-direction:column;align-items:center;display:flex}.auth-brand{color:var(--ink);text-decoration:none}.auth-brand:hover{text-decoration:none}.auth-body{width:100%;max-width:440px;margin-top:32px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:32px 24px;position:relative;overflow:hidden}.auth-card:before{content:"";background:linear-gradient(90deg,#0000,#c4513d8c,#0000);height:2px;position:absolute;inset:0 0 auto}@media (width>=640px){.auth{padding-top:56px}.auth-card{padding:40px 36px}}.auth-header{text-align:center;margin-bottom:28px}.auth-eyebrow{color:var(--accent);margin-bottom:12px}.auth-title{font-family:var(--font-display);font-size:clamp(1.75rem,7vw,2rem);font-weight:700;line-height:1.15}.auth-subtitle{max-width:24rem;color:var(--ink-muted);margin:12px auto 0;font-size:.9375rem;line-height:1.6}.auth-subtitle strong{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.auth-footer{color:var(--ink-muted);text-align:center;margin-top:24px;font-size:.9375rem}.auth-small{color:var(--ink-muted);text-align:center;margin-top:24px;font-size:.8125rem;line-height:1.6}.auth-form{flex-direction:column;gap:20px;display:flex}.auth-form .field label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-size:.75rem;font-weight:600}.field-label-link{font-size:.8125rem;font-weight:500}.field-error{color:var(--danger);font-size:.8125rem}.field input[aria-invalid=true]{border-color:#b3261e99}.field input[aria-invalid=true]:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.btn-lg{width:100%;min-height:54px}.auth-block{width:100%;display:flex}.auth-actions{flex-direction:column;gap:12px;margin-top:24px;display:flex}.auth-actions .auth-small{margin-top:12px}.auth-confirmed{border-radius:var(--radius-sm);background:var(--sage-soft);border:1px solid #4f6b4640;align-items:flex-start;gap:12px;margin-bottom:24px;padding:14px 16px;display:flex}.auth-confirmed-icon{background:var(--sage);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;display:grid}.auth-confirmed-text{flex:1;min-width:0}.auth-confirmed-text p:first-child{font-size:.875rem;font-weight:600}.auth-confirmed-text p:last-child{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-muted);margin-top:2px;font-size:.8125rem;overflow:hidden}.auth-change{color:var(--ink-muted);font:600 .75rem var(--font-body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;flex:none;padding:2px 0}.auth-change:hover{color:var(--ink)}.auth-checked{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);text-align:center;padding:12px 16px}.auth-checked .eyebrow{font-size:.6875rem}.auth-checked-email{font-family:var(--font-display);overflow-wrap:anywhere;margin-top:6px;font-size:1.0625rem}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.link-button:hover{text-decoration:underline}.welcome{--welcome-bg:#f8f8f4;background:var(--welcome-bg);min-height:100dvh;padding:calc(env(safe-area-inset-top) + 8px) 0 0;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;overflow-x:clip}.welcome-preview{aspect-ratio:1080/1264;flex:none;width:min(116%,47.8481dvh);margin-bottom:8px}.welcome-preview video,.welcome-preview img{object-fit:cover;width:100%;height:100%;display:block;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.welcome-preview video{opacity:0;transition:opacity .5s ease-out}.welcome-preview video.is-playing{opacity:1}.welcome-body{width:100%;max-width:440px;padding:16px 24px calc(env(safe-area-inset-bottom) + 40px);text-align:center;flex-direction:column;flex:none;align-items:center;display:flex}.welcome-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(2rem,9.5vw,2.75rem);font-weight:700;line-height:1.12}.welcome-title span{white-space:nowrap;display:block}.welcome-sub{max-width:34ch;color:var(--ink-muted);text-wrap:pretty;margin-top:12px;font-size:1.0625rem;line-height:1.45}.welcome-actions{flex-direction:column;align-items:center;gap:18px;width:100%;margin-top:24px;display:flex}.welcome-cta{width:100%;min-height:58px;font-size:1.125rem}.welcome-signin{font-size:1rem}.welcome-signin a{font-weight:600}.auth-agree{text-align:center;margin-top:-8px;line-height:1.6}@media (height>=800px){.welcome-preview{width:min(116%,51.2658dvh)}}@media (width>=900px){.welcome{padding:40px var(--gutter);flex-direction:row;justify-content:center;align-items:center;gap:56px}.welcome-preview{width:min(42vw,70.0633dvh);margin-bottom:0}.welcome-body{text-align:left;flex:none;align-items:flex-start;width:400px;padding:0}.welcome-title{font-size:3rem}.welcome-actions{align-items:flex-start}}.rise{animation:.6s cubic-bezier(.22,1,.36,1) both rise}.fade{animation:.5s cubic-bezier(.22,1,.36,1) both fade}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes fade{0%{opacity:0}}.sheet{background:0 0;border:0;justify-content:center;align-items:flex-end;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:0;display:flex;overflow:clip}.sheet:not([open]){display:none}.sheet::backdrop{background:#1d161366;animation:.22s ease-out sheet-fade}.sheet-panel{background:var(--bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:560px;padding:8px var(--gutter) calc(env(safe-area-inset-bottom) + 24px);animation:.28s cubic-bezier(.32,.72,0,1) sheet-up}.sheet-grabber{background:var(--line);border-radius:3px;width:40px;height:5px;margin:0 auto 8px}.sheet-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sheet-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700}@media (width>=640px){.sheet{align-items:center}.sheet-panel{border-radius:var(--radius-lg);max-width:480px;padding:20px 24px 24px;animation-name:sheet-pop}.sheet-grabber{display:none}}@keyframes sheet-fade{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-pop{0%{opacity:0;transform:scale(.96)}}.sheet-options{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.sheet-option{border-radius:var(--radius);background:var(--surface);width:100%;box-shadow:var(--shadow);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:14px;padding:14px 16px;display:flex}.sheet-option:hover:not(:disabled){background:#fffdfb;text-decoration:none}.sheet-option:disabled{cursor:default}.sheet-option-icon{border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid}.sheet-option-text{flex-direction:column;flex:1;display:flex}.sheet-option-text strong{font-weight:600}.sheet-option-text span{color:var(--ink-muted);font-size:.875rem}.tone-accent{background:var(--accent-soft);color:var(--accent)}.tone-sage{background:var(--sage-soft);color:var(--sage)}.tone-amber{color:#8a5a1c;background:#f6ead2}.tone-pecan{color:#6e3f2c;background:#efe1d9}.install-help{flex-direction:column;gap:18px;display:flex}.install-intro{align-items:center;gap:14px;display:flex}.install-intro img,.install-card img{box-shadow:0 0 0 1px var(--line);border-radius:22%;flex:none}.install-steps{counter-reset:step;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.install-steps li{counter-increment:step;align-items:baseline;gap:12px;line-height:1.5;display:flex}.install-steps li:before{content:counter(step);background:var(--accent);width:28px;height:28px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:.875rem;font-weight:600;display:grid;transform:translateY(-1px)}.install-share{vertical-align:-4px;color:#007aff}.install-note{color:var(--ink-muted);font-size:.875rem}.install-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:12px 8px 12px 14px;display:flex}.install-card-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.install-card-text strong{font-size:.9375rem;font-weight:600}.install-card-text span{color:var(--ink-muted);font-size:.8125rem}.install-card .btn{flex:none;padding-inline:14px}.install-card-close{width:36px;height:36px;color:var(--ink-muted);flex:none}:root{--nav-clearance:calc(env(safe-area-inset-bottom) + 104px);--sidebar-width:248px}.shell-main{min-height:100dvh;padding-bottom:var(--nav-clearance)}.bottom-bar{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:50;align-items:center;gap:10px;max-width:560px;margin:0 auto;display:flex;position:fixed}.bottom-fade{z-index:-1;height:calc(env(safe-area-inset-bottom) + 12px + 68px + 48px);background:linear-gradient(to top, var(--bg) 0, var(--bg) calc(env(safe-area-inset-bottom) + 12px + 34px), color-mix(in srgb, var(--bg) 0%, transparent) 100%);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav{background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(16px);border-radius:28px;flex:1;grid-template-columns:repeat(4,1fr);align-items:center;height:68px;padding:0 6px;display:grid;box-shadow:0 0 0 1px #3c1e140a,0 2px 10px #3c1e1414}.nav-item{min-width:0;color:var(--ink-muted);white-space:nowrap;flex-direction:column;align-items:center;gap:3px;padding:8px 0;font-size:.75rem;font-weight:500;display:flex;position:relative}.nav-item:hover{color:var(--ink);text-decoration:none}.nav-item.active{color:var(--accent)}.bottom-nav .nav-item.active:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:0}.bottom-nav-add{background:var(--accent);width:64px;height:64px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;transition:transform .12s,background-color .15s;display:grid;box-shadow:0 2px 8px #c4513d59}.bottom-nav-add:hover{background:var(--accent-hover)}.bottom-nav-add:active{transform:scale(.94)}.sidebar{display:none}@media (width>=1024px){:root{--nav-clearance:48px}.bottom-bar{display:none}.shell-main{margin-left:var(--sidebar-width)}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:8px;padding:28px 16px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{margin-bottom:24px;padding:8px 12px 0}.sidebar-add{margin-bottom:20px}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar .nav-item{border-radius:var(--radius-sm);flex-direction:row;gap:12px;padding:12px;font-size:1rem}.sidebar .nav-item:hover{background:var(--bg)}.sidebar .nav-item.active{background:var(--accent-soft)}.sidebar-account{border-radius:var(--radius-sm);color:var(--ink-muted);font:500 .875rem var(--font-body);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;margin-top:auto;padding:10px;display:flex}.sidebar-account span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-account:hover{background:var(--bg);color:var(--ink)}}.avatar{background:var(--surface);width:40px;height:40px;color:var(--ink);box-shadow:var(--shadow);border-radius:50%;flex:none;place-items:center;display:grid}.account{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;padding:16px;display:flex}.account .avatar{width:52px;height:52px;font-size:1.375rem}.account-label{color:var(--ink-muted);font-size:.8125rem}.account-email{word-break:break-all;font-weight:600}.account-signout{width:100%;margin-top:16px}.account .avatar svg{width:26px;height:26px}.account-install{margin-top:12px}.account-legal{text-align:center;margin-top:16px}.cookbook{max-width:var(--content-max);padding:calc(env(safe-area-inset-top) + 28px) var(--gutter) 0;flex-direction:column;gap:16px;margin:0 auto;display:flex}.cookbook-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.cookbook-avatar{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0}.cookbook-avatar .avatar{width:52px;height:52px}.cookbook-avatar .avatar svg{width:26px;height:26px}@media (width>=1024px){.cookbook-avatar{display:none}}.book-pick{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);align-items:center;gap:14px;padding:12px 14px 12px 12px;font-weight:400;transition:transform .15s;display:flex}.book-pick:hover{text-decoration:none;transform:translateY(-2px)}.book-pick-photo{border-radius:var(--radius-sm);object-fit:cover;background:var(--accent-soft);flex:none;width:88px;height:66px;display:block}.book-pick-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.book-pick-text .eyebrow{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem;overflow:hidden}.book-pick-title{font-family:var(--font-display);font-size:1.1875rem;font-weight:700;line-height:1.2}.book-pick-meta{color:var(--ink-muted);font-size:.875rem}.book-pick>svg{color:var(--ink-muted);flex:none}@media (width>=700px){.book-pick-photo{width:128px;height:80px}.book-pick-title{font-size:1.375rem}}.book-hero{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);align-items:center;gap:16px;padding:16px;display:flex}.book-hero-cover{border-radius:6px;flex:none;width:84px;height:auto;box-shadow:0 6px 18px #3c1e1438}.book-hero-text{flex-direction:column;gap:4px;min-width:0;display:flex}.book-hero-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.2}.book-hero-sub{font-size:.9375rem}.book-hero-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}@media (width>=700px){.book-hero{gap:24px;padding:24px}.book-hero-cover{width:120px}.book-hero-title{font-size:1.625rem}}.chapter-chips{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);flex-wrap:nowrap;overflow-x:auto}.chapter-chips::-webkit-scrollbar{display:none}.chapter-chips .chip{flex:none}@media (width>=900px){.chapter-chips{flex-wrap:wrap;margin:0;padding:0;overflow:visible}}.chapter-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=700px){.chapter-grid{grid-template-columns:repeat(3,1fr);gap:16px}}@media (width>=1100px){.chapter-grid{grid-template-columns:repeat(4,1fr)}}.chapter-card{background:var(--surface);border-radius:var(--radius);height:100%;box-shadow:var(--shadow);color:var(--ink);flex-direction:column;font-weight:400;transition:transform .15s;display:flex;overflow:hidden}.chapter-card:hover{text-decoration:none;transform:translateY(-2px)}.chapter-card img{aspect-ratio:615/186;object-fit:cover;background:var(--line);width:100%;display:block}.chapter-card-text{flex-direction:column;gap:2px;padding:12px 14px 14px;display:flex}.chapter-card-text strong{font-weight:600;line-height:1.3}.chapter-card-text span{color:var(--ink-muted);font-size:.8125rem}.book-group{max-width:760px}.book-group .group-title{margin:4px 0 8px}.book-list{background:var(--surface);border-radius:var(--radius);max-width:760px;box-shadow:var(--shadow);margin:0;padding:0 16px;list-style:none}.book-list li+li{border-top:1px solid var(--line)}.book-row{color:var(--ink);align-items:center;gap:12px;padding:10px 0;font-weight:400;display:flex}.book-row:hover{text-decoration:none}.book-row-photo{border-radius:var(--radius-sm);object-fit:cover;background:var(--accent-soft);flex:none;width:56px;height:56px;display:block}.book-row-text{flex-direction:column;flex:1;min-width:0;display:flex}.book-row-title{font-weight:500;line-height:1.3}.book-row-meta{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.book-row>svg{color:var(--ink-muted);flex:none}.book-recipe-cover.recipe-cover{aspect-ratio:615/186;max-height:none}@media (width>=900px){.book-recipe-cover.recipe-cover{max-height:300px}}.book-times{font-size:.9375rem}.recipe-header-actions .form-error{flex-basis:100%}.book-origin-figure{flex-direction:column;margin:12px 0 0;display:flex}.book-origin-figure img{aspect-ratio:394/186;object-fit:cover;border-radius:var(--radius-sm) var(--radius-sm) 0 0;filter:sepia(.18);width:100%;display:block}.book-origin .book-origin-figure blockquote{border-radius:0 0 var(--radius-sm) var(--radius-sm);margin:0}@media (width>=700px){.book-origin-figure{flex-direction:row;align-items:stretch}.book-origin-figure img{aspect-ratio:auto;border-radius:var(--radius-sm) 0 0 var(--radius-sm);width:36%}.book-origin .book-origin-figure blockquote{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:0;flex:1}}.book-pager{grid-template-columns:1fr 1fr;gap:12px;display:grid}.book-pager-link{background:var(--surface);border-radius:var(--radius-sm);min-width:0;box-shadow:var(--shadow);color:var(--ink);align-items:center;gap:8px;padding:12px 14px;font-weight:500;display:flex}.book-pager-link:hover{background:#fffdfb;text-decoration:none}.book-pager-link.is-next{text-align:right;justify-content:flex-end}.book-pager-link>span{flex-direction:column;min-width:0;display:flex}.book-pager-link small{color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.book-pager-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.3;display:-webkit-box;overflow:hidden}.book-pager-link>svg{color:var(--ink-muted);flex:none}
