@font-face{font-family:IM Fell English;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/im-fell-english.woff2)format("woff2")}@font-face{font-family:IM Fell English;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/im-fell-english-italic.woff2)format("woff2")}:root{--night:#0a1021;--indigo:#16233d;--chart:#24374f;--dust:#f2f2e9;--dust-2:#c9ccd3;--muted:#9aa6ba;--fog:#5a6477;--amber:#ff4d2e;--glow:#ffb36b;--rule:#ff6e4857;--rule-soft:#f2f2e91f;--panel:#16233d8c;--display:"IM Fell English", "Iowan Old Style", Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--night);scrollbar-color:var(--chart) var(--night);overflow-x:clip}body{min-height:100dvh;color:var(--dust-2);font:17px/1.45 var(--sans);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;caret-color:var(--amber);background:url(/starfield.svg) 0 0 / 600px repeat, radial-gradient(120% 70% at 50% 0%, var(--indigo), var(--night) 70%) fixed;margin:0}::selection{background:var(--amber);color:var(--night)}a{color:var(--glow);text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:1.5px solid var(--amber);outline-offset:3px;border-radius:4px}h1,h2,p{margin:0}.page{max-width:34rem;padding:calc(24px + env(safe-area-inset-top)) 16px calc(40px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);gap:24px;margin:0 auto;display:grid}.page:has(~.tabbar){padding-bottom:calc(104px + env(safe-area-inset-bottom))}.page.narrow{max-width:24rem;padding-top:calc(10vh + env(safe-area-inset-top));gap:32px}.masthead{gap:4px;display:grid}.masthead h1{font:italic 400 34px/1.05 var(--display);color:var(--dust);letter-spacing:-.01em}.masthead-date{font:500 13px var(--mono);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.masthead-sub{font:italic 19px/1.3 var(--display);color:var(--muted)}.masthead.gate h1{font-size:56px}.masthead h1.with-glyph{align-items:center;gap:12px;display:flex}.masthead h1.with-glyph svg{color:var(--amber);flex:none}.masthead.row{align-items:end;display:flex}.masthead .back{margin-bottom:8px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.center{text-align:center}.hint{color:var(--muted);font-size:13px;line-height:1.5}.muted{color:var(--muted)}.note{font:italic 19px/1.3 var(--display);color:var(--glow);text-align:center;margin-top:-8px}.error{color:var(--amber);font-size:13px}.nowrap{white-space:nowrap}.status-mark{vertical-align:-3px;display:inline-block}.coords{font:400 13px var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em}.or{text-align:center;color:var(--muted);font:italic 19px var(--display)}ul.plain{margin:0;padding:0;list-style:none}.rule-label{font:600 13px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--amber);align-items:center;gap:12px;margin:0 0 16px;display:flex}.rule-label:after{content:"";background:var(--rule);flex:1;height:1px}.rule-label:before{content:"";background:var(--amber);flex:none;order:2;width:5px;height:5px;transform:rotate(45deg)}.panel{background:var(--panel);border:1px solid var(--rule);padding:20px 16px;position:relative}.panel:before,.panel:after{content:"";border:1px solid var(--amber);pointer-events:none;width:9px;height:9px;position:absolute}.panel:before{border-width:1px 0 0 1px;top:-4px;left:-4px}.panel:after{border-width:0 1px 1px 0;bottom:-4px;right:-4px}form{gap:16px;display:grid}label{font:600 13px var(--sans);color:var(--muted);letter-spacing:.04em;gap:8px;display:grid}input,select,textarea{font:400 17px var(--sans);color:var(--dust);border:1px solid var(--rule-soft);appearance:none;background:#0a1021b3;border-radius:6px;width:100%;min-height:48px;padding:12px 14px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--amber);outline:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}input[type=date],input[type=datetime-local]{font-family:var(--mono);font-size:16px}select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-repeat:no-repeat;background-size:6px 6px;padding-right:36px}select.auto{width:auto}textarea{resize:vertical;line-height:1.5}input.code{font:500 26px var(--mono);letter-spacing:.3em;text-align:center;color:var(--dust)}input.emoji{text-align:center;flex:none;width:56px;padding:12px 4px}.row>input:not(.emoji){flex:1;width:auto}.paircode{font:500 34px var(--mono);letter-spacing:.22em;text-align:center;color:var(--glow);-webkit-user-select:all;user-select:all}label.check{font:400 17px var(--sans);color:var(--dust-2);letter-spacing:0;justify-content:space-between;align-items:center;min-height:44px;display:flex}input.switch{cursor:pointer;background:var(--chart);width:51px;height:31px;min-height:0;transition:background .25s var(--ease);border:0;border-radius:16px;flex:none;padding:0;position:relative}input.switch:after{content:"";background:var(--dust);width:27px;height:27px;transition:transform .25s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 6px #00000059}input.switch:checked{background:var(--amber)}input.switch:checked:after{transform:translate(20px)}button,.filebtn{font:600 16px var(--sans);letter-spacing:.02em;cursor:pointer;border:1px solid var(--amber);background:var(--amber);min-height:48px;color:var(--night);border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 20px;transition:transform .12s,background .2s,box-shadow .2s,opacity .2s;display:inline-flex;box-shadow:0 6px 20px -8px #ff4d2eb3}button:hover:not(:disabled){background:#ff6243}button:active:not(:disabled){transform:scale(.97)}button:disabled{cursor:default;background:var(--indigo);border-color:var(--chart);color:var(--muted);box-shadow:none}button.link:disabled,.icon-btn:disabled,.cheer:disabled,.chip:disabled{opacity:.45;background:0 0;border-color:#0000}button.secondary,.filebtn{color:var(--dust);box-shadow:none;background:0 0;border-color:#f2f2e966}button.secondary:hover:not(:disabled),.filebtn:hover{background:#f2f2e90f}button.link{box-shadow:none;color:var(--glow);letter-spacing:0;background:0 0;border:0;justify-self:start;min-height:44px;padding:0;font-weight:500}button.link:hover:not(:disabled){text-underline-offset:4px;background:0 0;text-decoration:underline}button.link.danger{color:var(--amber)}button.link.back{gap:4px}.icon-btn{box-shadow:none;color:var(--muted);background:0 0;border:0;flex:none;width:44px;min-height:44px;padding:0}.icon-btn:hover:not(:disabled){color:var(--amber);background:0 0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--rule-soft);color:var(--dust-2);box-shadow:none;letter-spacing:0;background:0 0;border-radius:22px;min-height:44px;padding:0 14px;font-size:15px;font-weight:500}.chip:hover:not(:disabled){background:#f2f2e90f}.chip.on{border-color:var(--amber);color:var(--dust);background:#ff4d2e24}.tag{border:1px solid var(--rule);font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--glow);white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.tag.quiet{color:var(--muted);border-color:var(--rule-soft)}.sky{aspect-ratio:360/300;margin:0 -16px;position:relative;overflow:clip}.sky-svg{width:100%;height:100%;position:absolute;inset:0}.sky-grid circle,.sky-grid path{fill:none;stroke:var(--chart);stroke-width:.6px}.sky-grid .meridian{stroke-dasharray:2 5}.field circle{fill:var(--dust)}.moon-dark{fill:var(--indigo);stroke:#f2f2e959;stroke-width:.6px}.moon-lit{fill:var(--dust);filter:drop-shadow(0 0 6px #f2f2e973)}.bond{stroke:var(--dust);stroke-opacity:.55;stroke-width:1.1px;stroke-dasharray:.5 6;stroke-linecap:round;fill:none}.bond-label{font:500 11px var(--mono);fill:var(--glow);letter-spacing:.08em;text-transform:uppercase}.star-halo{fill:var(--dust);opacity:.1}.star.bright .star-halo{fill:var(--glow);opacity:.2}.star-spike{stroke:var(--dust);stroke-width:.7px;stroke-opacity:.7}.star-core{fill:var(--dust);filter:drop-shadow(0 0 5px #f2f2e9cc)}.eye circle,.eye path{fill:none;stroke:var(--amber);stroke-width:1.2px}.shooting{fill:none;stroke:var(--glow);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:.16 1.2;stroke-dashoffset:.16px;filter:drop-shadow(0 0 4px var(--glow));opacity:0}.sky-labels{pointer-events:none;margin:0;position:absolute;inset:0}.sky-label{gap:2px;width:44%;display:grid;position:absolute}.sky-label.me{top:66%;left:5%}.sky-label.her{text-align:right;justify-items:end;top:63%;right:5%}.sky-name{font:italic 400 26px/1 var(--display);color:var(--dust);overflow-wrap:anywhere}.sky-place{font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.sky-time{font:500 17px var(--mono);color:var(--dust);font-variant-numeric:tabular-nums}.sky-status{color:var(--glow);margin-top:4px;font-size:13px;line-height:1.35}.sky-moon{text-align:center;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);position:absolute;top:29%;left:0;right:0}.conjunction{gap:8px;display:grid;container-type:inline-size}.conj-title{font:italic 26px/1.15 var(--display);color:var(--dust)}.conj-when{color:var(--muted);font-size:13px}.conj-digits{font:300 min(64px, 16cqi)/1 var(--mono);color:var(--dust);font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}.conj-digits .unit{color:var(--amber);letter-spacing:0;margin:0 .35em 0 .05em;font-size:.4em}.conj-digits .secs{color:var(--muted);letter-spacing:0;font-size:.4em}.actions{grid-template-columns:1fr auto;gap:12px;display:grid}.actions button{white-space:nowrap}.us-photo{gap:8px;display:grid}.us-frame{aspect-ratio:1;outline:1px solid var(--rule);outline-offset:6px;border-radius:32px;margin:0;position:relative;overflow:hidden}.us-frame img{object-fit:cover;width:100%;height:100%;display:block}.us-caption{-webkit-backdrop-filter:blur(12px);font:italic 19px var(--display);color:var(--dust);background:#0a1021a8;border-radius:20px;padding:6px 14px;position:absolute;bottom:16px;left:16px}.us-change{-webkit-backdrop-filter:blur(12px);min-height:36px;font:600 13px var(--sans);color:var(--dust);letter-spacing:.04em;cursor:pointer;background:#0a1021a8;border-radius:18px;align-items:center;padding:0 14px;display:inline-flex;position:absolute;top:16px;right:16px}.us-empty{aspect-ratio:1;cursor:pointer;text-align:center;color:var(--glow);letter-spacing:0;place-content:center;justify-items:center;gap:8px;padding:24px;font-weight:400;display:grid}.us-empty:hover{background:#24374fb3}.us-empty-title{font:italic 22px var(--display);color:var(--dust);letter-spacing:0}.question{gap:16px;display:grid}.question-text{font:italic 26px/1.2 var(--display);color:var(--dust);text-wrap:balance}.answers{grid-template-columns:1fr 1fr;gap:16px;display:grid}.answers figure{align-content:start;gap:8px;margin:0;display:grid}.answers figcaption{font:italic 19px var(--display);color:var(--glow)}.answers blockquote{color:var(--dust-2);white-space:pre-wrap;margin:0}.answers .pending figcaption{color:var(--muted)}.ephemeris{margin:0 0 8px;display:grid}.ephemeris>div{border-bottom:1px dotted var(--rule-soft);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.ephemeris dt{font:600 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.ephemeris dd{font:400 15px var(--mono);color:var(--dust);font-variant-numeric:tabular-nums;text-align:right;margin:0}.visit-log{margin:8px 0;padding:0;list-style:none}.visit-log li{border-bottom:1px dotted var(--rule-soft);align-items:center;gap:12px;min-height:48px;display:flex}.visit-log .visit-note{font:italic 17px var(--display);color:var(--dust-2);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.visit-log .coords{flex:none}.visit-log .icon-btn{margin-left:auto}.composer textarea{min-height:96px}.preview{gap:8px;display:grid}.preview img,.moment-photo{border-radius:24px;width:100%;display:block}.entry{border-top:1px solid var(--rule);gap:12px;padding:20px 0 24px;display:grid}.entry-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.entry-author{font:italic 22px var(--display);color:var(--dust);margin-right:auto}.entry-head .coords{width:100%}.moment-body{white-space:pre-wrap;color:var(--dust-2);font-size:17px;line-height:1.55}.entry.win .entry-author{color:var(--glow)}.cheer{color:var(--dust-2);border:1px solid var(--rule-soft);box-shadow:none;letter-spacing:0;background:0 0;border-radius:22px;justify-self:start;min-height:44px;padding:0 14px;font-size:15px;font-weight:500}.cheer:hover:not(:disabled){background:#f2f2e90f}.cheer.on{border-color:var(--amber);color:var(--dust);background:#ff4d2e24}.cheer-tag{justify-self:start}.letter{border:1px solid var(--rule-soft);background:var(--panel);justify-items:start;gap:12px;padding:20px 16px;display:grid}.letter-head{align-items:flex-start;gap:12px;display:flex}.letter-mark{border:1px solid var(--rule-soft);width:40px;height:40px;color:var(--muted);border-radius:50%;flex:none;place-items:center;display:grid}.letter-title{font:italic 22px/1.2 var(--display);color:var(--dust)}.letter-meta{color:var(--muted);margin-top:2px;font-size:13px}.letter.locked .letter-mark{border-style:dashed}.letter.locked{background:repeating-linear-gradient(-45deg, transparent 0 7px, #f2f2e90a 7px 8px), var(--panel)}.letter.locked .letter-title{color:var(--muted)}.letter.ready{border-color:var(--amber);box-shadow:0 10px 30px -18px #ff4d2ee6}.letter.ready .letter-mark{border-color:var(--amber);color:var(--amber)}.letter-body{white-space:pre-wrap;font:19px/1.55 var(--display);color:var(--dust)}.catalog{border-top:1px solid var(--rule)}.catalog-row{border:0;border-bottom:1px dotted var(--rule-soft);width:100%;min-height:72px;box-shadow:none;color:var(--dust);text-align:left;letter-spacing:0;background:0 0;border-radius:0;grid-template-columns:auto 1fr auto;justify-content:stretch;align-items:center;gap:16px;padding:12px 0;font-weight:400;display:grid}.catalog-row:hover:not(:disabled){background:#24374f73}.catalog-glyph{border:1px solid var(--rule);width:44px;height:44px;color:var(--glow);border-radius:50%;place-items:center;display:grid}.catalog-text{gap:2px;min-width:0;display:grid}.catalog-name{font:italic 22px/1.15 var(--display);color:var(--dust)}.catalog-kind{color:var(--muted);font-size:13px}.catalog-count{justify-items:center;gap:2px;display:grid}.mag-dot{fill:var(--dust);filter:drop-shadow(0 0 4px #f2f2e999)}.items{border-top:1px solid var(--rule)}.items li{border-bottom:1px dotted var(--rule-soft);align-items:center;gap:12px;min-height:52px;display:flex}.items li.hint{padding:16px 0}.items a{color:var(--dust)}.items .tag{margin-left:8px}input.tick{cursor:pointer;border:1.5px solid var(--muted);background:0 0;border-radius:50%;flex:none;width:24px;height:24px;min-height:0;padding:0}input.tick:checked{background:var(--amber);border-color:var(--amber)}input.tick:checked:after{content:"";border:solid var(--night);border-width:0 2px 2px 0;width:6px;height:11px;margin:3px auto 0;display:block;transform:rotate(45deg)}.item.done .grow{color:var(--muted);text-decoration:line-through}.tabbar{z-index:2;-webkit-backdrop-filter:saturate(160%)blur(24px);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom);background:#0a1021f5;grid-template-columns:repeat(4,minmax(0,8.5rem));justify-content:center;display:grid;position:fixed;inset:auto 0 0}.tabbar a{min-height:56px;color:var(--muted);font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;justify-items:center;gap:4px;padding:10px 0 6px;text-decoration:none;display:grid}.tabbar a[aria-current]{color:var(--amber)}.tabbar a[aria-current] svg{filter:drop-shadow(0 0 6px #ff4d2eb3)}.demo-flag{top:calc(8px + env(safe-area-inset-top));z-index:3;background:var(--amber);color:var(--night);font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;border-radius:14px;margin:0;padding:4px 12px;position:fixed;right:12px}@media (prefers-reduced-motion:no-preference){.tw{animation:5s ease-in-out infinite twinkle}@keyframes twinkle{50%{opacity:.12}}.shooting{animation:shoot 1.1s var(--ease) forwards}@keyframes shoot{0%{stroke-dashoffset:.16px;opacity:1}85%{opacity:1}to{stroke-dashoffset:-1.04px;opacity:0}}.letter-body{animation:unfold .6s var(--ease)}@keyframes unfold{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-6px)}to{clip-path:inset(0)}}}@media (width<=360px){.answers,.actions{grid-template-columns:1fr}}
