@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/newsreader-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/instrument-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/instrument-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/instrument-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display: "Newsreader", Georgia, "Times New Roman", serif;--font-ui: "Instrument Sans", "Helvetica Neue", system-ui, sans-serif;--fs-prompt: clamp(2rem, 1.2rem + 3.4vw, 3.4rem);--fs-count: clamp(4rem, 2rem + 12vw, 9rem);--fs-lead: clamp(1.05rem, .95rem + .7vw, 1.4rem);--fs-body: clamp(1rem, .96rem + .3vw, 1.18rem);--fs-small: .95rem;--s-1: .5rem;--s-2: .85rem;--s-3: 1.25rem;--s-4: 2rem;--s-5: 3rem;--s-6: 4.5rem;--radius: 18px;--radius-sm: 12px;--tap: 56px;--ease: cubic-bezier(.22, .61, .36, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--dur-fast: .24s;--dur-med: .44s;--dur-slow: .56s;--breath: 2.4s}.theme-candlelight,.theme-paper{--bg: #0a0a0b;--bg-deep: #060607;--bg-elev: #161618;--ink: #f0ebe1;--ink-soft: #8c857b;--muted: #6f6a62;--accent: #d33c3c;--accent-dim: #b53333;--accent-ink: #ffffff;--glow: rgba(211, 60, 60, .22);--atmosphere: rgba(240, 235, 225, .05);--rule: rgba(255, 255, 255, .1);--field-bg: rgba(255, 255, 255, .04);--shadow: 0 50px 100px -20px rgba(0, 0, 0, .45), 0 30px 60px -30px rgba(0, 0, 0, .6);--grain-opacity: .06;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.55;color:var(--ink);background-color:var(--bg);background-image:radial-gradient(120% 90% at 50% -10%,var(--atmosphere) 0%,transparent 55%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}body:before{content:"";position:fixed;inset:0;background-image:url(/grain.svg);background-size:160px 160px;opacity:var(--grain-opacity);mix-blend-mode:overlay;pointer-events:none;z-index:1}body:after{content:"";position:fixed;inset:0;background:radial-gradient(130% 120% at 50% 45%,transparent 58%,rgba(0,0,0,.28) 100%);pointer-events:none;z-index:1}#app{position:relative;z-index:2;height:100%}.stage{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;height:100%;padding:clamp(1.25rem,4vw,3rem)}.screen{grid-area:1 / 1;width:100%;max-width:680px;justify-self:center;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-3);opacity:0;transform:translateY(10px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);pointer-events:none;visibility:hidden}.screen.is-active{opacity:1;transform:none;pointer-events:auto;visibility:visible}.screen>*{max-width:100%}.screen.is-active>*{animation:rise var(--dur-slow) var(--ease) both}.screen.is-active>*:nth-child(2){animation-delay:90ms}.screen.is-active>*:nth-child(3){animation-delay:.18s}.screen.is-active>*:nth-child(4){animation-delay:.27s}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.prompt{font-family:var(--font-display);font-weight:500;font-size:var(--fs-prompt);line-height:1.08;letter-spacing:-.01em;margin:0;text-wrap:balance}.lead{font-size:var(--fs-lead);color:var(--ink-soft);max-width:34ch;margin:0 auto;text-wrap:balance}.subtle{color:var(--muted);font-size:var(--fs-small);max-width:42ch;margin:0 auto}.nobr{white-space:nowrap}.controls{display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:center}.btn{font-family:var(--font-ui);font-size:1.1rem;font-weight:600;min-height:var(--tap);padding:0 var(--s-4);border-radius:999px;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;transition:transform var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-med) var(--ease)}.btn:hover{border-color:var(--accent)}.btn:active{transform:scale(.99)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 0 var(--glow)}.btn--primary:hover{background:var(--accent);box-shadow:0 0 44px 6px var(--glow)}.btn--primary:active{transform:scale(1.02)}.btn--lg{min-height:72px;font-size:1.25rem;padding:0 var(--s-5)}.btn[disabled]{opacity:.5;cursor:not-allowed}.fields{display:flex;flex-direction:column;gap:var(--s-2);width:min(420px,100%);text-align:left}.field label{display:block;font-size:var(--fs-small);color:var(--ink-soft);margin-bottom:4px}.field input{width:100%;min-height:var(--tap);padding:0 var(--s-3);font:inherit;color:var(--ink);background:var(--field-bg);border:1px solid var(--rule);border-radius:var(--radius-sm)}.field input:focus{outline:none;border-color:var(--accent)}.preview-frame{position:relative;width:min(520px,100%);aspect-ratio:4 / 3;border-radius:var(--radius);overflow:hidden;background:var(--bg-elev);border:1px solid var(--rule);box-shadow:var(--shadow),inset 0 0 60px #00000059}.preview-frame video{width:100%;height:100%;object-fit:contain;display:block}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}.status{min-height:1.5em;color:var(--ink-soft);font-size:var(--fs-small)}.status[data-tone=warn]{color:var(--accent)}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.screen{transform:none}}.portrait{width:clamp(120px,30vw,180px);height:clamp(120px,30vw,180px);border-radius:50%;object-fit:cover;object-position:50% 30%;border:1px solid var(--rule);box-shadow:var(--shadow);filter:grayscale(100%) contrast(1.08);transition:filter 1.2s var(--ease)}.portrait:hover{filter:grayscale(0%) contrast(1.02)}.portrait--placeholder{display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,var(--bg-elev),var(--bg-deep));color:var(--accent);font-family:var(--font-display);font-size:2.4rem}.countdown{position:relative;display:grid;place-items:center;width:clamp(180px,42vw,280px);height:clamp(180px,42vw,280px)}.countdown .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:.55;animation:breathe var(--breath) var(--ease-soft) infinite}.countdown .num{font-family:var(--font-display);font-size:var(--fs-count);font-weight:500;color:var(--ink);line-height:1}.countdown .num.is-swap{animation:numswap 1s var(--ease) both}@keyframes breathe{0%,to{transform:scale(.92);opacity:.4}50%{transform:scale(1.06);opacity:.7}}@keyframes numswap{0%{opacity:0;transform:scale(.8)}30%{opacity:1;transform:scale(1)}to{opacity:1}}.rec-row{display:flex;align-items:center;gap:var(--s-2);color:var(--ink-soft)}.rec-dot{width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--glow);animation:recpulse var(--breath) var(--ease-soft) infinite}@keyframes recpulse{0%,to{box-shadow:0 0 #d33c3c80;opacity:.85}50%{box-shadow:0 0 0 10px #d33c3c00;opacity:1}}.timer{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:.02em}.timer[data-grace="1"]{color:var(--accent)}.level{width:min(320px,80%);height:6px;border-radius:999px;background:var(--rule);overflow:hidden}.level>i{display:block;height:100%;width:0%;background:var(--accent);transition:width 90ms linear}.bloom{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle,var(--accent) 0%,transparent 70%);opacity:0;animation:bloom 2.2s var(--ease) forwards}@keyframes bloom{0%{opacity:0;transform:scale(.6)}40%{opacity:.9}to{opacity:.5;transform:scale(1)}}.saved{display:inline-flex;align-items:center;gap:.5ch;color:var(--accent);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow{margin:0 auto;max-width:30ch;color:var(--ink-soft);font-size:.78rem;letter-spacing:.14em;line-height:1.6;text-transform:uppercase;text-wrap:balance}.memorial-link{margin:0;font-size:.85rem}.memorial-link a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:1px;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.memorial-link a:hover{color:var(--accent);border-color:var(--accent)}.turnstile{display:flex;justify-content:center;min-height:0}.turnstile:empty{display:none}.attendant{position:fixed;bottom:12px;left:0;right:0;text-align:center;color:var(--muted);font-size:.8rem;z-index:3}
