:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-paper:oklch(95.5% .022 92);--color-paper-2:oklch(92.5% .026 92);--color-paper-3:oklch(88.5% .03 90);--color-rule:oklch(83% .028 115);--color-rule-2:oklch(62% .045 132);--color-muted:oklch(48% .04 138);--color-neutral:oklch(40% .045 142);--color-ink-2:oklch(33% .05 150);--color-ink:oklch(24% .052 152);--color-accent:oklch(47% .13 140);--color-accent-deep:oklch(40% .12 142);--color-accent-2:oklch(54% .14 46);--color-accent-2-ink:oklch(42% .13 40);--color-accent-ink:oklch(96% .02 92);--color-focus:oklch(47% .13 140);--color-success:oklch(40% .12 142);--color-danger:oklch(44% .14 30);--color-danger-bg:oklch(54% .14 46/.12);--color-overlay:oklch(24% .052 152/.42);--tint-moss:oklch(47% .13 140/.1);--tint-moss-2:oklch(47% .13 140/.16);--tint-clay:oklch(54% .14 46/.1);--color-demo-bg:oklch(20% .02 150);--color-demo-bg-2:oklch(25% .022 150);--color-demo-bg-3:oklch(15% .018 150);--color-demo-ink:oklch(94% .015 92);--color-demo-muted:oklch(74% .02 92);--color-demo-accent:oklch(80% .12 140);--color-demo-warn:oklch(80% .1 70);--color-demo-email-bg:oklch(35% .06 250);--color-demo-email-ink:oklch(90% .03 250);--color-demo-sms-bg:oklch(35% .06 160);--color-demo-sms-ink:oklch(90% .03 160);--font-display:"Young Serif", "Iowan Old Style", ui-serif, Georgia, serif;--font-body:"Hanken Grotesk", "Geist", ui-sans-serif, system-ui, sans-serif;--font-serif:"Newsreader", "Iowan Old Style", ui-serif, Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--display-weight:400;--display-style:normal;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-display-s:clamp(2.1rem, 3.2vw + 1rem, 3.25rem);--text-display:clamp(2.85rem, 5.2vw + 1rem, 5rem);--lh-tight:1.06;--lh-snug:1.22;--lh-normal:1.5;--lh-relaxed:1.65;--tracking-display:-.006em;--tracking-tight:-.004em;--tracking-normal:0;--measure:50ch;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6.5rem;--page-max:42rem;--page-gutter:clamp(1.25rem, 4vw, 2rem);--rule-hair:1px;--radius-card:10px;--radius-pill:8px;--radius-input:8px;--shadow-card:0 14px 34px -20px oklch(24% .05 150/.22), 0 1px 2px oklch(24% .05 150/.08);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.36s;--tap:44px}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--lh-relaxed);color:var(--color-ink);background:var(--color-paper);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0}#root{min-height:100vh}a{color:var(--color-accent-deep);text-underline-offset:.16em;text-decoration-thickness:1px}a:hover{color:var(--color-ink)}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight);font-style:var(--display-style);line-height:var(--lh-snug);letter-spacing:var(--tracking-display);color:var(--color-ink);overflow-wrap:anywhere;min-width:0}p{margin:0}.page{max-width:var(--page-max);padding:var(--space-xl) var(--page-gutter) calc(var(--space-3xl) + var(--space-xl));margin:0 auto}.letter-head{padding-top:var(--space-md);margin-bottom:var(--space-2xl)}.salutation{font-size:var(--text-display-s);margin:0 0 var(--space-lg)}.prose{font-family:var(--font-serif);font-size:var(--text-md);max-width:var(--measure);color:var(--color-ink-2);line-height:1.6}.prose+.prose{margin-top:var(--space-md)}.prose strong{color:var(--color-ink);font-weight:500}.status-line{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-md);border-left:3px solid var(--color-accent-2);background:var(--tint-clay);border-radius:0 var(--radius-pill) var(--radius-pill) 0;font-size:var(--text-sm);color:var(--color-accent-2-ink);max-width:var(--measure);font-weight:600}.status-line.resolved,.status-line.signed-in{border-left-color:var(--color-accent);background:var(--tint-moss);color:var(--color-accent-deep)}.status-line.signed-in .linkish{color:var(--color-accent-deep)}.asterism{margin:var(--space-2xl) 0;text-align:center;font-family:var(--font-display);color:var(--color-rule-2);font-size:var(--text-md);letter-spacing:.6em;border:0;line-height:1}.asterism:before{content:"* * *"}.section h2{font-size:var(--text-xl);margin:0 0 var(--space-xs)}.section-sub{color:var(--color-muted);font-size:var(--text-base);margin:0 0 var(--space-lg);max-width:var(--measure)}.details{margin:0;display:grid}.detail-row{gap:var(--space-xs) var(--space-md);padding:var(--space-sm) 0;border-bottom:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,8.5rem) minmax(0,1fr);display:grid}.detail-row:last-child{border-bottom:0}.detail-row dt{font-weight:600;font-size:var(--text-sm);color:var(--color-muted);line-height:var(--lh-normal);margin:0;padding-top:.1em}.detail-row dd{overflow-wrap:anywhere;min-width:0;color:var(--color-ink);margin:0}.aside{color:var(--color-muted)}@media (width<=413px){.detail-row{gap:var(--space-3xs);grid-template-columns:minmax(0,1fr)}}.menu-line{font-family:var(--font-serif);color:var(--color-ink-2);font-size:var(--text-md);margin:0 0 var(--space-lg);max-width:var(--measure)}.week{margin-bottom:var(--space-lg)}.week-title{font-size:var(--text-lg);margin:0 0 var(--space-sm);align-items:baseline;gap:var(--space-sm);display:flex}.week-title .week-when{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.slot{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper);min-height:3.75rem;display:flex}.slot+.slot{margin-top:var(--space-xs)}.slot.claimed{background:var(--tint-moss);border-color:var(--color-accent);border-style:solid}.slot-meta{flex:1;min-width:0}.slot-label{font-weight:600;font-size:var(--text-base);line-height:var(--lh-normal)}.slot-date{font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.slot-claim{font-family:var(--font-serif);font-size:var(--text-base);margin-top:var(--space-2xs);color:var(--color-ink-2);overflow-wrap:anywhere}.slot-claim strong{color:var(--color-ink);font-weight:500}.gift-links{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.gift-link{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);min-height:var(--tap);border:var(--rule-hair) dashed var(--color-rule-2);border-radius:var(--radius-card);color:var(--color-ink);font-weight:600;line-height:var(--lh-snug);transition:background var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);text-decoration:none;display:flex}.gift-link:hover{background:var(--tint-moss);border-color:var(--color-accent);color:var(--color-ink)}.gift-link:active{transform:translateY(1px)}.faq details{border-bottom:var(--rule-hair) solid var(--color-rule);padding:var(--space-sm) 0}.faq details:last-child{border-bottom:0}.faq summary{cursor:pointer;font-weight:600;font-size:var(--text-base);gap:var(--space-sm);align-items:baseline;min-height:2rem;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:"+";width:1rem;color:var(--color-accent);font-family:var(--font-display);flex:none}.faq details[open] summary:before{content:"–"}.faq details p{margin:var(--space-xs) 0 var(--space-2xs) calc(1rem + var(--space-sm));font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-ink-2)}.letter-close{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule)}.letter-close .valediction{font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-ink-2)}.letter-close .signature{font-family:var(--font-display);font-size:var(--text-xl);margin-top:var(--space-2xs);color:var(--color-ink)}.letter-close .ps{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted)}button.linkish{appearance:none;font:inherit;color:var(--color-accent-deep);text-underline-offset:.16em;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline;text-decoration-thickness:1px}button.linkish:hover{color:var(--color-ink)}.btn{appearance:none;justify-content:center;align-items:center;gap:var(--space-xs);min-height:var(--tap);padding:0 var(--space-md);border:var(--rule-hair) solid transparent;border-radius:var(--radius-pill);font-weight:600;font-size:var(--text-base);white-space:nowrap;cursor:pointer;color:var(--color-ink);background:var(--color-paper-2);transition:background var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);line-height:1;text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-paper-3)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn[aria-busy=true]{cursor:progress;color:#0000;position:relative}.btn[aria-busy=true]:after{content:"";border:2px solid;border-color:var(--color-accent-ink) transparent var(--color-accent-ink) transparent;border-radius:50%;width:1rem;height:1rem;animation:.8s linear infinite spin;position:absolute}.btn-primary{background:var(--color-accent);color:var(--color-accent-ink)}.btn-primary:hover{background:var(--color-accent-deep)}.btn-secondary{background:var(--tint-moss);color:var(--color-accent-deep)}.btn-secondary:hover{background:var(--tint-moss-2)}.btn-ghost{color:var(--color-ink-2);border-color:var(--color-rule-2);background:0 0}.btn-ghost:hover{background:var(--color-paper-2)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger)}.btn-danger:hover{background:var(--tint-clay);border-color:var(--color-danger)}.btn-sm{min-height:40px;padding:0 var(--space-sm);font-size:var(--text-sm)}.btn-block{width:100%}.btn.is-success{background:var(--tint-moss);color:var(--color-success)}.btn.is-error{background:var(--color-danger-bg);color:var(--color-danger)}.form-grid{gap:var(--space-md);display:grid}label.field{gap:var(--space-2xs);font-size:var(--text-sm);color:var(--color-ink-2);font-weight:600;display:grid}label.field input,label.field select,label.field textarea{font-weight:400;font-size:var(--text-base);color:var(--color-ink);padding:0 var(--space-sm);min-height:var(--tap);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-paper);width:100%;min-width:0;transition:border-color var(--dur-micro) var(--ease-out)}label.field textarea{padding:var(--space-xs) var(--space-sm);resize:vertical;min-height:4.5rem}label.field input:hover,label.field select:hover,label.field textarea:hover{border-color:var(--color-neutral)}label.field input:focus-visible,label.field select:focus-visible,label.field textarea:focus-visible{border-color:var(--color-accent);outline-offset:0}label.field input:disabled,label.field select:disabled,label.field textarea:disabled{background:var(--color-paper-2);color:var(--color-muted)}label.field input[aria-invalid=true],label.field textarea[aria-invalid=true]{border-color:var(--color-danger)}label.field input::placeholder,label.field textarea::placeholder{color:var(--color-muted)}.check-row{align-items:flex-start;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-ink-2);font-weight:500;display:flex}.check-row input{accent-color:var(--color-accent);width:1.1rem;height:1.1rem;margin-top:.15rem}.suggestions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.suggestions button{border:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);color:var(--color-ink-2);border-radius:var(--radius-pill);padding:0 var(--space-sm);min-height:2.25rem;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out)}.suggestions button:hover{border-color:var(--color-accent);background:var(--tint-moss);color:var(--color-accent-deep)}.suggestions button:active{transform:translateY(1px)}.form-error{background:var(--color-danger-bg);color:var(--color-danger);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-input);border-left:3px solid var(--color-danger);font-size:var(--text-sm)}.form-success{color:var(--color-success);font-weight:600}.form-actions{gap:var(--space-xs);margin-top:var(--space-xs);display:flex}.form-actions .btn{flex:1}.panel,.card{background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);padding:var(--space-lg);margin-bottom:var(--space-lg)}.card h1,.card h2{font-size:var(--text-xl);margin:0 0 var(--space-xs)}.card h3{font-size:var(--text-lg);margin:0 0 var(--space-xs)}.card-sub,.meta{color:var(--color-muted);font-size:var(--text-base);margin:0 0 var(--space-md)}.kicker{font-size:var(--text-sm);color:var(--color-muted);margin:0 0 var(--space-2xs);font-weight:600}.modal-backdrop{background:var(--color-overlay);z-index:40;padding:var(--space-md);animation:fade-in var(--dur-short) var(--ease-out) both;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=640px){.modal-backdrop{align-items:center}}.modal{background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);width:min(30rem,100%);max-height:min(90vh,45rem);box-shadow:var(--shadow-card);padding:var(--space-lg);animation:modal-in var(--dur-long) var(--ease-out) both;overflow:auto}.modal h2{margin:0 0 var(--space-2xs);font-size:var(--text-xl)}.modal-slot{color:var(--color-muted);margin:0 0 var(--space-md);font-size:var(--text-sm)}.confirm-box{padding:var(--space-xs) 0}.confirm-box .check{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-accent);margin-bottom:var(--space-xs);line-height:1}.confirm-box p{font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-ink-2);margin-bottom:var(--space-sm)}.admin-header{justify-content:space-between;align-items:flex-end;gap:var(--space-xs);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.admin-header h1{font-size:var(--text-display-s);margin:0}.admin-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.table-wrap{overflow-x:auto}table.claims{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}table.claims th,table.claims td{text-align:left;padding:var(--space-xs) var(--space-2xs);border-bottom:var(--rule-hair) solid var(--color-rule);vertical-align:top}table.claims th{color:var(--color-muted);font-weight:600}.demo-fab{right:var(--space-md);bottom:var(--space-md);z-index:50;background:var(--color-demo-bg);color:var(--color-demo-ink);min-height:var(--tap);padding:0 var(--space-md);font-weight:700;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-card);white-space:nowrap;border:0;border-radius:999px;position:fixed}.demo-panel{right:var(--space-md);bottom:calc(var(--space-md) + var(--tap) + var(--space-xs));width:min(24rem, calc(100vw - 2 * var(--space-md)));background:var(--color-demo-bg);max-height:min(70vh,35rem);color:var(--color-demo-ink);border-radius:var(--radius-card);padding:var(--space-md);z-index:50;box-shadow:var(--shadow-card);font-size:var(--text-sm);font-family:var(--font-body);position:fixed;overflow:auto}.demo-panel h3{margin:0 0 var(--space-xs);font-size:var(--text-base);font-family:var(--font-body);color:inherit;font-weight:700}.demo-panel p{margin:0 0 var(--space-sm);color:var(--color-demo-muted);font-size:var(--text-xs)}.demo-panel .row{gap:var(--space-2xs);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.demo-panel .btn{font-size:var(--text-xs);padding:0 var(--space-xs);min-height:2rem}.demo-panel .btn-primary{background:var(--color-demo-accent);color:var(--color-demo-bg)}.demo-panel .btn-secondary{background:var(--color-demo-bg-2);color:var(--color-demo-ink)}.demo-panel .demo-warn{color:var(--color-demo-warn);font-weight:600}.demo-clock{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-demo-bg-3);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-input);margin-bottom:var(--space-sm)}.outbox-list{gap:var(--space-xs);margin-top:var(--space-xs);display:grid}.outbox-item{background:var(--color-demo-bg-2);border-radius:var(--radius-input);padding:var(--space-xs) var(--space-sm);cursor:pointer;border:var(--rule-hair) solid transparent;text-align:left;color:inherit;width:100%}.outbox-item:hover,.outbox-item.active{border-color:var(--color-demo-accent)}.outbox-item .kind{font-size:var(--text-xs);color:var(--color-demo-muted)}.outbox-item .to{font-weight:600;font-size:var(--text-sm)}.outbox-item .subject{color:var(--color-demo-muted);font-size:var(--text-xs)}.outbox-detail{margin-top:var(--space-sm);background:var(--color-demo-bg-3);border-radius:var(--radius-input);padding:var(--space-sm);white-space:pre-wrap;font-family:var(--font-mono);font-size:var(--text-xs);max-height:14rem;line-height:1.45;overflow:auto}.badge{font-size:var(--text-xs);padding:0 var(--space-2xs);margin-right:var(--space-2xs);border-radius:4px;font-weight:700;display:inline-block}.badge.email{background:var(--color-demo-email-bg);color:var(--color-demo-email-ink)}.badge.sms{background:var(--color-demo-sms-bg);color:var(--color-demo-sms-ink)}.empty{color:var(--color-muted);padding:var(--space-md)}.demo-panel .empty{color:var(--color-demo-muted)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.phone-input{border:1px solid var(--color-rule,#28322838);background:var(--color-paper);border-radius:6px;align-items:stretch;gap:0;display:flex;overflow:hidden}.phone-input:focus-within{outline:2px solid var(--color-accent,#4a7c59);outline-offset:1px}.phone-cc{color:var(--color-muted);font-variant-numeric:tabular-nums;border-right:1px solid var(--color-rule,#28322838);-webkit-user-select:none;user-select:none;background:#2832280f;align-items:center;padding:.55rem .7rem;display:flex}.phone-input input{flex:1;min-width:0;box-shadow:none!important;border:none!important;border-radius:0!important;outline:none!important}.field-hint{font-size:var(--text-sm);color:var(--color-muted);margin:-.35rem 0 0}.delivery-kit{padding:var(--space-md);border:1px dashed var(--color-rule,#28322847);background:#4a7c590f;border-radius:8px}.delivery-kit-title{font-family:var(--font-display);font-size:var(--text-lg);margin:0 0 .35rem}.delivery-kit-preview{margin:var(--space-sm) 0 0;padding:var(--space-sm);font-family:var(--font-body);font-size:var(--text-sm);white-space:pre-wrap;background:var(--color-paper);color:var(--color-ink);border-radius:6px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.modal,.modal-backdrop{animation:.15s linear both fade-in}.btn,.gift-link,.suggestions button,label.field input,label.field select,label.field textarea{transition:none}.btn:active,.gift-link:active,.suggestions button:active{transform:none}}
