/* Downtown Crowd - New Orleans
   Static rebuild of the ChatGPT-generated Next.js app (downtown-crowd-nola).

   Sections below, in order:
     1. Self-hosted Geist Mono (copied out of the original build, no CDN)
     2. Tailwind v4 preflight, verbatim from the original build's CSS chunk
     3. app/globals.css from the source checkout, verbatim
     4. A short deviations block (documented, mobile-only)
     5. Styles for around-town.html, which the original app did not have
*/

/* ---- 1. fonts ------------------------------------------------------------
   The original loaded Geist + Geist Mono through next/font/google. Only
   Geist Mono is ever referenced by the stylesheet (body text is Arial and
   display numerals are Georgia), so only Geist Mono is carried over. Files
   are the exact woff2 subsets from the original build. */
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./assets/fonts/geist-mono-latin.woff2)format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./assets/fonts/geist-mono-latin-ext.woff2)format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}

/* ---- 2. preflight (Tailwind v4 base layer, as the original shipped it) ---- */
@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}

/* ---- 3. app/globals.css from the source checkout ------------------------
   Unchanged except for the dropped `@import "tailwindcss"` (replaced by the
   preflight above) and the font-family variables, which next/font used to
   inject onto <body>. */
:root { --font-geist-mono:"Geist Mono","Geist Mono Fallback",monospace; --font-geist-sans:Arial,Helvetica,sans-serif; }
.antialiased { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

:root { --ink:#eff6f2; --muted:#91a09a; --panel:#101917; --night:#07100e; --line:#26332f; --acid:#d7ff4f; --amber:#ffb44a; --cyan:#66e7d6; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--night); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
button,input { font:inherit; } button,a { -webkit-tap-highlight-color:transparent; }
main { min-height:100vh; overflow:hidden; background:radial-gradient(circle at 74% 8%,rgba(102,231,214,.09),transparent 28rem),linear-gradient(180deg,#081310 0,var(--night) 30rem); }
.site-header { height:68px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(20px,4vw,68px); }
.site-header nav { display:flex; gap:24px; }.site-header nav a { color:var(--muted); text-decoration:none; font-size:11px; }.site-header nav a:hover { color:var(--ink); }.site-header .edition { justify-self:end; }
.brand,.footer-brand { color:var(--ink); text-decoration:none; font-size:13px; letter-spacing:.14em; font-weight:800; display:flex; gap:10px; align-items:center; }
.pulse-dot { width:9px; height:9px; border-radius:50%; background:var(--acid); box-shadow:0 0 16px rgba(215,255,79,.7); display:inline-block; }
.edition { font-family:var(--font-geist-mono),monospace; font-size:10px; color:var(--muted); letter-spacing:.13em; }
.hero { max-width:1400px; margin:0 auto; min-height:610px; padding:clamp(70px,10vw,128px) clamp(20px,6vw,92px) 90px; display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(50px,9vw,150px); align-items:center; }
.eyebrow { margin:0 0 22px; font-family:var(--font-geist-mono),monospace; color:var(--cyan); letter-spacing:.18em; font-size:11px; font-weight:700; }
.hero h1 { margin:0; font-size:clamp(65px,9vw,130px); line-height:.79; letter-spacing:-.075em; font-weight:720; max-width:840px; }
.hero h1 em { color:var(--acid); font-family:Georgia,serif; font-weight:400; }
.dek { max-width:650px; font-size:clamp(16px,1.5vw,20px); line-height:1.6; color:#b6c1bd; margin:44px 0 34px; }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.primary-action { display:inline-flex; align-items:center; justify-content:space-between; gap:44px; background:var(--acid); color:#14200a; text-decoration:none; font-size:14px; font-weight:800; padding:17px 20px; min-width:230px; border-radius:3px; }
.as-of { font-family:var(--font-geist-mono),monospace; font-size:10px; color:var(--muted); }
.tonight-card { background:linear-gradient(145deg,rgba(21,33,30,.96),rgba(10,21,18,.96)); border:1px solid #35463f; border-radius:10px; padding:28px; box-shadow:0 25px 80px rgba(0,0,0,.28); position:relative; }
.tonight-card::before { content:""; height:3px; background:linear-gradient(90deg,var(--acid),var(--cyan)); position:absolute; top:0; left:0; right:0; border-radius:10px 10px 0 0; }
.tonight-label { font-family:var(--font-geist-mono),monospace; font-size:10px; letter-spacing:.15em; color:var(--muted); display:flex; align-items:center; gap:9px; }
.tonight-label span { width:6px; height:6px; border-radius:50%; background:#ff6a4d; box-shadow:0 0 0 4px rgba(255,106,77,.1); }
.tonight-verdict { display:block; font-size:33px; margin:28px 0 8px; letter-spacing:-.04em; }
.tonight-card>p { color:#aebcb6; line-height:1.55; margin:0; }
.tonight-score { margin:30px 0; display:flex; align-items:baseline; gap:8px; }
.tonight-score span { font-family:Georgia,serif; color:var(--acid); font-size:66px; line-height:1; }
.tonight-score small { color:var(--muted); font-family:var(--font-geist-mono),monospace; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.tonight-stats { border-top:1px solid var(--line); padding-top:20px; display:grid; grid-template-columns:1fr 1fr; }
.tonight-stats div { display:flex; flex-direction:column; gap:3px; }.tonight-stats div+div { border-left:1px solid var(--line); padding-left:22px; }.tonight-stats b { font-size:22px; }.tonight-stats span { font-size:11px; color:var(--muted); }
.principles { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); padding:0 clamp(20px,4vw,68px); }
.principles>div { min-height:138px; padding:34px 28px; display:grid; grid-template-columns:28px 1fr; gap:15px; align-items:start; }.principles>div+div { border-left:1px solid var(--line); }.principles span { color:var(--cyan); font-family:var(--font-geist-mono),monospace; font-size:10px; }.principles p { margin:0; color:var(--muted); font-size:13px; line-height:1.6; max-width:330px; }.principles b { color:var(--ink); }
.calendar-section,.waves-section { max-width:1400px; margin:0 auto; padding:100px clamp(20px,6vw,92px); }
.section-heading { display:flex; justify-content:space-between; gap:50px; align-items:end; margin-bottom:42px; }.section-heading h2 { font-size:clamp(38px,5vw,72px); margin:0; line-height:.95; letter-spacing:-.055em; }.section-heading>p { max-width:340px; color:var(--muted); line-height:1.5; font-size:14px; }
.filter-rail { display:flex; gap:8px; overflow-x:auto; padding:3px 0 15px; scrollbar-width:none; }.filter-rail::-webkit-scrollbar { display:none; }.filter-rail button { white-space:nowrap; color:#a8b4af; background:var(--panel); border:1px solid var(--line); border-radius:999px; padding:10px 15px; font-size:12px; cursor:pointer; transition:.2s ease; }.filter-rail button:hover { border-color:#4e625b; color:var(--ink); }.filter-rail button.active { background:var(--acid); color:#17200c; border-color:var(--acid); font-weight:800; }
.search-row { display:grid; grid-template-columns:1fr auto auto auto; gap:18px; align-items:center; border-bottom:1px solid var(--line); padding:14px 0 24px; margin-bottom:2px; }.search-box { display:flex; align-items:center; gap:12px; background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:0 14px; }.search-box span { color:var(--muted); font-size:22px; }.search-box input { width:100%; min-width:140px; border:0; outline:0; background:transparent; color:var(--ink); padding:13px 0; font-size:13px; }.search-box input::placeholder { color:#65736e; }
.lead-toggle { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:11px; cursor:pointer; }.lead-toggle input { position:absolute; opacity:0; }.lead-toggle span { width:31px; height:18px; border-radius:99px; background:#26342f; position:relative; order:-1; }.lead-toggle span::after { content:""; position:absolute; width:12px; height:12px; border-radius:50%; background:#83918c; top:3px; left:3px; transition:.2s; }.lead-toggle input:checked+span { background:var(--acid); }.lead-toggle input:checked+span::after { transform:translateX(13px); background:#17200c; }.result-count { font-family:var(--font-geist-mono),monospace; color:var(--muted); font-size:10px; }
.event-card { display:grid; grid-template-columns:78px 1fr; gap:28px; padding:30px 4px; border-bottom:1px solid var(--line); }.date-block { width:66px; height:76px; border:1px solid #384841; border-radius:5px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--panel); }.date-block span { font-family:var(--font-geist-mono),monospace; color:var(--cyan); font-size:9px; letter-spacing:.12em; }.date-block strong { font-family:Georgia,serif; font-size:31px; font-weight:400; }.event-main { min-width:0; }.event-topline { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.verdict { display:inline-flex; align-items:center; text-transform:uppercase; letter-spacing:.12em; font-family:var(--font-geist-mono),monospace; font-size:9px; font-weight:700; }.verdict::before { content:""; width:6px; height:6px; border-radius:50%; margin-right:7px; background:currentColor; }.verdict.hot { color:var(--acid); }.verdict.warm { color:var(--amber); }.verdict.watch { color:#ad8cff; }.verdict.quiet { color:#788680; }.heat-number { font-family:var(--font-geist-mono),monospace; font-size:13px; white-space:nowrap; }.heat-number small { color:var(--muted); font-size:8px; margin-left:2px; }.event-card h3 { margin:0; font-size:clamp(20px,2.4vw,32px); letter-spacing:-.035em; line-height:1.15; }.event-meta { color:var(--cyan); font-family:var(--font-geist-mono),monospace; font-size:10px; margin:9px 0 17px; }.mix { color:#bcc6c2; font-size:14px; line-height:1.5; margin:0 0 18px; }
.signal-row { display:flex; gap:24px; flex-wrap:wrap; color:var(--muted); font-size:11px; }.signal-row b { color:var(--ink); font-weight:700; }.details-button { margin-top:20px; background:transparent; color:#99a7a2; border:0; border-bottom:1px dashed #40514a; padding:0 0 5px; cursor:pointer; font-size:11px; display:flex; gap:9px; }.details-button:hover { color:var(--ink); }.field-notes { margin-top:20px; padding:20px; background:var(--panel); border-left:2px solid var(--cyan); border-radius:0 4px 4px 0; color:#aab6b1; font-size:12px; line-height:1.6; }.field-notes>p { margin:0 0 16px; }.field-notes dl { margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.field-notes dt { color:var(--muted); font-family:var(--font-geist-mono),monospace; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }.field-notes dd { margin:3px 0 0; color:var(--ink); }.field-notes a { display:inline-block; margin-top:17px; color:var(--acid); text-decoration:none; }
.topline-actions { display:flex; align-items:center; gap:16px; }.save-button { border:1px solid #3a4a44; color:#aab7b2; background:transparent; border-radius:999px; padding:7px 10px; display:flex; gap:6px; align-items:center; cursor:pointer; font-size:10px; }.save-button span { font-size:14px; line-height:1; }.save-button.saved { border-color:var(--acid); color:var(--acid); background:rgba(215,255,79,.06); }.event-card.selected { background:linear-gradient(90deg,rgba(215,255,79,.035),transparent 55%); }.overlap-note { color:var(--amber); border-left:2px solid var(--amber); padding-left:10px; margin:-2px 0 18px; font-family:var(--font-geist-mono),monospace; font-size:9px; line-height:1.5; }
.signal-grid { display:grid; grid-template-columns:repeat(4,minmax(110px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden; }.signal-grid div { background:#0c1513; padding:12px; display:flex; flex-direction:column; gap:4px; }.signal-grid span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.signal-grid b { color:var(--ink); font-size:11px; font-weight:700; }
.evidence-strip { display:flex; align-items:center; gap:12px; margin-bottom:20px; }.evidence-strip p { margin:0; }.grade { width:36px; height:36px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:14px; font-weight:800; color:#07100e; }.grade-A { background:var(--acid); }.grade-B { background:var(--cyan); }.grade-C { background:var(--amber); }.grade-D { background:#ad8cff; }.social-evidence { margin:18px 0 0!important; }.source-links { display:flex; gap:20px; flex-wrap:wrap; }.source-links a { margin-top:14px; }.sort-toggle { display:flex; background:var(--panel); border:1px solid var(--line); padding:3px; border-radius:4px; }.sort-toggle button { border:0; background:transparent; color:var(--muted); padding:7px 10px; cursor:pointer; font-size:10px; }.sort-toggle button.active { background:#2a3934; color:var(--ink); border-radius:2px; }.watchlist-warning { background:rgba(173,140,255,.08); color:#cbb9ff; border:1px solid rgba(173,140,255,.25); border-radius:4px; padding:13px 16px; font-size:11px; margin:16px 0; }
.wave-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }.wave-card { min-height:315px; padding:28px; display:flex; flex-direction:column; background:linear-gradient(160deg,#111b18,#0a1210); }.wave-card+ .wave-card { border-left:1px solid var(--line); }.wave-index { font-family:Georgia,serif; font-size:42px; color:#33423d; }.wave-date { color:var(--cyan)!important; font-family:var(--font-geist-mono),monospace; font-size:9px!important; text-transform:uppercase; letter-spacing:.1em; margin:18px 0 12px!important; }.wave-card h3 { font-size:21px; line-height:1.15; letter-spacing:-.03em; margin:0 0 15px; }.wave-card>p { color:var(--muted); font-size:12px; line-height:1.5; margin:0; }.wave-footer { margin-top:auto; padding-top:22px; border-top:1px solid var(--line); display:flex; align-items:end; justify-content:space-between; gap:15px; }.wave-footer span { color:var(--acid); font-family:var(--font-geist-mono),monospace; font-size:8px; letter-spacing:.09em; }.wave-footer b { color:var(--acid); font-family:Georgia,serif; font-size:42px; line-height:.8; }
.method-strip { display:grid; grid-template-columns:repeat(6,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0 clamp(20px,4vw,68px); }.method-strip div { padding:25px 18px; display:flex; gap:10px; align-items:baseline; }.method-strip div+div { border-left:1px solid var(--line); }.method-strip b { font-family:Georgia,serif; font-size:28px; color:var(--cyan); }.method-strip span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.load-more { display:flex; align-items:center; justify-content:space-between; width:calc(100% - 106px); margin:28px 0 0 106px; background:var(--panel); color:var(--ink); border:1px solid var(--line); padding:16px 18px; cursor:pointer; font-weight:700; }.load-more:hover { border-color:var(--cyan); }.load-more span { color:var(--muted); font-size:10px; font-weight:400; }.audit-note { padding:95px clamp(20px,8vw,130px); background:linear-gradient(135deg,#10231d,#0a1613); border-top:1px solid var(--line); }.audit-note h2 { max-width:930px; font-size:clamp(34px,5vw,70px); letter-spacing:-.055em; line-height:1; margin:0 0 30px; }.audit-note>p:last-child { max-width:820px; color:#aebbb6; line-height:1.7; }
.selection-tray { position:fixed; z-index:30; left:50%; bottom:18px; transform:translateX(-50%); width:min(920px,calc(100% - 30px)); background:rgba(19,31,27,.97); border:1px solid #506259; box-shadow:0 20px 65px rgba(0,0,0,.55); border-radius:8px; padding:13px 15px; display:flex; align-items:center; justify-content:space-between; gap:20px; backdrop-filter:blur(14px); }.selection-tray>div { display:flex; align-items:center; gap:12px; }.tray-count { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:var(--acid); color:#14200a; font-weight:800; }.selection-tray p { margin:0; display:flex; flex-direction:column; gap:3px; }.selection-tray p b { font-size:12px; }.selection-tray p small { color:var(--muted); font-size:9px; }.tray-actions { margin-left:auto; }.primary-action.compact { min-width:auto; padding:12px 15px; border:0; cursor:pointer; gap:10px; }.ghost-action { background:transparent; color:var(--ink); border:1px solid #42524c; padding:11px 14px; border-radius:3px; cursor:pointer; }.clear-button { width:34px; height:34px; background:transparent; color:var(--muted); border:0; font-size:22px; cursor:pointer; }
.modal-backdrop { position:fixed; z-index:50; inset:0; display:grid; place-items:center; padding:20px; background:rgba(2,8,6,.82); backdrop-filter:blur(8px); }.calendar-modal { position:relative; width:min(600px,100%); background:#111d19; border:1px solid #45584f; border-radius:9px; padding:40px; box-shadow:0 30px 100px rgba(0,0,0,.6); }.calendar-modal h2 { font-size:38px; letter-spacing:-.04em; margin:0 0 18px; }.calendar-modal>p:not(.eyebrow),.calendar-modal li { color:#aebbb6; line-height:1.65; font-size:13px; }.calendar-modal ol { padding-left:20px; }.calendar-modal li+li { margin-top:8px; }.modal-close { position:absolute; top:15px; right:15px; border:0; background:transparent; color:var(--muted); font-size:24px; cursor:pointer; }.modal-actions { display:flex; gap:10px; align-items:center; margin-top:28px; }.modal-actions .primary-action { min-width:auto; gap:20px; }
.empty-state { padding:70px 20px; text-align:center; color:var(--muted); } footer { border-top:1px solid var(--line); padding:36px clamp(20px,4vw,68px); display:flex; align-items:center; justify-content:space-between; gap:30px; color:var(--muted); font-size:11px; } footer p { margin:0; } footer a { color:var(--ink); text-decoration:none; }
@media (max-width:980px) { .wave-grid { grid-template-columns:repeat(2,1fr); }.wave-card:nth-child(3) { border-left:0; border-top:1px solid var(--line); }.wave-card:nth-child(4) { border-top:1px solid var(--line); }.method-strip { grid-template-columns:repeat(3,1fr); }.method-strip div:nth-child(4) { border-left:0; border-top:1px solid var(--line); }.method-strip div:nth-child(n+4) { border-top:1px solid var(--line); } }
@media (max-width:820px) { .site-header { grid-template-columns:1fr auto; }.site-header nav { justify-self:end; }.edition { display:none; }.hero { grid-template-columns:1fr; padding-top:72px; gap:50px; }.hero h1 { font-size:clamp(62px,18vw,92px); }.tonight-card { max-width:520px; }.principles { grid-template-columns:1fr; }.principles>div { min-height:105px; }.principles>div+div { border-left:0; border-top:1px solid var(--line); }.section-heading { display:block; }.section-heading>p { margin-top:20px; }.search-row { grid-template-columns:1fr auto auto; }.search-box { grid-column:1/-1; }.result-count { text-align:right; }.field-notes dl { grid-template-columns:1fr; }.signal-grid { grid-template-columns:repeat(2,1fr); } footer { align-items:flex-start; flex-direction:column; } }
@media (max-width:520px) { .site-header { height:60px; }.site-header nav { display:none; }.hero { min-height:auto; padding-bottom:65px; }.dek { margin-top:34px; }.hero .primary-action { width:100%; }.calendar-section,.waves-section { padding-top:72px; }.wave-grid { grid-template-columns:1fr; }.wave-card { min-height:270px; }.wave-card+ .wave-card { border-left:0; border-top:1px solid var(--line); }.method-strip { grid-template-columns:repeat(2,1fr); }.method-strip div:nth-child(odd) { border-left:0; }.method-strip div:nth-child(n+3) { border-top:1px solid var(--line); }.event-card { grid-template-columns:52px 1fr; gap:16px; padding:25px 0; }.date-block { width:48px; height:59px; }.date-block strong { font-size:24px; }.event-card h3 { font-size:21px; }.event-topline { align-items:flex-start; gap:10px; }.topline-actions { gap:7px; }.heat-number { display:none; }.signal-grid { grid-template-columns:1fr; }.lead-toggle { font-size:10px; }.search-row { grid-template-columns:1fr auto; }.sort-toggle { grid-column:1/2; }.result-count { align-self:center; }.lead-toggle { grid-column:1/-1; }.load-more { width:calc(100% - 68px); margin-left:68px; }.selection-tray { align-items:stretch; flex-direction:column; padding:12px; }.selection-tray>div { width:100%; }.tray-actions { margin:0; display:grid!important; grid-template-columns:auto 1fr auto; }.primary-action.compact { width:100%; justify-content:center; }.calendar-modal { padding:32px 24px; }.calendar-modal h2 { font-size:30px; }.modal-actions { align-items:stretch; flex-direction:column; }.modal-actions .primary-action { width:100%; justify-content:center; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

/* ---- 4. deviations from the original ------------------------------------
   Two mobile-only corrections. Desktop rendering is untouched. */
/* iOS zooms the viewport for any focused field under 16px and does not zoom
   back out. The original search field is 13px at every width. */
@media (max-width:520px) { .search-box input { font-size:16px; } }
/* The saved-events tray is pinned to the bottom edge, where the iPhone home
   indicator sits. The original used a bare 18px. */
.selection-tray { bottom:max(18px,env(safe-area-inset-bottom)); }

/* ---- 5. around-town.html ------------------------------------------------
   Not part of the original app: a plain archive view for the 35 user-supplied
   community listings in NolaEvents.csv. Reuses the palette and the section /
   card furniture above; only what is genuinely new lives here. */
.local-note { max-width:820px; color:#aebbb6; line-height:1.7; font-size:14px; margin:0 0 34px; }
.local-note b { color:var(--ink); }
.local-card { display:grid; grid-template-columns:78px 1fr; gap:28px; padding:26px 4px; border-bottom:1px solid var(--line); }
.local-card .date-block strong { font-size:24px; }
.local-card .date-block small { font-family:var(--font-geist-mono),monospace; color:var(--muted); font-size:8px; letter-spacing:.08em; }
.local-card h3 { margin:0; font-size:clamp(18px,2vw,25px); letter-spacing:-.03em; line-height:1.2; }
.local-time { color:var(--cyan); font-family:var(--font-geist-mono),monospace; font-size:10px; margin:9px 0 14px; text-transform:uppercase; letter-spacing:.06em; }
.local-where { color:#bcc6c2; font-size:14px; line-height:1.55; margin:0; }
.local-where b { color:var(--muted); font-family:var(--font-geist-mono),monospace; font-size:8px; text-transform:uppercase; letter-spacing:.1em; display:block; margin-bottom:4px; font-weight:400; }
.local-detail { color:var(--muted); font-size:13px; line-height:1.55; margin:12px 0 0; }
@media (max-width:520px) { .local-card { grid-template-columns:52px 1fr; gap:16px; padding:22px 0; } }
