:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bh:352;--ah:42;
  --bg:hsl(var(--bh) 45% 96%);
  --bg2:hsl(var(--bh) 60% 89%);
  --panel:hsl(var(--bh) 50% 91%);
  --ink:hsl(var(--bh) 55% 12%);
  --muted:hsl(var(--bh) 18% 34%);
  --accent:hsl(var(--ah) 80% 32%);
  --on-accent:hsl(var(--ah) 60% 97%);
  --line:hsl(var(--bh) 25% 80%);
  --glow:hsl(var(--ah) 90% 50% / .18);
  --fx:hsl(var(--ah) 70% 40%);
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:hsl(var(--bh) 60% 5%);--bg2:hsl(var(--bh) 65% 16%);--panel:hsl(var(--bh) 55% 10%);
    --ink:hsl(var(--ah) 55% 95%);--muted:hsl(var(--bh) 18% 72%);
    --accent:hsl(var(--ah) 88% 66%);--on-accent:hsl(var(--bh) 60% 8%);
    --line:hsl(var(--bh) 30% 22%);--glow:hsl(var(--ah) 95% 60% / .28);--fx:hsl(var(--ah) 60% 92%);
  }
}
:root[data-theme="dark"]{
  --bg:hsl(var(--bh) 60% 5%);--bg2:hsl(var(--bh) 65% 16%);--panel:hsl(var(--bh) 55% 10%);
  --ink:hsl(var(--ah) 55% 95%);--muted:hsl(var(--bh) 18% 72%);
  --accent:hsl(var(--ah) 88% 66%);--on-accent:hsl(var(--bh) 60% 8%);
  --line:hsl(var(--bh) 30% 22%);--glow:hsl(var(--ah) 95% 60% / .28);--fx:hsl(var(--ah) 60% 92%);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--sans);overflow-x:hidden}
a{color:inherit}
.sky{position:fixed;inset:0;z-index:0;background:radial-gradient(110% 75% at 50% 30%,var(--bg2),var(--bg) 72%)}
#fx{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
header,main,footer{position:relative;z-index:2}
button,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem}
.brand{font:italic 600 1.25rem/1 var(--serif);text-decoration:none;font-variation-settings:"SOFT" 100;white-space:nowrap}
.tools{display:flex;gap:.4rem;align-items:center}
.pill{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);border-radius:999px;min-width:2.5rem;height:2.5rem;padding:0 .9rem;cursor:pointer;font-size:.9rem;text-decoration:none;white-space:nowrap}
.pill:hover{border-color:var(--accent)}

/* hero */
.hero{min-height:calc(100svh - 4.5rem);display:grid;place-items:center;text-align:center;padding-block:1rem 3.5rem}
.headline{margin:0;font-weight:400}
.pre{display:block;font:italic 400 clamp(1.4rem,3.4vw,2.3rem)/1.1 var(--serif);color:var(--muted);min-height:1.1em}
.num{display:block;font-family:var(--serif);font-weight:800;font-variation-settings:"SOFT" 100,"opsz" 144;font-size:clamp(8.5rem,36vw,23rem);line-height:.84;letter-spacing:-.045em;font-variant-numeric:lining-nums tabular-nums;text-shadow:0 0 80px var(--glow);margin-block:.05em}
.num.word{font-size:clamp(5rem,20vw,13rem);letter-spacing:-.02em;line-height:1}
.post{display:block;font:400 clamp(1.6rem,4.6vw,3.4rem)/1.12 var(--serif);font-variation-settings:"SOFT" 50;text-wrap:balance;max-width:18ch;margin:.25em auto 0}
.clock{display:flex;justify-content:center;gap:clamp(.9rem,3vw,2rem);margin-top:1.6rem;font-variant-numeric:tabular-nums}
.clock[hidden]{display:none}
.clock div{display:flex;align-items:baseline;gap:.25rem}
.clock b{font:600 clamp(1.7rem,4.2vw,2.5rem)/1 var(--sans);min-width:2ch;text-align:right}
.clock span{color:var(--muted);font-size:.95rem}
.when{color:var(--muted);margin:.9rem 0 0}
.when::first-letter{text-transform:uppercase}
.stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:720px;margin:2.4rem auto 0;border-top:1px solid var(--line);padding-top:1.2rem}
.stats[hidden]{display:none}
.stats div{display:flex;flex-direction:column;padding:0 .5rem}
.stats dt{order:2;color:var(--muted);font-size:.85rem;line-height:1.3}
.stats dd{margin:0;font:500 clamp(1.4rem,3.4vw,2rem)/1.15 var(--serif);font-variant-numeric:tabular-nums}
.actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem}
.btn{display:inline-block;border:0;border-radius:999px;padding:.85rem 1.45rem;font-weight:600;cursor:pointer;background:var(--accent);color:var(--on-accent);text-decoration:none;transition:transform .15s}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--accent)}

/* garland of lights */
.garland{position:relative;height:44px;display:flex;justify-content:space-around;overflow:hidden;margin-bottom:2.5rem}
.garland::before{content:"";position:absolute;left:0;right:0;top:0;height:22px;background:radial-gradient(ellipse 34px 16px at 50% 0,transparent 15px,var(--line) 16px,var(--line) 17px,transparent 18px) repeat-x 0 0/68px 22px}
.garland i{position:relative;top:14px;width:11px;height:15px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:var(--b);box-shadow:0 0 14px 2px var(--b);animation:tw 2.4s ease-in-out infinite;animation-delay:calc(var(--d) * -1s)}
.garland i::before{content:"";position:absolute;top:-4px;left:3px;width:5px;height:5px;border-radius:1px;background:var(--line)}
.garland i:nth-child(3n+1){--b:hsl(var(--ah) 95% 62%)}
.garland i:nth-child(3n+2){--b:hsl(calc(var(--ah) + 130) 80% 60%)}
.garland i:nth-child(3n){--b:hsl(calc(var(--ah) + 230) 85% 66%)}
@keyframes tw{0%,100%{opacity:1}50%{opacity:.35;box-shadow:none}}

/* sections */
.band{padding-block:3.5rem;border-top:1px solid var(--line)}
.band.panel{background:var(--panel);border-top:0;padding-top:0}
h2{font:500 clamp(1.6rem,3.6vw,2.4rem)/1.15 var(--serif);margin:0 0 .6rem;font-variation-settings:"SOFT" 60;text-wrap:balance}
.lede{color:var(--muted);max-width:60ch;margin:0 0 1.6rem}

/* answer cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{border:1px solid var(--line);border-radius:22px;padding:1.6rem 1.5rem 1.7rem;background:var(--bg)}
.card .fig{font:700 clamp(3rem,7vw,4.2rem)/1 var(--serif);font-variation-settings:"SOFT" 100,"opsz" 144;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.card h2{font-size:1.4rem;margin:.8rem 0 .5rem}
.card p{color:var(--muted);margin:0;line-height:1.65}
.card p b,.card p span{color:var(--ink);font-weight:600}

/* years table */
.tbl{overflow-x:auto;max-width:760px}
table{border-collapse:collapse;width:100%;min-width:420px}
th,td{text-align:left;padding:.8rem .6rem;border-bottom:1px solid var(--line)}
th{font-weight:600;font-size:.85rem;color:var(--muted)}
td:first-child{font:500 1.1rem var(--serif)}
td:last-child{color:var(--accent);font-weight:600;white-space:nowrap}
td:nth-child(2)::first-letter{text-transform:uppercase}

/* timeline of upcoming dates */
.rail{overflow-x:auto;scrollbar-width:thin;padding-bottom:.5rem;margin-inline:-1.25rem;padding-inline:1.25rem}
.rail ol{list-style:none;margin:0;padding:1.4rem 0 0;display:flex;position:relative;min-width:max-content}
.rail ol::before{content:"";position:absolute;left:0;right:0;top:1.4rem;height:1px;background:var(--line)}
.rail li{position:relative}
.ev{display:block;text-decoration:none;padding:1.1rem 2.2rem 0 0;min-width:10.5rem}
.ev::before{content:"";position:absolute;top:-.3rem;left:0;width:.6rem;height:.6rem;border-radius:50%;background:var(--bg);border:1px solid var(--muted);transition:transform .2s}
.ev[aria-current="page"]::before{background:var(--accent);border-color:var(--accent);transform:scale(1.4)}
.ev:hover::before{border-color:var(--accent)}
.ev strong{display:block;font:500 1.15rem/1.2 var(--serif)}
.ev small{display:block;color:var(--muted);font-size:.85rem;margin-top:.2rem}
.ev em{display:block;font-style:normal;font-weight:600;margin-top:.35rem;color:var(--accent)}

.prose{max-width:64ch}
.prose p{font:400 1.12rem/1.75 var(--serif);margin:0}

.faq{max-width:740px}
.faq details{border-bottom:1px solid var(--line);padding:1rem 0}
.faq summary{cursor:pointer;font:500 1.15rem/1.35 var(--serif);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--muted);margin:.6rem 0 0;max-width:62ch;line-height:1.7}

.cta{text-align:center}
.cta .lede{margin-inline:auto}

/* create page */
.form{display:grid;grid-template-columns:1.4fr 1fr auto;gap:.8rem;align-items:end;max-width:880px}
.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}
.field input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;color-scheme:light dark}
.field input:focus{border-color:var(--accent);outline:none}
.err{color:var(--accent);font-size:.9rem;min-height:1.4em;margin:.5rem 0 0}
.create h1{font:500 clamp(2.2rem,6vw,4rem)/1.05 var(--serif);margin:0 0 .6rem;font-variation-settings:"SOFT" 80}
body.empty .countdown{display:none}
body.empty .create{border-top:0;padding-top:clamp(2rem,10vh,6rem);min-height:60vh}

footer{padding-block:2.5rem;color:var(--muted);font-size:.9rem;border-top:1px solid var(--line)}
.flinks{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:0 0 1.2rem;padding:0;list-style:none}
.flinks a{text-decoration:none}
.flinks a:hover{text-decoration:underline}

.toast{position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));transform:translate(-50%,1rem);opacity:0;background:var(--ink);color:var(--bg);padding:.7rem 1.1rem;border-radius:999px;z-index:10;transition:opacity .25s,transform .25s;max-width:calc(100% - 2rem);pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

:fullscreen .top,:fullscreen .band,:fullscreen footer,:fullscreen .actions,:fullscreen .stats{display:none}
:fullscreen .hero{min-height:100vh}

@media (max-width:820px){.cards{grid-template-columns:1fr}}
@media (max-width:640px){
  .stats{grid-template-columns:repeat(2,1fr);row-gap:1.1rem}
  .form{grid-template-columns:1fr}.form .btn{width:100%}
  .hide-sm{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.check{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.95rem;padding-bottom:.8rem;cursor:pointer}
.check input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}
.calc .form{grid-template-columns:1fr 1fr auto}
.calc-big{margin:2rem 0 0;font-family:var(--serif)}
.calc-big b{font-weight:800;font-variation-settings:"SOFT" 100,"opsz" 144;font-size:clamp(5rem,16vw,10rem);line-height:.9;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.calc-big span{font-size:clamp(1.6rem,4vw,2.6rem);color:var(--muted);margin-left:.2em}
.calc-stats{margin-left:0;max-width:760px}
@media (max-width:640px){.calc .form{grid-template-columns:1fr}}
