:root{--ink:#36332f;--paper:#f2eee5;--burgundy:#6b2931;--body:#2a2825;--serif:"Libre Baskerville", Georgia, "Times New Roman", serif;color:var(--paper);background:var(--body);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.monogram{letter-spacing:.08em;margin:0;font-size:1.5rem}.monogram--small{font-size:1rem}.amp{color:#b5737b}h1{text-transform:uppercase;letter-spacing:.16em;margin:0;font-size:clamp(1.1rem,5vw,1.5rem);font-weight:400;line-height:1.5}.lede{opacity:.85;max-width:22rem;margin:0;font-size:.95rem;line-height:1.8}.small{letter-spacing:.06em;opacity:.6;margin:0;font-size:.75rem}.screen{height:100%;padding:max(1.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left))}.intro,.message{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex}.intro .monogram,.message .monogram{margin-bottom:1rem}.intro-form{gap:.75rem;width:min(100%,18rem);margin-top:.5rem;display:grid}input,.button{font:inherit;letter-spacing:.08em;text-align:center;border-radius:999px;padding:.9rem 1.25rem;font-size:.85rem}input{color:var(--paper);border:1px solid color-mix(in srgb, var(--paper) 35%, transparent);-webkit-user-select:text;user-select:text;background:0 0;font-size:max(16px,.85rem)}input::placeholder{color:color-mix(in srgb, var(--paper) 50%, transparent)}input:focus{border-color:var(--paper);outline:none}.button{color:var(--paper);background:var(--burgundy);text-transform:uppercase;cursor:pointer;border:0}.button:active{transform:scale(.97)}.camera{grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;max-width:60rem;margin:0 auto;display:grid}.camera-top{justify-content:space-between;align-items:center;display:flex}.counter{margin:0}.counter-window{min-width:2.6em;color:var(--ink);background:var(--paper);font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.08em;border-radius:.4em;padding:.3em .5em .2em;font-size:.95rem;display:inline-block;box-shadow:inset 0 1px 3px #00000059}.viewfinder-area{place-items:center;display:grid;container-type:size}.viewfinder{--ratio:.75;width:min(100cqw, 100cqh * var(--ratio));aspect-ratio:var(--ratio);background:#000;border-radius:.75rem;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0f,0 .5rem 2rem #00000073}.viewfinder video{object-fit:cover;width:100%;height:100%;display:block}.viewfinder.mirrored video{transform:scaleX(-1)}.shutter-curtain{opacity:0;pointer-events:none;background:#000;transition:opacity .35s ease-out;position:absolute;inset:0}.winding .shutter-curtain{opacity:1;transition-duration:60ms}.camera-controls{grid-template-columns:1fr auto 1fr;align-items:center;padding-bottom:.5rem;display:grid}.shutter{border:.3rem solid var(--paper);background:var(--burgundy);width:4.75rem;height:4.75rem;box-shadow:0 0 0 .3rem var(--body), 0 0 0 .35rem color-mix(in srgb, var(--paper) 30%, transparent);cursor:pointer;border-radius:50%;grid-column:2;transition:transform .1s,opacity .2s}.shutter:active{transform:scale(.92)}.camera:has(.winding) .shutter{opacity:.45}.icon-button{width:3rem;height:3rem;color:var(--paper);background:color-mix(in srgb, var(--paper) 10%, transparent);cursor:pointer;border:0;border-radius:50%;justify-self:start;place-items:center;padding:0;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:1.5rem;height:1.5rem}.sending{letter-spacing:.1em;text-transform:uppercase;opacity:.6;grid-column:3;justify-self:end;margin:0;font-size:.7rem}.flash{z-index:10;opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}.flash.firing{animation:.5s ease-out flash}@keyframes flash{0%{opacity:.95}to{opacity:0}}@media (prefers-reduced-motion:reduce){.flash.firing{animation-name:flash-soft}@keyframes flash-soft{0%{opacity:.4}to{opacity:0}}}
