:root {
  --ink: #102b2a;
  --green: #42786c;
  --green-dark: #28594f;
  --ice: #edf8fb;
  --blue: #92d0ea;
  --line: #bad7d4;
  --metal: #aab9b7;
  --gold: #806d30;
  --white: #fff;
  --pad: clamp(1.25rem, 4vw, 4.5rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--white); font-family: "Helvetica Neue", Arial, sans-serif; }
a { color: inherit; }
.skip-link{position:fixed;z-index:100;top:.75rem;left:.75rem;padding:.75rem 1rem;color:var(--white);background:var(--green-dark);transform:translateY(-150%);transition:transform .2s}.skip-link:focus{transform:none}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--white);outline-offset:2px;box-shadow:0 0 0 5px var(--ink)}
p { margin: 0; line-height: 1.6; }
h1, h2, h3 { margin: 0; line-height: .96; letter-spacing: -.05em; }

.header { position: relative; z-index: 5; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 84px; padding: 0 var(--pad); }
.brand { display: flex; align-items: center; gap: .75rem; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.brand-logo { display: block; width: 42px; height: 42px; flex: 0 0 auto; filter: drop-shadow(3px 3px 0 var(--ice)); transition: transform .2s ease, filter .2s ease; }
.brand:hover .brand-logo { filter: drop-shadow(5px 5px 0 var(--blue)); transform: translate(-1px, -1px); }
.header nav { display: flex; gap: 2rem; }
.header nav a { position: relative; padding: .45rem 0; font-size: .7rem; font-weight: 700; text-decoration: none; }
.header nav a::after { content: ""; position: absolute; right: 0; bottom: .15rem; left: 0; height: 1px; background: var(--green); transform: scaleX(0); transform-origin: right; transition: transform .2s; }
.header nav a:hover { color: var(--green); }
.header nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.district { justify-self: end; color: var(--green); font: 700 .65rem monospace; }

.hero { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(3rem, 7vw, 8rem); align-items: center; min-height: calc(100svh - 84px); padding: 5rem var(--pad); overflow: hidden; }
.hero-copy { position: relative; z-index: 2; }
.overline, .section-label, .route { color: var(--green); font: 700 .66rem monospace; letter-spacing: .12em; text-transform: uppercase; }
.hero h1 { margin-top: 1.4rem; font-size: clamp(4rem, 8.1vw, 8.5rem); font-weight: 750; }
.hero h1 em { color: var(--green); font-family: Georgia, serif; font-weight: 400; }
.next-event{position:relative;isolation:isolate;display:grid;grid-template-columns:7rem minmax(0,1fr) auto;grid-template-areas:"code code code" "date copy action";gap:1.15rem 1.4rem;align-items:center;max-width:640px;margin-top:2.25rem;padding:1rem 1.1rem 1.15rem;color:var(--white);background:var(--green-dark);border:1px solid var(--green-dark);border-radius:2px 26px 2px 2px;text-decoration:none;overflow:hidden;box-shadow:10px 10px 0 var(--ice);transition:transform .25s,box-shadow .25s}.next-event::before{content:"";position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 46px,rgba(146,208,234,.055) 47px,transparent 48px);pointer-events:none}.next-event::after{content:"";position:absolute;z-index:-1;right:-42px;bottom:-60px;width:150px;height:150px;border:1px solid rgba(146,208,234,.38);border-radius:50%;box-shadow:0 0 0 18px rgba(146,208,234,.06),0 0 0 38px rgba(146,208,234,.035);transition:transform .4s}.next-event:hover{transform:translate(-3px,-3px);box-shadow:14px 14px 0 var(--blue)}.next-event:hover::after{transform:scale(1.15) rotate(12deg)}.next-event-code{grid-area:code;display:flex;justify-content:space-between;padding-bottom:.7rem;border-bottom:1px solid rgba(199,222,217,.35);color:var(--blue);font:800 .54rem monospace;letter-spacing:.13em;text-transform:uppercase}.next-event-code b{display:inline-grid;place-items:center;min-width:2.3rem;padding:.18rem .35rem;color:var(--green-dark);background:var(--blue);font-size:.5rem}.next-event time{grid-area:date;display:flex;align-items:center;gap:.65rem;padding-right:1rem;border-right:1px solid rgba(199,222,217,.35)}.next-event time>strong{color:var(--white);font-size:clamp(3.8rem,6vw,5.4rem);line-height:.72;letter-spacing:-.12em}.next-event time span{color:var(--blue);font:800 .52rem/1.3 monospace;text-transform:uppercase}.next-event-copy{grid-area:copy;position:relative;z-index:1;display:grid;gap:.5rem}.next-event-copy small{color:#bcd9d4;font:700 .51rem monospace;letter-spacing:.08em;text-transform:uppercase}.next-event-copy strong{font-size:clamp(1.2rem,2.2vw,1.8rem);line-height:.95;letter-spacing:-.04em}.next-event-action{grid-area:action;position:relative;z-index:1;display:grid;place-items:center;gap:.4rem;align-self:stretch;min-width:74px;padding:.6rem;color:var(--green-dark);background:var(--blue);font:800 .5rem/1.25 monospace;text-align:center;text-transform:uppercase}.next-event-action i{font-style:normal;font-size:1.25rem;animation:next-event-arrow 1.7s ease-in-out infinite}
.intro { max-width: 570px; margin: 2rem 0; color: #55706d; font-size: .95rem; }
.text-link { display: inline-flex; gap: 1.5rem; padding-bottom: .45rem; border-bottom: 1px solid var(--green); color: var(--green-dark); font-size: .75rem; font-weight: 800; text-decoration: none; text-transform: uppercase; }
.hero-number { position: absolute; z-index: 0; right: -1.5rem; bottom: -5rem; color: var(--ice); font-size: clamp(15rem, 31vw, 34rem); font-weight: 800; line-height: .8; letter-spacing: -.12em; }

.weather-map { position: relative; z-index: 1; justify-self: center; width: min(100%, 470px); padding: 10px; background: var(--white); border: 1px solid var(--green); border-radius: 34px 34px 3px 3px; box-shadow: 0 24px 70px rgba(40,89,79,.12); transform-style: preserve-3d; transition: transform 220ms ease; }
.weather-map::before,.weather-map::after{content:"";position:absolute;top:20px;width:5px;height:5px;background:var(--metal);border-radius:50%}.weather-map::before{left:20px}.weather-map::after{right:20px}.map-head,.map-foot{display:flex;justify-content:space-between;padding:1.1rem 1.2rem;color:var(--green-dark);font:800 .56rem monospace;letter-spacing:.1em;text-transform:uppercase}.live{display:flex;align-items:center;gap:.45rem}.live i{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:live-pulse 1.8s ease-out infinite}.map-stage{position:relative;aspect-ratio:1;overflow:hidden;background:linear-gradient(145deg,#e8f7fa,#f9fcfc);border:1px solid var(--line)}.map-stage>svg{width:100%;height:100%}.city-shape{fill:rgba(255,255,255,.42);stroke:var(--green);stroke-width:1.5}.districts path{fill:none;stroke:#bfd9d6;stroke-width:.7}.danube{fill:none;stroke:var(--blue);stroke-width:13;opacity:.85}.ring{fill:none;stroke:var(--green);stroke-width:1.4;stroke-dasharray:3 5}.front{animation:front-drift 8s ease-in-out infinite alternate}.front>path{fill:none;stroke:var(--green-dark);stroke-width:2;stroke-dasharray:7 7}.front-marks circle{fill:var(--white);stroke:var(--green-dark);stroke-width:1.5}.rain{animation:rain-drift 3.5s ease-in-out infinite alternate}.rain circle{fill:var(--blue);opacity:.9}.location circle:first-child{fill:var(--gold)}.location circle:last-child{fill:none;stroke:var(--gold);stroke-width:1;animation:location-pulse 2.5s ease-out infinite;transform-origin:305px 303px}.radar{position:absolute;left:54.5%;top:54%;width:45%;aspect-ratio:1;border-radius:50%;background:conic-gradient(from 0deg,rgba(66,120,108,.18),transparent 25%);transform-origin:0 0;animation:radar-spin 7s linear infinite;pointer-events:none}.map-label{position:absolute;color:var(--green-dark);font:700 .5rem monospace;text-transform:uppercase}.label-city{left:56%;top:59%}.label-danube{right:14%;top:31%;color:#4ca4c8;transform:rotate(-15deg)}.temperature{position:absolute;left:7%;bottom:6%;font-size:2.8rem;font-weight:700;letter-spacing:-.08em}.temperature small{display:block;font:700 .48rem monospace;letter-spacing:.05em;text-transform:uppercase}.map-foot{padding-bottom:.8rem}
.window-base i, .rivet-divider::before { width: 5px; height: 5px; background: var(--metal); border-radius: 50%; }

.rivet-divider { display: flex; justify-content: space-around; align-items: center; height: 28px; margin: 0 var(--pad); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.rivet-divider::before { content: ""; box-shadow: 16vw 0 var(--metal), 32vw 0 var(--metal), 48vw 0 var(--metal), 64vw 0 var(--metal), 80vw 0 var(--metal); }

.idea, .events, .membership { padding: 8rem var(--pad); }
.idea { display: grid; grid-template-columns: 18% 1fr; gap: 2rem; }
.idea-copy h2, .section-head h2, .membership h2 { font-size: clamp(2.8rem, 5.7vw, 6rem); }
.idea-copy > p { max-width: 650px; margin-top: 2rem; color: #55706d; }
.values { grid-column: 2; display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 5rem; border: 1px solid var(--line); border-radius: 28px 28px 2px 2px; overflow: hidden; }
.values article { min-height: 220px; padding: 1.7rem; background: var(--white); border-right: 1px solid var(--line); }
.values article:last-child { border: 0; }
.values article > span { color: var(--metal); font: 700 .6rem monospace; }
.values h3 { margin-top: 4rem; font-size: 1.4rem; }
.values p { margin-top: .8rem; color: #607a77; font-size: .78rem; }

.events { background: var(--ice); }
.section-head { display: grid; grid-template-columns: 18% 1fr auto; align-items: end; margin-bottom: 5rem; }
.countdown { color: var(--green); font: 700 .62rem monospace; text-transform: uppercase; }
.event-list { border-top: 1px solid var(--green); }
.event { display: grid; grid-template-columns: 13% 35% 1fr auto; gap: 2rem; align-items: center; min-height: 160px; border-bottom: 1px solid var(--line); transition: padding .2s, background .2s; }
.event:hover { padding: 0 1rem; background: rgba(255,255,255,.7); }
.event time { display: flex; align-items: center; gap: .6rem; }
.event time strong { font-size: 2.8rem; letter-spacing: -.08em; }
.event time span, .event-hour { font: 700 .55rem/1.4 monospace; text-transform: uppercase; }
.event-hour b{display:block;margin-top:.45rem;color:var(--green);font-size:.48rem;letter-spacing:.05em}.event:hover .event-hour b,.event:focus-visible .event-hour b{color:var(--ink)}
.event h3 { margin-top: .5rem; font-size: clamp(1.5rem, 2.6vw, 2.7rem); }
.event > p { max-width: 330px; color: #607a77; font-size: .78rem; }

.membership { position: relative; display: grid; grid-template-columns: .55fr .85fr 1.15fr; gap: clamp(2.5rem,5vw,5rem); align-items: center; overflow: hidden; }
.membership-ornament { position: relative; display: grid; place-items: center; aspect-ratio: 1; border: 1px solid var(--green); border-radius: 50%; }
.membership-ornament::before, .membership-ornament::after, .membership-ornament span::before, .membership-ornament span::after { content: ""; position: absolute; width: 27%; height: 27%; border: 1px solid var(--green); border-radius: 50% 50% 50% 4px; }
.membership-ornament::before { transform: translateY(-45%) rotate(45deg); }
.membership-ornament::after { transform: translateX(45%) rotate(135deg); }
.membership-ornament span::before { transform: translateY(45%) rotate(225deg); }
.membership-ornament span::after { transform: translateX(-45%) rotate(315deg); }
.membership-copy > p:last-child { max-width: 520px; margin-top: 2rem; color: #55706d; }
.fee-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:26px 26px 2px 2px;overflow:hidden}.fee-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:1.5rem;background:var(--white)}.fee-card+ .fee-card{border-left:1px solid var(--line)}.fee-card-primary{background:var(--ice)}.fee-type{color:var(--green);font:800 .53rem monospace;letter-spacing:.07em;text-transform:uppercase}.fee-card>p:not(.fee-description){margin:2.5rem 0 .25rem;color:var(--green-dark);font-size:clamp(4rem,6vw,6.5rem);font-weight:800;line-height:.72;letter-spacing:-.1em}.fee-card sup{font-size:1rem;vertical-align:top}.fee-card>small{color:#607a77;font:800 .52rem monospace;letter-spacing:.08em;text-transform:uppercase}.fee-description{min-height:5.5rem;margin:1.5rem 0;color:#55706d;font-size:.72rem}.fee-card a{display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.9rem;border-top:1px solid var(--green);color:var(--green-dark);font:800 .57rem monospace;text-decoration:none;text-transform:uppercase}.fee-card a span{transition:transform .2s}.fee-card a:hover span{transform:translate(3px,-3px)}

.transparency { padding: 0 var(--pad) 7rem; }
.transparency details { border-top: 1px solid var(--green); border-bottom: 1px solid var(--green); }
.transparency summary { display: flex; justify-content: space-between; padding: 1.6rem 0; color: var(--green-dark); cursor: pointer; font: 700 .68rem monospace; list-style: none; text-transform: uppercase; }
.transparency details > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; padding: 1rem 0 3rem; }
.transparency details p { color: #607a77; font-size: .75rem; }
.transparency details strong { display: block; margin-bottom: .5rem; color: var(--ink); }

.footer { display: grid; grid-template-columns: 1fr auto auto; gap: 5rem; align-items: end; min-height: 52vh; padding: 7rem var(--pad) 3rem; color: white; background: var(--green-dark); border-radius: 70px 70px 0 0; }
.mail { display: inline-block; margin-top: 1.2rem; font-size: clamp(2rem, 5vw, 5.5rem); font-weight: 700; letter-spacing: -.06em; text-decoration: none; }
.footer .section-label { color: var(--blue); }
.footer > p, .footer > a { color: #c7ded9; font: 600 .64rem/1.6 monospace; text-decoration: none; }
.footer-links{align-self:end;display:grid;gap:.12rem;min-width:clamp(230px,23vw,340px);color:#d8e8e5;font:700 .64rem/1.3 monospace;text-transform:uppercase}.footer-nav-label{padding:0 0 1rem;color:var(--blue);font-size:.5rem;letter-spacing:.13em}.footer-links a{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:.58rem 0;text-decoration:none;transition:padding .2s,color .2s}.footer-links a::after{content:"↗";color:var(--blue);font-size:.8rem;transition:transform .2s}.footer-links a:hover{padding-left:.35rem;color:var(--white)}.footer-links a:hover::after{transform:translate(3px,-3px)}.footer-links .back-to-top,.footer-links .home-link{margin-top:.65rem;color:var(--white)}.footer-links .back-to-top::after{content:"↑"}.footer-links .home-link::after{content:"←"}.footer-links .back-to-top:hover::after{transform:translateY(-3px)}.footer-links .home-link:hover::after{transform:translateX(-3px)}

.legal-page{background:var(--ice)}.legal-header{position:static}.legal-main{max-width:900px;margin:0 auto;padding:clamp(4rem,8vw,8rem) var(--pad)}.legal-main .overline{margin-bottom:1.2rem}.legal-main h1{font-size:clamp(3.5rem,9vw,7rem)}.legal-intro{max-width:680px;margin:1.5rem 0 4rem;color:#55706d}.legal-grid{display:grid;grid-template-columns:1fr 2fr;gap:3rem;padding:2rem 0;border-top:1px solid var(--line)}.legal-grid h2{font-size:1.35rem;letter-spacing:-.02em}.legal-grid h3{margin:1.5rem 0 .5rem;font-size:1rem;letter-spacing:-.01em}.legal-grid p,.legal-grid li{color:#4f6e6a;font-size:.84rem;line-height:1.7}.legal-grid ul{padding-left:1.1rem}.legal-note{padding:1rem;border-left:3px solid var(--gold);background:rgba(255,255,255,.7)}.legal-footer{grid-template-columns:1fr minmax(230px,340px);min-height:auto;border-radius:38px 38px 0 0}.legal-footer .mail{font-size:clamp(1.5rem,4vw,3rem)}

/* Privacy editorial layout */
.privacy-page{background:var(--white)}.privacy-main{padding:0 var(--pad) 8rem}.privacy-hero{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;min-height:64vh;padding:clamp(4rem,9vw,8rem) 0 3rem;border-bottom:1px solid var(--green)}.privacy-hero h1{margin-top:1.2rem;font-size:clamp(4rem,10vw,9rem)}.privacy-hero h1 em{color:var(--green);font-family:Georgia,serif;font-weight:400}.privacy-lead{max-width:610px;color:#4f6e6a;font-size:clamp(.92rem,1.4vw,1.12rem)}.privacy-date{justify-self:end;color:var(--green-dark);font:800 .72rem monospace}.privacy-date span{display:block;margin-bottom:.4rem;color:#6b8581;font-size:.52rem;text-transform:uppercase}.privacy-status{align-self:start;display:flex;gap:.75rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid var(--line);border-radius:20px 20px 2px 2px;background:var(--ice);font:700 .55rem/1.6 monospace;text-transform:uppercase}.privacy-status strong{display:block;color:var(--green);letter-spacing:.08em}.status-pulse{width:8px;height:8px;margin-top:.25rem;background:var(--green);border-radius:50%;animation:live-pulse 1.8s ease-out infinite}.privacy-layout{display:grid;grid-template-columns:minmax(190px,22%) 1fr;gap:clamp(2rem,6vw,7rem);max-width:1400px;margin:0 auto}.privacy-index{position:sticky;top:1.5rem;align-self:start;padding-top:3rem}.privacy-index>p{margin-bottom:1.2rem;color:#6b8581;font:700 .52rem monospace;letter-spacing:.1em;text-transform:uppercase}.privacy-index nav{display:grid;border-top:1px solid var(--line)}.privacy-index a{display:grid;grid-template-columns:2rem 1fr;gap:.3rem;padding:.85rem 0;border-bottom:1px solid var(--line);color:#4f6e6a;font:700 .6rem monospace;text-decoration:none;text-transform:uppercase}.privacy-index a span{color:var(--gold)}.privacy-index a:hover{color:var(--ink);padding-left:.35rem}.privacy-content{min-width:0}.privacy-section{scroll-margin-top:2rem;display:grid;grid-template-columns:4rem minmax(160px,.65fr) minmax(260px,1.35fr);gap:clamp(1rem,3vw,3rem);padding:4rem 0;border-bottom:1px solid var(--line)}.privacy-number{color:var(--line);font:800 2.2rem monospace;letter-spacing:-.12em}.privacy-label{margin-bottom:.7rem;color:var(--green);font:700 .52rem monospace;letter-spacing:.1em;text-transform:uppercase}.privacy-section h2{font-size:clamp(1.8rem,3vw,3rem)}.privacy-copy{display:grid;gap:1.15rem;color:#4f6e6a;font-size:.86rem;line-height:1.75}.privacy-copy address{font-style:normal}.privacy-copy strong{color:var(--ink)}.privacy-contact{justify-self:start;padding-bottom:.3rem;border-bottom:1px solid var(--green);color:var(--green-dark);font:800 .68rem monospace;text-decoration:none;text-transform:uppercase}.data-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none}.data-list li{padding:.55rem .7rem;background:var(--ice);border-left:2px solid var(--blue);font:700 .6rem monospace;text-transform:uppercase}.data-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:center;padding:1rem;background:var(--green-dark);color:var(--white);font:800 .62rem monospace;text-align:center;text-transform:uppercase}.data-flow i{color:var(--blue);font-style:normal;font-size:1.2rem;animation:next-event-arrow 1.7s ease-in-out infinite}.data-flow small{grid-column:1/-1;color:#c7ded9;font-size:.48rem;letter-spacing:.08em}.zero-display{color:var(--green)!important;font-size:clamp(4rem,9vw,8rem);line-height:.7;letter-spacing:-.12em}.rights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:0;padding:1px;background:var(--line);list-style:none}.rights-grid li{padding:.8rem;background:var(--white);font:800 .62rem monospace;text-transform:uppercase}.privacy-section:target{background:linear-gradient(90deg,rgba(237,248,251,.8),transparent 70%)}

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .75s ease, transform .75s ease; }
.reveal.visible { opacity: 1; transform: none; }
@keyframes dash { to { stroke-dashoffset: -100; } }
@keyframes front-drift{to{transform:translate(12px,-9px)}}
@keyframes rain-drift{to{transform:translate(6px,12px);opacity:.45}}
@keyframes radar-spin{to{transform:rotate(360deg)}}
@keyframes location-pulse{0%{transform:scale(.65);opacity:1}100%{transform:scale(2.4);opacity:0}}
@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(184,161,93,.55)}70%{box-shadow:0 0 0 8px rgba(184,161,93,0)}100%{box-shadow:0 0 0 0 rgba(184,161,93,0)}}
@keyframes next-event-arrow{0%,100%{transform:translate(0)}50%{transform:translate(4px,4px)}}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
@media (max-width: 900px) {
  .header { grid-template-columns: 1fr auto; }
  .header nav { display: none; }
  .hero { grid-template-columns: 1fr; padding-top: 6rem; }
  .weather-map { width: min(100%, 560px); }
  .idea { grid-template-columns: 1fr; }
  .values { grid-column: 1; }
  .section-head { grid-template-columns: 1fr; gap: 1.5rem; }
  .event { grid-template-columns: 18% 1fr auto; padding: 1.7rem 0; }
  .event > p { grid-column: 2; }
  .membership { grid-template-columns: .55fr 1fr; }
  .membership-copy { grid-column: 2; }
  .fee-options { grid-column: 2; }
  .footer{grid-template-columns:1fr 1fr}.footer>p{align-self:end}.footer-links{grid-column:2}
}
@media (max-width: 620px) {
  .header { min-height: 72px; }
  .district { display: none; }
  .hero { min-height: auto; padding-top: 5rem; padding-bottom: 5rem; }
  .hero h1 { font-size: 15vw; }
  .map-stage { min-height: 300px; }
  .idea, .events, .membership { padding-top: 5.5rem; padding-bottom: 5.5rem; }
  .values { grid-template-columns: 1fr; }
  .values article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .values h3 { margin-top: 2rem; }
  .event { grid-template-columns: 22% 1fr; gap: 1rem; }
  .event-hour { display: none; }
  .event > p { grid-column: 2; }
  .membership { grid-template-columns: 1fr; }
  .membership-ornament { width: 130px; }
  .membership-copy, .fee-options { grid-column: 1; }
  .fee-options{grid-template-columns:1fr}.fee-card+ .fee-card{border-top:1px solid var(--line);border-left:0}.fee-description{min-height:0}
  .transparency details > div { grid-template-columns: 1fr; gap: 1.5rem; }
  .footer { grid-template-columns: 1fr; gap: 3rem; border-radius: 38px 38px 0 0; }
  .mail { font-size: 9vw; }
  .next-event{grid-template-columns:5rem minmax(0,1fr);grid-template-areas:"code code" "date copy" "action action";align-items:center;padding:.9rem}.next-event time{padding-right:.65rem}.next-event time>strong{font-size:3rem}.next-event time span{display:none}.next-event-action{justify-self:stretch;display:flex;justify-content:space-between;min-height:42px;margin-top:.25rem;padding:.65rem .8rem;text-align:left}.next-event::after{right:-45px}
  .legal-grid{grid-template-columns:1fr;gap:1rem}.footer-links{grid-column:1;min-width:0;width:100%}
  .privacy-main{padding-bottom:5rem}.privacy-hero{grid-template-columns:1fr;min-height:auto;padding-top:4rem}.privacy-status{grid-row:3}.privacy-date{justify-self:start}.privacy-layout{grid-template-columns:1fr}.privacy-index{position:static;padding-top:2rem}.privacy-index nav{grid-template-columns:repeat(2,1fr)}.privacy-index a:nth-child(odd){border-right:1px solid var(--line)}.privacy-section{grid-template-columns:2.5rem 1fr;padding:3rem 0}.privacy-copy{grid-column:2}.data-list,.rights-grid{grid-template-columns:1fr}
}

.radar{transform:translate(-50%,-50%);transform-origin:50% 50%}
@keyframes radar-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Live weather semantics */
.live.loaded i{background:var(--green)}.live.error i{background:#b45c54;animation:none}.front{transform-origin:280px 280px;animation:wind-flow 5s ease-in-out infinite alternate}.rain{opacity:var(--rain-opacity,.65)}.label-venue{left:57%;top:54%;color:var(--gold)}.map-legend{position:absolute;right:5%;bottom:5%;display:grid;gap:.45rem;padding:.65rem .75rem;background:rgba(255,255,255,.78);border-left:1px solid var(--line);font:600 .44rem monospace;text-transform:uppercase}.map-legend span{display:grid;grid-template-columns:12px auto 1fr;gap:.35rem;align-items:center}.map-legend b{color:var(--green-dark)}.map-legend i{display:inline-grid;place-items:center;font-style:normal}.legend-rain{width:5px;height:8px;background:var(--blue);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.legend-wind{color:var(--green);font-size:.8rem;transform:rotate(var(--wind-angle,0deg))}.weather-map.no-rain .rain{opacity:.08}.weather-map.no-rain .legend-rain{opacity:.25}.weather-map.weather-error .radar,.weather-map.weather-error .front,.weather-map.weather-error .rain{animation-play-state:paused}.temperature{bottom:6.5rem}
@keyframes wind-flow{from{transform:rotate(var(--wind-angle,0deg)) translateX(-4px)}to{transform:rotate(var(--wind-angle,0deg)) translateX(8px)}}

/* No simulated radar: every moving layer is tied to a measured value. */
.radar{display:none}

/* Event-to-map interaction */
.label-venue{transition:left .35s ease,top .35s ease}.event-point circle:first-child{fill:var(--green);opacity:.38;transition:fill .25s,opacity .25s}.event-point circle:last-child{fill:none;stroke:var(--green);stroke-width:1;opacity:.18;transition:opacity .25s}.event-point.active circle:first-child{fill:var(--gold);opacity:1}.event-point.active circle:last-child{stroke:var(--gold);opacity:1;animation:location-pulse 2.5s ease-out infinite;transform-box:fill-box;transform-origin:center}.event.active{padding-left:1rem;background:rgba(255,255,255,.72)}.event:focus-visible{outline:2px solid var(--green);outline-offset:3px}

/* Clear wind notation instead of front-like dots */
.front-marks{display:none}.wind-arrows path{fill:none;stroke:var(--green-dark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.front>path{stroke-dasharray:3 8;opacity:.62}.legend-wind{transform:rotate(var(--wind-angle,0deg));transition:transform .4s ease}

/* Animated live forecast */
.forecast-state{position:absolute;left:7%;top:7%;display:grid;gap:.25rem;max-width:58%;padding:.65rem .75rem;background:rgba(255,255,255,.84);border-left:2px solid var(--gold);font-family:monospace;text-transform:uppercase;transition:transform .3s,opacity .3s}.forecast-state span{color:var(--green);font-size:.43rem;letter-spacing:.12em}.forecast-state strong{font-size:.53rem;line-height:1.35}.forecast-strip{display:grid;grid-template-columns:repeat(5,1fr);margin-top:10px;border:1px solid var(--line);overflow:hidden}.forecast-hour{display:grid;place-items:center;gap:.2rem;min-width:0;padding:.6rem .2rem;color:var(--ink);background:var(--white);border:0;border-right:1px solid var(--line);font:700 .48rem monospace;cursor:pointer;transition:background .2s,color .2s,transform .2s}.forecast-hour:last-child{border-right:0}.forecast-hour:hover,.forecast-hour.active{color:var(--green-dark);background:var(--ice)}.forecast-hour.active{box-shadow:inset 0 -2px var(--gold)}.forecast-hour strong{font-size:.8rem}.forecast-hour small{color:#66817d}.weather-icon{position:relative;width:17px;height:13px}.icon-clear{width:10px;height:10px;border:1.5px solid var(--gold);border-radius:50%}.icon-cloud::before{content:"";position:absolute;inset:4px 0 1px;border:1.5px solid var(--green);border-radius:8px}.icon-rain::before,.icon-storm::before{content:"";position:absolute;left:3px;top:1px;width:10px;height:7px;border:1.5px solid var(--green);border-radius:7px}.icon-rain::after,.icon-storm::after{content:"···";position:absolute;left:1px;top:6px;color:var(--blue);letter-spacing:1px}.icon-storm::after{content:"ϟ";left:6px;color:var(--gold)}
.forecast-reset{margin-left:.45rem;padding:.3rem .45rem;color:var(--white);background:var(--green-dark);border:0;font:700 .44rem monospace;text-transform:uppercase;cursor:pointer}
.wind-arrows path{animation:arrow-travel var(--wind-speed,5s) ease-in-out infinite;transform-box:fill-box;transform-origin:center}.wind-arrows path:nth-child(2){animation-delay:-.7s}.wind-arrows path:nth-child(3){animation-delay:-1.4s}.wind-arrows path:nth-child(4){animation-delay:-2.1s}.wind-arrows path:nth-child(5){animation-delay:-2.8s}.wind-arrows path:nth-child(6){animation-delay:-3.5s}.weather-map[data-weather="storm"] .map-stage{animation:storm-flash 4.5s steps(1) infinite}.weather-map[data-weather="rain"] .rain circle{animation:drop-fall 1.2s linear infinite}.weather-map[data-weather="rain"] .rain circle:nth-child(even){animation-delay:-.55s}.weather-map.event-react .forecast-state{animation:forecast-pop .55s ease}.weather-map.event-react .event-point.active circle:first-child{animation:event-arrival .7s ease}
.weather-map[data-event-phase="forecast"]{box-shadow:0 24px 70px rgba(40,89,79,.16),0 0 0 1px rgba(184,161,93,.35)}.weather-map[data-event-phase="imminent"]{animation:event-beat 1.714s ease-in-out infinite}.weather-map[data-event-phase="imminent"] .forecast-state{background:var(--green-dark);color:var(--white);border-left-color:var(--blue)}.weather-map[data-event-phase="imminent"] .forecast-state span{color:var(--blue)}
@keyframes arrow-travel{0%,100%{transform:translate(-4px,4px);opacity:.25}50%{transform:translate(8px,-5px);opacity:1}}@keyframes drop-fall{to{transform:translate(5px,18px);opacity:0}}@keyframes forecast-pop{0%{transform:translateY(-8px);opacity:0}100%{transform:none;opacity:1}}@keyframes event-arrival{0%{transform:scale(.4)}60%{transform:scale(1.8)}100%{transform:scale(1)}}@keyframes storm-flash{0%,92%,100%{filter:none}94%{filter:brightness(1.22)}}
@keyframes event-beat{0%,100%{box-shadow:0 24px 70px rgba(40,89,79,.14),0 0 0 0 rgba(184,161,93,0)}12%{box-shadow:0 24px 70px rgba(40,89,79,.2),0 0 0 7px rgba(184,161,93,.16)}22%{box-shadow:0 24px 70px rgba(40,89,79,.14),0 0 0 0 rgba(184,161,93,0)}}

/* Reduced framing: navigation is structured by spacing and motion. */
.privacy-status{border:0;border-radius:0}
.privacy-index nav{gap:.2rem;border-top:0}
.privacy-index a{padding:.55rem 0;border:0;transition:color .2s,transform .2s}
.privacy-index a:hover{padding-left:0;transform:translateX(.35rem)}
@media (max-width:620px){.privacy-index nav{column-gap:1rem}.privacy-index a:nth-child(odd){border-right:0}}

/* Accessible event detail dialog */
.event-dialog{width:min(920px,calc(100% - 2rem));max-height:min(88vh,780px);padding:0;color:var(--ink);background:transparent;border:0;overflow:auto}.event-dialog::backdrop{background:rgba(16,43,42,.72);backdrop-filter:blur(5px)}.event-dialog[open]{animation:dialog-enter .28s ease-out}.event-dialog-shell{background:var(--white);border-radius:2px 34px 2px 2px;box-shadow:0 30px 90px rgba(0,0,0,.28);overflow:hidden}.event-dialog-head{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.2rem;color:var(--blue);background:var(--green-dark);font:800 .55rem monospace;letter-spacing:.1em;text-transform:uppercase}.dialog-close{padding:.35rem 0;color:var(--white);background:transparent;border:0;font:800 .55rem monospace;text-transform:uppercase;cursor:pointer}.event-dialog-body{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:2.2rem;padding:clamp(1.5rem,5vw,4rem)}.event-dialog-date{display:flex;align-items:flex-start;gap:.55rem;padding-right:1.5rem;border-right:1px solid var(--line)}.event-dialog-date strong{color:var(--green-dark);font-size:clamp(4rem,8vw,7rem);line-height:.7;letter-spacing:-.12em}.event-dialog-date span{color:var(--green);font:800 .58rem/1.3 monospace;text-transform:uppercase}.event-dialog-title{align-self:center}.event-dialog-title h2{margin-top:.8rem;font-size:clamp(2.6rem,6vw,5.5rem)}.event-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);margin:1rem 0 0;border-top:1px solid var(--green);border-bottom:1px solid var(--line)}.event-facts div{padding:1rem;border-right:1px solid var(--line)}.event-facts div:last-child{border-right:0}.event-facts dt{margin-bottom:.55rem;color:var(--green);font:800 .5rem monospace;letter-spacing:.08em;text-transform:uppercase}.event-facts dd{margin:0;font-size:.78rem;font-weight:700;line-height:1.45}.event-dialog-description{grid-column:2;max-width:620px;color:#4f6e6a;font-size:.9rem}.event-dialog-actions{grid-column:2;display:flex;gap:1.5rem;align-items:center;margin-top:.5rem}.calendar-button{display:inline-flex;gap:.75rem;align-items:center;padding:.85rem 1rem;color:var(--white);background:var(--green-dark);border:0;font:800 .6rem monospace;text-transform:uppercase;cursor:pointer}.calendar-button span{color:var(--blue);font-size:1rem}.event-dialog-actions>a{color:var(--green-dark);font:800 .58rem monospace;text-decoration:none;text-transform:uppercase}
@keyframes dialog-enter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@media (max-width:620px){.event-dialog{width:calc(100% - 1rem);max-height:94vh}.event-dialog-body{grid-template-columns:1fr;gap:1.5rem;padding:1.25rem}.event-dialog-date{padding:0 0 1.1rem;border-right:0;border-bottom:1px solid var(--line)}.event-dialog-title,.event-dialog-description,.event-dialog-actions{grid-column:1}.event-dialog-date strong{font-size:4rem}.event-facts{grid-column:1;grid-template-columns:1fr 1fr;margin:0}.event-facts div:nth-child(2){border-right:0}.event-facts div:nth-child(-n+2){border-bottom:1px solid var(--line)}.event-dialog-actions{align-items:stretch;flex-direction:column}.calendar-button{justify-content:center;width:100%}.event-dialog-actions>a{text-align:center}}

/* Legible micro typography */
.overline,.section-label,.route{font-size:.72rem}
.header nav a{font-size:.78rem}.district{font-size:.72rem}
.next-event-code{font-size:.64rem}.next-event-code b{font-size:.6rem}.next-event time span{font-size:.62rem}.next-event-copy small{font-size:.62rem}.next-event-action{font-size:.62rem}
.map-head,.map-foot{font-size:.64rem}.map-label{font-size:.58rem}.temperature small{font-size:.58rem}.map-legend{font-size:.52rem}.forecast-state span{font-size:.54rem}.forecast-state strong{font-size:.62rem}.forecast-hour{font-size:.58rem}
.countdown{font-size:.7rem}.event time span,.event-hour{font-size:.65rem}.event-hour b{font-size:.58rem}.event>p,.values p{font-size:.84rem}
.fee-type,.fee-card>small{font-size:.62rem}.fee-description{font-size:.8rem}.fee-card a{font-size:.64rem}
.transparency summary{font-size:.74rem}.transparency details p{font-size:.82rem}
.footer>p,.footer>a,.footer-links{font-size:.72rem}.footer-nav-label{font-size:.6rem}
.privacy-status{font-size:.64rem}.privacy-index>p{font-size:.62rem}.privacy-index a{font-size:.68rem}.privacy-label{font-size:.62rem}.data-list li,.rights-grid li{font-size:.68rem}.data-flow{font-size:.68rem}.data-flow small{font-size:.58rem}
.event-dialog-head,.dialog-close{font-size:.64rem}.event-dialog-date span{font-size:.66rem}.event-facts dt{font-size:.6rem}.event-facts dd{font-size:.84rem}.calendar-button,.event-dialog-actions>a{font-size:.66rem}

/* Borderless links and navigation */
.header nav a::after{display:none}
.footer-links a,.footer-links .back-to-top,.footer-links .home-link{border:0}
.mail,a[href^="mailto:"],.privacy-contact,.text-link{border:0;text-decoration:none}
.fee-options{gap:1.25rem;border:0;border-radius:0;overflow:visible}
.fee-card,.fee-card+.fee-card{border:0;border-radius:22px 22px 2px 2px}
.fee-card a{padding-top:.4rem;border:0}
@media (max-width:620px){.fee-card+.fee-card{border:0}}

/* Compact mobile composition */
@media (max-width:620px) {
  :root { --pad: clamp(1rem, 5vw, 1.35rem); }

  .header {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding-top: .8rem;
    padding-bottom: .65rem;
  }
  .brand { gap: .6rem; font-size: .66rem; letter-spacing: .11em; }
  .brand-logo { width: 38px; height: 38px; }
  .header nav {
    display: flex;
    grid-row: 2;
    justify-content: space-between;
    gap: .65rem;
    min-width: 0;
    margin-top: .65rem;
    padding-top: .55rem;
    border-top: 1px solid var(--line);
  }
  .header nav a { padding: .2rem 0; font-size: .62rem; white-space: nowrap; }

  .hero { gap: 3.5rem; padding-top: 3.25rem; padding-bottom: 4.5rem; }
  .hero > *, .idea > *, .section-head > *, .membership > *, .footer > * { min-width: 0; }
  .hero-copy { display: flex; flex-direction: column; }
  .hero-copy > .overline { order: 1; }
  .hero-copy > h1 { order: 2; }
  .hero-copy > .intro { order: 3; }
  .hero-copy > .text-link { order: 4; align-self: flex-start; }
  .hero-copy > .next-event { order: 5; }
  .hero h1 { font-size: clamp(2.65rem, 13.5vw, 3.55rem); line-height: .94; }
  .hero-number { display: none; }
  .intro { margin: 1.6rem 0; font-size: .9rem; }

  .next-event {
    width: 100%;
    max-width: 100%;
    grid-template-columns: 4.4rem minmax(0, 1fr);
    gap: .85rem;
    margin-top: 2rem;
    padding: .85rem;
    box-shadow: 6px 6px 0 var(--ice);
  }
  .next-event time { min-width: 0; padding-right: .65rem; }
  .next-event time > strong { font-size: 2.75rem; }
  .next-event-copy { min-width: 0; gap: .38rem; }
  .next-event-copy small {
    max-width: 100%;
    font-size: .54rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
  .next-event-copy strong { font-size: 1.08rem; line-height: 1.05; overflow-wrap: anywhere; }
  .next-event-action { min-width: 0; }

  .weather-map { width: 100%; padding: 7px; border-radius: 25px 25px 3px 3px; }
  .map-head, .map-foot { gap: .6rem; padding: .9rem .75rem; font-size: .53rem; letter-spacing: .06em; }
  .map-head > span, .map-foot > span { min-width: 0; }
  .map-head > span:last-child, .map-foot > span:last-child { text-align: right; }
  .map-stage { min-height: 0; }
  .forecast-state { left: 5%; top: 5%; max-width: 68%; }
  .temperature { left: 5%; bottom: 5.6rem; font-size: 2.1rem; }
  .map-legend { right: 3%; bottom: 3%; padding: .5rem; font-size: .45rem; }
  .forecast-hour { padding: .5rem .05rem; font-size: .5rem; }

  .idea, .events, .membership { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .idea-copy h2, .section-head h2, .membership h2 { font-size: clamp(2.4rem, 12vw, 3.2rem); }
  .values { margin-top: 3.5rem; }
  .section-head { margin-bottom: 3rem; }

  .event { grid-template-columns: 4.2rem minmax(0, 1fr); gap: .8rem; min-width: 0; padding: 1.4rem 0; }
  .event.active { padding-left: .55rem; }
  .event time { gap: .4rem; }
  .event time strong { font-size: 2.25rem; }
  .event h3 { font-size: clamp(1.45rem, 8vw, 2rem); overflow-wrap: anywhere; }
  .event > p { min-width: 0; font-size: .8rem; }
  .route { font-size: .59rem; line-height: 1.45; overflow-wrap: anywhere; }

  .membership { gap: 2.25rem; }
  .fee-options { gap: 1rem; }
  .fee-card { padding: 1.25rem; }
  .fee-card > p:not(.fee-description) { margin-top: 2rem; font-size: 4.5rem; }

  .footer { min-height: 0; padding-top: 4.5rem; padding-bottom: 2rem; }
  .mail { max-width: 100%; font-size: clamp(1.65rem, 8.2vw, 2.2rem); overflow-wrap: anywhere; }

  .legal-main { padding-top: 3.25rem; }
  .legal-main h1, .privacy-hero h1 { font-size: clamp(2.8rem, 15vw, 4.2rem); overflow-wrap: anywhere; }
  .privacy-hero { padding-top: 3.25rem; }
  .privacy-index nav { grid-template-columns: 1fr; }
  .privacy-section { grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem; }
  .privacy-copy { min-width: 0; }
  .data-flow { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); padding: .75rem .5rem; font-size: .58rem; }
}

@media (max-width:350px) {
  .brand { font-size: .61rem; }
  .header nav { gap: .4rem; }
  .header nav a { font-size: .56rem; }
  .hero h1 { font-size: 12vw; }
  .next-event { grid-template-columns: 3.8rem minmax(0, 1fr); }
  .next-event time > strong { font-size: 2.35rem; }
  .next-event-copy strong { font-size: .98rem; }
}
