:root{--paper:#ffffff;--panel:#edf1ea;--line:#d3dbd2;--ink:#12261f;--ink-soft:#4e6055;--green:#2e6b4a;--blaze:#a85d00;--rust:#8e3b2a;--shadow:0 1px 2px rgba(18,38,31,0.1),0 4px 14px rgba(18,38,31,0.06);--wrap-bg:rgba(255,255,255,0.86);--step-0:1.125rem;--step-1:1.3125rem;--step-2:1.6875rem;--step-3:2.125rem}:root[data-theme=dark]{--paper:#101813;--panel:#1a2620;--line:#2b3a32;--ink:#eaf2ec;--ink-soft:#9fb5a8;--green:#6fbf8f;--blaze:#e2963f;--rust:#e3806a;--shadow:0 1px 2px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.35);--wrap-bg:rgba(16,24,19,0.82)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#101813;--panel:#1a2620;--line:#2b3a32;--ink:#eaf2ec;--ink-soft:#9fb5a8;--green:#6fbf8f;--blaze:#e2963f;--rust:#e3806a;--shadow:0 1px 2px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.35);--wrap-bg:rgba(16,24,19,0.82)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--step-0);line-height:1.5;transition:background-color .15s ease,color .15s ease}.scene{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.scene svg{width:100%;height:100%;display:block}.scene .moon,:root[data-theme=dark] .scene .sun{display:none}:root[data-theme=dark] .scene .moon{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .scene .sun{display:none}:root:not([data-theme=light]) .scene .moon{display:block}}.wrap{position:relative;z-index:1;max-width:40rem;margin:1.25rem auto 2.5rem;padding:1.5rem 1.25rem 3rem;background:var(--wrap-bg);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border-radius:10px;box-shadow:var(--shadow)}h1,h2,h3{line-height:1.15;margin:0;font-weight:650;letter-spacing:-.015em}h1{font-size:var(--step-3)}h2{font-size:var(--step-2);margin-top:2.75rem;margin-bottom:.75rem}h3{font-size:var(--step-1)}p{margin:.5rem 0;max-width:62ch}.tagline{color:var(--ink-soft);margin-top:.35rem}a{color:var(--green)}.masthead{align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:.75rem}.masthead,.masthead nav{display:flex;gap:1rem;flex-wrap:wrap}.masthead nav{align-items:center;font-size:1rem}.theme-toggle{min-height:2.25rem;padding:.4rem .8rem;font-size:.9rem;font-weight:550;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:999px}.theme-toggle:hover{border-color:var(--ink-soft)}.next-trip{margin-top:1.5rem;padding:1.5rem 1.5rem 1.75rem;background:linear-gradient(155deg,var(--green),var(--green) 65%,var(--blaze));color:#f4f8f2;border-radius:4px;box-shadow:var(--shadow)}.next-trip .countdown{font-size:var(--step-3);font-weight:650;display:block}.next-trip .where{font-size:var(--step-1);margin:.35rem 0 0}.next-trip .when{color:#c8dcc9;margin:.25rem 0 0}.empty-hero{margin-top:1.5rem;padding:1.5rem;border:2px dashed var(--line);border-radius:4px}.glance{margin-top:1.25rem}.glance h3{margin-bottom:.5rem}.glance-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:4px;overflow:hidden}.glance-list li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .85rem;border-bottom:1px solid var(--line);font-size:.95rem}.glance-list li:last-child{border-bottom:none}.glance-list li:nth-child(2n){background:var(--panel)}.glance-when{white-space:nowrap;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.glance-where{text-align:right}.tallies{display:flex;flex-wrap:wrap;gap:1.75rem;margin-top:1.5rem}.tallies div{min-width:6rem}.tallies b{display:block;font-size:var(--step-2);font-weight:650}.tallies span,.year-rule{color:var(--ink-soft);font-size:.95rem}.year-rule{display:flex;align-items:center;gap:.75rem;margin:2rem 0 .5rem}.year-rule:after{content:"";flex:1 1;height:1px;background:var(--line)}.entry{padding:1rem .75rem;margin:0 -.75rem;border-bottom:1px solid var(--line);border-radius:4px;transition:background-color .15s ease}.entry:hover{background:var(--panel)}.entry-top{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.entry h3{font-weight:600}.entry .meta{color:var(--ink-soft);font-size:1rem;margin:.25rem 0 0}.entry .cost{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.entry .row-actions{display:flex;gap:.75rem;margin-top:.75rem}label{display:block;margin-top:1rem;font-weight:550}input,select,textarea{width:100%;min-height:3rem;margin-top:.35rem;padding:.6rem .7rem;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--ink-soft);border-radius:2px}textarea{min-height:5rem}:focus-visible{outline:3px solid var(--blaze);outline-offset:2px}:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,:root[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) input[type=date]::-webkit-calendar-picker-indicator,:root:not([data-theme=light]) input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1)}}button{min-height:3rem;padding:.7rem 1.25rem;font:inherit;font-weight:600;border:1px solid var(--ink);border-radius:2px;background:var(--ink);color:var(--paper);cursor:pointer;transition:opacity .15s ease}button:hover:not(:disabled){opacity:.85}button.secondary{background:transparent;color:var(--ink)}button.danger{background:transparent;color:var(--rust);border-color:var(--rust)}button.link{background:none;border:none;color:var(--green);text-decoration:underline;padding:0;min-height:0;font-weight:550}button.link:hover:not(:disabled){opacity:1;color:var(--blaze)}button:disabled{opacity:.5;cursor:not-allowed}.notice{margin-top:1rem;padding:.75rem 1rem;border-left:4px solid var(--blaze);background:var(--panel)}.notice.bad{border-color:var(--rust)}.result{padding:1rem .75rem;margin:0 -.75rem;border-bottom:1px solid var(--line);border-radius:4px;transition:background-color .15s ease}.result:hover{background:var(--panel)}.result .tag{color:var(--blaze);font-size:.9rem;font-weight:600}.result .dist{color:var(--ink-soft);font-size:.95rem}.result .row-actions{display:flex;gap:.5rem 1.25rem;margin-top:.6rem;flex-wrap:wrap;align-items:center}.result .row-actions a{color:var(--ink-soft)}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}.tools{margin-top:1rem}.cal-header,.tools{display:flex;gap:1rem;flex-wrap:wrap}.cal-header{align-items:baseline;justify-content:space-between;margin-top:1.5rem}.cal-header h2{margin-top:0}.cal-nav{display:flex;gap:.5rem}.cal-nav button{min-height:2.25rem;padding:.4rem .9rem;border-radius:999px}.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.35rem;gap:.35rem}.cal-dow{margin-top:1rem;color:var(--ink-soft);font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;text-align:center}.cal-grid{margin-top:.5rem}.cal-cell{min-height:4.5rem;border-radius:4px;padding:.35rem .4rem;border:2px solid transparent;background:var(--panel)}.cal-cell.blank{visibility:hidden}.cal-cell.weekend{background:transparent;border-color:var(--line)}.cal-cell .num{display:block;font-size:.85rem;font-weight:650;color:var(--ink-soft)}.cal-cell.today{border-color:var(--blaze)}.cal-cell.today .num{color:var(--blaze)}.cal-cell.camping{background:var(--green)}.cal-cell.camping .num{color:#eafaf0}.cal-cell.camping.today{border-color:#eafaf0}.cal-cell .tent{display:block;font-size:1.1rem;margin-top:.15rem;line-height:1}.cal-cell .name{display:block;font-size:.68rem;color:#eafaf0;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-legend{display:flex;gap:1.25rem;flex-wrap:wrap;margin-top:1.25rem;color:var(--ink-soft);font-size:.9rem}.cal-legend .swatch{display:inline-block;width:.8rem;height:.8rem;border-radius:3px;margin-right:.4rem;vertical-align:-.1rem}.cal-legend .swatch.camping{background:var(--green)}.cal-legend .swatch.today{border:2px solid var(--blaze)}@media (max-width:30rem){.cal-cell{min-height:3.25rem;padding:.25rem}.cal-cell .name{display:none}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.manual{margin-top:1rem;padding:.25rem 1rem 1rem;background:var(--panel);border-radius:6px}.manual .pair{display:grid;grid-template-columns:1fr 5rem;grid-gap:0 1rem;gap:0 1rem}button.link.inline{display:inline;padding:0;font:inherit;vertical-align:baseline}.sources{margin-top:-.5rem}