/* --- Lokale Schriften (Latin-Subset, deckt Umlaute, EUR und Gedankenstrich ab) --- */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/anton-400.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/barlow-400.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/barlow-500.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/barlow-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/barlow-condensed-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/barlow-condensed-700.woff2') format('woff2')}

:root{
    --navy-900:#06182f; --navy-800:#0a2342; --navy-700:#0e2e54;
    --blue-600:#1c4e8a; --blue-500:#2a63a8;
    --sky-300:#9ecbf0; --sky-200:#c5e1f5; --white:#f3f8fd; --star:#6aa6dd;
    --display:'Anton','Arial Narrow',Impact,sans-serif;
    --cond:'Barlow Condensed','Arial Narrow',sans-serif;
    --body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
    --maxw:780px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--body);color:var(--white);background:var(--navy-900);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}

  .stage{position:relative;isolation:isolate;background:radial-gradient(120% 90% at 60% 20%, #2a63a8 0%, #1a467f 35%, #0e2e54 62%, var(--navy-900) 100%)}
  .stage::before{content:"";position:absolute;inset:-20% -20% auto -20%;height:150vh;z-index:-1;
    background:repeating-conic-gradient(from 0deg at 60% 18%, rgba(255,255,255,.05) 0deg 2deg, rgba(255,255,255,0) 2deg 8deg);
    -webkit-mask-image:radial-gradient(80% 70% at 60% 18%, #000 0%, transparent 70%);
            mask-image:radial-gradient(80% 70% at 60% 18%, #000 0%, transparent 70%);
    animation:spin 240s linear infinite;transform-origin:60% 18%}
  @keyframes spin{to{transform:rotate(360deg)}}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:clamp(28px,5vw,56px) clamp(18px,5vw,40px)}

  .crest{display:block;margin:0 auto clamp(18px,4vw,28px);width:clamp(108px,24vw,168px);height:auto;filter:drop-shadow(0 8px 22px rgba(0,0,0,.45))}

  .title{font-family:var(--display);text-transform:uppercase;line-height:.93;
    font-size:clamp(2.9rem,13.5vw,6.8rem);letter-spacing:.005em;text-align:center;text-shadow:0 4px 16px rgba(0,0,0,.35)}
  .title .line{display:block}
  .banner-wrap{text-align:center}
  .banner{display:inline-block;margin-top:clamp(12px,2.5vw,20px);padding:.16em .8em .24em;
    background:var(--navy-800);border-radius:8px;transform:rotate(-1.2deg);box-shadow:0 8px 22px rgba(0,0,0,.4)}
  .banner span{font-family:var(--display);text-transform:uppercase;font-size:clamp(2rem,8.5vw,4.2rem);letter-spacing:.04em;line-height:1}

  .when{text-align:center;margin:clamp(30px,6vw,48px) 0 6px}
  .star{color:var(--star);font-size:1.1rem;position:relative;display:inline-block;margin-bottom:10px}
  .star::before,.star::after{content:"";position:absolute;top:50%;width:clamp(40px,16vw,110px);height:2px;background:var(--star)}
  .star::before{right:140%}.star::after{left:140%}
  .date{font-family:var(--display);font-size:clamp(2.6rem,11vw,4.8rem);letter-spacing:.02em;line-height:1}
  .place{font-family:var(--display);text-transform:uppercase;font-size:clamp(1.6rem,6.5vw,2.7rem);letter-spacing:.01em;margin-top:6px}

  .countdown{display:flex;justify-content:center;gap:clamp(8px,3vw,18px);margin:26px 0 4px;flex-wrap:wrap}
  .cd-box{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px 4px 7px;min-width:70px;backdrop-filter:blur(2px)}
  .cd-num{font-family:var(--display);font-size:clamp(1.7rem,7vw,2.5rem);line-height:1}
  .cd-lbl{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;opacity:.75;margin-top:4px}
  .countdown.is-over{font-family:var(--cond);font-size:1.4rem;letter-spacing:.04em}

  .actions{text-align:center;margin-top:24px}
  .cal-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.95rem;color:var(--navy-900);background:var(--sky-300);border:none;border-radius:999px;padding:13px 26px;cursor:pointer;text-decoration:none;transition:transform .15s ease, background .15s ease}
  .cal-btn:hover{background:var(--sky-200);transform:translateY(-2px)}
  .cal-btn:focus-visible{outline:3px solid var(--white);outline-offset:3px}
  .cal-btn svg{width:18px;height:18px;fill:var(--navy-900)}

  .program{background:var(--navy-800);border-radius:20px 20px 0 0;padding:clamp(30px,6vw,52px) 0 clamp(34px,7vw,56px);margin-top:clamp(36px,7vw,60px);position:relative;z-index:1}
  .program .wrap{padding-top:0;padding-bottom:0}

  .section-head{font-family:var(--display);text-transform:uppercase;text-align:center;
    font-size:clamp(2rem,8vw,3.2rem);letter-spacing:.04em;line-height:1;margin:0 0 clamp(22px,4vw,34px)}
  .section-head span{position:relative;padding:0 .6em}
  .section-head span::before,.section-head span::after{content:"";position:absolute;top:50%;width:clamp(22px,9vw,70px);height:3px;background:var(--star);border-radius:2px}
  .section-head span::before{right:100%}.section-head span::after{left:100%}

  .row{display:grid;grid-template-columns:minmax(104px,auto) 1fr;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.09)}
  .row:last-child{border-bottom:none}
  .row.pre{opacity:0;transform:translateY(14px)}
  .row.reveal{opacity:1;transform:none;transition:opacity .5s ease, transform .5s ease}
  .badge{font-family:var(--cond);font-weight:700;font-size:clamp(1rem,3.6vw,1.2rem);text-transform:uppercase;letter-spacing:.01em;background:var(--navy-900);color:var(--white);padding:8px 24px 8px 15px;clip-path:polygon(0 0,100% 0,calc(100% - 15px) 100%,0 100%);text-align:center;white-space:nowrap}
  .badge.special{background:transparent;color:var(--sky-300);font-size:1.5rem;padding:0 6px 0 0;clip-path:none;text-align:right}
  .desc{font-family:var(--cond);font-weight:600;font-size:clamp(1.08rem,4.2vw,1.4rem);letter-spacing:.005em}

  .catering{text-align:center;max-width:560px;margin:clamp(32px,6vw,46px) auto 0;font-size:clamp(1.02rem,3.6vw,1.15rem);color:var(--sky-200)}

  .icons{display:flex;justify-content:center;align-items:flex-end;gap:clamp(24px,9vw,68px);margin:clamp(30px,6vw,44px) 0 clamp(6px,3vw,16px)}
  .icons img{height:clamp(46px,11vw,66px);width:auto;display:block}

  .entry{text-align:center;padding-bottom:clamp(32px,7vw,54px)}
  .entry .pill{display:inline-block;background:var(--white);color:var(--navy-800);font-family:var(--display);text-transform:uppercase;font-size:clamp(1.1rem,4.6vw,1.6rem);letter-spacing:.03em;padding:.5em 1.4em;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.4)}

  .colophon{text-align:center;font-family:var(--cond);letter-spacing:.06em;font-size:.8rem;color:rgba(255,255,255,.38);padding:26px 16px 30px;background:var(--navy-900)}

  :focus-visible{outline:3px solid var(--sky-300);outline-offset:2px}
  @media (prefers-reduced-motion:reduce){.stage::before{animation:none}.row.pre{opacity:1;transform:none}html{scroll-behavior:auto}}
  @media (max-width:430px){
    .row{grid-template-columns:auto 1fr;gap:11px}
    .badge{font-size:.92rem;padding:7px 15px 7px 10px;clip-path:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%)}
    .desc{font-size:1.06rem}
  }
