:root{--ink:#183e31;--accent:#27664b;--deep:#173e30;--paper:#f7f8f2;--white:#fff;--line:#dde4d9;--muted:#65736a;--wash:#eaf0e5;--warm:#e7b257;--shadow:0 15px 45px #183e310c;--radius:20px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}body[data-project=ludia]{--ink:#492e29;--accent:#b94833;--deep:#823123;--paper:#fbf7ef;--line:#e8ded3;--muted:#817169;--wash:#f2e6d8;--warm:#d59941}
button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button{border:0;background:none}a{color:inherit;text-decoration:none}img,svg{vertical-align:middle}button svg,.text-button svg{width:19px;height:19px}svg.icon{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--warm);outline-offset:4px}input,select{color:var(--ink)}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-80px;left:20px;background:var(--ink);color:white;padding:15px;z-index:9999}.skip:focus{top:15px}
.header{max-width:1360px;margin:auto;padding:27px 48px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:flex;align-items:center;gap:9px;font-size:23px;letter-spacing:-1px;font-weight:750}.brand img{width:31px;height:31px}.header-actions{display:flex;align-items:center;gap:24px}.location-button{display:flex;gap:9px;align-items:center;padding:11px 16px;background:var(--white);border:1px solid var(--line);border-radius:100px;font-size:13px;max-width:320px}.location-button #location-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-button svg{width:17px;height:17px}.location-button .chevron{opacity:.6}.login{display:flex;gap:7px;align-items:center;font-size:13px;opacity:.63}.login small{font-size:9px;position:absolute;transform:translate(27px,19px)}.login svg{width:17px;height:17px}
.hero{position:relative;text-align:center;max-width:1400px;min-height:520px;margin:0 auto;padding:68px 26px 25px;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:700;color:var(--accent);margin:0 0 24px}.hero-brand{display:flex;align-items:center;justify-content:center;font-size:clamp(68px,8.7vw,108px);line-height:1.08;letter-spacing:-7px;font-weight:750;margin:0 0 19px}.brand-dot{width:13px;height:13px;border-radius:50%;background:var(--warm);align-self:flex-end;margin:0 0 15px 8px}.hero-copy{font-size:19px;color:var(--muted);letter-spacing:-.25px;margin:0 0 30px}.search-form{display:flex;align-items:center;gap:15px;max-width:710px;margin:auto;padding:8px 8px 8px 23px;border:1px solid #d9e0d5;background:var(--white);border-radius:100px;box-shadow:0 5px 20px #183e3108;position:relative;z-index:1}.search-form>span svg{width:23px;height:23px;color:var(--muted)}.search-form input{width:100%;min-width:0;border:0;background:none;height:45px;outline:none;font-size:15px}.search-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.search-form input:focus-visible{outline:none}.search-submit{border-radius:100px;background:var(--accent);color:white;display:flex;align-items:center;gap:21px;padding:16px 23px;font-size:13px;font-weight:700}.search-submit:hover{background:var(--deep)}.search-hint{font-size:11px;color:var(--muted);margin:15px 0 18px}.suggestions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.suggestions button{font-size:11px;padding:7px 12px;background:var(--wash);border-radius:100px}.suggestions button:hover{background:var(--line)}.near-link{display:inline-flex;align-items:center;gap:9px;margin:27px 0 0;font-size:12px;font-weight:600}.near-link>span:last-child{margin-left:7px}.near-link svg{width:17px;height:17px}.contours{position:absolute;width:400px;left:-220px;top:94px;opacity:.2;transform:rotate(-15deg);pointer-events:none}.contours svg{fill:none;stroke:#8d9c7c;stroke-width:1}.hero:after{content:"";position:absolute;right:-120px;top:55px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,transparent 49%,var(--line) 49.5%,transparent 50.2%,transparent 60%,var(--line) 60.5%,transparent 61.2%);opacity:.55;pointer-events:none}
body[data-project=ludia] .hero-brand{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:116px;letter-spacing:-7px}body[data-project=ludia] .brand-dot{width:17px;height:17px;border-radius:2px;transform:rotate(25deg);margin-bottom:20px}body[data-project=ludia] .hero{min-height:470px;padding-top:48px}body[data-project=ludia] .hero-copy{font-family:Georgia,"Times New Roman",serif;font-size:23px}body[data-project=ludia] .contours{transform:rotate(95deg);opacity:.15}body[data-project=ludia] .hero:after{background:repeating-conic-gradient(from 5deg,transparent 0deg 18deg,var(--line) 18deg 19deg,transparent 19deg 30deg);width:280px;height:280px;mask:radial-gradient(circle,transparent 45%,black 46%,black 62%,transparent 63%);right:-90px;top:100px}
.main-nav{display:grid;grid-template-columns:repeat(4,1fr);max-width:820px;margin:12px auto 65px;padding:0 20px;gap:16px}.main-nav button{text-align:left;border:1px solid var(--line);border-radius:16px;background:#ffffff75;position:relative;padding:21px 13px 20px 54px;transition:transform .18s,background .18s}.main-nav button:hover{transform:translateY(-3px);background:white}.main-nav .nav-icon{position:absolute;left:17px;top:22px;color:var(--accent)}.main-nav .nav-icon svg{width:24px;height:24px}.main-nav button>span:not(.nav-icon){font-size:13px;font-weight:600;display:block;white-space:nowrap}.main-nav small{font-size:10px;color:var(--muted);display:block;margin-top:6px;white-space:nowrap}
.section{max-width:1210px;margin:0 auto 65px;padding:0 38px}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:24px}.section-heading .eyebrow{margin:0 0 13px;font-size:9px}.section-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:38px;font-weight:400;letter-spacing:-1.5px;margin:0}.section-heading p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:1.6;margin:12px 0 0}.section-symbol{font-size:67px;line-height:1;color:var(--warm);margin:8px 10px}.agenda{padding-top:25px;border-top:1px solid var(--line)}.date-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:15px;margin:25px 0}.date-toolbar label{display:grid;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}input[type=date]{border:1px solid var(--line);border-radius:9px;padding:11px 12px;background:white;font-size:13px;letter-spacing:0;text-transform:none;min-height:42px}.date-toolbar>.text-button{margin-left:auto;align-self:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 19px;border-radius:10px;font-size:12px;font-weight:600;min-height:43px}.primary{background:var(--accent);color:white}.primary:hover{background:var(--deep)}.secondary{border:1px solid var(--line);background:white}.secondary:hover{border-color:var(--accent)}.text-button{display:inline-flex;align-items:center;gap:7px;font-size:12px;padding:7px 0}.text-button:hover{text-decoration:underline}.muted{color:var(--muted);font-size:12px;line-height:1.6}.date-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:21px}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.event-card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;min-height:225px;text-align:left}.event-card:hover{border-color:var(--accent)}.event-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.date-block{border-radius:11px;background:var(--wash);min-width:52px;text-align:center;padding:8px 10px}.date-block strong{font-family:Georgia,serif;font-size:25px;font-weight:400;display:block}.date-block span{text-transform:uppercase;letter-spacing:1px;font-size:8px;display:block;margin-top:2px}.badge{font-size:9px;border:1px solid var(--line);border-radius:100px;display:inline-flex;align-items:center;gap:4px;padding:5px 8px;width:max-content;max-width:100%}.badge.confirmed{color:#296043;background:#edf5e9;border-color:#dce8d5}.badge.expected{color:#866423;background:#fbf3dd;border-color:#eddfb9}.event-card h3{font-family:Georgia,serif;font-size:21px;line-height:1.3;font-weight:400;margin:21px 0 10px}.card-bottom{margin-top:auto;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;gap:12px;padding-top:14px}.card-bottom svg{width:16px;height:16px}.empty{padding:32px;border:1px dashed var(--line);border-radius:16px;background:#ffffff70;color:var(--muted);line-height:1.7;grid-column:1/-1;font-size:13px}.empty strong{color:var(--ink);display:block;margin-bottom:8px}
.explorer{scroll-margin-top:20px}.filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:17px}.filter-row button{padding:9px 14px;font-size:11px;border-radius:100px;border:1px solid var(--line);background:white}.filter-row button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:white}.map-toolbar{display:flex;align-items:center;gap:18px;margin:18px 0;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:white;font-size:12px}.map-toolbar>span{font-weight:600;margin-right:auto}.map-toolbar select{border:1px solid var(--line);padding:7px;border-radius:6px;margin-left:5px;background:white}.result-status{font-size:12px;color:var(--muted);min-height:18px;margin:20px 0 13px}.results-layout.with-map{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(350px,1.3fr);gap:23px;align-items:start}.result-list{display:grid;gap:10px}.results-layout:not(.with-map) .result-list{grid-template-columns:repeat(3,1fr)}.result-card{border:1px solid var(--line);padding:18px;border-radius:13px;background:white;text-align:left;display:flex;align-items:start;gap:13px;width:100%}.result-card:hover{border-color:var(--accent)}.result-icon{width:36px;height:36px;flex:none;border-radius:10px;display:grid;place-items:center;background:var(--wash);color:var(--accent)}.result-icon svg{width:19px;height:19px}.result-text{min-width:0;flex:1}.result-type{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;display:block}.result-card h3{font-size:14px;line-height:1.5;margin:7px 0;font-weight:600}.result-meta{font-size:10px;color:var(--muted);line-height:1.6}.result-arrow{color:var(--muted);align-self:center}.result-arrow svg{width:16px;height:16px}.map-panel{position:sticky;top:20px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white}#map{height:555px;width:100%;background:#e8eddd}.map-caption{font-size:10px;line-height:1.6;margin:0;padding:13px 17px;color:var(--muted)}.leaflet-container{font-family:Arial,sans-serif}.leaflet-popup-content button{background:var(--accent);color:white;border-radius:7px;margin-top:10px;padding:9px 11px;font-size:11px}.leaflet-popup-content strong{font-size:13px}.leaflet-control-attribution{font-size:9px!important}.load-more{margin:20px auto;display:flex}
.footer{border-top:1px solid var(--line);max-width:1280px;margin:0 auto;padding:25px 48px;display:flex;justify-content:space-between;gap:25px;color:var(--muted);font-size:10px}.footer>div{display:flex;align-items:center;gap:24px}.footer .text-button{font-size:10px}.footer a:hover{text-decoration:underline}
.dialog{border:1px solid var(--line);border-radius:22px;padding:31px;max-width:560px;width:calc(100% - 32px);max-height:88dvh;overflow:auto;color:var(--ink);background:var(--paper);box-shadow:0 25px 100px #152d3c35}.dialog::backdrop{background:#10282065;backdrop-filter:blur(4px)}.dialog p{font-size:13px;line-height:1.7;color:var(--muted)}.dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:15px}.dialog-heading h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.7px;font-size:29px;margin:0}.dialog-heading .eyebrow{font-size:8px;margin-bottom:12px}.icon-button{width:33px;height:33px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;flex:none;background:white}.icon-button svg{width:17px;height:17px}.geolocate{width:100%;margin-top:16px}.geolocation-status{margin-bottom:15px}.or{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:10px;margin:23px 0}.or:before,.or:after{content:"";height:1px;flex:1;background:var(--line)}.place-form label{display:block;font-size:11px;margin-bottom:9px}.input-action{display:flex;gap:7px}.input-action input{border:1px solid var(--line);background:white;padding:12px;min-width:0;flex:1;border-radius:10px;font-size:12px}.places{display:grid;gap:5px;margin-top:12px}.place-choice{padding:12px;border:1px solid var(--line);border-radius:10px;text-align:left;background:white;display:flex;gap:12px;align-items:center;font-size:12px}.place-choice:hover{border-color:var(--accent)}.place-choice span{display:block}.place-choice small{font-size:10px;display:block;color:var(--muted);margin-top:4px}.map-pick{margin-top:15px}.clear-location{display:block;color:var(--muted);font-size:10px;margin-top:22px}#picker-map{height:280px;border-radius:11px;margin-top:14px}#use-picked{width:100%}.detail-dialog{max-width:780px}.detail-top{display:flex;justify-content:space-between;gap:25px;align-items:start}.detail-top h2{font-family:Georgia,serif;font-size:31px;line-height:1.22;letter-spacing:-.6px;margin:16px 0 12px;font-weight:400}.detail-subtitle{font-size:11px;color:var(--muted)}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:23px 0}.fact{border:1px solid var(--line);border-radius:10px;padding:13px;background:white}.fact dt{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:7px}.fact dd{margin:0;font-size:14px}.detail-warning{padding:13px 16px;background:#fcf0d9;border:1px solid #e9d8b4;border-radius:10px;color:#725321!important;font-size:12px!important}.detail-map-link{margin:15px 0}.source-list{padding:0;list-style:none;display:grid;gap:8px}.source-list a{display:block;padding:11px 13px;background:white;border:1px solid var(--line);border-radius:8px;font-size:11px;overflow-wrap:anywhere}.source-list a:hover{border-color:var(--accent)}.detail-dialog h3{font-size:13px;margin-top:26px}.license-note{font-size:10px!important}.detail-geometry{height:300px;border-radius:12px;margin-top:18px;overflow:hidden}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;background:var(--ink);color:white;font-size:12px;max-width:90%;border-radius:11px;box-shadow:var(--shadow);z-index:10000}
@media(min-width:1600px){.hero{padding-top:105px;min-height:590px}.main-nav{margin-bottom:95px}}
@media(max-width:950px){.header{padding:24px 28px}.hero{padding-top:65px;min-height:485px}.section{padding:0 26px}.main-nav{gap:10px}.results-layout:not(.with-map) .result-list{grid-template-columns:repeat(2,1fr)}.event-grid{grid-template-columns:repeat(2,1fr)}.results-layout.with-map{grid-template-columns:minmax(240px,.85fr) minmax(290px,1.2fr)}.main-nav small{font-size:9px}.main-nav button{padding-left:48px}.footer{padding:23px 28px}}
@media(max-width:680px){.header{padding:21px 20px}.brand{font-size:20px}.brand img{width:26px;height:26px}.header-actions{gap:15px}.location-button{font-size:11px;padding:9px 10px;max-width:165px}.location-button .chevron{display:none}.login{font-size:11px}.login small{display:none}.login svg{width:15px;height:15px}.hero{padding:60px 20px 18px;min-height:440px}.eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:26px}.hero-brand{font-size:70px;letter-spacing:-4.8px;margin-bottom:18px}.brand-dot{width:9px;height:9px;margin-bottom:10px;margin-left:7px}.hero-copy{font-size:15px;line-height:1.6;max-width:300px;margin:0 auto 25px}.search-form{gap:10px;padding:6px 6px 6px 16px}.search-form input{font-size:12px;height:43px}.search-form>span svg{width:18px}.search-submit{padding:14px;border-radius:50%;width:43px;height:43px;flex:none}.search-submit>span:first-child{display:none}.search-submit svg{width:17px}.search-hint{font-size:10px;line-height:1.6;max-width:290px;margin:13px auto 17px}.suggestions{gap:6px}.suggestions button{font-size:10px;padding:7px 10px}.near-link{font-size:11px;margin-top:23px}.hero:after{width:150px;height:150px;right:-110px;top:35px}.contours{width:270px;left:-230px}.main-nav{max-width:400px;padding:0 20px;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px auto 45px}.main-nav button{padding:16px 10px 16px 48px;border-radius:13px}.main-nav .nav-icon{left:15px;top:18px}.main-nav .nav-icon svg{width:21px;height:21px}.main-nav button>span:not(.nav-icon){font-size:12px}.main-nav small{font-size:9px;margin-top:4px}.section{padding:0 20px;margin-bottom:45px}.section-heading h2{font-size:29px}.section-heading p:not(.eyebrow){font-size:12px}.section-heading .eyebrow{font-size:8px;line-height:1.7}.section-symbol{font-size:45px}.date-toolbar{gap:10px}.date-toolbar label{flex:1}.date-toolbar input{width:100%;padding:10px 7px;font-size:12px}.date-toolbar .button{padding:11px 12px}.date-toolbar>.text-button{margin-left:0;font-size:11px}.event-grid{grid-template-columns:1fr}.event-card{min-height:200px;padding:20px}.event-card h3{font-size:22px}.results-layout.with-map{display:flex;flex-direction:column-reverse;gap:15px}.map-panel{width:100%;position:relative;top:0}.list-panel{width:100%}#map{height:350px}.results-layout:not(.with-map) .result-list{grid-template-columns:1fr}.filter-row{gap:6px}.filter-row button{font-size:10px;padding:8px 12px}.map-toolbar{gap:8px;padding:12px;flex-wrap:wrap}.map-toolbar>span{width:100%;margin-bottom:6px}.map-toolbar .text-button{margin-left:auto;font-size:11px}.footer{padding:22px 20px;flex-direction:column;gap:11px;line-height:1.7}.footer>div{justify-content:space-between}.dialog{padding:23px;max-height:91dvh;border-radius:17px}.dialog-heading h2{font-size:25px}.detail-top h2{font-size:27px}.facts{grid-template-columns:repeat(2,1fr)}.input-action .button{padding:12px}.map-caption{font-size:9px}body[data-project=ludia] .hero{padding-top:35px;min-height:420px}body[data-project=ludia] .hero-brand{font-size:89px;letter-spacing:-5px}body[data-project=ludia] .hero-copy{font-size:18px}body[data-project=ludia] .hero .brand-dot{width:12px;height:12px;margin-bottom:15px}body[data-project=ludia] .hero:after{right:-180px}.agenda{padding-top:23px}.toast{bottom:18px}.section-heading{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:680px){.header{gap:12px}.brand{flex:none}.header-actions{min-width:0;gap:10px;justify-content:flex-end}.location-button{min-width:0}.login{flex:none}}

/* Bundled into styles.css. Keep desktop layouts and both brand palettes. */
.view-toggle { display: none; }
.main-nav button[aria-pressed="true"] { border-color: var(--accent); background: var(--wash); }
@media (max-width: 680px) {
  body { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
  .header { padding: 8px 12px; gap: 8px; min-height: 60px; }
  .brand { font-size: 18px; gap: 6px; }
  .brand img { width: 26px; height: 26px; }
  .header-actions { flex: 1; min-width: 0; gap: 4px; }
  .location-button { min-height: 44px; min-width: 0; max-width: 210px; gap: 6px; padding: 8px 10px; font-size: 12px; }
  .location-button > span:first-child { flex: none; }
  .login { width: 44px; min-height: 44px; justify-content: center; padding: 0; }
  .login > span:not([data-icon]), .login small { display: none; }
  .login svg { width: 20px; height: 20px; }
  body[data-project] .hero { min-height: 0; padding: 24px 16px 20px; }
  .hero > .eyebrow, .contours, .hero::after { display: none; }
  body[data-project] .hero-brand { font-size: clamp(44px, 13vw, 54px); letter-spacing: -3px; margin: 0 0 10px; }
  body[data-project] .hero .brand-dot { width: 8px; height: 8px; margin: 0 0 9px 6px; }
  body[data-project] .hero-copy { font-family: Arial, Helvetica, sans-serif; font-size: 15px; line-height: 1.45; max-width: 300px; margin: 0 auto 18px; }
  .search-form { padding: 5px 5px 5px 14px; gap: 8px; }
  .search-form input { height: 44px; font-size: 16px; }
  .search-submit { width: 44px; height: 44px; padding: 12px; }
  .search-hint { max-width: none; font-size: 12px; line-height: 1.45; margin: 10px 0 8px; }
  .suggestions { gap: 6px; }
  .suggestions button { min-height: 44px; font-size: 12px; padding: 8px 10px; }
  .near-link { min-height: 44px; margin-top: 8px; font-size: 13px; }
  body.is-exploring .hero { padding-top: 6px; padding-bottom: 14px; }
  body.is-exploring .hero > :not(.search-form) { display: none; }
  .main-nav {
    position: fixed; inset: auto 0 0; z-index: 1100;
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%; max-width: none; margin: 0; gap: 3px;
    padding: 5px max(8px, env(safe-area-inset-right, 0px)) calc(5px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px));
    background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -4px 18px #183e3108;
  }
  .main-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 7px 2px; min-height: 58px; border: 1px solid transparent; border-radius: 12px; background: transparent; text-align: center; }
  .main-nav .nav-icon { position: static; display: block; }
  .main-nav .nav-icon svg { width: 22px; height: 22px; }
  .main-nav button > span:not(.nav-icon) { font-size: 11px; line-height: 1.3; }
  .main-nav small { display: none; }
  .main-nav button:hover { transform: none; }
  .section { padding: 0 16px; margin-bottom: 28px; scroll-margin-top: 12px; }
  .section-heading { gap: 10px; margin-bottom: 12px; }
  .section-heading h2 { font-size: 26px; letter-spacing: -.8px; overflow-wrap: anywhere; }
  .section-heading p:not(.eyebrow) { font-size: 13px; line-height: 1.45; margin-top: 7px; }
  .section-heading .eyebrow, .section-symbol { display: none; }
  .filter-row { position: sticky; top: 0; z-index: 600; flex-wrap: nowrap; gap: 6px; overflow-x: auto; overscroll-behavior-x: contain; padding: 6px 2px; margin: 0 -2px 10px; background: var(--paper); scroll-padding-inline: 4px; }
  .filter-row button { min-height: 44px; flex: none; padding: 9px 13px; font-size: 13px; }
  .map-toolbar { margin: 10px 0; padding: 10px 12px; gap: 6px 10px; font-size: 13px; }
  .map-toolbar > span { font-size: 13px; overflow-wrap: anywhere; margin: 0; }
  .map-toolbar label { display: flex; align-items: center; }
  .map-toolbar select { min-height: 44px; font-size: 16px; padding: 8px; }
  .map-toolbar .text-button { min-height: 44px; font-size: 12px; }
  .view-toggle { display: flex; padding: 4px; gap: 4px; margin: 10px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--wash); }
  .view-toggle button { display: flex; align-items: center; justify-content: center; gap: 7px; flex: 1; min-height: 44px; padding: 8px; font-size: 14px; border-radius: 8px; }
  .view-toggle button[aria-pressed="true"] { background: white; color: var(--accent); box-shadow: 0 1px 4px #183e3115; font-weight: 600; }
  .result-status { font-size: 13px; margin: 10px 0; }
  .results-layout.with-map { display: block; }
  .results-layout.with-map[data-view="map"] .list-panel { display: none; }
  .results-layout.with-map[data-view="list"] .map-panel { display: none; }
  #map { height: 50vh; height: 50svh; min-height: 220px; max-height: 420px; }
  .map-caption { font-size: 11px; line-height: 1.45; padding: 10px 12px; }
  .result-list { gap: 8px; }
  .result-card { padding: 12px; gap: 10px; }
  .result-card h3 { font-size: 16px; line-height: 1.35; margin: 5px 0; overflow-wrap: anywhere; }
  .result-type { font-size: 10px; letter-spacing: .5px; }
  .result-meta { font-size: 12px; line-height: 1.45; }
  .load-more, .button { min-height: 44px; font-size: 14px; }
  .agenda { padding-top: 18px; }
  .date-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
  .date-toolbar label { min-width: 0; font-size: 11px; }
  .date-toolbar input { min-width: 0; min-height: 44px; font-size: 16px; }
  .date-toolbar > .text-button { min-height: 44px; font-size: 12px; justify-content: center; text-align: center; }
  .event-grid { gap: 10px; }
  .event-card { min-height: 0; padding: 16px; }
  .event-card h3 { font-size: 21px; margin: 12px 0 8px; overflow-wrap: anywhere; }
  .badge { font-size: 11px; }
  .card-bottom { font-size: 12px; line-height: 1.45; padding-top: 10px; flex-wrap: wrap; }
  .date-note { font-size: 12px; }
  .icon-button { width: 44px; height: 44px; }
  .dialog { position: fixed; inset: auto 0 0; margin: 0 auto; width: 100%; max-width: none; max-height: calc(100dvh - 16px); padding: 20px 16px max(20px, env(safe-area-inset-bottom, 0px)); border-radius: 22px 22px 0 0; overscroll-behavior-y: contain; }
  .dialog-heading, .detail-top { position: sticky; top: -20px; z-index: 600; background: var(--paper); padding: 12px 0; gap: 12px; }
  .dialog-heading h2, .detail-top h2 { font-size: 25px; overflow-wrap: anywhere; }
  .dialog-heading .eyebrow { display: none; }
  .detail-top h2 { margin-top: 10px; }
  .dialog input, .dialog select { font-size: 16px; min-height: 44px; }
  .dialog .text-button, .place-choice, .source-list a { min-height: 44px; }
  .source-list a { font-size: 13px; }
  .fact dd { font-size: 15px; overflow-wrap: anywhere; }
  .facts { gap: 8px; }
  .fact { padding: 10px; }
  .empty { padding: 22px; }
  .footer { padding: 16px; font-size: 12px; gap: 8px; }
  .footer > div { flex-wrap: wrap; gap: 8px 18px; }
  .footer a, .footer .text-button { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
  .toast { bottom: calc(85px + env(safe-area-inset-bottom, 0px)); font-size: 13px; width: max-content; }
  /* Leave room for the on-screen keyboard while a text field is active. */
  body:has(input:focus) .main-nav { display: none; }
}
