/* ============================================================
   ICO Calendar — landing page
   Printed-almanac treatment: warm paper, rust accent, serif headings and
   banded month rows. Deliberately unlike the reference site's flat grey
   grid of cards.
   ============================================================ */
:root{
  --paper:#faf7f2;
  --card:#ffffff;
  --well:#f2ece2;
  --ink:#1c1815;
  --ink-soft:#4d453c;
  --muted:#8a8074;
  --rule:#e3dbcd;
  --rule-soft:#efe8dc;
  --accent:#b4541f;
  --accent-2:#d97706;
  --ok:#15803d;
  --shell:min(1080px,calc(100% - 36px));
  --radius:4px;
  --font:'Roboto',system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --serif:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,'Times New Roman',serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);
  font-family:var(--font);line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(80% 40% at 50% 0%,rgba(180,84,31,.045),transparent 60%),
    var(--paper);
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
.shell{width:var(--shell);margin:0 auto}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.88rem 1.6rem;border:1px solid var(--accent);border-radius:var(--radius);
  font:inherit;font-weight:700;font-size:.94rem;text-decoration:none;cursor:pointer;
  background:var(--accent);color:#fffaf5;
  transition:background .14s,border-color .14s;
}
.btn:hover{background:var(--accent-2);border-color:var(--accent-2)}
.btn:active{transform:translateY(1px)}
.btn-lg{padding:1rem 1.9rem;font-size:1rem}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:60;
  background:rgba(250,247,242,.94);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule);
}
.head-row{display:flex;align-items:center;gap:.85rem;height:62px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;min-height:44px}
.mark{
  display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;
  border-radius:50%;background:var(--accent);color:#fffaf5;
}
.mark svg{width:17px;height:17px}
.brand-txt{display:flex;flex-direction:column;line-height:1.14}
.brand-txt b{font-family:var(--serif);font-size:.98rem;letter-spacing:.02em}
.brand-txt small{color:var(--muted);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase}
.head-note{color:var(--muted);font-family:var(--mono);font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;margin-inline-end:auto}

/* ---------- language ---------- */
.lang{position:relative}
.lang-btn{
  display:inline-flex;align-items:center;gap:.4rem;min-height:40px;
  border:1px solid var(--rule);background:var(--card);border-radius:var(--radius);
  padding:.5rem .78rem;font:inherit;font-size:.8rem;font-weight:600;color:var(--ink);
  cursor:pointer;transition:border-color .14s;
}
.lang-btn:hover{border-color:var(--accent)}
.lang-globe{display:inline-flex}
.lang-globe svg{width:15px;height:15px}
.lang-caret{display:inline-flex}
.lang-caret svg{width:10px;height:10px;transition:transform .18s}
.lang-btn[aria-expanded="true"] .lang-caret svg{transform:rotate(180deg)}
.lang-list{
  position:absolute;inset-inline-end:0;top:calc(100% + .5rem);z-index:80;
  min-width:230px;max-height:70vh;overflow-y:auto;
  background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  box-shadow:0 18px 40px rgba(28,24,21,.14);margin:0;padding:.3rem;list-style:none;
  animation:langIn .14s ease-out;
}
@keyframes langIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.lang-list[hidden]{display:none}
.lang-list button{
  display:flex;justify-content:space-between;gap:1rem;width:100%;
  border:0;background:none;font:inherit;font-size:.87rem;color:var(--ink);
  padding:.6rem .7rem;min-height:44px;border-radius:2px;cursor:pointer;text-align:start;
}
.lang-list button:hover,
.lang-list button[aria-current="true"]{background:var(--well)}
.lang-list button[aria-current="true"]{color:var(--accent);font-weight:700}
.lang-native{color:var(--muted);font-size:.78rem}
.lang-list li+li{margin-top:1px}

/* ---------- shared type ---------- */
.kicker{
  margin:0 0 .55rem;color:var(--accent);font-family:var(--mono);
  font-size:.67rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
}
h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.005em}
.lede{margin:0 0 1.4rem;color:var(--ink-soft);font-size:1rem;max-width:62ch}
section h2{margin:0 0 .7rem;font-size:1.9rem;line-height:1.2}

/* ---------- hero ---------- */
.hero{padding:2.8rem 0 3rem;border-bottom:1px solid var(--rule)}
.hero-in{display:grid;gap:2.2rem}
@media (min-width:900px){
  .hero-in{grid-template-columns:minmax(0,1fr) minmax(0,340px);align-items:start;gap:3rem}
}
.hero-copy h1{margin:0 0 .9rem;font-size:2.75rem;line-height:1.1}
.hero-cta{margin:1.4rem 0 .5rem}
.hero-note{margin:0 0 1.7rem;color:var(--muted);font-size:.76rem}

.chips{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);overflow:hidden;
}
.chips li{padding:.85rem .55rem;text-align:center}
.chips li+li{border-inline-start:1px solid var(--rule-soft)}
.chips b{display:block;font-family:var(--serif);font-size:1.32rem;color:var(--accent);line-height:1.1}
.chips span{display:block;margin-top:.22rem;color:var(--muted);font-size:.68rem;line-height:1.35}

/* featured card */
.hero-card{
  background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);
  padding:1.1rem 1.15rem;box-shadow:0 10px 26px rgba(28,24,21,.06);
}
.hc-kicker{
  margin:0 0 .8rem;color:var(--muted);font-family:var(--mono);
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
}
.hc-top{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}
.hc-logo{width:44px;height:44px;border-radius:50%;background:var(--well);flex:0 0 auto}
.hc-name{margin:0;font-family:var(--serif);font-weight:700;font-size:1.05rem}
.hc-name abbr{text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:400;margin-inline-start:.3rem}
.hc-type{margin:.1rem 0 0;color:var(--muted);font-size:.8rem}
.hc-rows{margin:0;display:grid;gap:1px;background:var(--rule-soft);border-block:1px solid var(--rule-soft)}
.hc-rows>div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;background:var(--card)}
.hc-rows dt{color:var(--muted);font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}
.hc-rows dd{margin:0;font-weight:700;font-size:.9rem}

/* ---------- calendar board ---------- */
.board{padding:3rem 0;border-bottom:1px solid var(--rule)}
.band{margin-top:2rem;border:1px solid var(--rule);border-radius:var(--radius);background:var(--card);overflow:hidden}
.band-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.85rem 1.1rem;background:var(--well);border-bottom:1px solid var(--rule);
}
.band-head h3{margin:0;font-size:1.05rem}
.count{color:var(--muted);font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}
.rows{list-style:none;margin:0;padding:0}
.rows li+li .row{border-top:1px solid var(--rule-soft)}
.row{
  display:grid;align-items:center;gap:.7rem;
  grid-template-columns:40px minmax(0,1fr) auto;
  grid-template-areas:"logo name stage" "logo meta time";
  padding:.7rem 1.1rem;text-decoration:none;
  transition:background .12s;
}
.row:hover{background:#fdfaf5}
.row img{grid-area:logo;width:40px;height:40px;border-radius:50%;background:var(--well)}
.rn{grid-area:name;display:flex;align-items:baseline;gap:.4rem;min-width:0}
.rn b{font-family:var(--serif);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rn abbr{text-decoration:none;color:var(--muted);font-size:.7rem;letter-spacing:.06em}
.rt{grid-area:meta;color:var(--muted);font-size:.76rem}
.rs{
  grid-area:stage;justify-self:end;color:var(--accent);
  font-family:var(--mono);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--rule);border-radius:100px;padding:.16rem .5rem;white-space:nowrap;
}
.rw{grid-area:time;justify-self:end;color:var(--muted);font-family:var(--mono);font-size:.68rem;white-space:nowrap}
@media (min-width:660px){
  .row{
    grid-template-columns:40px minmax(0,1.3fr) minmax(0,1fr) auto auto;
    grid-template-areas:"logo name meta stage time";
    gap:1rem;padding:.75rem 1.2rem;
  }
  .rs{justify-self:auto}
  .rw{justify-self:auto;min-width:80px;text-align:end}
}

/* ---------- why ---------- */
.why{padding:3rem 0;background:var(--well);border-bottom:1px solid var(--rule)}
.cards{margin-top:1.6rem;display:grid;gap:1rem}
@media (min-width:760px){.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}}
.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:1.2rem 1.15rem}
.card h3{margin:0 0 .45rem;font-size:1.08rem}
.card p{margin:0;color:var(--ink-soft);font-size:.9rem}

/* ---------- stats ---------- */
.stats{padding:3rem 0;border-bottom:1px solid var(--rule)}
.stat-grid{
  margin:1.6rem 0 0;display:grid;gap:1px;background:var(--rule);
  border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;
}
@media (min-width:700px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.stat-grid>div{background:var(--card);padding:1.2rem 1.15rem}
.stat-grid dt{color:var(--accent);font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;margin:0}
.stat-grid dd{margin:.4rem 0 0;font-family:var(--serif);font-size:1.25rem;line-height:1.25}

/* ---------- faq ---------- */
.faq{padding:3rem 0;border-bottom:1px solid var(--rule)}
.qa{margin:1.5rem 0 0;border-top:1px solid var(--rule)}
.qa-row{padding:1.1rem 0;border-bottom:1px solid var(--rule-soft);display:grid;gap:.35rem}
@media (min-width:760px){.qa-row{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:2rem;align-items:baseline}}
.qa-row h3{margin:0;font-size:1.03rem;line-height:1.35}
.qa-row p{margin:0;color:var(--ink-soft);font-size:.92rem}

/* ---------- final ---------- */
.final{padding:3.2rem 0;background:var(--well);text-align:center}
.final-in{max-width:640px}
.final h2{margin:0 0 .75rem;font-size:1.9rem;line-height:1.18}
.final p{color:var(--ink-soft);margin:0 0 .4rem}
.final .hero-cta{margin:1.5rem 0 .5rem}
.final .hero-note{margin:0}

/* ---------- footer ---------- */
.site-foot{padding:2.2rem 0}
.foot-in{display:grid;gap:.7rem}
.foot-brand{margin:0;font-family:var(--serif);font-weight:700;font-size:1.02rem}
.disclaimer{margin:0;color:var(--muted);font-size:.78rem;max-width:76ch;line-height:1.6}

/* ---------- skip ---------- */
.skip{
  position:absolute;top:0;inset-inline-start:0;z-index:100;
  background:var(--accent);color:#fffaf5;padding:.6rem 1rem;font-size:.85rem;
  width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;
}
.skip:focus{width:auto;height:auto;overflow:visible;clip-path:none}

/* ---------- responsive ---------- */
@media (max-width:760px){
  .hero-copy h1{font-size:2.05rem}
  section h2{font-size:1.55rem}
  .final h2{font-size:1.55rem}
  .hero{padding:2.2rem 0 2.4rem}
  .board,.why,.stats,.faq{padding:2.3rem 0}
  .head-note{display:none}
}
@media (max-width:420px){
  .hero-copy h1{font-size:1.8rem}
  .chips b{font-size:1.12rem}
  .brand-txt small{display:none}
  .row{padding:.65rem .8rem}
  .rn b{font-size:.94rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* ---------- entry cover: calendar leaves flip down ---------- */
/* Hidden in the markup; JS reveals it and removes it, so the page never
   depends on this block to be usable. */
.gate.cover{
  position:fixed;inset:0;z-index:150;display:flex;align-items:center;
  justify-content:center;padding:20px;
  background:var(--bg,var(--paper,#faf7f2));
}
/* The class rule sets `display:flex`, which outranks the UA
   `[hidden]{display:none}`. Without this the dismissed cover keeps covering
   the page and silently swallows every click. */
.gate.cover[hidden]{display:none}
.cover-panel{width:100%;max-width:300px;text-align:center}
.flip{
  position:relative;width:112px;height:112px;margin:0 auto 24px;
  perspective:700px;
}
.flip .leaf{
  position:absolute;left:0;right:0;height:52px;border-radius:5px;
  background:var(--card,#ffffff);border:1px solid var(--rule,#e3dbcd);
  transform-origin:top center;transform:rotateX(0deg);
  transition:transform .52s cubic-bezier(.55,.05,.35,1),opacity .3s linear .2s;
  box-shadow:0 6px 14px rgba(28,24,21,.13);
}
/* The three leaves are deliberately toned apart. The first attempt used the
   page colour for the lower two, which made them invisible against the paper;
   white was still only ~3% off the page luminance. These tones read as a
   physical stack. */
.flip .leaf.l1{top:0;background:var(--accent,#b4541f);border-color:var(--accent,#b4541f)}
.flip .leaf.l2{top:24px;background:#f0e7d8;border-color:#ddd1bb}
.flip .leaf.l3{top:48px;background:#e4d9c4;border-color:#d2c4a9}
.flip .leaf.flipped{transform:rotateX(-96deg);opacity:0}
.cover-label{
  margin:0;color:var(--muted);font-size:.78rem;letter-spacing:.13em;
  text-transform:uppercase;
}
