:root{--surface: #f7f7f3;--card: #ffffff;--track: #eceee8;--ink: #262a2c;--ink-soft: #4a524d;--ink-2: #5a615b;--muted: #8d918a;--muted-2: #a3a79e;--mono-muted: #9aa39c;--line: #e6e7e1;--line-soft: #eef0ec;--dark-pill: #262a2c;--pill-on: #fff;--green: #2f6650;--green-2: #3f8568;--link: #2f6650;--toolbar-bg: rgba(247, 247, 243, .92);--badge-bg: rgba(255, 255, 255, .92);--tag-bg: rgba(255, 255, 255, .7);--media-fade: rgba(255, 255, 255, .5);--btn-soft-bg: rgba(255, 255, 255, .8);--btn-soft-bg-hover: #fff;--b-free: #3f8568;--b-1: #3f8568;--b-2: #4a7aa6;--b-3: #b07b45;--b-4: #b05f7a;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--pill: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 6px 20px rgba(0, 0, 0, .1);--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}[data-theme=dark]{--surface: #15181a;--card: #1e2225;--track: #262b2e;--ink: #e7eae6;--ink-soft: #c3c8c1;--ink-2: #b0b6ad;--muted: #8b918a;--muted-2: #757b74;--mono-muted: #818880;--line: #2f343a;--line-soft: #262b2e;--dark-pill: #e8eae6;--pill-on: #15181a;--green: #2f7d5e;--green-2: #5fae8a;--link: #6bc49f;--toolbar-bg: rgba(21, 24, 26, .92);--badge-bg: rgba(18, 21, 23, .85);--tag-bg: rgba(255, 255, 255, .08);--media-fade: rgba(255, 255, 255, .05);--btn-soft-bg: rgba(255, 255, 255, .1);--btn-soft-bg-hover: rgba(255, 255, 255, .18);--b-free: #5fae8a;--b-1: #5fae8a;--b-2: #6f9fcb;--b-3: #cf9d5f;--b-4: #d184a0;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 8px 24px rgba(0, 0, 0, .55)}.cat-green{--c-bg: #e7f1ec;--c-line: #5fa085;--c-accent: #3f8568;--c-strong: #2f6650;--c-head: #1f3b30;--c-data: #356054;--c-datalabel: #80a596;--c-badge-text: #357a5c}.cat-purple{--c-bg: #efe9fa;--c-line: #9080c0;--c-accent: #6f5aa6;--c-strong: #5d469a;--c-head: #352a4d;--c-data: #5b4d7e;--c-datalabel: #9a8cc0;--c-badge-text: #6a52a0}.cat-clay{--c-bg: #f4ecdf;--c-line: #c79a63;--c-accent: #b07b45;--c-strong: #8c5f33;--c-head: #4a3520;--c-data: #7a5630;--c-datalabel: #b79a72;--c-badge-text: #8c5f33}.cat-blue{--c-bg: #e6eef6;--c-line: #7ba0c4;--c-accent: #4a7aa6;--c-strong: #3a6188;--c-head: #1f3550;--c-data: #3a6188;--c-datalabel: #8aa6c4;--c-badge-text: #3a6188}.cat-rose{--c-bg: #f6e8ee;--c-line: #c98aa3;--c-accent: #b05f7a;--c-strong: #8c4760;--c-head: #45222f;--c-data: #8c4760;--c-datalabel: #c99ab0;--c-badge-text: #8c4760}[data-theme=dark] .cat-green{--c-bg: #1b2b24;--c-line: #4f9d7b;--c-accent: #74c7a1;--c-strong: #2a7a5b;--c-head: #8fd9b6;--c-data: #79b89c;--c-datalabel: #6f9d88;--c-badge-text: #74c7a1}[data-theme=dark] .cat-purple{--c-bg: #251f36;--c-line: #9080c0;--c-accent: #b49ce0;--c-strong: #5d469a;--c-head: #c9b6f0;--c-data: #ad97da;--c-datalabel: #9081b5;--c-badge-text: #b49ce0}[data-theme=dark] .cat-clay{--c-bg: #2c2316;--c-line: #c79a63;--c-accent: #d9ac72;--c-strong: #8a5d31;--c-head: #e8c794;--c-data: #cda878;--c-datalabel: #ab8c62;--c-badge-text: #d9ac72}[data-theme=dark] .cat-blue{--c-bg: #18242f;--c-line: #7ba0c4;--c-accent: #82b2dd;--c-strong: #3a6188;--c-head: #a6cdf0;--c-data: #88b2d8;--c-datalabel: #7596b8;--c-badge-text: #82b2dd}[data-theme=dark] .cat-rose{--c-bg: #2c1c23;--c-line: #c98aa3;--c-accent: #de9bb3;--c-strong: #8c4760;--c-head: #efb1c6;--c-data: #d49bb0;--c-datalabel: #ad7d8d;--c-badge-text: #de9bb3}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--sans);font-weight:600;letter-spacing:-.015em;margin:0}button{font-family:inherit;cursor:pointer}.mono-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.app{min-height:100vh}.container{max-width:1180px;margin:0 auto;padding:0 22px}.site-header{background:var(--surface);border-bottom:1px solid var(--line);padding:26px 0 22px}.site-header .head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.site-header .wordmark{font-weight:600;font-size:clamp(22px,3vw,25px);letter-spacing:-.02em;display:flex;align-items:center;gap:11px;color:var(--ink)}.site-header .wordmark .mark{color:var(--green-2);font-size:.88em}.site-header .tagline{margin:11px 0 0;color:var(--muted);font-size:13.5px;line-height:1.55;max-width:56ch}.head-aside{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:none}.head-stamp{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap;text-align:right}.subscribe-pill{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff!important;padding:9px 16px;border-radius:var(--pill);text-decoration:none!important;font-weight:500;font-size:12.5px;white-space:nowrap}.subscribe-pill:hover{background:#28553f}.head-actions{display:inline-flex;align-items:center;gap:10px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;font-size:15px;line-height:1;border:1px solid var(--line);border-radius:var(--pill);background:var(--card);color:var(--ink);transition:border-color .15s ease,background .15s ease}.theme-toggle:hover{border-color:var(--green-2)}.theme-toggle:focus-visible{outline:none;border-color:var(--green-2);box-shadow:0 0 0 3px #3f85682e}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-top:0;padding-top:14px}.tabs button{border:0;background:transparent;color:var(--muted);font-weight:500;font-size:14px;padding:0 0 13px;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.tabs button[aria-selected=true]{color:var(--ink);font-weight:600;border-bottom-color:var(--green-2)}.tabs button:hover{color:var(--ink)}.toolbar{position:sticky;top:0;z-index:30;background:var(--toolbar-bg);-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line);padding:18px 0 20px}.toolbar-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.toolbar-filters{display:none;margin-top:16px}.toolbar-filters.open{display:flex;flex-direction:column;gap:12px}.search-input{flex:1 1 240px;min-width:200px;font-size:13.5px;padding:11px 18px;border:1px solid var(--line);border-radius:var(--pill);background:var(--card);color:var(--ink)}.search-input::placeholder{color:var(--muted-2)}.search-input:focus{outline:none;border-color:var(--c-line, var(--green-2));box-shadow:0 0 0 3px #3f85681f}.sort-group{display:flex;align-items:center;gap:8px}.sort-group .control-label{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}select.control{font-size:13px;padding:9px 30px 9px 14px;border:1px solid var(--line);border-radius:var(--pill);background:var(--card) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23b7bab2' stroke-width='1.5' stroke-linecap='round'/></svg>") no-repeat right 13px center;color:var(--ink-2);-moz-appearance:none;appearance:none;-webkit-appearance:none}.filters-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--pill);background:var(--card);color:var(--ink);font-size:13.5px;font-weight:500}.filters-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--pill);background:var(--green);color:#fff;font-size:11px;font-weight:700}.view-switch{display:inline-flex;gap:0;background:var(--track);border-radius:var(--pill);padding:4px}.view-switch button{border:0;background:transparent;color:#6b6f68;font-size:12.5px;font-weight:500;padding:8px 16px;border-radius:var(--pill);transition:all .14s ease}.view-switch button[aria-pressed=true]{background:var(--dark-pill);color:var(--pill-on)}.chip-row{display:flex;align-items:flex-start;gap:10px}.chip-row .row-label{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);width:64px;flex:none;padding-top:9px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:var(--card);color:#7c807a;font-size:12px;font-weight:500;padding:7px 14px;border-radius:var(--pill);transition:all .12s ease}.chip:hover{border-color:var(--green-2);color:var(--ink)}.chip[aria-pressed=true]{background:var(--dark-pill);border-color:var(--dark-pill);color:var(--pill-on)}.results-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:22px 0 18px}.results-count{color:var(--ink-2);font-size:13.5px}.results-count strong{color:var(--ink)}.export-group{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-size:12.5px;font-weight:500;padding:8px 14px;border-radius:var(--pill)}.btn:hover{border-color:var(--green-2);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:#28553f;color:#fff}.btn-link{text-decoration:none}.group{margin-top:28px}.group:first-child{margin-top:4px}.group-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:18px}.group-header h2{font-size:21px;letter-spacing:-.015em}.group-header .group-count{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.event-card{background:var(--c-bg);border-radius:var(--r-lg);border-left:5px solid var(--c-line);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .16s ease,transform .16s ease}.event-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.event-card .media{position:relative;height:150px;background:linear-gradient(135deg,var(--c-bg),var(--media-fade));overflow:hidden}.event-card .media img{width:100%;height:100%;object-fit:cover;display:block}.event-card .media .media-fallback{display:grid;place-items:center;height:100%;font-size:44px;opacity:.55}.event-card .media .cat-badge{position:absolute;top:12px;left:12px;background:var(--badge-bg);color:var(--c-badge-text);font-size:11px;font-weight:600;padding:5px 11px;border-radius:var(--pill);display:inline-flex;gap:5px;align-items:center;text-transform:capitalize}.event-card .media .budget-badge{position:absolute;top:12px;right:12px;background:var(--badge-bg);color:var(--c-badge-text);font-weight:700;font-size:11px;padding:5px 10px;border-radius:var(--pill)}.event-card .body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}.event-card h3{font-size:18px;line-height:1.22;letter-spacing:-.015em;color:var(--c-head)}.event-card .board{display:flex;margin-top:13px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--c-line) 35%,transparent);font-family:var(--mono);font-size:11.5px;color:var(--c-data)}.event-card .board .cell{flex:1;min-width:0}.event-card .board .cell .k{font-size:9px;letter-spacing:.06em;color:var(--c-datalabel);margin-bottom:3px}.event-card .tagrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.event-card .tagrow .pill{background:var(--tag-bg);color:var(--c-accent);border:0;font-size:11px;font-weight:500;padding:4px 10px}.event-card .desc{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:13px 0 0}.event-card .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;padding-top:0}.event-card .actions .btn{padding:9px 16px;font-size:12.5px;border-radius:var(--pill)}.event-card .actions .btn.book{background:var(--c-strong);border-color:var(--c-strong);color:#fff}.event-card .actions .btn.book:hover{filter:brightness(.94)}.event-card .actions .btn.soft{background:var(--btn-soft-bg);border-color:transparent;color:var(--c-strong)}.event-card .actions .btn.soft:hover{background:var(--btn-soft-bg-hover);color:var(--c-strong)}.event-card .actions .btn.outline{background:var(--btn-soft-bg);border-color:color-mix(in srgb,var(--c-line) 55%,transparent);color:var(--c-strong)}.pill{font-size:11.5px;font-weight:500;padding:4px 10px;border-radius:var(--pill);background:var(--tag-bg);color:var(--ink-2);display:inline-flex;align-items:center;gap:4px}.table-scroller{position:relative}.table-hint{display:none;margin:0 0 10px;font-family:var(--mono);font-size:11px;color:var(--muted-2)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--card)}table.events{width:100%;border-collapse:collapse;font-size:13px}table.events thead tr{background:var(--track)}table.events th{text-align:left;padding:11px 12px;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}table.events th:first-child{padding-left:14px}table.events th:last-child{text-align:right;padding-right:16px}table.events td{text-align:left;padding:12px;border-top:1px solid var(--line-soft);vertical-align:top}table.events tbody tr td:first-child{padding-left:14px;border-left:4px solid var(--c-line)}table.events td .nm{font-weight:600;color:var(--ink);letter-spacing:-.01em}table.events td .venue{font-family:var(--mono);font-size:11px;color:var(--mono-muted);margin-top:2px}table.events td.mono{font-family:var(--mono);font-size:12px;color:var(--ink-soft)}table.events td.when{font-family:var(--mono);font-size:12px;color:var(--ink)}table.events td.when .clock{color:#7c807a}table.events td.price{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--c-data)}table.events td.links{text-align:right;padding-right:16px;font-family:var(--mono);font-size:11px;color:var(--c-accent);white-space:nowrap}table.events td.links a{color:var(--c-accent)}table.events td.links .ics{background:none;border:0;padding:0;font:inherit;color:var(--c-accent);cursor:pointer}.cat-tag{display:inline-block;background:var(--c-bg);color:var(--c-badge-text);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:6px}.table-note{font-family:var(--mono);font-size:10.5px;color:var(--muted-2);margin:12px 2px 0}.map-wrap{height:560px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}.leaflet-container{height:100%;width:100%;font:inherit;background:#e9ece6}.map-legend{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:12px}.map-legend .keys{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--muted)}.map-legend .keys span{display:inline-flex;align-items:center;gap:6px}.map-legend .keys .dot{width:9px;height:9px;border-radius:50%}.map-legend .note{font-family:var(--mono);font-size:10px;color:var(--muted-2)}.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:var(--shadow-md);padding:0;overflow:hidden}.leaflet-popup-content{margin:0}.map-popup{border-left:4px solid var(--c-line);padding:12px 15px}.map-popup .cat-tag{margin-bottom:8px}.map-popup h4{margin:0;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);line-height:1.3}.map-popup p{margin:6px 0 0;font-family:var(--mono);font-size:11px;color:var(--mono-muted);line-height:1.5}.map-popup p.links,.map-popup p.links a{color:var(--c-accent)}.itin-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:22px}.itin-card{background:var(--card);border-radius:var(--r-lg);border-left:6px solid var(--c-line);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.itin-card .itin-top{padding:22px 26px 20px;background:var(--c-bg)}.itin-card .theme{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--c-accent);margin-bottom:8px}.itin-card h3{font-size:23px;letter-spacing:-.02em;color:var(--c-head)}.itin-card .itin-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.itin-card .itin-meta span{background:var(--tag-bg);color:var(--c-data);font-family:var(--mono);font-size:11px;padding:5px 11px;border-radius:var(--pill)}.itin-card .itin-body{padding:22px 26px 24px;display:flex;flex-direction:column;gap:0}.itin-card .overview{font-size:14px;line-height:1.6;color:var(--ink-soft);margin:0 0 22px}.timeline{position:relative;padding-left:26px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:color-mix(in srgb,var(--c-line) 35%,transparent)}.timeline .block-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-datalabel);margin:0 0 12px}.timeline .block-label+.block-label{margin-top:4px}.sched-stop{position:relative;margin-bottom:20px}.sched-stop:before{content:"";position:absolute;left:-26px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--c-line);border:2px solid var(--card)}.sched-stop .stop-inner{display:flex;gap:14px}.sched-stop .t{font-family:var(--mono);font-size:12px;color:var(--c-data);flex:none;width:64px;padding-top:1px}.sched-stop .title{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.35}.sched-stop .title .muted{font-weight:400;color:var(--mono-muted)}.sched-stop .loc{font-family:var(--mono);font-size:11px;color:var(--mono-muted);margin-top:3px}.itin-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.itin-section .sec-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-bottom:11px}.food-row{font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:0 0 10px}.food-row:last-child{margin-bottom:0}.food-row b{color:var(--ink);text-transform:capitalize}.veg-dish{color:var(--green-2)}.alt-note{font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:0}.notes-list{margin:0;padding-left:18px;font-size:13.5px;line-height:1.7;color:var(--ink-soft)}.itin-card .actions{margin-top:24px}.itin-card .actions .btn-primary{padding:12px 22px;font-size:13.5px}.empty{border:1px dashed #d8dad2;border-radius:14px;background:var(--card);text-align:center;padding:44px 24px;margin-top:4px}.empty .empty-mark{font-size:26px;color:#c2c5bc;margin-bottom:8px}.empty h3{font-size:16px;color:var(--ink);margin-bottom:6px}.empty p{font-size:13px;color:var(--muted);margin:0 0 16px}.section-pad{padding-bottom:56px}.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:22px 0;color:var(--muted);font-size:12.5px}.site-footer a{color:var(--green)}.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}@media(max-width:720px){.site-header .head-row{flex-direction:column;gap:16px}.head-aside{align-items:flex-start;flex-direction:row;width:100%;justify-content:space-between}}@media(max-width:640px){.toolbar{position:static}.toolbar-filters.open{max-height:62vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.chip-row{flex-direction:column;gap:6px}.chip-row .row-label{width:auto;padding-top:0}.view-switch{width:100%;overflow-x:auto}.event-grid,.itin-list{grid-template-columns:1fr}.table-hint{display:block}.table-scroller:after{content:"";position:absolute;top:28px;right:0;bottom:0;width:40px;background:linear-gradient(to right,rgba(255,255,255,0),var(--card));border-radius:0 14px 14px 0;pointer-events:none}}[data-theme=dark] select.control{background:var(--card) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238b918a' stroke-width='1.5' stroke-linecap='round'/></svg>") no-repeat right 13px center}[data-theme=dark] .view-switch button,[data-theme=dark] .chip{color:var(--ink-2)}[data-theme=dark] table.events td.when .clock{color:var(--muted)}[data-theme=dark] .empty{border-color:var(--line)}[data-theme=dark] .empty .empty-mark{color:var(--muted-2)}[data-theme=dark] .event-card .actions .btn.soft,[data-theme=dark] .event-card .actions .btn.outline{color:var(--c-accent)}[data-theme=dark] .leaflet-container{background:#10141a}[data-theme=dark] .leaflet-popup-content-wrapper,[data-theme=dark] .leaflet-popup-tip{background:var(--card);color:var(--ink)}[data-theme=dark] .leaflet-popup-close-button{color:var(--muted)}[data-theme=dark] .leaflet-bar a,[data-theme=dark] .leaflet-bar a:hover{background:var(--card);color:var(--ink);border-bottom-color:var(--line)}[data-theme=dark] .leaflet-control-attribution{background:#121517cc;color:var(--muted)}[data-theme=dark] .leaflet-control-attribution a{color:var(--link)}
