@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,600;0,9..144,700;1,9..144,400&family=Inter:wght@400;500;600&display=swap");:root{--bg:#fff;--bg-soft:#f7f6f4;--ink:#111;--ink-dim:#888;--accent:#6b4fbb;--accent-soft:#9b80e0;--bubble-them:#efefef;--bubble-me:#111;--bubble-me-ink:#fff;--line:rgba(0,0,0,.1);--serif:"Fraunces",Georgia,serif;--sans:"Inter",system-ui,sans-serif;--caption-gap:8vh}*{margin:0;padding:0;box-sizing:border-box}body,html{background:var(--bg)}body{color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior-y:none}.film-overlay{pointer-events:none;position:fixed;inset:0;z-index:9999;background-image:linear-gradient(rgba(0,0,0,.015) 1px,transparent 0),linear-gradient(90deg,rgba(0,0,0,.015) 1px,transparent 0);background-size:3px 3px}.film-overlay:before{content:"";position:absolute;inset:-50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");mix-blend-mode:multiply;opacity:.06;animation:grain .8s steps(2) infinite}.film-overlay:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0,transparent 2px,rgba(0,0,0,.018) 0,rgba(0,0,0,.018) 3px)}@keyframes grain{0%,to{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,1%)}80%{transform:translate(1%,-2%)}}.vignette{display:none}@media (prefers-reduced-motion:reduce){.film-overlay:before{animation:none}}