:root{color-scheme:light;--bg:#fbfaf6;--surface:#ffffff;--surface-warm:#fff8e8;--surface-blue:#edf6f7;--surface-2:#f0f3ee;--text:#183042;--text-soft:#526575;--brand:#176b72;--brand-deep:#173f59;--brand-soft:#dceff0;--accent:#d95f3f;--sun:#f2c85b;--border:#d8e0dd;--focus:#e89525;--shadow:0 2px 8px rgba(24,48,66,0.08),0 1px 2px rgba(24,48,66,0.05);--shadow-lift:0 18px 44px -24px rgba(24,48,66,0.45);--radius-sm:12px;--radius:20px;--radius-lg:30px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 8% 18%,rgba(242,200,91,.11),transparent 22rem),radial-gradient(circle at 96% 50%,rgba(23,107,114,.08),transparent 28rem),var(--bg);color:var(--text);font-family:ui-rounded,Avenir Next Rounded,Nunito Sans,Segoe UI,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,select,textarea{font:inherit}button,select{touch-action:manipulation}a{color:var(--brand);text-underline-offset:.18em}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{position:fixed;top:10px;left:10px;z-index:1000;padding:10px 16px;border-radius:10px;background:var(--brand-deep);color:#fff;font-weight:800;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.container{width:min(100% - 40px,1180px);margin-inline:auto}.hero{position:relative;overflow:hidden;padding:22px 0 0;background:radial-gradient(circle at 8% 36%,rgba(242,200,91,.24),transparent 23rem),linear-gradient(145deg,#fff9e9,#f3f4e9 45%,#e7f2ef);border-bottom:1px solid #d9e3dd}.hero:after{content:"";position:absolute;right:-90px;top:70px;width:270px;height:270px;border:44px solid rgba(242,200,91,.14);border-radius:50%;pointer-events:none}.hero-inner{position:relative;z-index:1}.hero-topbar,.page-header-inner{display:flex;align-items:center;justify-content:space-between;gap:22px}.site-brand{display:inline-flex;align-items:center;gap:11px;color:var(--brand-deep);font-size:1.08rem;font-weight:900;letter-spacing:-.02em;text-decoration:none}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border:2px solid var(--brand-deep);border-radius:14px 10px 15px 11px;background:var(--sun);color:var(--brand-deep);font-size:1.25rem;box-shadow:4px 4px 0 rgba(23,63,89,.14);transform:rotate(-2deg)}.hero-nav,.page-header-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px}.hero-nav a,.hero-nav button,.page-header-nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;padding:9px 16px;background:transparent;color:var(--brand-deep);cursor:pointer;font-weight:800;text-decoration:none}.hero-nav a:hover,.hero-nav button:hover,.page-header-nav a:hover{background:rgba(255,255,255,.72);border-color:var(--border)}.hero-nav .nav-primary,.page-header-nav .header-action{border-color:var(--brand-deep);background:var(--brand-deep);color:#fff;box-shadow:3px 3px 0 rgba(242,200,91,.78)}.hero-nav .nav-primary:hover,.page-header-nav .header-action:hover{background:#0d354c;border-color:#0d354c}.nav-user{color:var(--brand);font-weight:900}.hero-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(480px,1.18fr);grid-gap:clamp(36px,6vw,74px);gap:clamp(36px,6vw,74px);align-items:center;padding:clamp(48px,7vw,84px) 0 42px}.hero-copy{max-width:610px}.eyebrow,.section-kicker{color:var(--brand);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.eyebrow span{color:#b45d18}.hero h1{max-width:12ch;margin-top:14px;color:var(--brand-deep);font-size:clamp(2.55rem,5.1vw,4.65rem);font-weight:900;letter-spacing:-.055em;line-height:.99;text-wrap:balance}.hero .tagline{max-width:56ch;margin-top:22px;color:#3d5666;font-size:clamp(1.04rem,1.7vw,1.2rem);line-height:1.65}.searchbar{margin-top:28px}.searchbar label{display:block;margin-bottom:8px;color:var(--brand-deep);font-size:.9rem;font-weight:900}.search-input-wrap{position:relative}.search-input-wrap>span{position:absolute;left:17px;top:50%;color:var(--brand);font-size:1.65rem;font-weight:900;line-height:1;transform:translateY(-52%);pointer-events:none}.hero input[type=search]{width:100%;min-height:58px;border:2px solid #b9cbc9;border-radius:16px;padding:14px 18px 14px 50px;background:rgba(255,255,255,.94);color:var(--text);font-size:1rem;box-shadow:0 9px 0 -5px rgba(23,107,114,.14)}.hero input[type=search]::placeholder{color:#6a7984;opacity:1}.hero input[type=search]:focus-visible{border-color:var(--brand)}.trust-note{margin-top:13px;color:#435d65;font-size:.82rem;font-weight:700}.trust-note span:nth-child(odd){color:var(--brand)}.hero-visual{position:relative;margin:0;isolation:isolate}.hero-visual:after,.hero-visual:before{content:"";position:absolute;z-index:-1;border-radius:50%}.hero-visual:before{width:110px;height:110px;left:-28px;top:-28px;background:#f1c559}.hero-visual:after{width:140px;height:140px;right:-34px;bottom:-30px;background:#b8d7cf}.hero-visual img{display:block;width:100%;height:auto;aspect-ratio:1.83/1;border:7px solid #fff;border-radius:34px 20px 38px 22px;object-fit:cover;box-shadow:15px 18px 0 rgba(23,63,89,.13),var(--shadow-lift);transform:rotate(.6deg)}.hero-visual figcaption{position:absolute;left:24px;bottom:20px;padding:8px 13px;border:1px solid rgba(255,255,255,.75);border-radius:999px;background:rgba(15,48,59,.88);color:#fff;font-size:.82rem;font-weight:800;box-shadow:var(--shadow)}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:4px;border:1px solid #cfddd8;border-bottom:0;border-radius:24px 24px 0 0;background:rgba(255,255,255,.82);box-shadow:0 -8px 28px rgba(23,63,89,.06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-stats .stat{min-width:0;padding:20px 24px;border-right:1px solid #dbe5e1}.hero-stats .stat:last-child{border-right:0}.hero-stats b{display:block;color:var(--brand-deep);font-size:1.65rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.15}.hero-stats span{display:block;margin-top:4px;color:var(--text-soft);font-size:.76rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.discovery-main{padding-top:clamp(42px,6vw,70px)}.discovery-controls{border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(22px,4vw,34px);background:rgba(255,255,255,.88);box-shadow:var(--shadow)}.controls-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.controls-heading h2{margin-top:2px;color:var(--brand-deep);font-size:clamp(1.55rem,2.8vw,2.05rem);letter-spacing:-.035em;line-height:1.2}.clear-btn{min-height:44px;border:0;background:transparent;color:var(--brand);cursor:pointer;font-weight:900;text-decoration:underline;text-underline-offset:4px}.cats{display:flex;gap:10px;overflow-x:auto;padding:24px 2px 10px;scrollbar-color:#b7c6c3 transparent}.chip{flex:0 0 auto;min-height:46px;border:2px solid #d3ddda;border-radius:999px;padding:9px 16px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.92rem;font-weight:850;box-shadow:0 3px 0 #e9edeb;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.chip:hover{transform:translateY(-2px)}.chip.active,.chip:hover{border-color:var(--chip-c,var(--brand))}.chip.active{background:var(--chip-c,var(--brand));color:#fff;box-shadow:0 4px 0 color-mix(in srgb,var(--chip-c,var(--brand)) 45%,#fff)}.filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:18px;padding-top:22px;border-top:1px dashed #c8d5d1}.filters label>span{display:block;margin:0 0 5px 3px;color:var(--text-soft);font-size:.75rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.filters select{width:100%;min-height:48px;border:1.5px solid #cbd7d3;border-radius:13px;padding:9px 34px 9px 12px;background:#fbfcfa;color:var(--text);cursor:pointer;font-size:.93rem;font-weight:700}.filters select:hover{border-color:var(--brand)}.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:30px 0 22px}.results-count{color:var(--text-soft)}.results-count strong{color:var(--brand-deep);font-size:1.22rem}.view-tabs{display:flex;gap:4px;border:1px solid var(--border);border-radius:15px;padding:5px;background:#eef2ee}.view-tabs button{min-height:42px;border:1px solid transparent;border-radius:11px;padding:7px 14px;background:transparent;color:#526456;cursor:pointer;font-size:.9rem;font-weight:850}.view-tabs button:hover{color:var(--brand-deep)}.view-tabs button.active{border-color:#d7dfdc;background:#fff;color:var(--brand-deep);box-shadow:var(--shadow)}.section-title{display:flex;align-items:baseline;gap:8px;margin:34px 0 15px;color:var(--brand-deep);font-size:clamp(1.3rem,2vw,1.55rem);font-weight:900;letter-spacing:-.025em}.section-title .count{color:var(--text-soft);font-size:.86rem;font-weight:700}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(315px,1fr));grid-gap:20px;gap:20px}@keyframes cardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.event-card{position:relative;overflow:hidden;border:1px solid #d9e1de;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);animation:cardIn .38s ease backwards;animation-delay:var(--delay,0s);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.event-card:hover{border-color:#b8cbc7;box-shadow:var(--shadow-lift);transform:translateY(-4px)}.event-card-link{display:flex;min-height:0;flex:1 1;flex-direction:column;color:inherit;text-decoration:none}.card-banner{position:relative;display:flex;height:112px;align-items:flex-start;justify-content:space-between;overflow:hidden;padding:14px 16px;color:#fff}.event-banner:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(135deg,var(--banner-tint,rgba(216,239,237,.2)) 0,rgba(255,255,255,.04) 72%),linear-gradient(90deg,rgba(9,28,38,.24) 0,rgba(9,28,38,.04) 60%,transparent 86%),linear-gradient(0deg,rgba(9,28,38,.5) 0,rgba(9,28,38,.1) 48%,transparent 74%);pointer-events:none}.event-banner-image{z-index:0;object-fit:cover;filter:brightness(1.06) saturate(.94) contrast(.97)}.card-banner .banner-cat,.modal-banner .banner-cat{position:relative;z-index:2;border:1px solid rgba(255,255,255,.78);border-radius:999px;padding:4px 10px;background:var(--banner-pill-bg,rgba(244,250,248,.92));color:var(--banner-pill-text,var(--brand-deep));font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 2px 8px rgba(9,28,38,.16)}.card-banner .banner-date{position:absolute;z-index:2;left:16px;bottom:11px;color:#fff;font-size:.83rem;font-weight:900;text-shadow:0 1px 4px rgba(0,0,0,.9)}.featured-flag{position:absolute;z-index:3;right:14px;top:12px;border-radius:999px;padding:4px 9px;background:#ffe08a;color:#493100;font-size:.65rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.grad-meetups{--banner-tint:rgba(126,211,201,0.2);--banner-pill-bg:rgba(226,246,242,0.94);--banner-pill-text:#0d5d58;background:linear-gradient(135deg,#83c9c0,#d9efeb)}.grad-educational{--banner-tint:rgba(147,197,253,0.2);--banner-pill-bg:rgba(230,241,253,0.94);--banner-pill-text:#24578b;background:linear-gradient(135deg,#94bce7,#dceaf8)}.grad-attractions{--banner-tint:rgba(253,224,146,0.2);--banner-pill-bg:rgba(255,244,210,0.95);--banner-pill-text:#75500b;background:linear-gradient(135deg,#e6bd6d,#f8e9c2)}.grad-sports{--banner-tint:rgba(251,182,196,0.18);--banner-pill-bg:rgba(252,232,236,0.94);--banner-pill-text:#843841;background:linear-gradient(135deg,#dfa0aa,#f5d8dc)}.grad-arts{--banner-tint:rgba(216,180,254,0.2);--banner-pill-bg:rgba(242,232,249,0.94);--banner-pill-text:#674080;background:linear-gradient(135deg,#ba9bd2,#e9dcf1)}.grad-outdoor{--banner-tint:rgba(190,220,170,0.2);--banner-pill-bg:rgba(232,244,225,0.94);--banner-pill-text:#3e6739;background:linear-gradient(135deg,#91b58c,#dcebd8)}.card-body{display:flex;flex:1 1;flex-direction:column;gap:7px;padding:18px}.event-card h3{padding-right:34px;color:var(--brand-deep);font-size:1.08rem;font-weight:900;letter-spacing:-.018em;line-height:1.35}.event-card .meta{color:var(--text-soft);font-size:.87rem;line-height:1.45}.event-card .organizer-meta{margin-top:3px}.rating{color:#76500a;font-weight:850;white-space:nowrap}.verified{color:#09665b;font-size:.81rem;font-weight:900}.badges,.detail-badges{display:flex;flex-wrap:wrap;gap:6px}.event-card .badges{margin-top:auto;padding-top:8px}.badge{border:1px solid #d7dfdc;border-radius:999px;padding:3px 9px;background:#f2f5f1;color:#354a42;font-size:.73rem;font-weight:750}.badge.free{border-color:#b9ddd0;background:#e3f4ed;color:#075a43}.fav-btn{position:absolute;z-index:5;right:12px;bottom:calc(100% - 73px);display:grid;width:44px;height:44px;place-items:center;border:2px solid rgba(255,255,255,.82);border-radius:50%;background:#fff;color:#a23b45;cursor:pointer;font-size:1.35rem;line-height:1;box-shadow:0 4px 14px rgba(24,48,66,.24)}.fav-btn:hover{transform:scale(1.06)}@keyframes heartPop{50%{transform:scale(1.2)}}.fav-btn.faved{animation:heartPop .26s ease}.share-controls{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:7px;margin:20px 0 6px}.share-controls .share-label{margin-right:2px;color:var(--text-soft);font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.share-controls a,.share-controls button{display:inline-flex;min-width:42px;min-height:42px;align-items:center;justify-content:center;gap:6px;border:1px solid #cbd6d2;border-radius:999px;padding:7px 12px;background:#fff;color:var(--brand-deep);cursor:pointer;font-size:.79rem;font-weight:850;line-height:1;text-decoration:none}.share-controls a:hover,.share-controls button:hover{border-color:var(--brand);background:var(--brand-soft)}.hero .share-controls{margin-top:18px}.share-controls-compact{flex-wrap:nowrap;margin:0;border-top:1px solid var(--border);padding:9px 12px 11px}.share-controls-compact .share-label{margin-right:auto}.share-controls-compact a,.share-controls-compact button{min-width:38px;min-height:38px;padding:6px 8px;font-size:.72rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;border:2px dashed #c7d5d1;border-radius:var(--radius);padding:48px 20px;background:rgba(255,255,255,.78);color:var(--text-soft);text-align:center}.empty-state .big{display:block;margin-bottom:8px;font-size:2.8rem}.empty-state strong{color:var(--brand-deep);font-size:1.18rem}.empty-state a{font-weight:850}.cal-wrap,.map-wrap{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);padding:clamp(14px,3vw,22px);background:var(--surface);box-shadow:var(--shadow)}.map-wrap svg{display:block;width:100%;height:auto;border-radius:14px}.map-water{fill:url(#waterGrad)}.bc-land{fill:url(#landGrad);stroke:#176b72;stroke-linejoin:round;stroke-width:1.6;filter:drop-shadow(0 3px 5px rgba(20,40,20,.18))}.map-pin{cursor:pointer}.map-pin .pin-dot{stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));transition:r .12s ease}.map-pin:focus .pin-dot,.map-pin:hover .pin-dot{r:10}.map-pin:focus-visible{outline:none}.map-pin:focus-visible .pin-dot{stroke:var(--sun);stroke-width:5}.map-pin .pin-pulse{fill:none;stroke-width:2;opacity:.75;animation:pinPulse 2.2s ease-out infinite;transform-box:fill-box;transform-origin:center}@keyframes pinPulse{0%{opacity:.8;transform:scale(.6)}75%,to{opacity:0;transform:scale(2.4)}}.map-label{fill:#33555a;font-size:11px;font-weight:700;letter-spacing:.03em;pointer-events:none}.map-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:15px;color:var(--text-soft);font-size:.82rem;font-weight:700}.map-legend span{display:inline-flex;align-items:center;gap:6px}.cat-dot{display:inline-block;width:10px;height:10px;flex-shrink:0;border:1px solid rgba(0,0,0,.18);border-radius:50%}.view-help{margin-top:12px;color:var(--text-soft);font-size:.85rem}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.cal-header h3{color:var(--brand-deep);font-size:1.2rem;font-weight:900}.cal-header button{min-width:44px;min-height:44px;border:1.5px solid var(--border);border-radius:12px;background:#fff;color:var(--text);cursor:pointer;font-size:1.1rem;font-weight:900}.cal-header button:hover{border-color:var(--brand);background:var(--brand-soft)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal-dow{padding:4px 0;color:var(--text-soft);font-size:.69rem;font-weight:900;letter-spacing:.05em;text-align:center;text-transform:uppercase}.cal-day{position:relative;min-width:0;min-height:70px;border:1px solid var(--border);border-radius:11px;padding:7px;background:var(--bg);color:var(--text);font-size:.84rem;font-weight:800;text-align:left}button.cal-day{cursor:pointer}.cal-day.has-events{background:#fff}.cal-day.has-events:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-1px)}.cal-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.cal-day.today:after{content:"today";position:absolute;top:6px;right:6px;color:var(--brand);font-size:.55rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.cal-day.selected{border-color:var(--brand);background:var(--brand-soft)}.cal-day.other-month{border-color:transparent;background:transparent}.cal-day .dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}.cal-day .dot{width:8px;height:8px;border:1px solid rgba(0,0,0,.18);border-radius:50%}.cal-day-list{margin-top:20px}.cal-day-list>p{color:var(--text-soft);font-size:.88rem}.modal-overlay{position:fixed;inset:0;z-index:50;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 16px;background:rgba(14,35,47,.68);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-overlay.open{display:flex}@keyframes modalIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}.modal{position:relative;width:min(100%,600px);margin:auto 0;overflow:hidden;border:1px solid rgba(255,255,255,.5);border-radius:24px;background:#fff;box-shadow:0 30px 80px -20px rgba(0,0,0,.58);animation:modalIn .24s ease-out}.modal:focus{outline:none}.modal-banner{position:relative;height:176px;overflow:hidden;padding:18px 20px;color:#fff}.modal-content{padding:24px 26px 28px}.modal .close-x{position:absolute;z-index:3;top:14px;right:14px;display:grid;width:44px;height:44px;place-items:center;border:2px solid rgba(255,255,255,.8);border-radius:50%;background:#fff;color:var(--brand-deep);cursor:pointer;font-size:1rem;box-shadow:var(--shadow)}.modal h2{padding-right:24px;color:var(--brand-deep);font-size:clamp(1.45rem,4vw,1.8rem);font-weight:900;letter-spacing:-.025em;line-height:1.25}.organizer-line{margin:5px 0 17px;color:var(--text-soft);font-size:.92rem}.info-row{display:flex;gap:11px;margin:9px 0;font-size:.95rem}.info-row .ico{width:22px;flex-shrink:0;text-align:center}.address-sub{color:var(--text-soft);font-size:.88rem}.directions-link{color:var(--brand);font-weight:850}.modal .desc,.modal .detail-badges{margin:16px 0}.modal .desc{max-width:62ch}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 8px}.btn{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border:2px solid transparent;border-radius:13px;padding:10px 19px;cursor:pointer;font-weight:900;line-height:1.25;text-decoration:none;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.btn:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.btn:disabled{cursor:wait;opacity:.65;transform:none}.btn-primary{border-color:var(--brand-deep);background:var(--brand-deep);color:#fff;box-shadow:3px 3px 0 var(--sun)}.btn-primary:hover{background:#0d354c}.btn-primary.going{border-color:#7c5500;background:#f2c85b;color:#3c2a00}.btn-secondary{border-color:#cbd6d2;background:#f4f6f3;color:var(--brand-deep)}.reviews-block{margin-top:22px;border-top:1px solid var(--border);padding-top:18px}.reviews-block h2,.reviews-block h3{margin-bottom:10px;color:var(--brand-deep);font-size:1.08rem;font-weight:900}.review{margin-bottom:8px;border-radius:13px;padding:12px 14px;background:var(--surface-warm);font-size:.91rem}.review .stars{color:#76500a;font-size:.8rem;letter-spacing:.08em}.toast{position:fixed;z-index:100;bottom:24px;left:50%;width:max-content;max-width:calc(100% - 32px);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:12px 20px;background:var(--brand-deep);color:#fff;font-size:.92rem;font-weight:800;text-align:center;box-shadow:var(--shadow-lift);transform:translateX(-50%);animation:cardIn .22s ease}@media (max-width:980px){.hero-layout{grid-template-columns:minmax(0,.9fr) minmax(400px,1.1fr);gap:36px}.hero h1{font-size:clamp(2.4rem,5.7vw,3.8rem)}.filters{grid-template-columns:repeat(3,1fr)}}@media (max-width:760px){.container{width:min(100% - 28px,1180px)}.hero{padding-top:16px}.hero-topbar{align-items:flex-start}.site-brand{font-size:.98rem}.brand-mark{width:37px;height:37px}.hero-nav{flex-wrap:wrap;gap:4px}.hero-nav a,.hero-nav button{min-height:40px;padding:7px 11px;font-size:.84rem}.hero-nav .nav-user{display:none}.hero-layout{grid-template-columns:1fr;gap:38px;padding:48px 0 40px}.hero h1{max-width:11ch;font-size:clamp(2.55rem,12.5vw,4rem)}.hero .tagline{font-size:1.03rem}.hero-visual{margin:0 4px}.hero-visual img{border-width:5px;border-radius:24px 15px 26px 17px;box-shadow:9px 11px 0 rgba(23,63,89,.13),var(--shadow-lift);transform:none}.hero-visual figcaption{left:14px;bottom:13px;font-size:.73rem}.hero-stats{grid-template-columns:1fr 1fr;border-radius:20px 20px 0 0}.hero-stats .stat{padding:16px}.hero-stats .stat:nth-child(2){border-right:0}.hero-stats .stat:nth-child(-n+2){border-bottom:1px solid #dbe5e1}.hero-stats b{font-size:1.4rem}.discovery-main{padding-top:34px}.discovery-controls{margin-inline:-2px;padding:22px 16px;border-radius:22px}.controls-heading{align-items:flex-start}.controls-heading .clear-btn{font-size:.82rem}.cats{margin-right:-16px;padding-top:20px}.filters{grid-template-columns:1fr 1fr}.filters label:nth-child(3){grid-column:span 2}.results-toolbar{align-items:flex-start;flex-direction:column}.view-tabs{width:100%;overflow-x:auto}.view-tabs button{flex:1 0 auto;padding-inline:11px}.card-grid{grid-template-columns:1fr}.cal-wrap{padding:11px}.cal-grid{gap:3px}.cal-day{min-height:52px;border-radius:8px;padding:5px;font-size:.72rem}.cal-day.today:after{display:none}.cal-day .dot{width:6px;height:6px}.modal-overlay{padding:12px 8px}.modal-content{padding:21px 18px 24px}.modal .actions .btn{width:100%}}@media (max-width:430px){.site-brand>span:last-child{max-width:128px;line-height:1.05}.hero-topbar{gap:8px}.hero-nav a,.hero-nav button{padding-inline:9px}.hero-nav a:first-of-type{display:none}.hero h1{font-size:2.75rem}.searchbar label{font-size:.84rem}.hero input[type=search]{padding-right:12px;font-size:.95rem}.filters{grid-template-columns:1fr}.filters label:nth-child(3){grid-column:auto}.section-title{align-items:flex-start}.event-card h3{font-size:1.04rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.page-header{border-bottom:1px solid var(--border);padding:16px 0;background:rgba(255,255,255,.92);box-shadow:0 2px 14px rgba(24,48,66,.04)}.page-header-nav{gap:6px}.page-narrow{width:min(100% - 32px,520px)}.page-narrow,.page-wide{margin:0 auto;padding:44px 0 72px}.page-wide{width:min(100% - 32px,900px)}.auth-page{min-height:68vh}.back-link{display:inline-flex;min-height:44px;align-items:center;margin-bottom:15px;color:var(--brand);font-weight:850;text-decoration:none}.back-link:hover{text-decoration:underline}.form-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(22px,5vw,38px);background:rgba(255,255,255,.94);box-shadow:var(--shadow-lift)}.form-icon{display:grid;width:52px;height:52px;place-items:center;margin-bottom:17px;border:1px solid #ead79c;border-radius:17px 12px 18px 13px;background:var(--surface-warm);font-size:1.55rem;box-shadow:4px 4px 0 rgba(242,200,91,.28);transform:rotate(-2deg)}.form-card h1{color:var(--brand-deep);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:900;letter-spacing:-.035em;line-height:1.15}.form-card .sub{max-width:62ch;margin:9px 0 26px;color:var(--text-soft);font-size:1rem;line-height:1.65}.field{margin-bottom:20px}.field label{display:block;margin-bottom:7px;color:var(--brand-deep);font-size:.88rem;font-weight:900}.field input[type=date],.field input[type=email],.field input[type=number],.field input[type=password],.field input[type=text],.field select,.field textarea{width:100%;min-height:50px;border:1.5px solid #c8d5d1;border-radius:13px;padding:11px 14px;background:#fbfcfa;color:var(--text);font-size:1rem}.field textarea{min-height:120px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#70808a;opacity:1}.field input:hover,.field select:hover,.field textarea:hover{border-color:#89aba7}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--brand)}.field .hint{max-width:68ch;margin-top:6px;color:var(--text-soft);font-size:.8rem;line-height:1.5}.forgot-link{display:block;width:-moz-fit-content;width:fit-content;margin:7px 0 0 auto;color:var(--brand);font-size:.88rem;font-weight:850}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:6px 12px;gap:6px 12px}.check-grid label{display:flex;min-height:44px;align-items:center;gap:9px;margin:0;border-radius:10px;padding:6px 8px;cursor:pointer;font-size:.9rem;font-weight:700}.check-grid label:hover{background:var(--brand-soft)}.check-grid input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--brand)}.form-error,.form-success{border:1px solid;border-radius:12px;margin-bottom:18px;padding:12px 14px;font-size:.91rem;font-weight:700}.form-error{border-color:#e8a69d;background:#fff0ed;color:#862f26}.form-error:before{content:"⚠ "}.form-success{border-color:#a8d9c7;background:#e6f5ee;color:#075a43}.btn-block{width:100%;text-align:center}.auth-alt{margin-top:21px;color:var(--text-soft);font-size:.93rem;text-align:center}.auth-alt a{color:var(--brand);font-weight:900}.form-message{text-align:center}.form-message .form-icon{margin-inline:auto}.event-page{overflow:hidden;padding:0}.event-page .modal-banner{height:clamp(190px,27vw,250px)}.event-page-content{padding:clamp(22px,5vw,38px)}.event-page-content h1{color:var(--brand-deep);font-size:clamp(1.7rem,4vw,2.35rem);font-weight:900;letter-spacing:-.035em;line-height:1.18}.event-page-content .detail-badges{margin:18px 0}.event-page-content .desc{max-width:68ch;margin-top:18px;font-size:1rem;line-height:1.7}.event-page-cta{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 8px}.admin-bar{padding:14px 0;background:var(--brand-deep);color:#fff}.admin-bar .container{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-bar .brand{color:#fff;font-size:1.05rem;font-weight:900;text-decoration:none}.admin-bar .brand span{opacity:.78;font-weight:600}.admin-bar nav{display:flex;align-items:center;gap:7px}.admin-bar nav a,.admin-bar nav button{min-height:40px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 13px;background:rgba(255,255,255,.09);color:#fff;cursor:pointer;font-size:.85rem;font-weight:800;text-decoration:none}.admin-bar nav a:hover,.admin-bar nav button:hover{background:rgba(255,255,255,.2)}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin:28px 0}.stat-card{border:1px solid var(--border);border-radius:var(--radius);padding:19px;background:var(--surface);box-shadow:var(--shadow)}.stat-card b{display:block;color:var(--brand);font-size:1.9rem;font-weight:900;line-height:1.2}.stat-card span{color:var(--text-soft);font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.stat-card.warn b{color:#8a5700}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:30px;background:var(--surface);box-shadow:var(--shadow)}.admin-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.89rem}.admin-table th{padding:13px 14px;color:var(--text-soft);font-size:.72rem;font-weight:900;letter-spacing:.06em;text-align:left;text-transform:uppercase}.admin-table td,.admin-table th{border-bottom:1px solid var(--border)}.admin-table td{padding:12px 14px;vertical-align:middle}.admin-table tr:last-child td{border-bottom:0}.admin-table tbody tr:hover td{background:#f7faf7}.admin-table .t-title{color:var(--brand-deep);font-weight:850}.admin-table .t-actions{display:flex;justify-content:flex-end;gap:6px}.pill{display:inline-block;border-radius:999px;padding:4px 10px;font-size:.7rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.pill.published{background:#e3f4ed;color:#075a43}.pill.pending{background:#fff1c7;color:#745000}.btn-sm{display:inline-flex;min-height:38px;align-items:center;border:1.5px solid var(--border);border-radius:9px;padding:6px 11px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.8rem;font-weight:800;text-decoration:none;white-space:nowrap}.btn-sm.approve,.btn-sm:hover{border-color:var(--brand)}.btn-sm.approve{background:var(--brand);color:#fff}.btn-sm.danger:hover{border-color:#b83838;color:#9e2424}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:28px 0 13px;flex-wrap:wrap}.admin-section-head h2{color:var(--brand-deep);font-size:1.25rem;font-weight:900}.location-map{overflow:hidden;border:1.5px solid var(--border);border-radius:15px;margin-top:10px;background:var(--bg)}.location-map svg{display:block;width:100%;height:auto;cursor:crosshair}.location-map-water{fill:#cfe6ef}.location-land{fill:#a8d4a4;stroke:#176b72;stroke-linejoin:round;stroke-width:1.6}.location-pin{fill:#b83838;stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}.location-coords{border-top:1px solid var(--border);padding:8px 12px;color:var(--text-soft);font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.location-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border);padding:8px;flex-wrap:wrap}.zoom-toggle{display:flex;gap:4px;border-radius:9px;padding:3px;background:var(--surface-2)}.zoom-toggle button{min-height:38px;border:0;border-radius:7px;padding:6px 12px;background:transparent;color:var(--text-soft);cursor:pointer;font-size:.79rem;font-weight:800}.zoom-toggle button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.location-map-hint{color:#795300;font-size:.78rem;font-weight:800}.site-footer{margin-top:76px;background:var(--brand-deep);color:#dfeaf0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-gap:44px;gap:44px;padding-top:52px;padding-bottom:38px}.footer-logo{display:flex;align-items:center;gap:9px;margin-bottom:12px;color:#fff;font-size:1.22rem;font-weight:900;letter-spacing:-.02em}.footer-logo span{color:var(--sun)}.footer-brand p{max-width:390px;margin-bottom:8px;color:#c7d8df;font-size:.91rem;line-height:1.65}.footer-brand .footer-free{color:#ffe49c;font-weight:850}.site-footer .heart{color:#ff9b87}.footer-col h2{margin-bottom:11px;color:#ffe49c;font-size:.73rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.footer-col a{display:block;min-height:38px;padding:5px 0;color:#dfeaf0;font-size:.91rem;text-decoration:none}.footer-col a:hover{color:#fff;text-decoration:underline}.footer-credits{border-top:1px solid rgba(255,255,255,.14)}.credits-inner{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;padding-top:17px;padding-bottom:20px;color:#c7d8df;font-size:.79rem;flex-wrap:wrap}.sebhost{display:inline-flex;min-height:42px;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 15px 7px 8px;background:rgba(255,255,255,.08);color:#fff;font-size:.83rem;text-decoration:none}.sebhost:hover{background:rgba(255,255,255,.15)}.sebhost svg{flex-shrink:0;border-radius:6px}.sebhost b{font-weight:900}@media (max-width:720px){.page-header-inner{align-items:flex-start}.page-header-nav{flex-wrap:wrap}.page-header-nav a{min-height:40px;padding:7px 10px;font-size:.82rem}.footer-grid{grid-template-columns:1fr;gap:27px}.credits-inner{justify-content:center;text-align:center}}@media (max-width:560px){.field-row{grid-template-columns:1fr;gap:0}.form-card{border-radius:22px}.page-header-nav a:first-child{display:none}.event-page-cta .btn{width:100%}}