@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/fraunces-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--ink:#1e1b4b;--ink-deep:#0e0c2a;--ink-soft:#312e81;--muted:#6b6a82;--accent:#7c3aed;--accent-dark:#5b21b6;--accent-wash:#efe9fd;--gold:#f5b945;--gold-wash:#fbf0d6;--success:#15803d;--danger:#b91c1c;--cream:#f4f1ea;--paper:#ecead2;--panel:#fffdf8;--rule:#1e1b4b24;--rule-soft:#1e1b4b12;--lift:0 1px 0 #1e1b4b0d, 0 10px 24px -18px #1e1b4b80;--sans:"Inter", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;--display:"Fraunces", "Iowan Old Style", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--gutter:clamp(1.15rem, 5vw, 2.5rem);--rhythm:clamp(1.6rem, 5vw, 2.75rem)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--cream);color:var(--ink);font-family:var(--sans);background-image:linear-gradient(#1e1b4b07 1px,#0000 1px);background-size:100% 2rem;margin:0;padding-bottom:5.5rem;font-size:1rem;line-height:1.6}.masthead{padding:1.1rem var(--gutter) .9rem;border-bottom:1px solid var(--rule);background:var(--cream);justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.brand{color:inherit;align-items:center;gap:.6rem;text-decoration:none;display:flex}.brand img{object-fit:cover;width:32px;height:32px;box-shadow:0 0 0 1.5px var(--gold), 0 1px 3px #1e1b4b38;border-radius:50%;display:block}.brand img[data-fallback]{display:none}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-name{font-family:var(--display);letter-spacing:-.01em;font-size:1.02rem;font-weight:700}.brand-name .x{color:var(--accent)}.brand-tagline{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:.62rem;font-weight:600}.trip-meta{text-align:right;font-family:var(--mono);letter-spacing:.06em;color:var(--muted);text-transform:uppercase;font-size:.66rem}.trip-meta strong{color:var(--ink-soft);font-weight:700;display:block}.wrap{padding:0 var(--gutter);max-width:42rem;margin:0 auto}.eyebrow{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--accent-dark);margin:var(--rhythm) 0 .3rem;font-size:.68rem;font-weight:700}h1{font-family:var(--display);font-variation-settings:"opsz" 96, "SOFT" 40;letter-spacing:-.02em;margin:0 0 .4rem;font-size:clamp(1.85rem,7vw,2.6rem);font-weight:700;line-height:1.06}h2{font-family:var(--display);letter-spacing:-.01em;margin:var(--rhythm) 0 .7rem;font-size:clamp(1.15rem,3.6vw,1.4rem);font-weight:700}h3{letter-spacing:-.005em;margin:0 0 .2rem;font-size:1rem;font-weight:700}.lede{color:var(--ink-soft);max-width:34rem;margin:0 0 1.4rem;font-size:1.02rem}.note{color:var(--muted);font-size:.86rem}.banner{border-left:3px solid var(--gold);background:var(--gold-wash);color:var(--ink-soft);margin:1rem 0 0;padding:.7rem .85rem;font-size:.86rem;display:none}.banner.on{display:block}.banner code{font-family:var(--mono);font-size:.86em}.pills{flex-wrap:wrap;gap:.4rem;margin:.9rem 0 0;display:flex}.pill{font:600 .78rem/1 var(--sans);border:1px solid var(--rule);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:.46rem .7rem;transition:background .22s cubic-bezier(.22,1,.36,1),color .22s,border-color .22s}.pill:hover{border-color:var(--accent);color:var(--accent-dark)}.pill[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--cream)}.btn{font:700 .92rem/1 var(--sans);border:1px solid var(--ink);background:var(--ink);color:var(--cream);cursor:pointer;border-radius:2px;padding:.78rem 1.1rem;transition:transform .2s cubic-bezier(.22,1,.36,1),background .2s}.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn:active{transform:translateY(1px)}.btn.ghost{color:var(--ink);border-color:var(--rule);background:0 0}.btn.ghost:hover{border-color:var(--accent);color:var(--accent-dark);background:0 0}.btn.wide{width:100%}label{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .3rem;font-size:.68rem;font-weight:700;display:block}input,select,textarea{width:100%;font:400 1rem/1.4 var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:2px;padding:.7rem .75rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.field-row{grid-template-columns:1fr auto;align-items:end;gap:.5rem;display:grid}.rows{margin:.4rem 0 0;padding:0;list-style:none}.row{border-bottom:1px solid var(--rule-soft);grid-template-columns:1fr auto;align-items:center;gap:.6rem .9rem;padding:.85rem 0;display:grid}.row:first-child{border-top:1px solid var(--rule)}.row-main{min-width:0}.row-title{letter-spacing:-.005em;font-weight:700}.row-sub{color:var(--muted);font-size:.82rem}.row-sub .cat{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);font-size:.68rem}.constraint{color:var(--ink-soft);border-left:2px solid var(--gold);margin-top:.3rem;padding-left:.5rem;font-size:.8rem;display:block}.tag-pin{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#7a5a10;background:var(--gold-wash);vertical-align:.08em;margin-left:.35rem;padding:.16rem .36rem;font-size:.6rem;font-weight:800}.vote{align-items:center;gap:.3rem;display:flex}.vote button{width:2.4rem;height:2.4rem;font:700 1rem/1 var(--sans);border:1px solid var(--rule);background:var(--panel);color:var(--ink-soft);cursor:pointer;border-radius:2px;transition:background .18s,color .18s,border-color .18s}.vote button:hover{border-color:var(--accent);color:var(--accent-dark)}.vote button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--cream)}.vote button.down[aria-pressed=true]{background:var(--danger);border-color:var(--danger)}.score{font-family:var(--display);text-align:center;font-variant-numeric:tabular-nums;min-width:2.1rem;font-size:1.35rem;font-weight:700}.score.neg{color:var(--danger)}.score.pos{color:var(--success)}#map{border:1px solid var(--rule);background:var(--paper);height:58vh;min-height:20rem}.map-fallback{text-align:center;color:var(--muted);padding:1.4rem;font-size:.9rem;display:none}#map.dead{justify-content:center;align-items:center;display:flex}#map.dead .map-fallback{display:block}.leaflet-container{font-family:var(--sans)!important}.marker-dot{border:2px solid var(--panel);border-radius:50%;width:.95rem;height:.95rem;box-shadow:0 1px 4px #0e0c2a73}.day{padding:var(--rhythm) 0 0 2.6rem;position:relative}.day:before{content:attr(data-n);left:-.25rem;top:calc(var(--rhythm) - .5rem);font-family:var(--display);color:var(--rule);letter-spacing:-.04em;font-size:3.1rem;font-weight:700;line-height:1;position:absolute}.day:after{content:"";left:1.55rem;top:calc(var(--rhythm) + 2.9rem);border-left:2px dotted var(--rule);position:absolute;bottom:.5rem}.day:last-child:after{display:none}.day-head{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:700}.day-theme{font-family:var(--display);margin:.1rem 0 .5rem;font-size:1.25rem;font-weight:700}.slot{border-bottom:1px solid var(--rule-soft);grid-template-columns:5.2rem 1fr;align-items:baseline;gap:.7rem;padding:.55rem 0;display:grid}.slot-name{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent-dark);font-size:.66rem;font-weight:700}.slot-empty{color:var(--muted);font-style:italic}.version{border-bottom:1px solid var(--rule-soft);grid-template-columns:1fr auto;align-items:center;gap:.5rem;padding:.7rem 0;display:grid}.version:first-child{border-top:1px solid var(--rule)}.version-no{font-family:var(--display);font-size:1.1rem;font-weight:700}.version.current .version-no:after{content:" current";font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-dark);font-size:.58rem}.figures{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:0 1.2rem;margin:.8rem 0 0;display:grid}.figure{border-top:2px solid var(--ink);padding:.7rem 0}.figure dt{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:.64rem;font-weight:700}.figure dd{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.55rem;font-weight:700}table{border-collapse:collapse;width:100%;margin-top:.5rem}th{text-align:left;font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink);padding:0 0 .4rem;font-size:.64rem;font-weight:700}td{border-bottom:1px solid var(--rule-soft);padding:.55rem 0;font-size:.94rem}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.owed{color:var(--danger)}td.owes{color:var(--success)}tr.void td{color:var(--muted);text-decoration:line-through}tr.reversal td{color:var(--muted)}td.pos{color:var(--success)}td.neg{color:var(--danger)}.swatch{vertical-align:baseline;border-radius:50%;width:.55rem;height:.55rem;margin-right:.45rem;display:inline-block}.chip{border:1px solid var(--rule);color:var(--muted);border-radius:999px;align-items:baseline;gap:.35rem;margin:.35rem .35rem 0 0;padding:.3rem .6rem;font-size:.85rem;display:inline-flex}.chip.on{border-color:var(--ink);color:var(--ink)}.chip b{font-family:var(--mono);color:var(--muted);font-size:.7rem;font-weight:700}.chip.on b{color:var(--accent-dark)}.bar{background:var(--accent);height:.4rem;display:block}.bar-track{background:var(--rule-soft);display:block}.transfer{border-bottom:1px solid var(--rule-soft);grid-template-columns:1fr auto;align-items:baseline;gap:.6rem;padding:.75rem 0;display:grid}.transfer:first-child{border-top:2px solid var(--ink)}.transfer-who{font-weight:700}.transfer-who .to{color:var(--muted);font-weight:400}.transfer-amt{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.empty{color:var(--muted);border-top:1px solid var(--rule);padding:1.6rem 0;font-size:.9rem}.sheet{border-top:2px solid var(--ink);margin-top:var(--rhythm);padding-top:.6rem}.sheet[hidden]{display:none}.result-row{border-bottom:1px solid var(--rule-soft);grid-template-columns:1fr auto;align-items:center;gap:.6rem;padding:.6rem 0;display:grid}.nav{z-index:900;background:var(--ink);border-top:1px solid var(--ink-deep);padding-bottom:env(safe-area-inset-bottom,0);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav a{text-align:center;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#f4f1ea9e;border-top:2px solid #0000;padding:.7rem .2rem .75rem;font-size:.6rem;font-weight:700;text-decoration:none}.nav a[aria-current=page]{color:var(--cream);border-top-color:var(--gold)}.proto-flag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--accent-wash);color:var(--accent-dark);vertical-align:.1em;margin-left:.4rem;padding:.18rem .4rem;font-size:.6rem;font-weight:700}.index-list{margin:1rem 0 0;padding:0;list-style:none}.index-list li{border-bottom:1px solid var(--rule-soft)}.index-list li:first-child{border-top:1px solid var(--rule)}.index-list a{color:inherit;grid-template-columns:2.2rem 1fr;align-items:baseline;gap:.8rem;padding:.95rem 0;text-decoration:none;display:grid}.index-list a:hover .idx-title{color:var(--accent-dark)}.idx-n{font-family:var(--display);color:var(--rule);font-size:1.3rem;font-weight:700}.idx-title{font-weight:700}.idx-sub{color:var(--muted);font-size:.84rem}.legend{color:var(--muted);flex-wrap:wrap;gap:.5rem 1rem;margin:.7rem 0 0;font-size:.8rem;display:flex}.legend span{align-items:center;gap:.35rem;display:flex}.legend i{border-radius:50%;width:.7rem;height:.7rem;display:block}footer.proto{margin:calc(var(--rhythm) * 1.4) 0 0;border-top:1px solid var(--rule);color:var(--muted);padding:1rem 0 2rem;font-size:.8rem}footer.proto code{font-family:var(--mono)}@media (prefers-reduced-motion:no-preference){.stagger>*{animation:.52s cubic-bezier(.22,1,.36,1) both rise}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(n+6){animation-delay:.22s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}@media (min-width:60rem){body{padding-bottom:0;padding-left:9.5rem}.nav{border-top:none;border-right:1px solid var(--ink-deep);grid-template-columns:1fr;align-content:start;width:9.5rem;padding-top:5.5rem;top:0;right:auto}.nav a{text-align:left;border-top:none;border-left:2px solid #0000;padding:.85rem 1.1rem}.nav a[aria-current=page]{border-left-color:var(--gold);border-top-color:#0000}.wrap,.masthead{max-width:46rem}.masthead{margin:0 auto}}
