@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/CormorantGaramond-400i.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/CormorantGaramond-500i.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/CormorantGaramond-500.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/CormorantGaramond-600.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Inter-500.woff2) format("woff2")}:root{--night: #0b0710;--ivory: #f3e9dc;--ivory-62: rgba(243, 233, 220, .62);--ivory-32: rgba(243, 233, 220, .32);--ivory-10: rgba(243, 233, 220, .1);--gold: #e9c07a;--ice: #d8ecff;--glass: rgba(11, 7, 16, .55);--glow: rgba(216, 236, 255, .12);--ease: cubic-bezier(.2, .8, .2, 1);--serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--sans: "Inter", "Helvetica Neue", Arial, sans-serif;--radius: 4px 22px 4px 22px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--night);color:var(--ivory);font-family:var(--sans);font-size:15px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit}[hidden]{display:none!important}canvas#sky{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(11,7,16,.5) 100%),linear-gradient(to top,rgba(11,7,16,.6) 0%,transparent 40%),linear-gradient(to bottom,rgba(11,7,16,.5) 0%,transparent 18%)}.leader{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .35s var(--ease)}.leader.on{opacity:1}.leader line{stroke:var(--ivory-32);stroke-width:1}.leader circle{fill:none;stroke:var(--ivory-62);stroke-width:1}.opening{position:fixed;inset:0;z-index:10;background:var(--night);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;opacity:1;transition:opacity .9s var(--ease)}.opening h1{margin:0;font-family:var(--serif);font-weight:400;font-style:italic;font-size:44px;letter-spacing:.01em;opacity:0;transform:translateY(8px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.opening p{margin:10px 0 0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ivory-62);opacity:0;transition:opacity .9s var(--ease) .4s}.opening.in h1,.opening.in p{opacity:1;transform:none}.opening.out{opacity:0;pointer-events:none}header{position:fixed;top:0;left:0;right:0;z-index:3;padding:calc(var(--safe-top) + 16px) 20px 0;display:flex;justify-content:space-between;align-items:center;opacity:0;transition:opacity .6s var(--ease)}header.in{opacity:1}header:not(.in){pointer-events:none}header .name{font-family:var(--serif);font-weight:400;font-style:italic;font-size:30px;line-height:1}.pill{background:var(--glass);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--ivory-10);border-radius:999px;padding:8px 16px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory-62);cursor:pointer;transition:color .35s var(--ease),border-color .35s var(--ease)}.pill:hover,.pill:focus-visible{color:var(--ivory);border-color:var(--ivory-32);outline:0}.note{position:fixed;left:0;right:0;bottom:0;z-index:2;padding:18px 22px calc(var(--safe-bottom) + 18px);background:var(--glass);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--ivory-10);border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 -12px 48px var(--glow);max-height:62vh;overflow-y:auto;touch-action:pan-y;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease),max-height .35s var(--ease)}.note.in{opacity:1;transform:none}.note .meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory-62)}.note .meta .count{color:var(--ivory-32)}.note .text{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.3;margin:10px 0 14px;min-height:2.6em;overflow-wrap:anywhere;transition:opacity .18s var(--ease)}.note.swap .text{opacity:0}.note .text em{font-style:italic;color:var(--gold)}.note .actions{display:flex;justify-content:space-between;align-items:center}.note .nav{display:inline-flex;gap:4px}.note .nav button{width:38px;height:38px;border-radius:50%;border:1px solid var(--ivory-10);background:transparent;color:var(--ivory-62);cursor:pointer;display:inline-grid;place-items:center;transition:color .35s var(--ease),border-color .35s var(--ease)}.note .nav button:hover,.note .nav button:focus-visible{color:var(--ivory);border-color:var(--ivory-32);outline:0}.note .nav button:disabled{opacity:.3;cursor:default}.link{background:none;border:0;padding:6px 0;color:var(--ivory-62);font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--ivory-32)}.link:hover,.link:focus-visible{color:var(--ivory);outline:0}.note.collapsed{max-height:calc(var(--safe-bottom) + 56px);overflow:hidden;cursor:pointer;padding-top:12px}.note.collapsed .meta{display:none}.note.collapsed .text{font-size:16px;line-height:1.4;margin:0;min-height:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none}.note.collapsed .text[data-day]:not([data-day=""]):before{content:attr(data-day) " — ";color:var(--ivory-62);font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.note.collapsed .actions,.note.collapsed .reply,.note.collapsed .dots{display:none}.reply{display:none;margin-top:12px}.reply.open{display:block}.reply textarea{width:100%;resize:vertical;font:inherit;font-size:15px;color:var(--ivory);background:#f3e9dc0f;border:1px solid var(--ivory-10);border-radius:4px 14px;padding:10px 12px}.reply textarea:focus{outline:1px solid var(--gold);outline-offset:1px}.reply .row{display:flex;gap:14px;align-items:center;margin-top:8px}.send{background:var(--gold);color:var(--night);border:0;border-radius:999px;padding:8px 18px;font-size:13px;font-weight:500;cursor:pointer}.send:disabled{opacity:.6;cursor:default}.dots{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.dots button{width:12px;height:12px;padding:0;border-radius:50%;cursor:pointer;border:1px solid var(--ivory-32);background:transparent;transition:transform .35s var(--ease)}.dots button.open{background:var(--ivory-62);border-color:transparent}.dots button.today{background:var(--gold);border-color:transparent;box-shadow:0 0 0 3px #e9c07a38}.dots button.active{transform:scale(1.35)}.dots button:not(.open){cursor:default}.dots button:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.dots button.shake{animation:shake .35s var(--ease)}@keyframes shake{20%{transform:translate(-3px)}50%{transform:translate(3px)}80%{transform:translate(-2px)}}.card{position:fixed;left:16px;right:16px;bottom:calc(var(--safe-bottom) + 72px);z-index:4;max-width:380px;margin:0 auto;padding:18px 20px 20px;background:var(--glass);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--ivory-10);border-radius:var(--radius);box-shadow:0 12px 48px var(--glow);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}.card.open{opacity:1;transform:none;pointer-events:auto}.card .kind{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory-62)}.card .kind i{width:8px;height:8px;border-radius:50%;display:inline-block}.card h2{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.1;margin:8px 0 4px}.card time{font-size:13px;color:var(--ivory-62)}.card p{margin:10px 0 0;font-size:15px;max-width:46ch}.card .close{position:absolute;top:10px;right:10px;width:34px;height:34px;background:none;border:0;color:var(--ivory-62);cursor:pointer;border-radius:50%}.card .close:hover,.card .close:focus-visible{color:var(--ivory);outline:1px solid var(--gold)}.controls{position:fixed;right:16px;top:calc(var(--safe-top) + 72px);z-index:3;display:flex;flex-direction:column;gap:6px;opacity:0;transition:opacity .35s var(--ease)}.controls.in{opacity:1}.controls:not(.in){pointer-events:none}.controls button{width:40px;height:40px;border-radius:50%;cursor:pointer;display:grid;place-items:center;background:var(--glass);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--ivory-10);color:var(--ivory-62);transition:color .35s var(--ease),border-color .35s var(--ease)}.controls button:hover,.controls button:focus-visible{color:var(--ivory);border-color:var(--ivory-32);outline:0}.controls button:active{color:var(--gold)}.tag{position:fixed;left:0;top:0;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ivory-62);transition:opacity .3s var(--ease)}.tag.origin{color:var(--ivory)}.tag.memory{font-size:13px;color:var(--ivory-62)}.toast{position:fixed;top:calc(var(--safe-top) + 68px);left:50%;transform:translate(-50%,-6px);z-index:5;padding:8px 14px;border-radius:999px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ivory-10);font-size:13px;color:var(--ivory);opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}.toast.show{opacity:1;transform:translate(-50%)}.notice{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);max-width:32ch;padding:0 20px;text-align:center;font-family:var(--serif);font-size:20px;color:var(--ivory-62)}@media (min-width: 720px){header{padding:24px 28px 0}header .name{font-size:40px}.note{inset:110px auto auto 28px;width:380px;max-height:calc(100vh - 140px);border:1px solid var(--ivory-10);border-radius:var(--radius);padding:20px 24px 22px}.note .text{font-size:26px}.note.collapsed{max-height:56px}.card{left:auto;right:28px;bottom:28px;width:380px;margin:0}.controls{right:28px;top:50%;transform:translateY(-50%)}.opening h1{font-size:56px}}@media (prefers-reduced-motion: reduce){.note,.card,.tag,.toast,.opening,.opening h1,.opening p,header,.leader,.dots button,.controls{transition:none}.dots button.shake{animation:none}}
