.library-filters{min-width:0;margin:0 calc(-1 * var(--page-gutter))}.library-filters-track{padding:2px var(--page-gutter) 4px;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--page-gutter), #000 calc(100% - var(--page-gutter) - 40px), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--page-gutter), #000 calc(100% - var(--page-gutter) - 40px), transparent 100%);align-items:center;gap:8px;display:flex;overflow-x:auto}.library-filters-track::-webkit-scrollbar{display:none}.library-filters-emoji{margin-right:5px;font-size:.9375rem;line-height:1}@media (width>=1024px){.library-filters{margin:0}.library-filters-track{flex-wrap:wrap;padding:0;overflow:visible;-webkit-mask-image:none;mask-image:none}}.library-filters-clear,.library-filters-manage{border-radius:var(--radius-pill);white-space:nowrap;cursor:pointer;min-height:36px;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-size:.875rem;font-weight:650;line-height:1;display:inline-flex}.library-filters-clear{background:var(--color-tomato-soft);color:var(--color-on-tomato-soft);border:1px solid #0000;padding:0 12px 0 10px}.library-filters-clear .num{font-weight:700}@media (hover:hover){.library-filters-clear:hover{border-color:color-mix(in srgb, var(--color-tomato) 35%, transparent)}}.library-filters-manage{border:1px dashed var(--color-border-strong);color:var(--color-ink-muted);background:0 0}@media (hover:hover){.library-filters-manage:hover{background:var(--color-surface);color:var(--color-ink);border-style:solid}}.library-notice{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-small);line-height:var(--text-small-line-height);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 10px 10px 14px;display:flex}.library-notice-warning{border-color:color-mix(in srgb, var(--color-butter) 50%, transparent);background:var(--color-butter-soft);color:var(--color-on-butter-soft)}.library-notice-icon{border-radius:var(--radius-pill);background:var(--color-surface-tint);width:32px;height:32px;color:var(--color-ink-muted);flex-shrink:0;place-items:center;display:grid}.library-notice-warning .library-notice-icon{background:color-mix(in srgb, var(--color-butter) 45%, transparent);color:var(--color-on-butter-soft)}.library-notice-text{flex:200px;min-width:0;font-weight:550}.library-notice-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.library-notice-button,.library-notice-actions .library-notice-link{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);min-height:36px;color:var(--color-ink);font-size:var(--text-small);white-space:nowrap;cursor:pointer;align-items:center;padding:0 14px;font-weight:700;text-decoration:none;display:inline-flex}.library-notice-button:hover,.library-notice-actions .library-notice-link:hover{border-color:var(--color-border-strong);text-decoration:none}.library-quota{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface);align-items:center;gap:12px 14px;padding:12px 12px 12px 18px;display:flex}.library-quota-copy{flex-direction:column;flex:auto;gap:5px;min-width:0;display:flex}.library-quota-title{min-width:0;color:var(--color-ink);font-family:var(--font-family-serif);letter-spacing:-.015em;grid-area:title;font-size:1.0625rem;font-weight:700;line-height:1.2}.library-quota-text{min-width:0;color:var(--color-ink-muted);font-size:var(--text-small);grid-area:text;line-height:1.4}.library-quota-text .num{color:var(--color-ink);font-weight:700}.library-quota-bar{grid-area:bar;max-width:280px;margin-top:2px}.library-quota-action.btn{flex-shrink:0;grid-area:action}.library-quota.is-prompt{border-color:color-mix(in srgb, var(--color-butter) 45%, transparent);background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--color-butter) 22%, transparent) 0, transparent 55%), var(--color-butter-soft);grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"icon title action""icon text action""icon bar action";align-items:center;gap:4px 14px;padding:14px 16px 16px 14px;display:grid}.library-quota.is-prompt .library-quota-text{color:var(--color-on-butter-soft)}.library-quota.is-prompt .library-quota-bar{max-width:360px;margin-top:6px}.library-quota-icon{border-radius:var(--radius-sm);background:var(--color-butter);width:36px;height:36px;color:var(--color-on-butter);grid-area:icon;align-self:start;place-items:center;display:grid}@media (width<=559px){.library-quota.is-prompt{grid-template-areas:"icon title action""text text text""bar bar bar";row-gap:8px}.library-quota.is-prompt .library-quota-title{align-self:center}.library-quota.is-prompt .library-quota-bar{max-width:none;margin-top:0}.library-quota.is-prompt .library-quota-action.btn{padding-inline:14px}}.library-shelf{flex-direction:column;gap:12px;min-width:0;display:flex}.library-shelf-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.library-shelf-heading{flex-direction:column;gap:2px;min-width:0;display:flex}.library-shelf-title{color:var(--color-ink);font-family:var(--font-family-serif);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.3125rem;font-weight:700;line-height:1.2;display:flex}.library-shelf-icon{border-radius:var(--radius-pill);background:var(--color-tomato-soft);width:28px;height:28px;color:var(--color-on-tomato-soft);flex-shrink:0;place-items:center;display:inline-grid}.library-shelf-subtitle{color:var(--color-ink-muted);font-size:var(--text-small);line-height:var(--text-small-line-height)}.library-shelf-tools{flex-shrink:0;align-items:center;gap:8px;display:flex}.library-shelf-action{border-radius:var(--radius-pill);min-height:36px;color:var(--color-primary);font-size:var(--text-small);cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:0;align-items:center;gap:2px;padding:0 4px 0 10px;font-weight:700;display:inline-flex}.library-shelf-action:hover{background:var(--color-state-hover)}.library-shelf-arrows{gap:6px;display:none}@media (hover:hover) and (pointer:fine) and (width>=768px){.library-shelf-arrows{display:inline-flex}}.library-shelf-track{margin:0 calc(-1 * var(--page-gutter));padding:2px var(--page-gutter) 10px;overscroll-behavior-x:contain;scroll-padding-inline:var(--page-gutter);scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:156px;grid-auto-flow:column;gap:12px;list-style:none;display:grid;overflow-x:auto}.library-shelf-track::-webkit-scrollbar{display:none}.library-shelf-track>li{scroll-snap-align:start;min-width:0;display:flex}.library-shelf-track>li>*{flex:auto}@media (width>=640px){.library-shelf-track{grid-auto-columns:208px;gap:16px}}@media (width>=1024px){.library-shelf-track{grid-auto-columns:calc(25% - 12px);margin:0;padding:2px 0 10px;scroll-padding-inline:0}}@media (width>=1280px){.library-shelf-track{grid-auto-columns:calc(20% - 14.4px);gap:18px}}.paste-link{flex-direction:column;gap:8px;width:100%;display:flex}.paste-link-field{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);min-height:60px;box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);align-items:center;gap:8px;padding:6px 6px 6px 48px;display:flex;position:relative}.paste-link-field:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-focus-ring-strong), var(--shadow-sm)}.paste-link-field.has-error{border-color:var(--color-danger)}.paste-link-icon{color:var(--color-tomato);pointer-events:none;position:absolute;left:18px}.paste-link-input{min-width:0;height:46px;color:var(--color-ink);font-size:var(--text-body-lg);background:0 0;border:0;outline:none;flex:auto;padding:0}.paste-link-input::placeholder{color:var(--color-placeholder);opacity:1}.paste-link-button.btn{flex-shrink:0;min-height:46px;padding-inline:18px}.paste-link-error{color:var(--color-danger);font-size:var(--text-small);font-weight:600;line-height:var(--text-small-line-height);align-items:flex-start;gap:6px;padding:0 16px;display:flex}.paste-link-error svg{flex-shrink:0;margin-top:2px}.library-welcome{flex-direction:column;gap:32px;display:flex}.library-welcome-hero{border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--color-butter) 18%, transparent) 0, transparent 40%), radial-gradient(circle at 0% 100%, color-mix(in srgb, var(--color-primary-soft) 70%, transparent) 0, transparent 46%), var(--color-surface);box-shadow:var(--shadow-sm);isolation:isolate;flex-direction:column;gap:20px;padding:28px 20px 22px;display:flex;position:relative;overflow:hidden}.library-welcome-copy{flex-direction:column;gap:10px;display:flex}.library-welcome-eyebrow{color:var(--color-tomato-ink);font-size:var(--text-label);letter-spacing:var(--text-label-letter-spacing);font-weight:800;line-height:var(--text-label-line-height);text-transform:uppercase}.library-welcome-title{color:var(--color-ink);font-family:var(--font-family-serif);letter-spacing:-.035em;font-size:clamp(2.125rem,1.6rem + 2.4vw,3.25rem);font-weight:700;line-height:1.02}.library-welcome-accent{color:var(--color-primary);background-image:linear-gradient(var(--color-butter), var(--color-butter));background-position:0 90%;background-repeat:no-repeat;background-size:100% .13em;font-style:italic;font-weight:600;display:table}.library-welcome-body{max-width:46ch;color:var(--color-ink-muted);font-size:var(--text-body-lg);line-height:var(--text-body-lg-line-height)}.library-welcome-art{display:none}.library-welcome-steps{gap:10px;margin-top:4px;list-style:none;display:grid}.library-welcome-step{align-items:flex-start;gap:12px;display:flex}.library-welcome-step-icon{border-radius:var(--radius-sm);background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-on-primary-soft);flex-shrink:0;place-items:center;display:grid;position:relative}.library-welcome-step-number{border:2px solid var(--color-surface);border-radius:var(--radius-pill);background:var(--color-tomato);width:18px;height:18px;color:var(--color-on-tomato);place-items:center;font-size:.625rem;font-weight:800;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.library-welcome-step-copy{flex-direction:column;gap:1px;min-width:0;padding-top:1px;display:flex}.library-welcome-step-title{color:var(--color-ink);font-size:var(--text-body);font-weight:700;line-height:1.3}.library-welcome-step-body{color:var(--color-ink-muted);font-size:var(--text-small);line-height:var(--text-small-line-height)}@media (width>=768px){.library-welcome-hero{gap:24px;padding:40px 40px 32px}.library-welcome-hero .paste-link{max-width:620px}.library-welcome-art{z-index:-1;width:clamp(180px,24vw,280px);display:block;position:absolute;top:32px;right:40px}.library-welcome-art svg{width:100%;height:auto}.library-welcome-steps{border-top:1px solid var(--color-border-subtle);grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px;padding-top:24px}}.library-welcome-sample-placeholder{pointer-events:none}.library-welcome-sample-photo{aspect-ratio:4/3;border-radius:0}.skeleton.library-welcome-sample-text{clip-path:inset(.22em 0 round 6px);width:88%;display:inline-block}.skeleton.library-welcome-sample-text.is-short{width:56%}.skeleton.library-welcome-sample-text.is-meta{width:48%;display:block}.library-welcome-starter .library-welcome-title{font-size:clamp(1.875rem,1.5rem + 1.8vw,2.75rem)}.library-page.container-wide{max-width:var(--max-width-wide)}.library-content{--library-gap:20px;gap:var(--library-gap);flex-direction:column;min-width:0;display:flex}.library-header.page-header{align-items:center;margin-bottom:0}.library-header .page-header-subtitle{font-size:var(--text-body)}@media (width<=559px){.library-header.page-header{flex-wrap:nowrap;gap:12px}.library-header .page-header-actions{flex-shrink:0}}@media (width<=359px){.library-header.page-header{flex-wrap:wrap}}.library-search-sentinel{height:0;margin-bottom:calc(-1 * var(--library-gap))}.library-search-bar{top:var(--app-sticky-top,0px);z-index:var(--z-sticky);margin:-8px calc(-1 * var(--page-gutter)) -4px;padding:calc(8px + env(safe-area-inset-top,0px)) var(--page-gutter) 8px;transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);background:0 0;border-bottom:1px solid #0000;position:sticky}.library-search-bar.is-stuck{border-bottom-color:var(--color-border-subtle);background:radial-gradient(1100px 520px at 50% -8%, var(--color-canvas) 0%, var(--color-bg) 58%) fixed, var(--color-bg);box-shadow:var(--shadow-xs)}.library-search-bar .search-field-input{text-overflow:ellipsis}@media (width>=1024px){.library-search-bar{padding-top:12px}}.library-search-bar .search-field{box-shadow:var(--shadow-sm)}.library-highlight{background:color-mix(in srgb, var(--color-butter) 45%, transparent);box-shadow:inset 0 -2px 0 var(--color-butter);color:inherit;border-radius:3px;padding:0 1px}:is(.library-page .recipe-card-meta:has(.library-meta-item),.library-welcome .recipe-card-meta:has(.library-meta-item)){height:calc(var(--text-caption-line-height) * 1em);flex-wrap:wrap;column-gap:10px;display:flex;overflow:hidden}.library-meta-item{white-space:nowrap;flex-shrink:0}.library-page .recipe-card-meta:has(.library-meta-sep){column-gap:6px}.library-meta-sep{color:var(--color-ink-subtle);margin-right:6px}.library-meta-icon{color:var(--color-ink-subtle);vertical-align:-2px;margin-right:4px}.library-results{flex-direction:column;gap:14px;min-width:0;display:flex}.library-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.library-section-title{white-space:nowrap;min-width:0;color:var(--color-ink);font-family:var(--font-family-serif);letter-spacing:-.02em;align-items:center;gap:8px;font-size:1.3125rem;font-weight:700;line-height:1.2;display:flex}.library-section-count{border-radius:var(--radius-pill);background:var(--color-surface-tint);color:var(--color-ink-muted);font-family:var(--font-family-sans);letter-spacing:0;padding:3px 8px;font-size:.75rem;font-weight:750;line-height:1.2}.library-results-count{min-width:0;color:var(--color-ink-muted);font-size:var(--text-small);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.library-results-count .num{color:var(--color-ink);font-weight:750}.library-toolbar-tools{flex-shrink:0;align-items:center;gap:8px;display:flex}.library-sort-button.btn{min-height:36px;font-size:var(--text-small);gap:6px;padding-inline:12px 10px}.library-sort-label-short{display:none}@media (width<=559px){.library-toolbar{flex-wrap:wrap;row-gap:8px}.library-toolbar-tools{margin-left:auto}.library-sort-label{display:none}.library-sort-label-short{display:inline}.library-sort-button.btn{gap:2px;padding-inline:12px 8px}.library-sort-button.btn .btn-icon:not(.btn-icon-trailing){display:none}}.library-view-toggle{border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);background:var(--color-surface-sunken);gap:2px;padding:2px;display:inline-flex}.library-view-toggle .icon-btn.is-pressed{--icon-btn-bg:var(--color-surface-raised);--icon-btn-bg-hover:var(--color-surface-raised);--icon-btn-fg:var(--color-ink);--icon-btn-fg-hover:var(--color-ink);box-shadow:var(--shadow-xs)}.library-grid,.library-list{list-style:none;display:grid}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}@media (width>=600px){.library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px}}@media (width>=1280px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}}.library-item{min-width:0;display:flex}.library-item>.recipe-card{flex:auto}.library-grid>.library-item{content-visibility:auto;contain-intrinsic-size:auto 280px}.library-list>.library-item{content-visibility:auto;contain-intrinsic-size:auto 96px}.library-grid .recipe-card-title{font-size:1rem}@media (width>=600px){.library-grid .recipe-card-title{font-size:1.0625rem}}.library-list{gap:0}.library-list>.library-item+.library-item{border-top:1px solid var(--color-border-subtle)}.library-list .recipe-card-list{min-height:96px;padding:12px 8px}.library-list .recipe-card-list .recipe-card-media{width:76px}@media (width>=900px){.library-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}.library-list>.library-item+.library-item{border-top:0}.library-list>.library-item{border-bottom:1px solid var(--color-border-subtle)}}.library-card .recipe-card-meta{margin-top:1px}.library-card-owner{color:var(--color-ink);font-weight:650}.badge.library-media-badge{--badge-bg:color-mix(in srgb, var(--color-surface-raised) 90%, transparent);min-height:22px;box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.02em;padding:3px 8px 3px 7px}.badge-neutral.library-media-badge{--badge-fg:var(--color-ink)}.badge-butter.library-media-badge,.badge-primary.library-media-badge,.badge-danger.library-media-badge{--badge-bg:color-mix(in srgb, var(--color-surface-raised) 90%, transparent)}.badge-butter.library-media-badge{--badge-fg:var(--color-on-butter-soft)}.badge-butter.library-media-badge svg{color:var(--color-butter)}.badge-primary.library-media-badge{--badge-fg:var(--color-on-primary-soft)}.badge-danger.library-media-badge{--badge-fg:var(--color-danger)}.recipe-card-grid .library-favorite.icon-btn.is-pressed,.recipe-card-list .library-favorite.icon-btn.is-pressed{--icon-btn-fg:var(--color-tomato);--icon-btn-fg-hover:var(--color-tomato-hover)}.library-favorite.is-pressed svg{animation:library-heart-pop var(--duration-base) var(--ease-spring)}@keyframes library-heart-pop{0%{transform:scale(.7)}60%{transform:scale(1.18)}to{transform:scale(1)}}.library-shelf-card.recipe-card-grid{box-shadow:none}.library-shelf-card .recipe-card-title{-webkit-line-clamp:2;line-clamp:2;font-size:.9375rem}.library-shelf-card .recipe-card-body{padding:10px 12px 12px}@media (width>=640px){.library-shelf-card .recipe-card-title{font-size:1rem}}.library-skeleton .library-skeleton-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);flex-direction:column;display:flex;overflow:hidden}.library-skeleton-image{aspect-ratio:4/3;border-radius:0}.library-skeleton-copy{flex-direction:column;gap:8px;padding:14px;display:flex}.library-skeleton-line{width:85%;height:14px}.library-skeleton-line.is-short{width:50%;height:11px}.library-list.library-skeleton .library-skeleton-card{background:0 0;border:0;border-radius:0;flex-direction:row;align-items:center;gap:14px;padding:12px 8px}.library-list.library-skeleton .library-skeleton-image{aspect-ratio:1;border-radius:var(--radius-md);flex-shrink:0;width:76px}.library-list.library-skeleton .library-skeleton-copy{flex:auto;padding:0}.library-family-perks{flex-direction:column;gap:10px;list-style:none;display:flex}.library-family-perks li{color:var(--color-ink);font-size:var(--text-body);padding-left:28px;line-height:1.45;position:relative}.library-family-perks li:before{border-radius:var(--radius-pill);background:var(--color-primary-soft);width:18px;height:18px;color:var(--color-on-primary-soft);content:"✓";place-items:center;font-size:.6875rem;font-weight:800;display:grid;position:absolute;top:3px;left:0}@media (prefers-reduced-motion:reduce){.library-favorite.is-pressed svg{animation:none}}.library-page .recipe-image.is-fallback{background:radial-gradient(circle at 28% 18%, color-mix(in srgb, var(--color-butter) 22%, transparent) 0, transparent 55%), var(--color-monogram-bg)}.library-page .recipe-image.is-fallback:before{aspect-ratio:1;border:1.5px solid color-mix(in srgb, var(--color-monogram-ink) 16%, transparent);background:color-mix(in srgb, var(--color-surface-raised) 42%, transparent);width:56%;box-shadow:0 0 0 8px color-mix(in srgb, var(--color-surface-raised) 18%, transparent), var(--shadow-sm);content:"";border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.library-page .recipe-image.is-fallback .recipe-image-monogram{font-size:clamp(1.125rem,20cqi,3.25rem);position:relative}.recipe-card-list .recipe-image.is-fallback:before{display:none}.library-page .recipe-card-list .recipe-image.is-fallback .recipe-image-monogram{font-size:1.75rem}.library-family-locked{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-xs)}
