:root{
  --night:#070B18;
  --deep:#0F1630;
  --gold:#E9B94F;
  --ember:#F0703A;
  --ivory:#F4ECDD;
  --ivory-70:rgba(244,236,221,.72);
  --ivory-45:rgba(244,236,221,.45);
  --smoke:#8C93B8;
  --line:rgba(244,236,221,.14);
  --display:"Fraunces",Georgia,serif;
  --sans:"Instrument Sans",system-ui,sans-serif;
  --measure:62ch;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--night);
  color:var(--ivory);
  font-family:var(--sans);
  font-size:1.125rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--night)}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold);outline-offset:4px;
}
img{max-width:100%;display:block}

/* ---------- header ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:20;
  display:flex;justify-content:space-between;align-items:center;
  padding:1.4rem clamp(1.25rem,4vw,3rem);
  mix-blend-mode:screen;
}
.wordmark{
  font-family:var(--display);font-weight:500;font-size:1.05rem;letter-spacing:.01em;
  text-decoration:none;display:flex;align-items:center;gap:.6rem;
}
.wordmark i{
  width:9px;height:9px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 14px 2px rgba(233,185,79,.55);
}
.header-link{
  font-size:.9rem;text-decoration:none;color:var(--ivory-70);
  border-bottom:1px solid transparent;transition:color .25s,border-color .25s;
}
.header-link:hover{color:var(--ivory);border-color:var(--gold)}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;
  display:grid;place-items:center;text-align:center;
  padding:8rem 1.25rem 6rem;overflow:hidden;
  isolation:isolate;
}
#sky{
  position:absolute;inset:0;width:100%;height:100%;z-index:-1;
  background:
    radial-gradient(120% 80% at 50% 110%,#1A1330 0%,rgba(26,19,48,0) 60%),
    linear-gradient(180deg,#05070F 0%,var(--night) 55%,#0B1024 100%);
}
.hero-inner{max-width:44rem}
.hero h1{
  font-family:var(--display);
  font-variation-settings:"opsz" 144,"SOFT" 50;
  font-weight:300;
  font-size:clamp(5rem,17vw,13.5rem);
  line-height:.9;letter-spacing:-.03em;
  color:var(--ivory);
  opacity:0;transform:translateY(12px);
  transition:opacity 1.6s ease,transform 1.6s ease;
}
.hero h1 .dot{color:var(--gold)}
.is-lit .hero h1{opacity:1;transform:none}
.hero p{
  margin:2.4rem auto 0;max-width:36rem;
  font-family:var(--display);font-weight:300;font-style:italic;
  font-variation-settings:"opsz" 24;
  font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.55;color:var(--ivory-70);
  opacity:0;transition:opacity 1.6s ease .6s;
}
.is-lit .hero p{opacity:1}
.hero-meta{
  position:absolute;bottom:2rem;left:0;right:0;
  display:flex;justify-content:space-between;
  padding:0 clamp(1.25rem,4vw,3rem);
  font-size:.85rem;color:var(--ivory-45);
  opacity:0;transition:opacity 1.6s ease 1.2s;
}
.is-lit .hero-meta{opacity:1}
.scroll-hint{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  width:1px;height:48px;background:linear-gradient(var(--gold),transparent);
  opacity:0;transition:opacity 1.6s ease 1.6s;
}
.is-lit .scroll-hint{opacity:.8}

/* ---------- story ---------- */
.story{padding:7rem 1.25rem 5rem}
.story-col{max-width:var(--measure);margin:0 auto}
.story p{color:var(--ivory-70);margin-bottom:1.6em}
.story-col > p:first-child::first-letter{
  font-family:var(--display);font-weight:400;font-size:3.6em;line-height:.78;
  float:left;margin:.08em .12em 0 0;color:var(--gold);
}
.story p.turn{color:var(--ivory)}
.story .sign{
  margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--line);
  color:var(--ivory);
}
.story .sign p{margin-bottom:.2em}
.story .sign .quiet{color:var(--ivory-45);font-size:.95rem}
.closing-lines{
  font-family:var(--display);font-weight:300;
  font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.3;
  margin:3rem 0;color:var(--ivory);
}

/* ---------- two loodsen ---------- */
.loodsen{border-top:1px solid var(--line)}
.loodsen h2{
  font-family:var(--display);font-weight:300;font-style:italic;
  font-size:clamp(1.8rem,3.5vw,2.6rem);text-align:center;
  padding:5rem 1.25rem 1rem;color:var(--ivory);
}
.loods{
  display:grid;grid-template-columns:1fr 1fr;
  max-width:70rem;margin:0 auto;padding:4rem clamp(1.25rem,4vw,3rem);
  gap:3rem;align-items:start;
}
.loods+.loods{border-top:1px solid var(--line)}
.loods .year{
  font-family:var(--display);font-weight:300;
  font-variation-settings:"opsz" 144;
  font-size:clamp(4rem,10vw,8.5rem);line-height:.85;letter-spacing:-.03em;
  color:var(--gold);
}
.loods .year small{
  display:block;font-family:var(--sans);font-size:1.05rem;letter-spacing:0;
  color:var(--ivory);margin-top:1.2rem;font-weight:500;
}
.loods .year small em{color:var(--ivory-45);font-style:normal;font-weight:400}
.loods p{color:var(--ivory-70);max-width:38rem}
.loods:nth-child(odd) .year{text-align:right}
.loods:nth-child(odd){direction:rtl}
.loods:nth-child(odd)>*{direction:ltr}

/* ---------- the date: het doek valt ---------- */
.date-screen{
  position:relative;text-align:center;
  padding:10rem 1.25rem;background:#03050C;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;isolation:isolate;min-height:70svh;display:grid;place-items:center;
}
.curtain{
  position:absolute;inset:0;z-index:-1;
  transform:translateY(-102%);
  background:
    repeating-linear-gradient(90deg,
      rgba(0,0,0,.45) 0px,rgba(0,0,0,0) 34px,rgba(255,255,255,.06) 60px,rgba(0,0,0,0) 86px,rgba(0,0,0,.45) 120px),
    linear-gradient(180deg,#3A0910 0%,#5A1119 40%,#4A0D14 100%);
  box-shadow:0 30px 60px -10px rgba(0,0,0,.8);
}
.curtain::before{ /* valance bovenaan */
  content:"";position:absolute;left:0;right:0;top:0;height:9%;
  background:
    repeating-linear-gradient(90deg,rgba(0,0,0,.5) 0 18px,rgba(0,0,0,0) 18px 60px),
    linear-gradient(180deg,#2C060B,#4A0D14);
  border-bottom:3px solid var(--gold);
  box-shadow:0 8px 24px rgba(0,0,0,.6);
}
.curtain::after{ /* gouden franje onderaan */
  content:"";position:absolute;left:0;right:0;bottom:0;height:22px;
  background:repeating-linear-gradient(90deg,var(--gold) 0 2px,transparent 2px 7px);
  border-top:3px solid var(--gold);opacity:.9;
}
.date-screen.in .curtain{animation:doek 2.6s cubic-bezier(.55,0,.6,1) forwards}
@keyframes doek{
  0%{transform:translateY(-102%)}
  82%{transform:translateY(0)}
  90%{transform:translateY(-1.2%)}
  100%{transform:translateY(0)}
}
.date-screen .content{opacity:0;transform:translateY(10px);transition:opacity 1.4s ease 2.4s,transform 1.4s ease 2.4s}
.date-screen.in .content{opacity:1;transform:none}
.date-screen .lead{color:rgba(244,236,221,.55);font-size:.95rem}
.date-screen .date{
  font-family:var(--display);font-weight:300;
  font-variation-settings:"opsz" 144;
  font-size:clamp(2.6rem,7vw,5.5rem);letter-spacing:-.02em;line-height:1.05;
  margin:1rem 0 1.5rem;color:var(--ivory);
  text-shadow:0 2px 30px rgba(0,0,0,.6);
}
.date-screen .sub{color:rgba(244,236,221,.78);max-width:30rem;margin:0 auto}

/* ---------- law ---------- */
.law{padding:5rem 1.25rem}
.law-col{max-width:var(--measure);margin:0 auto}
.law h3{
  font-family:var(--display);font-weight:400;font-size:1.6rem;margin-bottom:1.2rem;
}
.law p{color:var(--ivory-70);margin-bottom:1.4em}
.law ul{list-style:none;margin:0 0 1.8em;}
.law li{
  position:relative;padding:.9rem 0 .9rem 1.6rem;color:var(--ivory-70);
  border-top:1px solid var(--line);
}
.law li:last-child{border-bottom:1px solid var(--line)}
.law li::before{
  content:"";position:absolute;left:0;top:1.45rem;width:7px;height:7px;border-radius:50%;
  background:var(--gold);
}
.law a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(233,185,79,.4)}
.law a:hover{border-color:var(--gold)}
.keep{
  font-family:var(--display);font-style:italic;font-weight:300;
  font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--ivory);
  margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--line);
}

/* ---------- last light ---------- */
.last-light{
  position:relative;min-height:70svh;display:grid;place-items:center;
  overflow:hidden;isolation:isolate;text-align:center;padding:5rem 1.25rem;
}
#sky2{position:absolute;inset:0;width:100%;height:100%;z-index:-1;background:linear-gradient(#0B1024,#03050C)}
.last-light p{
  font-family:var(--display);font-weight:300;
  font-size:clamp(1.8rem,4vw,3rem);line-height:1.25;max-width:22ch;
  color:var(--ivory);
}

/* ---------- guestbook ---------- */
.guestbook{padding:6rem 1.25rem 7rem;border-top:1px solid var(--line);background:var(--deep)}
.gb-col{max-width:var(--measure);margin:0 auto}
.guestbook h2{
  font-family:var(--display);font-weight:300;
  font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:-.02em;line-height:1.05;margin-bottom:1.4rem;
}
.guestbook .intro{color:var(--ivory-70);margin-bottom:.8rem}
.guestbook .note{color:var(--ivory-45);font-size:.9rem;margin-bottom:2.6rem}
.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.6rem}
.field label{font-size:.95rem;color:var(--ivory)}
.field input,.field textarea{
  font:inherit;color:var(--ivory);background:transparent;
  border:0;border-bottom:1px solid var(--line);padding:.7rem 0;border-radius:0;
  transition:border-color .25s;
}
.field input:focus,.field textarea:focus{border-color:var(--gold);outline:none}
.field textarea{min-height:8rem;resize:vertical}
.honey{position:absolute;left:-9999px}
.captcha{
  margin:2rem 0;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.captcha p{font-size:.95rem;color:var(--ivory-70);margin-bottom:1rem}
.captcha .row{display:flex;gap:1.5rem;align-items:flex-end;flex-wrap:wrap}
.captcha .img{
  width:160px;height:56px;border:1px solid var(--line);display:grid;place-items:center;
  color:var(--ivory-45);font-size:.8rem;letter-spacing:.2em;
}
.captcha button{background:none;border:0;color:var(--ivory-45);font:inherit;font-size:.9rem;cursor:pointer;text-decoration:underline}
.submit{
  display:inline-flex;align-items:center;gap:.8rem;
  font:inherit;font-weight:500;color:var(--night);background:var(--gold);
  border:0;padding:1rem 1.8rem;cursor:pointer;
  transition:transform .2s,box-shadow .3s;
}
.submit:hover{transform:translateY(-1px);box-shadow:0 10px 30px -10px rgba(233,185,79,.6)}
.submit:active{transform:none}
.fine{color:var(--ivory-45);font-size:.9rem;margin-top:1rem}
.reactions{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line);color:var(--ivory-45)}

/* ---------- footer ---------- */
.site-footer{
  padding:3rem clamp(1.25rem,4vw,3rem);display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--ivory-45);border-top:1px solid var(--line);
}

/* ---------- reveal (only for the two large moments) ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity 1.2s ease,transform 1.2s ease}
.reveal.in{opacity:1;transform:none}

@media (max-width:760px){
  .loods{grid-template-columns:1fr;gap:1.6rem;padding:3rem 1.25rem}
  .loods:nth-child(odd){direction:ltr}
  .loods:nth-child(odd) .year{text-align:left}
  .hero-meta{flex-direction:column;gap:.3rem;text-align:center;bottom:1.4rem}
  .scroll-hint{display:none}
  body{font-size:1.05rem}
}
@media (prefers-reduced-motion:reduce){
  .hero h1,.hero p,.hero-meta,.scroll-hint,.reveal,.date-screen .content{transition:none;opacity:1;transform:none}
  .curtain{transform:none!important;animation:none!important}
  .submit{transition:none}
}

/* Eigen beeldmerk en productieformulier. */
.site-header{mix-blend-mode:normal;pointer-events:none}.site-header a{pointer-events:auto}
.wordmark{width:190px;padding:8px 12px;background:var(--ivory);border-radius:3px}.wordmark img{width:100%;height:auto}
.header-link{background:rgba(7,11,24,.85);padding:8px 12px;border-radius:3px;color:var(--ivory)}
html{scroll-padding-top:140px}.skip-link{opacity:0;position:fixed;top:10px;left:20px;z-index:30;background:var(--gold);color:var(--night);padding:10px;transform:translateY(-180%)}.skip-link:focus{opacity:1;transform:none}
body:not(.js) .hero h1,body:not(.js) .hero p,body:not(.js) .hero-meta,body:not(.js) .reveal,body:not(.js) .date-screen .content{opacity:1;transform:none}
body:not(.js) .curtain{transform:none}
.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.field input,.field textarea{width:100%;min-width:0}.field input::placeholder,.field textarea::placeholder{color:var(--ivory-45)}
.captcha-box{border-left:0;border-right:0;min-width:0}.captcha-box legend,.captcha-box label{font-size:.95rem;color:var(--ivory)}
.captcha-box img{width:260px;max-width:100%;height:auto;margin:0 0 1rem}.captcha-box label{display:block;margin-bottom:.5rem}
.captcha-box input{font:inherit;width:100%;max-width:260px;padding:.65rem;background:transparent;border:1px solid var(--line);color:var(--ivory);letter-spacing:.15em;display:block;margin-bottom:1rem}
.captcha-box .captcha-refresh{color:var(--ivory-70);padding:.5rem 0}.moderation-note{margin:0 0 1.2rem}
.status{margin-top:1rem;color:var(--gold);font-size:1rem}.field-error{color:#ffb4a1;font-size:.95rem}
.reaction,.reactie{padding:1.5rem 0;border-bottom:1px solid var(--line)}.reactie-top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.reactie-naam{color:var(--ivory);font-weight:600;overflow-wrap:anywhere;min-width:0}.reactie-datum{font-size:.85rem;color:var(--ivory-70)}.reactie-tekst{color:var(--ivory-70);overflow-wrap:anywhere}.leeg{font-size:1rem}
.pagination{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.9rem;margin-top:2rem}
@media(max-width:760px){.wordmark{width:145px;padding:6px 8px}.header-link{font-size:.8rem}.site-header{gap:12px;padding:1rem 1.25rem}.hero{padding-top:9rem;padding-bottom:9rem}.hero-meta{font-size:.75rem}.guestbook .intro{max-width:none}}
@media(prefers-reduced-motion:reduce){.date-screen.in .curtain{animation:none}.hero h1,.hero p,.hero-meta,.date-screen .content,.reveal{opacity:1;transform:none}}

/* Rustiger gastenboek: uitnodiging, schrijven en lezen hebben elk een eigen plek. */
:root{--ivory-45:rgba(244,236,221,.64)}
.site-header{position:absolute}
.guestbook{padding:clamp(64px,8vw,112px) clamp(20px,4vw,48px);background:linear-gradient(155deg,#111a34,#0c1329)}
.gb-col{max-width:1120px}.gb-introduction{max-width:880px;margin-bottom:48px}
.gb-eyebrow{font-size:12px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.guestbook h2{font-size:clamp(42px,5vw,68px);margin-bottom:24px}
.guestbook .intro{font-size:clamp(17px,1.6vw,20px);line-height:1.8;max-width:none;color:rgba(244,236,221,.84)}
.guestbook .note{margin:20px 0 0;font-size:13px;line-height:1.6}
.gb-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:48px;align-items:start}
.gb-write,.gb-read{min-width:0}
#form{padding:32px;background:#17213a;border:1px solid rgba(244,236,221,.16);border-radius:8px;box-shadow:0 20px 55px -35px #0009}
.form-title{font-family:var(--display);font-weight:400;font-size:26px;line-height:1.25;margin-bottom:28px}
.field{margin-bottom:24px;gap:9px}.field label{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:500}
.field-hint{font-size:12px;font-weight:400;color:var(--ivory-45);align-self:center}
.field input,.field textarea{background:#0e172d;border:1px solid #657087;border-radius:4px;padding:13px 15px;font-size:16px;line-height:1.65;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:180px}.field input:focus,.field textarea:focus,.captcha-box input:focus{outline:2px solid var(--gold);outline-offset:3px;border-color:var(--gold)}
.field input::placeholder,.field textarea::placeholder{color:#a2a9b9}
.captcha-box{padding:20px 0 0;margin:30px 0 26px;border:0;border-top:1px solid var(--line)}
.captcha-box legend{padding-right:12px;font-size:13px;font-weight:500;max-width:100%}
.captcha-box p{font-size:13px;line-height:1.6;margin:0 0 18px}
.captcha-layout{display:grid;grid-template-columns:minmax(0,260px) minmax(100px,1fr);gap:20px;align-items:start}
.captcha-picture,.captcha-answer{min-width:0}.captcha-box img{margin:0 0 6px;border-radius:4px;width:100%}
.captcha-box .captcha-refresh{font-size:12px;min-height:44px;line-height:1.5;padding:10px 0;text-underline-offset:4px}
.captcha-box label{font-size:12px;font-weight:500;margin:0 0 8px}.captcha-box input{font-size:18px;border-color:#657087;background:#0e172d;border-radius:4px;padding:12px 10px;letter-spacing:.09em;max-width:none;margin:0}
#knop{width:100%;display:flex;justify-content:space-between;min-height:54px;border-radius:4px;font-size:16px;padding:14px 20px}
#knop span{font-size:22px;line-height:1}.moderation-note{font-size:12px;line-height:1.7;text-align:center;margin:14px 0 0;color:var(--ivory-70)}
.status{padding:14px 16px;border:1px solid #e9b94f66;border-radius:4px;background:#e9b94f0d;line-height:1.6;font-size:14px;margin:0 0 24px}
.status[role=alert]{border-color:#ffb4a177;color:#ffb4a1}.field-error{font-size:13px}
.gb-read{padding-top:10px}.reactions-title{display:flex;gap:12px;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:20px}
.reactions-title h3{font-family:var(--display);font-size:28px;line-height:1.2;font-weight:400}.reactions-title>span{font-size:12px;white-space:nowrap;color:var(--ivory-45)}
.reactions{border:0;padding:0;margin:0}.reactie{padding:24px 0}.reactie-tekst{font-size:16px;line-height:1.8;color:rgba(244,236,221,.84)}.reactie-naam{font-size:14px}.reactie-datum{font-size:12px}.reactie-top{gap:6px 12px}
.leeg{padding:28px 0;font-size:17px;line-height:1.6;color:var(--ivory)}.empty-mark{font-family:var(--display);display:block;font-size:72px;line-height:.8;color:var(--gold);margin:8px 0 12px}.empty-note{font-size:14px;color:var(--ivory-45);margin-top:8px}
@media(max-width:900px){.gb-layout{grid-template-columns:1fr;gap:40px}.gb-col{max-width:720px}.gb-introduction{margin-bottom:32px}.gb-read{padding:0}}
@media(max-width:480px){#form{padding:22px 18px}.captcha-layout{grid-template-columns:1fr;gap:14px}.captcha-picture{max-width:260px}.captcha-answer{max-width:260px}.captcha-box legend{font-size:12px}.field label{font-size:13px}.field-hint{font-size:11px}.guestbook h2{font-size:42px}.gb-eyebrow{font-size:10px;letter-spacing:.1em}.reactions-title h3{font-size:26px}}

.finale-words{display:grid;place-items:center;width:100%}
.finale-words p{grid-area:1/1;margin:0;transition:opacity 1.8s ease,transform 2.8s ease}
.last-light .finale-bedankt{font-size:clamp(4.4rem,12vw,10rem);letter-spacing:-.04em;line-height:1.15;opacity:0;transform:translateY(18px) scale(.95);text-shadow:0 0 70px rgba(233,185,79,.18)}
.finale-bedankt span{color:var(--gold)}
.finale-thanks .finale-intro{opacity:0;transform:translateY(-12px)}
.finale-thanks .finale-bedankt{opacity:1;transform:none}
body:not(.js) .finale-words,.finale-static .finale-words{gap:2rem}
body:not(.js) .finale-words p,.finale-static .finale-words p{grid-area:auto;opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.finale-words p{transition:none;grid-area:auto;opacity:1!important;transform:none!important}.finale-words{gap:2rem}}

.finale-explosion .finale-intro{opacity:0;transform:translateY(-12px)}

/* Lichtprojectie van alle jaren, gevolgd door de naam van het team. */
.last-light .finale-bedankt{max-width:100%;width:100%}
.finale-bedankt small{display:block;font:400 clamp(16px,2.4vw,26px)/1.5 var(--sans);letter-spacing:.035em;color:var(--ivory);margin-top:20px}
.finale-bedankt .finale-period{display:block;font:400 12px/1.5 var(--sans);letter-spacing:.18em;color:var(--ivory-70);margin-top:14px}
.laser-stage{grid-area:1/1;position:relative;display:grid;place-items:center;align-content:center;width:100%;min-height:260px;opacity:0;visibility:hidden;transition:opacity .7s ease;pointer-events:none;isolation:isolate}
.finale-years .laser-stage{opacity:1;visibility:visible}
.finale-years .finale-intro{opacity:0;transform:translateY(-12px)}
.laser-year{font:600 clamp(88px,19vw,240px)/1.1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:.015em;color:rgba(233,185,79,.08);-webkit-text-stroke:1.5px #ffe3a0;text-shadow:0 0 14px #e9b94f88,0 0 60px #e9b94f44;position:relative}
.laser-year:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,#fff0c533 49%,#fff4d4bb 50%,#e9b94f33 51%,transparent 60%);background-size:100% 250%;animation:laser-scan 2.6s ease-in-out infinite alternate;animation-play-state:paused;pointer-events:none}
.laser-caption{font:400 12px/1.6 var(--sans);letter-spacing:.25em;color:var(--gold);margin-top:24px}
.laser-beams{position:absolute;inset:-40px -15%;z-index:-1;opacity:.7;overflow:hidden}
.laser-beams:before,.laser-beams:after{content:'';position:absolute;bottom:0;width:85%;height:100%;background:linear-gradient(15deg,transparent 40%,#e9b94f08 47%,#ffe7a59c 49.8%,#e9b94f13 50.4%,transparent 55%);transform-origin:bottom left;animation:laser-beam 4s ease-in-out infinite alternate;animation-play-state:paused}
.laser-beams:before{left:0}.laser-beams:after{right:0;transform-origin:bottom right;scale:-1 1;animation-delay:-2s}
.finale-running .laser-year:after,.finale-running .laser-beams:before,.finale-running .laser-beams:after{animation-play-state:running}
@keyframes laser-scan{from{background-position:0 0}to{background-position:0 100%}}
@keyframes laser-beam{from{rotate:-12deg}to{rotate:12deg}}
body:not(.js) .laser-stage,.finale-static .laser-stage{display:none}
@media(prefers-reduced-motion:reduce){.laser-stage{display:none}.laser-year:after,.laser-beams:before,.laser-beams:after{animation:none}}

.finale-years .finale-intro{transition:opacity .35s ease,transform .35s ease}
