:root{--bg:#f7f1ea;--bg-2:#efe4d6;--ink:#2b2118;--ink-soft:#6b5b4d;--accent:#b66b4a;--accent-soft:#e7c8b6;--card:#fffaf3;--shadow:0 30px 60px -30px #3c281940, 0 8px 18px -10px #3c28192e;--serif:"Cormorant Garamond", "Iowan Old Style", "Apple Garamond", "Georgia", "Times New Roman", serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box}*,:before,:after{-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%;margin:0}body{min-height:100dvh;font-family:var(--sans);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(circle at 20% 10%, var(--bg-2) 0%, transparent 55%), radial-gradient(circle at 90% 90%, var(--accent-soft) 0%, transparent 50%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;overflow-x:hidden}img{max-width:100%;display:block}button,select,input,textarea{font-family:inherit}.app{min-height:100dvh;padding:calc(2rem + var(--safe-top)) calc(1.25rem + var(--safe-right)) calc(2rem + var(--safe-bottom)) calc(1.25rem + var(--safe-left));justify-content:center;align-items:center;display:flex}.card{background:var(--card);width:100%;max-width:36rem;box-shadow:var(--shadow);border:1px solid #b66b4a14;border-radius:22px;padding:3rem 2.5rem;animation:.6s both fade-in}.card.wide{max-width:44rem}.card.card-apology{max-width:30rem;padding:1.5rem 1.5rem 2rem}.eyebrow{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .75rem;font-size:.78rem}.headline{font-family:var(--serif);color:var(--ink);letter-spacing:-.01em;margin:0 0 1rem;font-size:clamp(2rem,7.5vw,3rem);font-weight:500;line-height:1.1}.headline em{color:var(--accent);font-style:italic}.lede{font-family:var(--sans);color:var(--ink-soft);margin:0 0 2rem;font-size:clamp(.95rem,1.6vw,1rem);line-height:1.6}.dob-form{flex-direction:column;gap:1.25rem;display:flex}.dob-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.dob-row.dob-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.field{flex-direction:column;gap:.4rem;min-width:0;display:flex}.field-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem}.field select{appearance:none;width:100%;font-family:var(--sans);color:var(--ink);cursor:pointer;background:#fff;background-image:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border:1px solid #3c281924;border-radius:12px;min-height:48px;padding:.85rem 2.25rem .85rem .9rem;font-size:16px;transition:border-color .15s,box-shadow .15s}.field select:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px #b66b4a26}.submit{font-family:var(--sans);letter-spacing:.04em;color:#fffaf3;background:var(--ink);cursor:pointer;touch-action:manipulation;border:none;border-radius:999px;min-height:48px;padding:.95rem 1.4rem;font-size:1rem;font-weight:500;transition:transform .12s,background .2s,opacity .2s}.submit:hover:not(:disabled){background:var(--accent)}.submit:active:not(:disabled){transform:translateY(1px)}.submit:disabled{opacity:.5;cursor:not-allowed}.submit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.error{color:var(--accent);margin:0;font-size:.92rem;font-style:italic}.apology{text-align:left;flex-direction:column;align-items:stretch;gap:1rem;display:flex}.apology-photo{aspect-ratio:4/5;object-fit:cover;background:var(--bg-2);border:1px solid #3c281914;border-radius:14px;align-self:center;width:100%;max-width:18rem;box-shadow:0 18px 36px -22px #3c28194d}.apology-message{font-family:var(--sans);color:var(--ink);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;letter-spacing:0;margin:0;font-size:clamp(1rem,3.6vw,1.075rem);line-height:1.7}.signature{font-family:var(--sans);color:var(--ink-soft);margin:.25rem 0 0;font-size:.95rem;font-style:italic}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.card{border-radius:20px;padding:2.25rem 1.75rem}.card.card-apology{padding:1.25rem 1.25rem 1.75rem}.apology{gap:.9rem}}@media (width<=480px){.app{padding:calc(1rem + var(--safe-top)) calc(.85rem + var(--safe-right)) calc(1.25rem + var(--safe-bottom)) calc(.85rem + var(--safe-left))}.card{border-radius:18px;padding:1.75rem 1.25rem}.card.card-apology{border-radius:16px;padding:1rem 1rem 1.5rem}.lede{margin-bottom:1.5rem}.dob-row,.dob-row.dob-row-2{grid-template-columns:minmax(0,1fr);gap:.85rem}}@media (width<=360px){.card{padding:1.5rem 1rem}.card.card-apology{padding:.85rem .85rem 1.25rem}.headline{font-size:1.85rem}}@media (height<=520px) and (orientation:landscape){.app{align-items:flex-start;padding:.75rem}.card.card-apology{padding:1rem 1.25rem}.apology{gap:.85rem}.apology-photo{max-width:13rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
