:root{--ink-50: #EEF2F7;--ink-100: #D8E1EB;--ink-200: #B3C3D6;--ink-300: #86A0BD;--ink-400: #5B7CA0;--ink-500: #3C5E84;--ink-600: #27496F;--ink-700: #1A3A5B;--ink-800: #0E2B47;--ink-900: #081B2E;--orange-300: #FFA16D;--orange-400: #FA7C3C;--orange-500: #F0601E;--orange-600: #C9480E;--orange-700: #A83A0B;--amber-300: #FAC64D;--amber-400: #EDAE22;--amber-600: #A6720A;--green-200: #A7DDBB;--green-600: #1B7743;--green-700: #165F37;--blue-200: #A2CFEF;--blue-700: #134E7C;--font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--bg: #F7F4EF;--bg-subtle: #EFEBE4;--surface: #FFFFFF;--sunken: #EFEBE4;--text: #1A1815;--text-2: #5C564D;--muted: #5C564D;--border: #E2DCD2;--border-strong: #CBC3B6;--link: var(--ink-600);--link-hover: var(--ink-800);--primary: var(--ink-600);--primary-text: #FFFFFF;--action-bg: var(--orange-600);--action-bg-hover: var(--orange-700);--action-fg: #FFFFFF;--chip-on-bg: var(--ink-800);--chip-on-fg: #FFFFFF;--accent: var(--amber-400);--accent-text: var(--orange-700);--kids: var(--green-600);--free: var(--green-600);--warn: var(--orange-600);--ok: var(--green-600);--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--ink-500);--shadow-1: 0 1px 2px rgba(26, 24, 21, .06);--shadow-2: 0 1px 2px rgba(26, 24, 21, .05), 0 6px 16px rgba(14, 43, 71, .07);--side-bg: var(--ink-800);--side-text: #F2EEE8;--side-muted: var(--ink-200);--side-border: rgba(242, 238, 232, .12);--side-field: rgba(242, 238, 232, .06);--side-chip-on-bg: #F2EEE8;--side-chip-on-fg: var(--ink-900);--radius: 8px;--radius-lg: 12px;--sidebar-w: 396px;font-family:var(--font-sans);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0A1624;--bg-subtle: #0F1E30;--surface: #12243A;--sunken: #081220;--text: #F2EEE8;--text-2: #B9C3CF;--muted: #9AA8B8;--border: #1F3550;--border-strong: #2C4664;--link: #8FB4DC;--link-hover: #C3D7EC;--primary: #8FB4DC;--primary-text: var(--ink-900);--action-bg: var(--orange-400);--action-bg-hover: var(--orange-300);--action-fg: #1A1815;--chip-on-bg: #F2EEE8;--chip-on-fg: var(--ink-900);--accent: var(--amber-300);--accent-text: var(--orange-300);--kids: #72C693;--free: #72C693;--warn: var(--orange-300);--ok: #72C693;--focus: 0 0 0 2px var(--bg), 0 0 0 4px #8FB4DC;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 2px 4px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .35);--side-bg: #081220;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5;-webkit-tap-highlight-color:transparent;overflow-wrap:break-word}a{color:var(--link);text-underline-offset:2px}a:hover{color:var(--link-hover)}h1,h2,h3{line-height:1.2;letter-spacing:-.01em}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}.container{max-width:880px;margin:0 auto;padding:0 16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shell{min-height:100vh}.sidebar{display:none}.content{min-width:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;background:var(--side-bg);color:var(--side-text)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:0}.brand:hover{color:inherit}.brand-mark{color:var(--side-text)}.brand-text{display:grid;min-width:0}.brand-name{font-weight:700;font-size:1rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-300)}.nav{display:flex;gap:4px}.nav-link{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);color:var(--side-muted);text-decoration:none;font-weight:500;white-space:nowrap}.nav-link:hover{color:var(--side-text);background:var(--side-field)}.nav-link.active{color:var(--side-text);background:#f2eee81a}.nav-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;background:var(--orange-500);color:#fff;font-family:var(--font-mono);font-size:.75rem;font-weight:600}@media(min-width:1024px){.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.topbar{display:none}.sidebar{display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;padding:28px;background:var(--side-bg);color:var(--side-text);scrollbar-width:thin;scrollbar-color:rgba(242,238,232,.2) transparent}.sidebar .brand{padding:0 4px;gap:12px}.sidebar .brand-name{font-size:1.3rem;white-space:normal}.sidebar .brand-sub{font-size:.75rem}.sidebar .brand-mark{height:40px;width:auto}.sidebar .nav{flex-direction:column;gap:2px;padding-bottom:16px;border-bottom:1px solid var(--side-border)}.sidebar .nav-link{padding:10px 12px}.sidebar .nav-count{margin-left:auto}.sidebar-slot:empty{display:none}.sidebar-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--side-border);font-size:.8rem;color:var(--side-muted)}.sidebar-div{color:var(--side-text);display:inline-block}.sidebar-div:hover{color:var(--orange-300)}.content .container{max-width:920px;padding:0 40px}}.site-footer{color:var(--muted);font-size:.85rem;padding-top:32px;padding-bottom:40px}.eyebrow{margin:0 0 10px;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);font-weight:500}.section-label{display:flex;align-items:center;gap:12px;margin:28px 0 10px;font-family:var(--font-mono);font-size:.78rem;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--text-2)}.section-label-index{color:var(--accent-text)}.section-label-rule{flex:1;height:1px;background:var(--border);min-width:24px}.hero{padding:24px 0 4px}.hero h1{margin:0 0 12px;font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:700;letter-spacing:-.025em}.project-note p{margin:0}.project-note-actions{display:flex;align-items:center;gap:16px;margin-top:8px!important}.hero-note{position:relative;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--orange-500);border-radius:var(--radius);padding:10px 12px;font-size:.875rem;color:var(--text-2)}.hero-note .project-note-actions a{font-weight:600}.project-note-hide{margin-left:auto;font-size:.85rem;color:var(--muted)}.sidebar .project-note{font-size:.8rem;line-height:1.5;color:var(--side-muted);margin-bottom:14px}.sidebar .project-note a{color:var(--orange-300)}.sidebar .project-note a:hover{color:var(--side-text)}@media(min-width:1024px){.hero{padding-top:12px}.hero-note{display:none}}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .14s,border-color .14s,color .14s}.button:hover{border-color:var(--text-2);color:var(--text)}.button.primary{background:var(--action-bg);border-color:var(--action-bg);color:var(--action-fg)}.button.primary:hover{background:var(--action-bg-hover);border-color:var(--action-bg-hover);color:var(--action-fg)}.button:disabled{opacity:.5;cursor:not-allowed}.button.small{padding:6px 12px;font-size:.875rem;font-weight:500}.link{background:none;border:0;color:var(--link);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:0}input[type=search],input[type=date],select,.copy input{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}select{text-overflow:ellipsis}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:.875rem;cursor:pointer;transition:background-color .14s,border-color .14s}.chip:hover{border-color:var(--text-2)}.chip.on{background:var(--chip-on-bg);border-color:var(--chip-on-bg);color:var(--chip-on-fg)}.chip.small{padding:4px 10px;font-size:.8rem}.chip-count{font-family:var(--font-mono);font-size:.72rem;opacity:.65}.chip.empty{opacity:.5}.row{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.check input{accent-color:var(--orange-500);width:16px;height:16px}.filters{display:grid;gap:10px;padding:16px 0 12px;border-bottom:1px solid var(--border)}.filter-group{display:grid;gap:8px;min-width:0}.filter-label{display:none}.search-row{display:flex;gap:8px;min-width:0}.search-row input{flex:1 1 auto;min-width:0}.filter-toggle{display:none;white-space:nowrap}.filter-toggle.has{border-color:var(--action-bg);color:var(--accent-text)}.filters .hint{margin:0}.filter-group.more{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:center}.filter-group.more>.checks,.filter-group.more>.chips{grid-column:1 / -1}.filter-group.more>.clear-filters{justify-self:start}.dates{gap:8px 12px}.dates label{display:inline-flex;align-items:center;gap:6px}.dates input[type=date]{width:auto;padding:6px 10px}.sidebar .filters{gap:20px;padding:0;border:0}.sidebar .filter-label{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted);font-weight:500}.sidebar .filter-group.more{display:grid;grid-template-columns:1fr;gap:10px}.sidebar .filter-toggle{display:none}.sidebar input[type=search],.sidebar input[type=date],.sidebar select{background:var(--side-field);border-color:var(--side-border);color:var(--side-text);font-size:.9rem;padding:9px 12px}.sidebar input::placeholder{color:var(--side-muted);opacity:.8}.sidebar select option{color:#1a1815;background:#fff}.sidebar .chip{background:transparent;border-color:var(--side-border);color:var(--side-text);font-size:.82rem;padding:5px 10px}.sidebar .chip:hover{border-color:var(--side-muted)}.sidebar .chip.on{background:var(--side-chip-on-bg);border-color:var(--side-chip-on-bg);color:var(--side-chip-on-fg)}.sidebar .hint{color:var(--side-muted);font-size:.8rem}.sidebar .check{color:var(--side-text);font-size:.9rem}.sidebar .dates{display:grid;grid-template-columns:1fr;gap:8px}.sidebar .dates label{display:grid;grid-template-columns:28px 1fr;color:var(--side-muted);font-size:.85rem}.sidebar .dates input[type=date]{width:100%;color-scheme:dark}.sidebar .clear-filters{background:transparent;color:var(--orange-300);border-color:var(--side-border)}.sidebar .clear-filters:hover{color:var(--side-text);border-color:var(--side-muted)}.sidebar :focus-visible{box-shadow:0 0 0 2px var(--side-bg),0 0 0 4px var(--orange-300)}.results-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:20px 0 0;font-family:var(--font-mono);font-size:.8rem;color:var(--text-2)}.results-count{font-weight:600;color:var(--text)}.results-head .link{font-family:var(--font-sans);font-size:.875rem;margin-left:auto}.day .section-label{margin-top:28px}.card{display:grid;grid-template-columns:128px 1fr auto;gap:14px;align-items:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:8px;box-shadow:var(--shadow-1);transition:border-color .14s,box-shadow .14s}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.card.is-cancelled{opacity:.75}.card.is-cancelled h3 a{text-decoration:line-through}.card-time{font-family:var(--font-mono);font-weight:600;font-size:.85rem;display:grid;padding-top:3px}.card-time small{color:var(--muted);font-weight:400}.card h3{margin:0 0 8px;font-size:1.06rem;font-weight:600}.card h3 a{color:var(--text);text-decoration:none}.card h3 a:hover{color:var(--link);text-decoration:underline}.meta{margin:8px 0 0;color:var(--text-2);font-size:.875rem;display:flex;flex-wrap:wrap;gap:4px 16px}.badges{display:flex;flex-wrap:wrap;gap:6px}.badge{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;padding:2px 8px;border-radius:4px;border:1px solid var(--border-strong);color:var(--text-2);background:transparent}.badge.cat{color:var(--link);border-color:currentColor}.badge.kids{color:var(--kids);border-color:currentColor;font-weight:600}.badge.paid{color:var(--text);border-color:currentColor;font-family:var(--font-sans);font-size:.78rem;font-weight:500;letter-spacing:0;max-width:100%}.badge.reg,.badge.cancelled{color:var(--warn);border-color:currentColor}.star{background:none;border:0;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted);padding:4px;border-radius:var(--radius);transition:color .14s,transform .14s}.star:hover{color:var(--accent-text)}.star.on{color:var(--orange-500)}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.notice.error{border-color:var(--warn)}.notice.ok{border-color:var(--ok)}.notice.small{font-size:.875rem;color:var(--text-2)}.notice.keep{margin-top:14px;border-color:var(--accent);font-size:.9rem}.hint{color:var(--muted);font-size:.9rem}.detail{padding-top:24px}.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.detail h1{margin:8px 0 12px;font-size:clamp(1.6rem,3.2vw,2.25rem);letter-spacing:-.02em}.facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:20px 0;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.facts dt{color:var(--muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;padding-top:3px}.facts dd{margin:0}.lead{font-size:1.05rem}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.sources{color:var(--muted);font-size:.9rem}.mycal{padding-top:24px}.mycal h1{margin:8px 0;font-size:clamp(1.6rem,3.2vw,2.25rem);letter-spacing:-.02em}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin:16px 0;box-shadow:var(--shadow-1)}.panel h2{margin:0 0 10px;font-size:1.15rem;display:flex;align-items:center}.panel h3{margin:16px 0 8px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500}.panel .card{background:var(--bg);box-shadow:none}.copy{display:flex;gap:8px;flex-wrap:wrap}.copy input{flex:1 1 260px;width:auto;font-family:var(--font-mono);font-size:.85rem}.field{display:grid;gap:4px;margin:8px 0 0}.field span{color:var(--muted);font-size:.9rem}.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 0}.tab{position:relative;display:grid;gap:4px;text-align:left;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;transition:border-color .14s,box-shadow .14s}.tab:hover{border-color:var(--border-strong)}.tab.on{border-color:var(--chip-on-bg);box-shadow:inset 0 0 0 1px var(--chip-on-bg)}.tab.on:after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--orange-500)}.tab-title{font-weight:700}.tab-count{font-family:var(--font-mono);font-weight:600;color:var(--accent-text)}.tab-sub{color:var(--text-2);font-size:.85rem;line-height:1.35}.tabpanel .panel:first-child{margin-top:12px}.step{display:inline-grid;place-items:center;width:26px;height:26px;margin-right:10px;border-radius:6px;flex:none;background:var(--chip-on-bg);color:var(--chip-on-fg);font-family:var(--font-mono);font-size:.8rem;font-weight:600}.panel h2.step-gap{margin-top:22px}.summary{margin:14px 0 0;padding:10px 12px;background:var(--bg);border-radius:var(--radius);font-size:.9rem}.sub-actions{margin-bottom:10px}.howto{margin-top:12px;font-size:.9rem}.howto summary{cursor:pointer;color:var(--link);font-weight:500}.howto ul{padding-left:20px;color:var(--text-2)}.howto li{margin:4px 0}.steps{padding-left:20px}.steps li{margin:6px 0}.compare{margin:32px 0 0}.compare h2{font-size:1.15rem;margin:0 0 10px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.compare table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:480px}.compare th,.compare td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.compare tbody tr:last-child th,.compare tbody tr:last-child td{border-bottom:0}.compare thead th{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;text-align:center}.compare thead th:first-child{text-align:left}.compare tbody th{font-weight:500}.compare td{text-align:center}.yes{color:var(--ok);font-weight:700}.no{color:var(--muted)}.muted-panel{background:transparent;box-shadow:none}.muted-panel ul{margin:0;padding-left:20px;color:var(--text-2);font-size:.9rem}.muted-panel li{margin:4px 0}@media(pointer:coarse){.chip{min-height:40px}.chip.small{min-height:36px}.check input{width:20px;height:20px}.star{min-width:44px;min-height:44px}}@media(max-width:640px){.topbar .brand-sub,.topbar .nav-events{display:none}.topbar .nav-link{padding:8px}.hero{padding:16px 0 0}.filters{padding:12px 0;gap:8px}.filter-toggle{display:inline-flex}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px;scroll-padding:0 16px}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:0 0 auto;white-space:nowrap}.filter-group.more{display:none}.filter-group.more.open{display:grid;grid-template-columns:1fr}.dates label{flex:1 1 140px}.dates input[type=date]{width:100%}.card{grid-template-columns:1fr auto;gap:4px 8px;padding:12px 8px 12px 14px}.card-time{grid-column:1;font-size:.85rem}.card .star{grid-column:2;grid-row:1 / span 2;align-self:start}.meta{gap:2px 12px;font-size:.85rem}.facts{grid-template-columns:1fr;gap:0}.facts dt{margin-top:10px}.facts dt:first-child{margin-top:0}.actions .button,.copy .button{flex:1 1 100%}.panel{padding:16px}.tabs{grid-template-columns:1fr;gap:6px}.tab{padding:12px 14px}.compare table{min-width:0;font-size:.8rem}.compare th,.compare td{padding:8px 6px}}
