:root{--bg-primary:#0a0a0a;--bg-secondary:#111;--text-primary:#e8e0d4;--text-secondary:#6b6560;--accent:#c4956a;--noise-dark:#2a2520;--noise-light:#4a4540;--font-serif:"Libre Baskerville", Georgia, "Times New Roman", serif;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-secret:clamp(1.5rem, 4vw, 2.5rem);--line-height-secret:1.7;--max-width:640px;--padding:clamp(1.5rem, 5vw, 3rem)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;padding:var(--padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.phase{width:100%;max-width:var(--max-width);opacity:1;transition:opacity var(--fade-duration) ease;flex-direction:column;align-items:center;display:flex}.phase.fade-out{opacity:0}.invitation__heading{font-family:var(--font-sans);color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.5rem;font-size:clamp(1.25rem,3vw,1.75rem);font-weight:400}.invitation__subheading{font-family:var(--font-sans);color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem;font-style:italic}.invitation__heading--splash{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(1.5rem,4.5vw,2.5rem)}.invitation__heading--settled{letter-spacing:-.01em;white-space:normal;font-size:clamp(1.25rem,3vw,1.75rem)}.invitation__form{opacity:0;pointer-events:none;width:100%;transition:opacity var(--form-fade-in) ease;flex-direction:column;align-items:center;display:flex}.invitation__form.fade-in{opacity:1;pointer-events:auto}.invitation__textarea{width:100%;min-height:150px;max-height:50vh;font-family:var(--font-serif);color:var(--text-primary);background-color:var(--bg-secondary);border:1px solid var(--noise-dark);resize:none;border-radius:4px;outline:none;padding:1.25rem;font-size:1.1rem;line-height:1.6;transition:border-color .5s;overflow-y:auto}.invitation__textarea:focus{border-color:var(--text-secondary)}.invitation__button{font-family:var(--font-sans);letter-spacing:.02em;color:var(--text-primary);border:1px solid var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;margin-top:1.5rem;padding:.75rem 2rem;font-size:.95rem;transition:border-color .3s,color .2s,opacity .3s}.invitation__button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.invitation__button:disabled{opacity:.3;cursor:default}.broadcast__text{font-family:var(--font-serif);font-size:var(--font-size-secret);line-height:var(--line-height-secret);color:var(--text-primary);text-align:center;word-break:break-word;opacity:0;max-height:calc(100vh - 120px);transition:opacity var(--broadcast-fade-in,1s) ease;overflow:hidden}.broadcast__text.fade-in{opacity:1}.broadcast__text .char{white-space:pre;will-change:opacity, color;transition:none;display:inline-block}.broadcast__text .word{white-space:nowrap;display:inline-block}.progress{background-color:var(--accent);height:2px;transition:opacity .3s;position:fixed;bottom:0;left:0}.silence__text{font-family:var(--font-serif);color:var(--text-primary);opacity:0;transition:opacity var(--silence-fade-in,3s) ease;font-size:clamp(1.25rem,3vw,2rem);font-style:italic}.silence__text.fade-in{opacity:1}.silence__text.fade-out{opacity:0}@media (prefers-reduced-motion:reduce){.broadcast__text .char{will-change:opacity}.phase{transition:opacity var(--fade-duration) ease}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
