:root{--color-canvas:#faf8f5;--color-surface:#fff;--color-surface-muted:#f1ede6;--color-border:#e4dfd3;--color-border-strong:#cfc8b8;--color-ink:#2a2820;--color-ink-muted:#6b6656;--color-ink-faint:#948e7c;--color-accent:#985b31;--color-accent-strong:#8a5530;--color-accent-muted:#f3e7da;--color-focus-ring:#7a4a22;--color-status-green:#437044;--color-status-green-bg:#e7efe6;--color-status-yellow:#7a5c00;--color-status-yellow-bg:#fbf1d6;--color-status-orange:#9c4c1e;--color-status-orange-bg:#fbe7d8;--color-status-red:#a33d3d;--color-status-red-bg:#f6e1e1;--elevation-0:none;--elevation-1:0 1px 2px #14120f0f;--elevation-2:0 2px 8px #14120f14;--elevation-3:0 8px 24px #14120f24;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--font-sans:"Inter Variable", system-ui, sans-serif;--font-serif:"Fraunces Variable", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--text-xs:.75rem/1rem;--text-sm:.875rem/1.25rem;--text-base:1rem/1.5rem;--text-md:1.125rem/1.75rem;--text-lg:1.25rem/1.875rem;--text-xl:1.5rem/2rem;--text-2xl:1.875rem/2.25rem;--text-3xl:2.25rem/2.5rem;--text-4xl:3rem/3.25rem;--text-5xl:3.75rem/4rem;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--duration-map:.4s;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-entrance:cubic-bezier(0, 0, .2, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1)}.dark{--color-canvas:#14130f;--color-surface:#1c1a15;--color-surface-muted:#23211b;--color-border:#332f26;--color-border-strong:#47412f;--color-ink:#f1ede6;--color-ink-muted:#b3ac98;--color-ink-faint:#837c68;--color-accent:#d99a6c;--color-accent-strong:#e7b48b;--color-accent-muted:#2b2117;--color-focus-ring:#e7b48b;--color-status-green:#7fb88a;--color-status-green-bg:#1e2a20;--color-status-yellow:#e0b23d;--color-status-yellow-bg:#2e2712;--color-status-orange:#e08a4b;--color-status-orange-bg:#33230f;--color-status-red:#e07272;--color-status-red-bg:#331c1c;--elevation-1:0 1px 0 #ffffff0a inset;--elevation-2:0 1px 0 #ffffff0f inset, 0 4px 16px #0006;--elevation-3:0 1px 0 #ffffff14 inset, 0 12px 32px #00000080}.lp-button{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);border:1px solid #0000;font-weight:600;display:inline-flex}.lp-button:disabled{cursor:not-allowed;opacity:.6}.lp-button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.lp-button--sm{padding:var(--space-2) var(--space-3);font-size:.875rem;line-height:1.25rem}.lp-button--md{padding:var(--space-3) var(--space-4);font-size:1rem;line-height:1.5rem}.lp-button--lg{padding:var(--space-4) var(--space-6);font-size:1.125rem;line-height:1.75rem}.lp-button--primary{background-color:var(--color-accent);color:var(--color-surface)}.lp-button--primary:hover:not(:disabled){background-color:var(--color-accent-strong)}.lp-button--secondary{border-color:var(--color-border-strong);color:var(--color-ink);background-color:#0000}.lp-button--secondary:hover:not(:disabled){background-color:var(--color-surface-muted)}.lp-input-group{gap:var(--space-2);font-family:var(--font-sans);flex-direction:column;display:flex}.lp-input-label{color:var(--color-ink);font-size:.875rem;font-weight:600;line-height:1.25rem}.lp-input{font-family:var(--font-sans);color:var(--color-ink);background-color:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);transition:border-color var(--duration-fast) var(--ease-standard);font-size:1rem;line-height:1.5rem}.lp-input::placeholder{color:var(--color-ink-faint)}.lp-input:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-color:var(--color-focus-ring)}.lp-input--sm{padding:var(--space-1) var(--space-2);font-size:.875rem;line-height:1.25rem}.lp-input--md{padding:var(--space-2) var(--space-3);font-size:1rem;line-height:1.5rem}.lp-input--lg{padding:var(--space-3) var(--space-4);font-size:1.125rem;line-height:1.75rem}.lp-card{gap:var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--elevation-1);font-family:var(--font-sans);flex-direction:column;display:flex}.lp-card__title{color:var(--color-ink);margin:0;font-size:1.25rem;font-weight:600;line-height:1.875rem}.lp-card__body{color:var(--color-ink-muted);margin:0}.lp-dialog-overlay{animation:lp-dialog-fade var(--duration-base) var(--ease-entrance);background-color:#14120f66;position:fixed;inset:0}.lp-dialog-content{gap:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-lg);width:min(90vw,28rem);box-shadow:var(--elevation-3);padding:var(--space-6);font-family:var(--font-sans);animation:lp-dialog-fade var(--duration-base) var(--ease-entrance);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.lp-dialog-content:focus-visible{outline:none}.lp-dialog-title{color:var(--color-ink);margin:0;font-size:1.25rem;font-weight:600;line-height:1.875rem}.lp-dialog-description{color:var(--color-ink-muted);margin:0}.lp-dialog-close{top:var(--space-4);right:var(--space-4);border-radius:var(--radius-full);width:2rem;height:2rem;color:var(--color-ink-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:absolute}.lp-dialog-close:hover{background-color:var(--color-surface-muted);color:var(--color-ink)}.lp-dialog-close:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}@keyframes lp-dialog-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lp-dialog-overlay,.lp-dialog-content{animation:none}}.lp-progress-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.lp-progress-ring--sm{width:2.5rem;height:2.5rem}.lp-progress-ring--md{width:4rem;height:4rem}.lp-progress-ring--lg{width:6rem;height:6rem}.lp-progress-ring__svg{width:100%;height:100%;transform:rotate(-90deg)}.lp-progress-ring__track{fill:none;stroke:var(--color-surface-muted)}.lp-progress-ring__fill{fill:none;stroke:var(--color-accent);stroke-linecap:round;transition:stroke-dashoffset var(--duration-slow) var(--ease-standard)}.lp-progress-ring--indeterminate .lp-progress-ring__fill{animation:lp-progress-ring-pulse 1.4s var(--ease-standard) infinite}.lp-progress-ring__label{font-family:var(--font-sans);color:var(--color-ink);font-size:.75rem;font-weight:600;position:absolute}@keyframes lp-progress-ring-pulse{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.lp-progress-ring__fill{transition:none}.lp-progress-ring--indeterminate .lp-progress-ring__fill{animation:none}}*{box-sizing:border-box}body{background-color:var(--color-canvas);color:var(--color-ink);font-family:var(--font-sans);margin:0}.skip-link{background:var(--color-surface);color:var(--color-ink);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:10;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--space-4);top:var(--space-4);outline:2px solid var(--color-focus-ring);outline-offset:2px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-shell__header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.app-shell__title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:600}.app-shell__main{padding:var(--space-6);flex:1;width:100%;max-width:640px;margin:0 auto}.locale-switcher{gap:var(--space-4);font-size:var(--text-sm);display:flex}.locale-switcher__option{align-items:center;gap:var(--space-1);cursor:pointer;display:inline-flex}.lp-page-heading{font-family:var(--font-serif);font-size:var(--text-2xl);margin-bottom:var(--space-1)}.lp-page-subheading{color:var(--color-ink-muted);margin-top:0;margin-bottom:var(--space-6)}.speaker-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.speaker-list__item .lp-card{padding:0}.speaker-list__link{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);color:inherit;border-radius:var(--radius-md);text-decoration:none;display:flex}.speaker-list__link:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.speaker-list__link:hover{background-color:var(--color-surface-muted)}.speaker-list__label{font-family:var(--font-serif);font-size:var(--text-md)}.speaker-list__meta{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-ink-muted);display:flex}.speaker-list__order{font-family:var(--font-mono)}.lp-badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);align-items:center;font-weight:600;display:inline-flex}.lp-badge--default{background-color:var(--color-surface-muted);color:var(--color-ink-muted)}.lp-badge--custom{background-color:var(--color-accent-muted);color:var(--color-accent-strong)}.eulogy-core-prompt{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-ink);margin:0 0 var(--space-5) 0}.eulogy-back-link{margin-top:var(--space-6);display:inline-block}.eulogy-autosave-status{min-height:1.5em;font-size:var(--text-sm);color:var(--color-ink-muted);margin-top:var(--space-2)}.markdown-editor{gap:var(--space-2);flex-direction:column;display:flex}.markdown-editor__label{font-size:var(--text-sm);color:var(--color-ink);font-weight:600}.markdown-editor__toolbar{align-items:center;gap:var(--space-1);color:var(--color-ink-muted);font-size:var(--text-sm);display:flex}.markdown-editor__toolbar button{border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:inherit;cursor:pointer;background:0 0;border:1px solid #0000}.markdown-editor__toolbar button:hover:not(:disabled){background-color:var(--color-surface-muted)}.markdown-editor__toolbar button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.markdown-editor__toolbar button[aria-pressed=true]{background-color:var(--color-accent-muted);color:var(--color-accent-strong)}.markdown-editor__toolbar-spacer{flex:1}.markdown-editor__textarea{resize:vertical;width:100%;min-height:240px;font-family:var(--font-sans);font-size:var(--text-md);color:var(--color-ink);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);line-height:1.6}.markdown-editor__textarea:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:-2px}.markdown-editor__preview{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:240px;padding:var(--space-4);line-height:1.6}.markdown-editor__preview :is(h2,h3){font-family:var(--font-serif)}.eulogy-derived-question{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.eulogy-derived-question__prompt{font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-ink);margin:0 0 var(--space-3) 0}.lp-auth-page{max-width:420px;margin:var(--space-8) auto 0;flex-direction:column;align-items:center;display:flex}.lp-auth-page__heading{text-align:center}.lp-auth-card{width:100%}.lp-auth-card .lp-input-group{margin-bottom:var(--space-4)}.lp-auth-card form{flex-direction:column;display:flex}.lp-auth-page__hint{font-size:var(--text-sm);color:var(--color-ink-muted);margin:calc(-1 * var(--space-3)) 0 var(--space-4) 0}.lp-auth-page__banner{background-color:var(--color-status-red-bg);color:var(--color-status-red);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4) 0;font-size:var(--text-sm)}.lp-auth-page__field-error{color:var(--color-status-red);font-size:var(--text-sm);margin:calc(-1 * var(--space-3)) 0 var(--space-4) 0}.lp-auth-page__link{margin-top:var(--space-5);font-size:var(--text-sm);display:inline-block}
