.brand-mark{display:block;flex-shrink:0}.brand-mark-stroke{stroke:var(--color-primary);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.brand-mark-link{stroke-width:2}.brand-mark-leaf{fill:color-mix(in srgb,var(--color-primary) 55%,var(--color-butter-soft))}.icon{display:inline-block;flex-shrink:0;vertical-align:middle;overflow:visible}.app-shell{position:relative;min-height:100vh;min-height:100dvh}.app-main-column{display:flex;flex-direction:column;min-width:0;min-height:100vh;min-height:100dvh}.app-shell-content{flex:1;min-width:0;padding-bottom:calc(var(--app-bottom-inset) + 24px + var(--timer-dock-reserve, 0px));outline:none}.app-shell-tabs:not(.app-shell-has-topbar) .app-shell-content{padding-top:env(safe-area-inset-top,0px)}.app-topbar{position:sticky;top:var(--app-sticky-top, 0px);z-index:var(--z-nav);display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:calc(var(--topbar-height) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0 8px;border-bottom:1px solid transparent;background:transparent;transition:background-color var(--transition-normal),border-color var(--transition-normal)}.app-topbar.is-scrolled{border-bottom-color:var(--color-border);background:var(--color-bar);box-shadow:var(--shadow-topbar)}.app-topbar-back{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-fast),transform var(--transition-fast)}.app-topbar-back:hover{background:var(--color-state-hover)}.app-topbar-back:active{transform:scale(.92)}.app-topbar-title{opacity:0;transform:translateY(4px);transition:opacity var(--transition-normal),transform var(--transition-normal);overflow:hidden;color:var(--color-ink);font-size:1rem;font-weight:700;letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap}.app-topbar.is-scrolled .app-topbar-title{opacity:1;transform:none}.app-topbar-actions,.app-topbar-page-actions{display:flex;align-items:center;gap:4px}.app-topbar-page-actions:empty{display:none}.app-topbar-icon{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-ink);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-fast),transform var(--transition-fast)}.app-topbar-icon:hover{background:var(--color-state-hover)}.app-topbar-icon:active{transform:scale(.92)}@media(max-width:767.98px){.app-shell:has(.recipe-hero) .app-topbar:not(.is-scrolled) .app-topbar-search{background:color-mix(in srgb,var(--color-surface) 86%,transparent);box-shadow:var(--shadow-sm);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}.app-offline-banner{position:fixed;right:0;bottom:calc(var(--app-bottom-inset) + 12px + var(--app-fab-clearance) + var(--timer-dock-reserve, 0px) + var(--timer-dock-lift, 0px));left:0;z-index:calc(var(--z-toast) - 1);display:flex;justify-content:center;padding:0 12px;pointer-events:none}.app-offline-banner-text{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:6px 14px;border:1px solid color-mix(in srgb,var(--color-butter) 55%,transparent);border-radius:var(--radius-pill);background:var(--color-butter-soft);box-shadow:var(--shadow-md);color:var(--color-on-butter-soft);font-size:var(--text-caption);font-weight:650;line-height:1.3;text-align:center;animation:app-offline-banner-in var(--duration-base) var(--ease-out) both}.app-offline-banner.is-online .app-offline-banner-text{border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);background:var(--color-primary-soft);color:var(--color-on-primary-soft)}:root{--app-sticky-top: 0px}@media(min-width:1024px){.app-offline-banner{left:var(--rail-width)}}@keyframes app-offline-banner-in{0%{opacity:0;transform:translateY(12px)}}.app-shell-content h1[tabindex="-1"]:focus{outline:none}.app-shell-content h1[tabindex="-1"]:focus-visible{border-radius:6px;outline:2px solid color-mix(in srgb,var(--color-focus) 55%,transparent);outline-offset:6px}.app-shell>.skip-link:not(:focus){box-shadow:none}.app-shell-content[data-initial-view] .page-enter{animation:none}.app-nav-tabs{position:fixed;right:0;bottom:0;left:0;z-index:var(--z-nav);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-bar);box-shadow:var(--shadow-nav)}.app-nav-tabs .app-nav-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:560px;height:var(--tabbar-height);margin:0 auto;padding:0 4px;list-style:none}.app-nav-item{display:flex;min-width:0;list-style:none}.app-nav-tabs .app-nav-link{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;color:var(--color-ink-muted);text-decoration:none;-webkit-tap-highlight-color:transparent}@media(hover:hover){.app-nav-tabs .app-nav-link:hover{color:var(--color-ink);text-decoration:none}}.app-nav-tabs .app-nav-link:focus-visible{outline:none}.app-nav-tabs .app-nav-link:focus-visible .app-nav-icon{outline:2px solid var(--color-focus);outline-offset:2px}.app-nav-tabs .app-nav-icon{display:grid;place-items:center;width:58px;height:32px;border-radius:var(--radius-pill);transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--duration-base) var(--ease-spring)}.app-nav-tabs .app-nav-label{max-width:100%;overflow:hidden;font-size:.6875rem;font-weight:650;letter-spacing:.01em;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.app-nav-tabs .app-nav-link.is-active{color:var(--color-ink)}.app-nav-tabs .app-nav-link.is-active .app-nav-icon{background:var(--color-primary-soft);color:var(--color-on-primary-soft)}.app-nav-tabs .app-nav-link.is-active .app-nav-label{font-weight:800}.app-nav-tabs .app-nav-link:active .app-nav-icon{transform:scale(.92)}.app-nav-tabs .app-nav-link-add .app-nav-icon{width:54px;height:54px;margin-top:-24px;border:4px solid var(--color-canvas);border-radius:50%;background:var(--color-tomato);box-shadow:var(--shadow-tomato);color:var(--color-on-tomato)}.app-nav-tabs .app-nav-link-add:hover .app-nav-icon,.app-nav-tabs .app-nav-link-add.is-active .app-nav-icon{background:var(--color-tomato-hover);color:var(--color-on-tomato)}.app-nav-tabs .app-nav-link-add .app-nav-label{margin-top:-1px}.app-nav-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-pill);background:var(--color-butter);color:var(--color-on-butter);font-family:var(--font-family-sans);font-size:.6875rem;font-weight:800;line-height:1}.app-nav-badge.is-attention{background:var(--color-inverse-surface);color:var(--color-on-inverse)}.app-nav-tabs .app-nav-link-add .app-nav-icon{position:relative}.app-nav-tabs .app-nav-badge{position:absolute;top:-6px;right:-8px;box-shadow:0 0 0 2px var(--color-canvas)}.app-nav-rail{position:fixed;top:0;bottom:0;left:0;z-index:var(--z-nav);display:flex;flex-direction:column;gap:6px;width:var(--rail-width);padding:22px 16px 20px;overflow-y:auto;border-right:1px solid var(--color-border-subtle);background:var(--color-canvas)}.app-shell-rail .app-main-column{margin-left:var(--rail-width)}.app-nav-brand{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--color-ink);font-family:var(--font-family-serif);font-size:1.5rem;font-weight:700;letter-spacing:-.025em;line-height:1;text-decoration:none}.app-nav-brand:hover{text-decoration:none}.app-nav-brand-tile{display:grid;place-items:center;width:38px;height:38px;border:1px solid color-mix(in srgb,var(--color-butter) 35%,transparent);border-radius:12px;background:var(--color-butter-soft)}.app-nav-add-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:var(--radius-button);background:var(--color-tomato);box-shadow:var(--shadow-tomato);color:var(--color-on-tomato);font-size:.9375rem;font-weight:750;text-decoration:none;transition:background-color var(--transition-fast),transform var(--transition-fast)}.app-nav-add-button:hover{background:var(--color-tomato-hover);color:var(--color-on-tomato);text-decoration:none;transform:translateY(-1px)}.app-nav-add-button:active{transform:scale(.98)}.app-nav-add-button .app-nav-badge{margin-left:2px}.app-nav-search{display:flex;align-items:center;gap:10px;min-height:44px;margin:6px 0 14px;padding:0 10px 0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink-muted);font-size:.875rem;text-align:left;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.app-nav-search:hover{border-color:var(--color-border-strong);color:var(--color-ink)}.app-nav-search-label{flex:1}.app-nav-search-kbd{padding:2px 6px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-canvas);color:var(--color-ink-muted);font-family:var(--font-family-sans);font-size:.6875rem;font-weight:650}.app-nav-rail .app-nav-list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.app-nav-rail .app-nav-link{display:flex;flex:1;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:var(--radius-sm);color:var(--color-ink-muted);font-size:.9375rem;font-weight:650;text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.app-nav-rail .app-nav-link:hover{background:var(--color-state-hover);color:var(--color-ink);text-decoration:none}.app-nav-rail .app-nav-link.is-active{background:var(--color-primary-soft);color:var(--color-on-primary-soft);font-weight:750}.app-nav-rail .app-nav-icon{display:grid;place-items:center}.app-nav-shortcut{display:inline-flex;gap:3px;margin-left:auto;opacity:0;transition:opacity var(--transition-fast)}.app-nav-shortcut kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-ink-muted);font-family:var(--font-family-sans);font-size:.6875rem;font-weight:650;line-height:1}.app-nav-rail .app-nav-link:hover .app-nav-shortcut,.app-nav-rail .app-nav-link:focus-visible .app-nav-shortcut{opacity:1}.app-nav-rail .app-nav-link.is-active .app-nav-shortcut kbd{border-color:color-mix(in srgb,var(--color-on-primary-soft) 22%,transparent);background:color-mix(in srgb,var(--color-surface) 70%,transparent)}.app-nav-rail .app-nav-link:focus-visible,.app-nav-footer-link:focus-visible,.app-nav-search:focus-visible,.app-nav-brand:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.app-nav-add-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.app-nav-footer{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding-top:16px;border-top:1px solid var(--color-border-subtle)}.app-nav-footer-link{display:flex;align-items:center;gap:12px;min-height:40px;padding:0 12px;border-radius:var(--radius-sm);color:var(--color-ink-muted);font-size:.875rem;font-weight:600;text-decoration:none}.app-nav-footer-link:hover,.app-nav-footer-link.is-active{background:var(--color-state-hover);color:var(--color-ink);text-decoration:none}.app-shell-rail .app-topbar{padding-left:16px;padding-right:24px}.app-nav-link-save-bounce .app-nav-icon{animation:app-nav-save-bounce .32s var(--ease-spring) both;color:var(--color-primary)}@keyframes app-nav-save-bounce{0%{transform:scale(1)}40%{transform:scale(1.18) translateY(-2px)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.app-nav-link-save-bounce .app-nav-icon{animation:none;transform:none}}@media print{.app-nav,.app-topbar,.app-offline-banner,.skip-link{display:none!important}.app-shell-rail .app-main-column{margin-left:0}.app-shell-content{padding:0}}.btn{--btn-height: 48px;--btn-padding-x: 20px;--btn-font-size: .9375rem;--btn-bg: var(--color-primary);--btn-fg: var(--color-on-primary);--btn-border: transparent;--btn-shadow: none;--btn-bg-hover: var(--color-primary-hover);--btn-fg-hover: var(--btn-fg);--btn-border-hover: var(--btn-border);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-height);padding:0 var(--btn-padding-x);border:1px solid var(--btn-border);border-radius:var(--radius-button);background:var(--btn-bg);box-shadow:var(--btn-shadow);color:var(--btn-fg);font-family:var(--font-family-sans);font-size:var(--btn-font-size);font-weight:700;letter-spacing:.005em;line-height:1.1;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}@media(hover:hover){.btn:hover{text-decoration:none}}@media(hover:hover){.btn:hover:not(:disabled){border-color:var(--btn-border-hover);background:var(--btn-bg-hover);color:var(--btn-fg-hover)}}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;box-shadow:none;opacity:.5}.btn-label{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0}.btn-icon{flex-shrink:0}.btn-sm{--btn-height: 36px;--btn-padding-x: 14px;--btn-font-size: .8125rem;gap:6px;border-radius:11px}.btn-sm .btn-label{gap:6px}.btn-lg{--btn-height: 56px;--btn-padding-x: 26px;--btn-font-size: 1rem}.btn-pill{border-radius:var(--radius-pill)}.btn-block{width:100%}.btn-primary{--btn-bg: var(--color-primary);--btn-fg: var(--color-on-primary);--btn-bg-hover: var(--color-primary-hover);--btn-shadow: var(--shadow-primary)}@media(hover:hover){.btn-primary:hover:not(:disabled){transform:translateY(-1px)}}.btn-primary:active:not(:disabled){background:var(--color-primary-pressed);transform:scale(.98)}.btn-accent{--btn-bg: var(--color-tomato);--btn-fg: var(--color-on-tomato);--btn-bg-hover: var(--color-tomato-hover);--btn-shadow: var(--shadow-tomato)}@media(hover:hover){.btn-accent:hover:not(:disabled){transform:translateY(-1px)}}.btn-secondary{--btn-bg: var(--color-surface);--btn-fg: var(--color-ink);--btn-border: var(--color-border);--btn-bg-hover: var(--color-surface-raised);--btn-border-hover: var(--color-border-strong);--btn-shadow: var(--shadow-xs)}.btn-tonal{--btn-bg: var(--color-primary-soft);--btn-fg: var(--color-on-primary-soft);--btn-bg-hover: var(--color-primary-soft-hover)}.btn-outline{--btn-bg: transparent;--btn-fg: var(--color-primary);--btn-border: var(--color-border);--btn-bg-hover: var(--color-state-hover);--btn-border-hover: var(--color-border-strong)}.btn-ghost{--btn-bg: transparent;--btn-fg: var(--color-primary);--btn-bg-hover: var(--color-state-hover);--btn-padding-x: 14px}.btn-danger{--btn-bg: var(--color-danger-soft);--btn-fg: var(--color-on-danger-soft);--btn-bg-hover: var(--color-danger-soft-hover)}.btn-outline-danger{--btn-bg: transparent;--btn-fg: var(--color-danger);--btn-border: color-mix(in srgb, var(--color-danger) 30%, transparent);--btn-bg-hover: var(--color-danger-soft);--btn-border-hover: color-mix(in srgb, var(--color-danger) 45%, transparent)}.btn-loading{pointer-events:none}.btn-loading:disabled{opacity:1}.btn-spinner-wrapper{position:absolute;top:50%;left:50%;display:inline-flex;transform:translate(-50%,-50%)}.btn-text-hidden{visibility:hidden}.app-error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:50vh;padding:64px 24px;text-align:center}.app-error-boundary-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:4px;border-radius:var(--radius-pill);background:var(--color-tomato-soft);color:var(--color-on-tomato-soft);font-size:28px;line-height:1}.app-error-boundary-title{margin:0;color:var(--color-ink);font-family:var(--font-family-serif);font-size:var(--text-headline);font-weight:700;letter-spacing:var(--text-headline-letter-spacing);line-height:1.1}.app-error-boundary-message{max-width:38ch;margin:0;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.55}.app-error-boundary-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:12px}.toast-region{position:fixed;right:0;bottom:calc(var(--app-bottom-inset) + 12px + var(--timer-dock-reserve, 0px));left:0;z-index:var(--z-toast);display:flex;flex-direction:column-reverse;align-items:center;gap:8px;padding:0 12px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;width:min(100%,440px);min-height:52px;padding:8px 8px 8px 16px;border-radius:var(--radius-md);background:var(--color-inverse-surface);box-shadow:var(--shadow-lg);color:var(--color-on-inverse);font-size:var(--text-small);font-weight:550;line-height:1.35;pointer-events:auto;animation:toast-in var(--duration-slow) var(--ease-out) both}.toast-icon{flex-shrink:0}.toast-success .toast-icon{color:var(--color-primary-soft)}.toast-danger .toast-icon{color:var(--color-tomato-soft)}.toast-message{flex:1 1 auto;min-width:0;padding:6px 0}.toast-action{flex-shrink:0;min-height:36px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--color-inverse-primary);font-size:var(--text-small);font-weight:800;cursor:pointer}.toast-action{display:inline-flex;align-items:center;gap:8px}.toast-action:hover{background:color-mix(in srgb,var(--color-on-inverse) 12%,transparent)}.toast-action-kbd{display:none;padding:1px 5px;border:1px solid color-mix(in srgb,var(--color-on-inverse) 30%,transparent);border-radius:5px;color:color-mix(in srgb,var(--color-on-inverse) 80%,transparent);font-family:var(--font-family-sans);font-size:.6875rem;font-weight:700}@media(hover:hover)and (pointer:fine){.toast-action-kbd{display:inline-block}}.toast-close{display:grid;flex-shrink:0;place-items:center;width:32px;height:32px;border:0;border-radius:var(--radius-pill);background:transparent;color:color-mix(in srgb,var(--color-on-inverse) 72%,transparent);cursor:pointer}.toast-close:hover{background:color-mix(in srgb,var(--color-on-inverse) 12%,transparent);color:var(--color-on-inverse)}.toast :focus-visible{outline-color:var(--color-inverse-primary)}@media(min-width:1024px){.toast-region{left:var(--rail-width);bottom:24px}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:56px 24px;color:var(--color-primary);text-align:center}.loading-container .spinner{width:28px;height:28px;border-width:3px}.loading-message{margin:0;color:var(--color-ink-muted);font-size:var(--text-small);line-height:var(--text-small-line-height)}.loading-skeleton{width:100%}.loading-skeleton-page-wrap,.loading-skeleton-recipe-wrap{width:100%;max-width:var(--max-width-content);margin:0 auto;padding:24px var(--page-gutter)}.loading-skeleton-page,.loading-skeleton-recipe{display:flex;flex-direction:column;gap:14px}.loading-skeleton-block{width:100%;height:52px;margin:10px 0 6px}.loading-skeleton-hero{width:100%;aspect-ratio:16 / 10;margin-bottom:8px}.loading-skeleton-chips{display:flex;gap:8px;margin:6px 0 12px}.loading-skeleton-list{display:flex;flex-direction:column;gap:16px}.loading-skeleton-row{display:flex;align-items:center;gap:14px}.loading-skeleton-row-copy{display:flex;flex:1;flex-direction:column;gap:10px}.loading-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.loading-skeleton-card{overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface)}.loading-skeleton-card-image{width:100%;aspect-ratio:4 / 3}.loading-skeleton-card-copy{display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px}.skeleton-text-group{display:flex;flex-direction:column;gap:10px}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:24px}.page-header-center{flex-direction:column;align-items:center;text-align:center}.page-header-copy{display:flex;flex-direction:column;gap:8px;min-width:0}.page-header-eyebrow{color:var(--color-tomato-ink);font-size:var(--text-label);font-weight:800;letter-spacing:var(--text-label-letter-spacing);line-height:var(--text-label-line-height);text-transform:uppercase}.page-header-title{color:var(--color-ink);font-family:var(--font-family-serif);font-size:var(--text-headline);font-weight:700;letter-spacing:var(--text-headline-letter-spacing);line-height:var(--text-headline-line-height)}.page-header-lg .page-header-title{font-size:var(--text-display);letter-spacing:var(--text-display-letter-spacing);line-height:var(--text-display-line-height)}.page-header-accent{color:var(--color-primary);font-style:italic;font-weight:600;letter-spacing:-.02em;background-image:linear-gradient(var(--color-butter),var(--color-butter));background-position:0 88%;background-repeat:no-repeat;background-size:100% .14em;padding-right:.04em}.page-header-subtitle{max-width:56ch;color:var(--color-ink-muted);font-size:var(--text-body-lg);line-height:var(--text-body-lg-line-height)}.page-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.route-fallback-cookbook.container-wide{display:flex;flex-direction:column;gap:20px;max-width:var(--max-width-wide)}.route-fallback-header.page-header{align-items:center;margin-bottom:0}.route-fallback-header .page-header-subtitle{font-size:var(--text-body)}.route-fallback-search.skeleton,.route-fallback-tabs.skeleton{border-radius:var(--radius-pill)}.route-fallback-search{height:56px}.route-fallback-tabs{width:176px;height:42px}@media(max-width:559px){.route-fallback-header.page-header{flex-wrap:nowrap;gap:12px}}.route-fallback-cookbook .loading-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}@media(min-width:600px){.route-fallback-cookbook .loading-skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px}}@media(min-width:1280px){.route-fallback-cookbook .loading-skeleton-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}}@font-face{font-display:swap;font-family:Fraunces;font-style:normal;font-weight:600;src:url(/fonts/Fraunces-SemiBold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Fraunces;font-style:normal;font-weight:700;src:url(/fonts/Fraunces-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Fraunces;font-style:italic;font-weight:600;src:url(/fonts/Fraunces-SemiBoldItalic.woff2) format("woff2")}:root{--font-family-serif: "Fraunces", Georgia, Cambria, "Times New Roman", Times, serif;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-display: var(--font-family-serif);--font-ui: var(--font-family-sans);--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-heavy: 800;--text-display: clamp(2.375rem, 1.7rem + 2.6vw, 3.5rem);--text-display-line-height: 1;--text-display-letter-spacing: -.035em;--text-headline: clamp(1.875rem, 1.55rem + 1.2vw, 2.5rem);--text-headline-line-height: 1.05;--text-headline-letter-spacing: -.03em;--text-title: 1.375rem;--text-title-line-height: 1.25;--text-title-letter-spacing: -.015em;--text-title-sm: 1.125rem;--text-title-sm-line-height: 1.3;--text-body-lg: 1.0625rem;--text-body-lg-line-height: 1.55;--text-body: 1rem;--text-body-line-height: 1.5;--text-small: .875rem;--text-small-line-height: 1.43;--text-caption: .8125rem;--text-caption-line-height: 1.38;--text-label: .75rem;--text-label-line-height: 1.33;--text-label-letter-spacing: .08em;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-3);--space-lg: var(--space-4);--space-xl: var(--space-5);--space-xxl: var(--space-6);--space-xxxl: var(--space-8);--max-width-content: 720px;--max-width-grid: 1100px;--max-width-wide: 1240px;--page-gutter: 16px;--topbar-height: 56px;--tabbar-height: 64px;--rail-width: 248px;--app-bottom-inset: calc(var(--tabbar-height) + env(safe-area-inset-bottom, 0px));--app-fab-clearance: 24px;--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 28px;--radius-card: 20px;--radius-button: 14px;--radius-input: 14px;--radius-sheet: 28px;--radius-pill: 9999px;--duration-instant: 90ms;--duration-fast: .15s;--duration-base: .22s;--duration-slow: .28s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--transition-fast: var(--duration-fast) var(--ease-standard);--transition-normal: var(--duration-base) var(--ease-standard);--transition-slow: var(--duration-slow) var(--ease-out);--z-raised: 1;--z-sticky: 10;--z-dropdown: 30;--z-nav: 100;--z-fab: 110;--z-immersive: 200;--z-sheet: 300;--z-dialog: 400;--z-popover: 450;--z-toast: 500;--z-overlay: 600}:root{color-scheme:light;--color-bg: #f4efe7;--color-canvas: #fbf7f0;--color-surface: #fffdf8;--color-surface-raised: #fffefb;--color-surface-sunken: #efe7da;--color-surface-subtle: #f1eadf;--color-surface-tint: #efe7da;--color-ink: #1f211d;--color-ink-muted: #625c53;--color-ink-subtle: #6f675c;--color-ink-inverse: #fffdf8;--color-border: #ddd2c3;--color-border-subtle: #e8dfd2;--color-border-strong: #8a7f6f;--color-primary: #29443b;--color-primary-hover: #1f352e;--color-primary-pressed: #182a24;--color-on-primary: #fffdf8;--color-primary-soft: #dde7df;--color-primary-soft-hover: #cbd9ce;--color-on-primary-soft: #29443b;--color-tomato: #b95233;--color-tomato-hover: #a2462a;--color-on-tomato: #fffdf8;--color-tomato-soft: #f3ddd3;--color-on-tomato-soft: #8e3b22;--color-tomato-ink: #a4462a;--color-butter: #e9bd5a;--color-butter-soft: #f7e9c8;--color-on-butter: #3b2f12;--color-on-butter-soft: #5c4613;--color-success: #2f6b4a;--color-success-soft: #dcebdf;--color-warning: #8a5d0c;--color-warning-soft: #f7e9c8;--color-danger: #a23a2a;--color-danger-hover: #7f2a1e;--color-on-danger: #fffdf8;--color-danger-soft: #f2d8d2;--color-danger-soft-hover: #e8c4bc;--color-on-danger-soft: #8b2e23;--color-focus: #29443b;--color-focus-ring: color-mix(in srgb, var(--color-primary) 10%, transparent);--color-focus-ring-strong: color-mix(in srgb, var(--color-primary) 16%, transparent);--color-state-hover: color-mix(in srgb, var(--color-ink) 5%, transparent);--color-state-pressed: color-mix(in srgb, var(--color-ink) 9%, transparent);--color-selection: color-mix(in srgb, var(--color-butter) 55%, transparent);--color-scrim: rgba(31, 28, 24, .42);--color-overlay: color-mix(in srgb, var(--color-canvas) 96%, transparent);--color-placeholder: var(--color-ink-subtle);--color-skeleton: #ebe3d6;--color-skeleton-shine: #f6f1e8;--color-inverse-surface: #262823;--color-on-inverse: #fffdf8;--color-inverse-primary: #e9bd5a;--color-image-placeholder: #e8e0d2;--color-monogram-bg: var(--color-primary-soft);--color-monogram-ink: var(--color-primary);--color-switch-on: var(--color-primary);--color-switch-thumb: #fffefb;--shadow-color: 93, 86, 75;--shadow-xs: 0 1px 2px rgba(var(--shadow-color), .07);--shadow-sm: 0 1px 2px rgba(var(--shadow-color), .06), 0 4px 12px rgba(var(--shadow-color), .07);--shadow-md: 0 2px 4px rgba(var(--shadow-color), .05), 0 12px 28px rgba(var(--shadow-color), .1);--shadow-lg: 0 2px 6px rgba(var(--shadow-color), .07), 0 22px 60px rgba(var(--shadow-color), .16);--shadow-primary: 0 1px 2px rgba(41, 68, 59, .12), 0 6px 16px rgba(41, 68, 59, .18);--shadow-tomato: 0 1px 2px rgba(185, 82, 51, .22), 0 6px 16px rgba(185, 82, 51, .24);--shadow-nav: 0 -1px 0 var(--color-border-subtle), 0 -8px 28px rgba(var(--shadow-color), .06);--color-accent-rgb: 41, 68, 59;--color-border-rgb: 221, 210, 195;--color-muted-rgb: 98, 92, 83;--color-text-rgb: 31, 33, 29;--color-danger-text-rgb: 139, 46, 35;--color-shadow-rgb: var(--shadow-color)}@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: #1a1816;--color-canvas: #1f1d1a;--color-surface: #24221e;--color-surface-raised: #2c2925;--color-surface-sunken: #151311;--color-surface-subtle: #2a2723;--color-surface-tint: #34302b;--color-ink: #f3ece0;--color-ink-muted: #bcb3a5;--color-ink-subtle: #a39b8e;--color-ink-inverse: #1a1816;--color-border: #3a3631;--color-border-subtle: #2f2c28;--color-border-strong: #807a70;--color-primary: #a9cbb9;--color-primary-hover: #bdd9ca;--color-primary-pressed: #cfe3d7;--color-on-primary: #13241d;--color-primary-soft: #2a3a33;--color-primary-soft-hover: #334740;--color-on-primary-soft: #cfe3d7;--color-tomato: #e0795a;--color-tomato-hover: #ea8c6f;--color-on-tomato: #2a120a;--color-tomato-soft: #3d2620;--color-on-tomato-soft: #f2b9a4;--color-tomato-ink: #e8876b;--color-butter: #e9bd5a;--color-butter-soft: #3a3020;--color-on-butter: #2a200a;--color-on-butter-soft: #f2d387;--color-success: #8fd0a8;--color-success-soft: #22352a;--color-warning: #f0c76e;--color-warning-soft: #3a3020;--color-danger: #f19a86;--color-danger-hover: #f6b2a2;--color-on-danger: #2a100b;--color-danger-soft: #432621;--color-danger-soft-hover: #52302a;--color-on-danger-soft: #f3c9bd;--color-focus: #a9cbb9;--color-state-hover: color-mix(in srgb, var(--color-ink) 7%, transparent);--color-state-pressed: color-mix(in srgb, var(--color-ink) 12%, transparent);--color-selection: color-mix(in srgb, var(--color-butter) 40%, transparent);--color-scrim: rgba(6, 5, 4, .62);--color-overlay: color-mix(in srgb, var(--color-canvas) 96%, transparent);--color-skeleton: #2b2824;--color-skeleton-shine: #36322d;--color-inverse-surface: #f3ece0;--color-on-inverse: #1f211d;--color-inverse-primary: #29443b;--color-image-placeholder: #2c2925;--color-switch-on: #568470;--color-switch-thumb: #f3ece0;--shadow-color: 0, 0, 0;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 14px rgba(0, 0, 0, .28);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3), 0 12px 32px rgba(0, 0, 0, .38);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .35), 0 24px 64px rgba(0, 0, 0, .5);--shadow-primary: 0 1px 2px rgba(0, 0, 0, .35), 0 6px 16px rgba(0, 0, 0, .3);--shadow-tomato: 0 2px 4px rgba(0, 0, 0, .35), 0 10px 24px rgba(0, 0, 0, .35);--shadow-nav: 0 -1px 0 var(--color-border), 0 -8px 28px rgba(0, 0, 0, .3);--color-accent-rgb: 169, 203, 185;--color-border-rgb: 58, 54, 49;--color-muted-rgb: 188, 179, 165;--color-text-rgb: 243, 236, 224;--color-danger-text-rgb: 241, 154, 134}}@media screen{:root[data-theme=dark]{color-scheme:dark;--color-bg: #1a1816;--color-canvas: #1f1d1a;--color-surface: #24221e;--color-surface-raised: #2c2925;--color-surface-sunken: #151311;--color-surface-subtle: #2a2723;--color-surface-tint: #34302b;--color-ink: #f3ece0;--color-ink-muted: #bcb3a5;--color-ink-subtle: #a39b8e;--color-ink-inverse: #1a1816;--color-border: #3a3631;--color-border-subtle: #2f2c28;--color-border-strong: #807a70;--color-primary: #a9cbb9;--color-primary-hover: #bdd9ca;--color-primary-pressed: #cfe3d7;--color-on-primary: #13241d;--color-primary-soft: #2a3a33;--color-primary-soft-hover: #334740;--color-on-primary-soft: #cfe3d7;--color-tomato: #e0795a;--color-tomato-hover: #ea8c6f;--color-on-tomato: #2a120a;--color-tomato-soft: #3d2620;--color-on-tomato-soft: #f2b9a4;--color-tomato-ink: #e8876b;--color-butter: #e9bd5a;--color-butter-soft: #3a3020;--color-on-butter: #2a200a;--color-on-butter-soft: #f2d387;--color-success: #8fd0a8;--color-success-soft: #22352a;--color-warning: #f0c76e;--color-warning-soft: #3a3020;--color-danger: #f19a86;--color-danger-hover: #f6b2a2;--color-on-danger: #2a100b;--color-danger-soft: #432621;--color-danger-soft-hover: #52302a;--color-on-danger-soft: #f3c9bd;--color-focus: #a9cbb9;--color-state-hover: color-mix(in srgb, var(--color-ink) 7%, transparent);--color-state-pressed: color-mix(in srgb, var(--color-ink) 12%, transparent);--color-selection: color-mix(in srgb, var(--color-butter) 40%, transparent);--color-scrim: rgba(6, 5, 4, .62);--color-overlay: color-mix(in srgb, var(--color-canvas) 96%, transparent);--color-skeleton: #2b2824;--color-skeleton-shine: #36322d;--color-inverse-surface: #f3ece0;--color-on-inverse: #1f211d;--color-inverse-primary: #29443b;--color-image-placeholder: #2c2925;--color-switch-on: #568470;--color-switch-thumb: #f3ece0;--shadow-color: 0, 0, 0;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 14px rgba(0, 0, 0, .28);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3), 0 12px 32px rgba(0, 0, 0, .38);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .35), 0 24px 64px rgba(0, 0, 0, .5);--shadow-primary: 0 1px 2px rgba(0, 0, 0, .35), 0 6px 16px rgba(0, 0, 0, .3);--shadow-tomato: 0 2px 4px rgba(0, 0, 0, .35), 0 10px 24px rgba(0, 0, 0, .35);--shadow-nav: 0 -1px 0 var(--color-border), 0 -8px 28px rgba(0, 0, 0, .3);--color-accent-rgb: 169, 203, 185;--color-border-rgb: 58, 54, 49;--color-muted-rgb: 188, 179, 165;--color-text-rgb: 243, 236, 224;--color-danger-text-rgb: 241, 154, 134}}:root{--color-accent: var(--color-primary);--color-accent-hover: var(--color-primary-hover);--color-accent-soft: var(--color-primary-soft);--color-accent-soft-hover: var(--color-primary-soft-hover);--color-accent-border-tint: color-mix(in srgb, var(--color-primary) 22%, transparent);--color-background: var(--color-bg);--color-surface-muted: var(--color-surface-tint);--color-muted: var(--color-ink-muted);--color-text: var(--color-ink);--color-white: var(--color-on-primary);--color-danger-bg: var(--color-danger-soft);--color-danger-bg-hover: var(--color-danger-soft-hover);--color-danger-text: var(--color-on-danger-soft);--color-danger-border-subtle: color-mix(in srgb, var(--color-danger) 14%, transparent);--color-danger-border: color-mix(in srgb, var(--color-danger) 26%, transparent);--color-topbar-border: color-mix(in srgb, var(--color-border) 78%, transparent);--color-bar: var(--color-canvas);--color-divider: color-mix(in srgb, var(--color-ink) 13%, transparent);--color-scan-backdrop: var(--color-scrim);--color-editor-backdrop: var(--color-scrim);--shadow-soft: var(--shadow-sm);--shadow-premium: var(--shadow-md);--shadow-button: var(--shadow-primary);--shadow-topbar: 0 4px 16px rgba(var(--shadow-color), .05)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--color-bg);color:var(--color-ink);scroll-padding-top:calc(var(--topbar-height) + 16px)}html,body{font-family:var(--font-family-sans);font-size:var(--text-body);line-height:var(--text-body-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh;min-height:100dvh;background:radial-gradient(1100px 520px at 50% -8%,var(--color-canvas) 0%,var(--color-bg) 58%) fixed,var(--color-bg);color:var(--color-ink);-webkit-tap-highlight-color:transparent}img,video,canvas{display:block;max-width:100%}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{background:var(--color-selection);color:var(--color-ink)}h1,h2,h3,h4,h5,h6{color:var(--color-ink);font-family:var(--font-family-serif);font-weight:700;letter-spacing:-.01em;line-height:1.2;text-wrap:balance}p{text-wrap:pretty}hr{border:0;border-top:1px solid var(--color-border)}@media(pointer:coarse){textarea{resize:none!important}}@media(min-width:1024px){:root{--app-bottom-inset: 0px;--app-fab-clearance: 0px}}:root[data-tabbar=hidden]{--app-bottom-inset: env(safe-area-inset-bottom, 0px);--app-fab-clearance: 0px}:root{--timer-dock-reserve: 0px}:root[data-timer-dock]{--timer-dock-reserve: calc(var(--timer-dock-height, 0px) + 12px + var(--app-fab-clearance))}.num,.tabular-nums{font-variant-numeric:lining-nums tabular-nums}.serif{font-family:var(--font-family-serif)}.text-muted{color:var(--color-ink-muted)}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);border:0;white-space:nowrap}.accent-word{color:var(--color-primary);font-family:var(--font-family-serif);font-style:italic;font-weight:600}.skip-link{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:12px;z-index:var(--z-overlay);padding:10px 16px;border-radius:var(--radius-sm);background:var(--color-primary);box-shadow:var(--shadow-md);color:var(--color-on-primary);font-weight:700;transform:translateY(-200%);transition:transform var(--transition-fast)}.skip-link:focus,.skip-link:focus-visible{text-decoration:none;transform:translateY(0)}.container{width:100%;max-width:var(--max-width-content);margin:0 auto;padding:24px var(--page-gutter)}.container-wide{width:100%;max-width:var(--max-width-grid);margin:0 auto;padding:24px var(--page-gutter)}@media(min-width:768px){:root{--page-gutter: 24px}}@media(min-width:1024px){:root{--page-gutter: 40px}.container,.container-wide{padding-top:40px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-slide-up{0%{transform:translateY(40px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes sheet-pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}@keyframes skeleton-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.animate-fade-in{animation:fadeIn var(--transition-normal) forwards}.page-enter{animation:pageEnter var(--duration-slow) var(--ease-out) both}.spinner{display:inline-block;width:20px;height:20px;border:2.5px solid color-mix(in srgb,currentColor 22%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.skeleton{display:block;border-radius:var(--radius-xs);background:linear-gradient(100deg,var(--color-skeleton) 30%,var(--color-skeleton-shine) 50%,var(--color-skeleton) 70%) var(--color-skeleton);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}.page-enter,.skeleton{animation:none!important}}@media print{body{background:#fff;color:#000}}
