/* Czech Christmas Fresh (design 5a, Claude Design 2026-10-25): pine green, Christmas red, straw gold on snow-white.
   Both flags, a Czech greeting with how to say it on every screen, a countdown to Štědrý den.
   Readability for 50+ wins every conflict: body ≥ 18px, tap targets ≥ 44px, buttons 60px, fields 58px. */
/* Self-hosted (SIL Open Font License): no request to Google, so no visitor IP leaves for a third party. */
@font-face{font-family:"Atkinson Hyperlegible";font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible";font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-400-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible";font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible";font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-700-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Young Serif";font-weight:400;font-display:swap;src:url(/fonts/young-serif-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Young Serif";font-weight:400;font-display:swap;src:url(/fonts/young-serif-400-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --pine:#1f3b2d; --pine-deep:#16291f; --red:#c8102e; --red-bow:#e01a3a; --straw:#e9b949; --straw-light:#f3cf74;
  --snow:#fbf8f2; --white:#fff; --line:#dcd6cb; --ink:#1d1b19; --ink-soft:#4a443e; --window:#ffd889; --win-dark:#2c4a3a;
  --night:#0f1630;
  --font-display:"Young Serif",Georgia,serif;
  --font-body:"Atkinson Hyperlegible",system-ui,sans-serif;
  --radius-sm:12px; --radius-md:14px; --radius-lg:20px; --radius-pill:999px;
  --tap-min:44px; --btn-h:60px; --field-h:58px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --max:1440px;
  --snowdots:radial-gradient(circle,rgba(255,255,255,.55) 1.2px,transparent 1.6px),radial-gradient(circle,rgba(255,255,255,.3) 1px,transparent 1.4px);
  --icing:radial-gradient(circle,#fff 2px,transparent 2.5px) 0 50%/14px 6px repeat-x;
}
*{box-sizing:border-box}
html{background:var(--snow);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);font-size:1.125rem;line-height:1.45;color:var(--ink);background:var(--snow);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.12;margin:0;text-wrap:balance;color:var(--pine)}
p{margin:0 0 1em;text-wrap:pretty}
b,strong{font-weight:700}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1.5px}
::selection{background:var(--straw-light);color:var(--ink)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:6px}
[hidden]{display:none !important} /* author display rules must never beat the hidden attribute */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(20px,5vw,96px)}
.i{width:1.15em;height:1.15em;flex:none;display:inline-block;vertical-align:-.18em}
input,select,textarea,button{font:inherit}
input,textarea{caret-color:var(--red)}
::placeholder{color:#77706a;opacity:1}

/* ---------- small parts: flags, the FREE tag, buttons, fields ---------- */
.flags{display:inline-flex;gap:4px;align-items:center;flex:none}
.flag{display:block;width:30px;height:20px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none}
.flag--us{width:30px}
.free{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:var(--radius-pill);background:var(--straw);color:var(--ink);
  font-weight:700;font-size:.875rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:var(--btn-h);padding:0 1.6em;border:0;border-radius:var(--radius-pill);
  background:var(--red);color:var(--white);font-family:var(--font-body);font-weight:700;font-size:1.25rem;line-height:1.15;text-align:center;
  text-decoration:none;cursor:pointer;transition:background .15s,transform .15s var(--ease)}
.btn:hover{background:#b00d27}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.65;cursor:wait}
.btn--line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn--line:hover{background:rgba(29,27,25,.05)}
.btn--ghost{background:transparent;color:var(--pine);box-shadow:inset 0 0 0 2px var(--line)}
.btn--ghost:hover{background:rgba(31,59,45,.05)}
.linkish{all:unset;cursor:pointer;color:var(--pine);font-weight:700;text-decoration:underline;text-underline-offset:.2em;min-height:var(--tap-min);display:inline-flex;align-items:center}
.linkish:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:4px}
.finder input,.story__ask input,.story__askrow input,.finder__namerow input,.signup input,.signup textarea,.result__inputs input,
.result__inputs select,.keep__letter input,.story__select select,.notice__state select,.confirmed__state select{
  width:100%;min-height:var(--field-h);padding:0 18px;border:2px solid var(--ink);border-radius:var(--radius-md);background:var(--white);color:var(--ink);font-size:1.25rem}
.signup textarea{padding:12px 18px;min-height:96px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--straw);outline-offset:2px}
.select{position:relative}
.select select{appearance:none;-webkit-appearance:none;width:100%;min-height:var(--field-h);padding:0 48px 0 18px;border:2px solid var(--ink);border-radius:var(--radius-md);
  background:var(--white);color:var(--ink);font-size:1.25rem;cursor:pointer}
.select::after{content:"▾";position:absolute;right:18px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink)}

/* ---------- the landing ---------- */
.hero{position:relative;background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px;background-position:0 0,11px 7px;color:var(--white);
  padding-bottom:clamp(40px,6vw,72px)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:6px;background:var(--icing);pointer-events:none}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(32px,5vw,72px);align-items:center;padding-top:clamp(24px,3vw,40px)}
.hero__copy{display:flex;flex-direction:column;gap:22px;align-self:stretch}
.hero__top{display:flex;align-items:center;gap:12px;margin:0}
.hero__top .flag{width:36px;height:24px}
.brand{font-weight:700;font-size:1.125rem;color:var(--white);text-decoration:none;white-space:nowrap}
.brand__name{font-family:var(--font-display);font-weight:400;color:#cfe0d4}
.free--top{display:none}
.greet{display:flex;flex-direction:column;gap:4px;margin:clamp(8px,3vw,40px) 0 0}
.greet__cz{font-family:var(--font-display);font-size:clamp(1.6rem,2.4vw,1.9rem);color:var(--straw-light);line-height:1.1}
.hero h1{font-size:clamp(2.2rem,4.6vw,4rem);line-height:1.04;color:var(--white)}
.countdown{align-self:flex-start;display:flex;align-items:center;gap:10px;margin:0;padding:9px 16px;border-radius:var(--radius-pill);
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);font-size:1.0625rem;line-height:1.3}
.countdown__star{color:var(--straw);font-size:1.1rem}
.hero__art{display:block;margin-top:auto;width:100%;height:220px;object-fit:cover;object-position:50% 85%;border-radius:18px}
.finder{display:flex;flex-direction:column;gap:10px;background:var(--snow);color:var(--ink);border-radius:24px;padding:32px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.finder__scene{display:none}
.finder__label{font-weight:700;font-size:1.125rem;margin-top:6px}
.finder__hint{margin:0;min-height:0;font-size:1rem;color:var(--ink-soft)}
.finder__hint:empty{display:none}
.finder__go{margin-top:10px;width:100%}
.finder__note{margin:4px 0 0;text-align:center;font-size:1rem;color:var(--ink-soft)}
.finder__switch{all:unset;cursor:pointer;align-self:center;min-height:var(--tap-min);display:inline-flex;align-items:center;color:var(--pine);font-weight:700;
  font-size:1rem;text-decoration:underline;text-underline-offset:.2em;text-align:center}
.finder__switch:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:4px}
.finder__title{font-size:1.6rem}
.finder__namerow{display:flex;flex-wrap:wrap;gap:10px}
.finder__namerow input{flex:1 1 14rem}
.finder__namerow .btn{flex:1 1 8rem}
.finder__trust{font-size:1rem;color:var(--ink-soft);margin:0}
.proof{margin:4px 0 0;font-weight:700;font-size:1rem;color:var(--pine);text-align:center}
.combo{position:relative}
.combo__list{position:absolute;z-index:10;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:var(--white);color:var(--ink);
  border-radius:var(--radius-md);box-shadow:0 0 0 2px var(--ink),0 18px 40px rgba(0,0,0,.25);max-height:22rem;overflow:auto}
.combo__list li{padding:10px 12px;border-radius:10px;cursor:pointer;line-height:1.3;min-height:var(--tap-min)}
.combo__list li[aria-selected="true"],.combo__list li:hover{background:#f3ead6}
.combo__list i{font-style:italic;color:var(--ink-soft)}
.combo__list small{display:block;color:var(--ink-soft);font-size:1rem}
.combo__list .combo__none{cursor:default;color:var(--ink-soft)}
.combo__list .combo__many{background:#f8efd9;font-weight:700}
.finder input[aria-invalid="true"]{border-color:var(--red)}
.byname{display:grid;gap:10px}
.byname__map{width:100%;height:auto;max-height:190px}
.byname__map .land{fill:#e8e2d4;stroke:var(--pine);stroke-width:2.5;stroke-linejoin:round}
.byname__dot circle{fill:var(--red)}
.byname__dot .byname__glow{fill:var(--red);opacity:.2}
.byname__dot text{font-family:var(--font-body);font-weight:700;font-size:20px;fill:var(--white)}
.byname__list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.byname__pick{all:unset;box-sizing:border-box;cursor:pointer;width:100%;min-height:56px;display:flex;gap:12px;align-items:center;padding:10px 14px;
  border-radius:var(--radius-sm);background:var(--white);box-shadow:0 0 0 1.5px var(--line)}
.byname__pick:hover{box-shadow:0 0 0 2px var(--pine)}
.byname__pick:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.byname__pick b{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--red);color:var(--white)}
.byname__pick small{display:block;color:var(--ink-soft);font-size:1rem}

@media (max-width:899px){
  /* Phones: the green band holds the greeting, the headline and the countdown; the form sits on snow below it. */
  .hero{background:var(--snow);padding-bottom:0;color:var(--ink)}
  .hero::after{display:none}
  .hero > .wrap{padding:0}
  .hero__grid{display:block;padding:0}
  .hero__copy{gap:12px;padding:18px 22px 28px;background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px;color:var(--white);position:relative}
  .hero__copy::after{content:"";position:absolute;left:22px;right:22px;bottom:10px;height:6px;background:var(--icing)}
  .hero__top{gap:8px}
  .hero__top .flag{width:30px;height:20px}
  .brand{font-size:.9375rem}
  .brand__name{display:none}
  .free--top{display:inline-flex;margin-left:auto}
  .greet{margin:6px 0 0;gap:2px}
  .greet__cz{font-size:1.5rem}
    .hero h1{font-size:clamp(2rem,9vw,2.25rem)}
  .countdown{font-size:.9375rem;padding:7px 12px;gap:8px}
  .hero__art{display:none}
  .finder{border-radius:0;box-shadow:none;padding:18px 22px 28px}
}

/* ---------- below the fold: the example, and the lights of Czech America ---------- */
.teaser{padding:clamp(48px,7vw,96px) 0}
.teaser__wrap{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.teaser__card{margin:0}
.teaser__card canvas{display:block;width:100%;height:auto;border-radius:var(--radius-lg);box-shadow:0 30px 50px -30px rgba(0,0,0,.5)}
.teaser h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:12px}
.teaser__text p{max-width:36ch;font-size:1.1875rem}
.teaser__src{font-size:.9375rem !important;color:var(--ink-soft);margin:0}
@media (max-width:760px){.teaser__wrap{grid-template-columns:1fr}.teaser__card{max-width:300px}}
/* Lights of Czech America: only once there are enough lights to show (an empty map reads as broken); app.js decides */
.lanterns-home.is-empty{display:none}
.lanterns-home{padding:clamp(48px,7vw,96px) 0;background:var(--pine);color:var(--white);position:relative}
.lanterns-home::before{content:"";position:absolute;left:0;right:0;top:6px;height:6px;background:var(--icing)}
.lanterns-home h2{font-size:clamp(2rem,4vw,3rem);color:var(--white);margin-bottom:12px}
.lanterns-home__lede{font-size:1.1875rem;max-width:46ch}
.lanterns-home__maps{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(16px,3vw,32px);margin:24px 0}
.lanterns-home__maps figure{margin:0}
.lanterns-home__maps figcaption{margin-top:10px;font-weight:700}
.lanterns-home__links{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}
.lanterns-home__all{font-weight:700;color:var(--straw-light);min-height:var(--tap-min);display:inline-flex;align-items:center}
.lanterns-home .lanterns__empty,.lanterns-home__empty{position:static;transform:none;width:auto;margin:16px 0;text-align:left}
@media (max-width:860px){.lanterns-home__maps{grid-template-columns:1fr}}

/* ---------- the flow after the landing ---------- */
body.story-open{overflow:hidden}
.story{position:fixed;inset:0;z-index:50;overflow-y:auto;overscroll-behavior:contain;background:var(--snow);color:var(--ink);display:flex;flex-direction:column}
.story__bar{position:sticky;top:0;z-index:5;flex:none;background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px;
  color:var(--white);padding:12px clamp(16px,5vw,96px) 22px}
.story__bar::after{content:"";position:absolute;left:clamp(16px,5vw,96px);right:clamp(16px,5vw,96px);bottom:8px;height:6px;background:var(--icing)}
.story__barrow{display:flex;align-items:center;gap:12px;min-height:var(--tap-min)}
.story__back{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:var(--tap-min);padding-right:8px;font-size:1.0625rem;color:var(--white)}
.story__back:focus-visible,.story__close:focus-visible{outline:3px solid var(--straw);outline-offset:2px;border-radius:6px}
.story__where{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;margin:0;font-weight:700;font-size:1rem;white-space:nowrap}
.story__close{all:unset;cursor:pointer;width:var(--tap-min);height:var(--tap-min);display:grid;place-items:center;color:var(--white)}
.story__greet{margin:6px 0 0;font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.3rem);color:var(--straw-light);line-height:1.25}
@media (min-width:900px){
  /* one row: Back · flags, step and the greeting in the middle · FREE */
  .story__bar{display:grid;grid-template-columns:1fr auto auto 1fr;align-items:center;column-gap:16px;padding-bottom:24px}
  .story__barrow{display:contents}
  .story__back,.story__where,.story__greet,.story__barrow > .free{grid-row:1}
  .story__back{grid-column:1;justify-self:start}
  .story__where{grid-column:2;flex:none}
  .story__greet{grid-column:3;margin:0;white-space:nowrap}
  .story__barrow > .free{grid-column:4;justify-self:end}
}
.story__confirm{flex:none;display:flex;gap:12px;align-items:center;margin:0;padding:14px clamp(20px,5vw,96px);background:var(--straw);color:var(--ink);font-size:1.0625rem;line-height:1.35}
.story__confirm svg{width:22px;height:22px;flex:none}
.stage,.story__progress{display:none !important}
.story__screen{flex:1 0 auto;display:flex}
.story__screen:not([hidden]) .story__body > *{animation:rise .24s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}
.story__body{width:100%;max-width:640px;margin:0 auto;padding:clamp(20px,4vw,56px) 22px 32px;display:flex;flex-direction:column;gap:14px}
.story__body--wide{max-width:960px}
.story__title{font-family:var(--font-display);font-weight:400;line-height:1.12;font-size:clamp(1.9rem,3.6vw,2.6rem);color:var(--pine);outline:none}
.story__title em{font-style:normal;color:var(--red)}
.story__nav{position:sticky;bottom:0;z-index:4;flex:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:12px 22px max(12px,env(safe-area-inset-bottom));background:var(--snow);box-shadow:0 -1px 0 var(--line)}
.story__nav .btn{margin-left:auto;min-width:min(260px,60%);white-space:nowrap;font-size:1.125rem;padding:0 1.2em}
.story__nav .story__all{white-space:nowrap}
.story__nav:has(> [hidden] + .btn[hidden]){display:none}
@media (min-width:900px){
  .split{max-width:1440px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center;
    padding:clamp(32px,6vh,96px) clamp(40px,6vw,96px)}
  .story__nav{padding:16px clamp(40px,6vw,96px)}
}

/* step 2: the name card */
.namecard{position:relative;background:var(--white);border-radius:16px;box-shadow:0 0 0 1.5px var(--line);padding:12px 14px 12px 22px;overflow:hidden}
.namecard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.namecard__label{margin:0;font-weight:700;font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.namecard__row{display:flex;align-items:center;gap:12px}
.namecard__text{flex:1;min-width:0}
.namecard__name{margin:2px 0}
.relabel__word{font-family:var(--font-display);font-size:2.25rem;line-height:1.05;color:var(--pine);display:inline-block;max-width:100%;overflow-wrap:anywhere}
.relabel .flip{display:inline-block;color:var(--red);animation:flip .8s var(--ease)}
@keyframes flip{from{transform:rotateX(90deg) translateY(-.2em);opacity:0}}
.namecard__means{margin:0;font-size:1.0625rem}
.namecard__route{display:none}
.hear{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:var(--tap-min);padding:0 16px;border-radius:var(--radius-pill);
  background:var(--red);color:var(--white);font-weight:700}
.hear:focus-visible{outline:3px solid var(--straw);outline-offset:3px}
.hear--round{width:48px;height:48px;padding:0;justify-content:center;flex:none}
.story__title--q{font-size:clamp(1.5rem,2.6vw,2.4rem);display:block;margin-top:8px}
.eras{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.era{min-height:54px;padding:0 10px;border-radius:var(--radius-md);border:2px solid #cfc8bc;background:var(--white);color:var(--ink);font-size:1.125rem;cursor:pointer}
.era:hover{border-color:var(--pine)}
.era[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:var(--white);font-weight:700}
.era[aria-pressed="true"]::before{content:"✓ "}
.q-family{display:flex;flex-direction:column;gap:10px}
.q-help{margin:0;font-size:1rem;color:var(--ink-soft)}
.q-email__status{margin:0;font-weight:700;color:var(--red)}
.q-email__status:empty{display:none}
#q-family-go{margin-top:6px;width:100%}
@media (min-width:900px){
  .namecard{padding:40px 48px 36px;border-radius:24px;box-shadow:0 0 0 1.5px var(--line),0 30px 50px -30px rgba(0,0,0,.35)}
  .namecard::before{left:0;right:0;bottom:auto;width:auto;height:10px}
  .namecard__label{font-size:.9375rem;margin-top:8px}
  .namecard__row{flex-direction:column;align-items:flex-start;gap:16px}
  .relabel__word{font-size:clamp(3.5rem,6vw,5.5rem)}
  .namecard__means{font-family:var(--font-display);font-size:2rem;line-height:1.15}
  .hear--round{width:auto;padding:0 22px;height:56px}
  .hear--round::after{content:"Say it";font-size:1.125rem}
  .namecard__route{display:flex;align-items:center;gap:12px;margin:28px 0 0;font-size:1.125rem}
  .namecard__route .flag{width:36px;height:24px}
  .namecard__dots{flex:1;height:2px;background-image:radial-gradient(circle,var(--red) 1.5px,transparent 2px);background-size:9px 2px}
  .eras{gap:12px}
  .era{min-height:62px;font-size:1.1875rem}
}

/* step 3: the e-mail */
.gate-art{display:flex;justify-content:center}
.gate-copy{display:flex;flex-direction:column;gap:12px}
.q-email{display:flex;flex-direction:column;gap:8px}
.q-email__label{font-weight:700;font-size:1.125rem}
.q-email__lede{font-size:1.125rem}
.q-email__lede p{margin:0}
.q-email__src{font-size:.9375rem;color:var(--ink-soft)}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.checks li{position:relative;padding-left:28px}
.checks li::before{content:"✓";position:absolute;left:0;top:0;color:var(--red);font-weight:700}
.q-email__fix{margin:0}
.q-fix__yes{all:unset;cursor:pointer;color:var(--pine);font-weight:700;text-decoration:underline;margin-left:6px;min-height:var(--tap-min);display:inline-flex;align-items:center}
#q-go{width:100%;margin-top:8px}
.q-consent{margin:4px 0 0;font-size:.9375rem;line-height:1.4;color:var(--ink-soft)}
.q-consent a{color:var(--red)}
.story__skip-link{align-self:flex-start}
/* C: the wrapped gift, tagged with the family; the e-mail unwraps it */
.gift{position:relative;width:100%;aspect-ratio:2/1;max-height:240px;border-radius:var(--radius-lg);overflow:hidden;
  background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px}
.gift__ribbon{position:absolute;background:var(--red);transition:transform .45s var(--ease),opacity .45s}
.gift__ribbon--v{top:0;bottom:0;left:38%;width:28px}
.gift__ribbon--h{left:0;right:0;top:48%;height:28px}
.gift__bow{position:absolute;left:calc(38% + 14px);top:calc(48% - 26px);width:64px;height:40px;margin-left:-32px;border:7px solid var(--red-bow);border-radius:50%;
  transform:rotate(-8deg);transition:transform .45s var(--ease),opacity .45s}
.gift__tag{position:absolute;right:6%;bottom:12%;width:min(66%,270px);padding:12px 14px;background:var(--white);border-radius:6px;transform:rotate(-4deg);
  box-shadow:0 8px 20px rgba(0,0,0,.3);transition:transform .45s var(--ease)}
.gift__family{margin:0;font-family:var(--font-display);font-size:1.25rem;color:var(--ink);line-height:1.15}
.gift__route{margin:4px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:.9375rem}
.gift__route .flag{width:22px;height:15px}
.gift.is-open .gift__ribbon--v{transform:translateY(-110%)}
.gift.is-open .gift__ribbon--h{transform:translateX(110%)}
.gift.is-open .gift__bow{transform:translateY(-160%) rotate(-30deg);opacity:0}
.gift.is-open .gift__tag{transform:rotate(0) translateY(-8px) scale(1.04)}
/* B: their windows, dark until the e-mail lights them */
.story.gate-b,.story.gate-b .story__nav{background:var(--pine-deep)}
.story.gate-b .story__bar{background-color:var(--pine-deep)}
.story.gate-b .story__screen{color:var(--white)}
.story.gate-b .story__title{color:var(--white)}
.story.gate-b .q-email__src,.story.gate-b .q-consent{color:#cfdcd3}
.story.gate-b .q-consent a,.story.gate-b .q-fix__yes{color:var(--straw-light)}
.story.gate-b .q-email__status{color:var(--straw-light)}
.story.gate-b #q-email{border-color:var(--white)}
.story.gate-b #q-go{background:#f2cf74;color:var(--ink)}
.story.gate-b #q-go:hover{background:var(--straw)}
.windows{margin:0;width:100%;padding:16px 16px 12px;border-radius:var(--radius-lg);background:#11221a}
.windows__grid{display:grid;grid-template-columns:repeat(15,1fr);gap:6px}
.win-sq{aspect-ratio:1;border-radius:4px;background:var(--win-dark);transition:background .5s var(--ease),box-shadow .5s var(--ease);transition-delay:calc(var(--i) * 12ms)}
.win-sq.is-lit,.windows.is-lighting .win-sq{background:var(--window);box-shadow:0 0 12px rgba(255,216,137,.55)}
.win-sq.is-lit{transition-delay:0s}
.windows__cap{margin:10px 0 0;text-align:center;font-size:.9375rem;color:#cfdcd3}
@media (min-width:900px){
  .gift{max-height:none;aspect-ratio:9/8}
  .gift__ribbon--v{width:56px}
  .gift__ribbon--h{height:56px}
  .gift__bow{left:calc(38% + 28px);top:calc(48% - 40px);width:120px;height:56px;margin-left:-60px;border-width:10px}
  .gift__tag{width:min(76%,380px);padding:18px 22px;bottom:8%}
  .gift__family{font-size:1.75rem}
  .gift__route{font-size:1.125rem}
  .gift__route .flag{width:28px;height:19px}
  .windows{padding:32px 32px 24px}
  .windows__grid{gap:10px}
  .story.gate-b .story__title{font-size:clamp(2.2rem,4vw,3.4rem)}
}

/* Your Czech Christmas */
.home{display:flex;flex-direction:column;gap:12px}
.home__title{font-size:clamp(2rem,3.6vw,3.6rem)}
.home__say{margin:-6px 0 4px;color:var(--ink-soft);font-size:1.0625rem}
.famcard{background:var(--pine);color:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 50px -30px rgba(0,0,0,.5)}
.famcard__head{position:relative;padding:14px 16px 10px}
.famcard__flags{position:absolute;top:14px;right:16px}
.famcard__flags .flag{width:24px;height:16px}
.famcard__began{margin:0;padding-right:64px;font-size:.875rem;color:var(--straw-light)}
.famcard__place{margin:2px 0 0;font-family:var(--font-display);font-size:clamp(1.8rem,7vw,3rem);line-height:1.05;overflow-wrap:anywhere}
.famcard__where{margin:4px 0 0;font-size:.875rem;color:#cfe0d4}
.famcard__stat{display:none;margin:18px 0 6px;align-items:baseline;gap:12px;font-size:1rem}
.famcard__stat b{font-family:var(--font-display);font-weight:400;font-size:2.6rem;line-height:1;color:var(--straw-light)}
.famcard__art{display:block;width:100%;height:76px;object-fit:cover;object-position:50% 78%;background:var(--night)}
.famcard__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:12px 16px}
.famcard__foot span:first-child{font-family:var(--font-display);font-size:1.4rem;color:var(--straw-light)}
.famcard__foot span:last-child{font-size:.875rem}
.home__actions{order:4;display:flex;flex-direction:column;flex-wrap:wrap;gap:10px;margin-top:6px}
.hublist{order:3;list-style:none;margin:6px 0 0;padding:0;border-top:1.5px solid var(--line)}
.hublist li{border-bottom:1.5px solid var(--line)}
.hublist button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;min-height:64px;display:flex;align-items:center;gap:12px;padding:14px 0}
.hublist button::after{content:"›";color:var(--red);font-weight:700;font-size:1.6rem;margin-left:auto}
.hublist button:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.hublist b{display:block;font-size:1.1875rem;line-height:1.25}
.hublist small{display:block;font-size:1rem;color:var(--ink-soft);margin-top:2px}
.home__days{order:5;margin:0;text-align:center;color:var(--ink-soft);font-size:1rem}
.home__more{order:6;margin:0;display:flex;flex-wrap:wrap;justify-content:center;column-gap:24px;color:var(--ink-soft)}
.home__actions .btn{width:100%}
@media (min-width:900px){
  .home{display:grid;max-width:1440px;grid-template-columns:minmax(0,520px) minmax(0,1fr);column-gap:clamp(40px,6vw,72px);row-gap:12px;align-content:start;
    grid-template-areas:"card title" "card say" "card actions" "card list" "card days" "card more";
    padding:clamp(32px,5vh,56px) clamp(40px,6vw,96px)}
  .home__title{grid-area:title;align-self:end}
  .home__say{grid-area:say}
  .famcard{grid-area:card;align-self:start}
  .home__actions{grid-area:actions;flex-direction:row}
  .home__actions .btn{width:auto;flex:1 1 auto;white-space:nowrap}
  .home__actions .btn--line{flex:0 1 auto}
  .hublist{grid-area:list;border-top:2px solid var(--ink)}
  .home__days{grid-area:days;text-align:left}
  .home__more{grid-area:more;justify-content:flex-start}
  .famcard__head{padding:32px 28px 24px}
  .famcard__flags{top:32px;right:28px}
  .famcard__flags .flag{width:34px;height:22px}
  .famcard__began{font-size:1rem}
  .famcard__place{font-size:3.25rem}
  .famcard__where{font-size:1rem}
  .famcard__stat{display:flex}
  .famcard__art{height:320px}
  .famcard__foot{padding:22px 28px}
  .famcard__foot span:first-child{font-size:2.1rem}
  .famcard__foot span:last-child{font-size:1rem}
}

/* chapters (shared links walk all of them; the asked flow opens them from Your Czech Christmas) */
.story__lede{margin:0;font-weight:700;color:var(--red);font-size:.9375rem;letter-spacing:.12em;text-transform:uppercase}
.story__title--place{font-size:clamp(2.4rem,7vw,4.4rem);overflow-wrap:anywhere}
.story__meta,.story__fact{margin:0;font-size:1.125rem}
.story__meta--big{font-size:1.25rem}
.story__meta b,.story__big b{font-family:var(--font-display);font-weight:400;color:var(--red)}
.story__big{margin:0;font-size:1.25rem}
.story__big b{font-size:1.9rem;margin-right:4px}
.story__src{margin:0;font-size:1rem;color:var(--ink-soft)}
.story__src a{color:var(--pine)}
.story__help{margin:0;font-size:1rem;color:var(--ink-soft)}
.story__ask{display:flex;flex-direction:column;gap:8px}
.story__ask label{font-weight:700}
.story__askrow{display:flex;flex-wrap:wrap;gap:10px}
.story__askrow input{flex:1 1 13rem}
.story__mine,.story__retry{all:unset;cursor:pointer;align-self:flex-start;min-height:var(--tap-min);display:inline-flex;align-items:center;color:var(--pine);font-weight:700;text-decoration:underline}
.story__srcbox{color:var(--ink-soft)}
.story__srcbox summary{cursor:pointer;min-height:var(--tap-min);display:flex;align-items:center;font-size:1rem;text-decoration:underline}
.relabel-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.relabel{margin:0}
.story__screen[data-step="name"] .relabel__word{font-size:clamp(2.8rem,12vw,4.4rem)}
.story__meaning{margin:0;font-size:1.25rem}
.story__then{margin:0;font-size:1.1875rem;line-height:1.55}
.story__then-us-title{margin:12px 0 0;font-family:var(--font-body);font-weight:700;font-size:.875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.story__then-src{margin:6px 0 0;padding-left:20px;font-size:.9375rem}
.book{margin:0;padding:28px 24px;background:var(--white);border-radius:var(--radius-md);box-shadow:0 0 0 1.5px var(--line);font-size:1.1875rem;line-height:1.6;position:relative}
.book::before{content:"";position:absolute;top:-4px;right:22px;width:16px;height:38px;background:var(--red);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%)}
.book p{margin:0}
.book__more summary{cursor:pointer;font-weight:700;color:var(--pine);min-height:var(--tap-min);display:flex;align-items:center}
.rituals{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rituals label{display:flex;gap:14px;align-items:flex-start;cursor:pointer;background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:0 0 0 1.5px var(--line)}
.rituals label:has(input:checked){box-shadow:0 0 0 2.5px var(--pine)}
.rituals input{width:26px;height:26px;flex:none;margin-top:2px;accent-color:var(--pine)}
.rituals small{display:block;font-weight:700;font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:4px}
.rituals em{display:block;font-style:normal;font-weight:700;margin-top:8px;font-size:1rem}
.rituals__off{color:var(--ink-soft)}
.rituals__on{display:none !important;color:var(--pine)}
.rituals input:checked + span .rituals__on{display:block !important}
.rituals input:checked + span .rituals__off{display:none}
.story__jump{all:unset;box-sizing:border-box;cursor:pointer;display:block;padding:16px 18px 16px 24px;border-radius:var(--radius-md);background:var(--white);
  box-shadow:0 0 0 1.5px var(--line);position:relative;overflow:hidden;font-weight:700;line-height:1.4}
.story__jump::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.story__jump span{color:var(--red)}
.chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{font-weight:700;margin-bottom:8px;padding:0}
.chip{min-height:48px;padding:0 16px;border-radius:var(--radius-md);border:2px solid #cfc8bc;background:var(--white);color:var(--ink);font-size:1.0625rem;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:var(--white);font-weight:700}
.story__select{display:flex;flex-direction:column;gap:6px;font-weight:700}
.story__state h3{font-size:1.6rem;margin-bottom:8px}
#s-keep .keep{margin:0}
#s-keep .keep__card{justify-content:center}
#s-keep .keep__card .keep__preview{width:140px}
.story.is-emailed #s-keep #signup{display:none}

/* ---------- the family page (all on one page) ---------- */
body.has-result .hero__grid,body.has-result .teaser,body.has-result .lanterns-home{display:none}
body.has-result .hero{padding:0;background:var(--pine)}
body.has-result .hero::after{display:none}
.result{padding:clamp(20px,4vw,48px) 0 clamp(40px,6vw,72px)}
.result__scene{display:none}
.result__layout{display:block}
.result__main{max-width:720px;margin:0 auto}
.result__head{margin-bottom:16px}
.result__title{display:flex;align-items:center;gap:14px}
.result__flag{height:40px;width:auto;border-radius:4px;box-shadow:0 0 0 1px var(--line);flex:none}
.result__head h2{font-size:clamp(2.4rem,6vw,4rem);line-height:1.04;overflow-wrap:anywhere}
.result__sub{margin:6px 0 0;color:var(--ink-soft)}
.result__change{all:unset;margin-left:6px;cursor:pointer;color:var(--pine);font-weight:700;text-decoration:underline;min-height:var(--tap-min);display:inline-flex;align-items:center}
.result__inputs{display:grid;gap:12px;margin:12px 0 0}
.result__inputs label{display:grid;gap:6px;font-weight:700}
.result__meta{color:var(--ink-soft)}
.result__surname{font-size:1.125rem}
.result__surname b{font-family:var(--font-display);font-weight:400;color:var(--red)}
.result__surname small{color:var(--ink-soft)}
.result__links{display:flex;flex-wrap:wrap;gap:8px 24px;margin:24px 0}
.result__links a{color:var(--pine);font-weight:700}
.keep{margin:24px 0}
.keep__card{display:flex;gap:16px;align-items:center}
.keep__preview{display:block;border-radius:var(--radius-sm);box-shadow:0 10px 30px -14px rgba(0,0,0,.4)}
.keep__card .keep__preview{width:110px;height:auto;flex:none}
.keep__actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.keep__actions .btn{min-height:52px;font-size:1.0625rem}
.keep__link{all:unset;cursor:pointer;color:var(--pine);font-weight:700;text-decoration:underline;text-underline-offset:.2em;min-height:var(--tap-min);display:inline-flex;align-items:center}
.keep__link:focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:4px}
.keep__note{margin:8px 0 0;font-size:1rem;color:var(--ink-soft)}
.keep__note:empty{display:none}
.keep__letter{display:grid;gap:8px}
.keep__letter .keep__preview{max-width:260px;width:100%;height:auto}
.keep__letter label{font-weight:700}
.keep__letter label span{font-weight:400;color:var(--ink-soft)}
.keep__hint{margin:0;color:var(--pine);min-height:1.4em}
/* the gift sign-up on the page: a card with a red ribbon, the village flag as its stamp */
.signup{position:relative;margin:0;padding:28px 24px 24px;background:var(--white);border-radius:var(--radius-lg);box-shadow:0 0 0 1.5px var(--line);overflow:hidden}
.signup::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--red)}
.signup h3{font-size:clamp(1.5rem,3vw,2rem);margin:0 96px 8px 0}
.envelope__stamp{position:absolute;top:22px;right:20px;width:72px;padding:5px;background:var(--white);rotate:3deg;box-shadow:0 0 0 1.5px var(--line),0 4px 12px rgba(0,0,0,.15)}
.envelope__stamp img{display:block;width:100%;height:44px;object-fit:cover}
.envelope__piglet{display:block;width:100%;height:44px}
.envelope__stamp img:not([hidden]) + .envelope__piglet{display:none}
.envelope__postmark{display:none}
.signup--done .envelope__stamp{display:none} /* after sign-up the status text needs the full width */
.signup--done h3,.signup--done{padding-right:24px}
.signup__row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0}
.envelope__to{font-weight:700}
.signup__row input{flex:1 1 16rem}
.signup__row .btn{flex:1 1 12rem}
.signup__lede{margin:4px 0 12px}
.signup__choose summary,.signup__after summary{cursor:pointer;font-weight:700;color:var(--pine);min-height:var(--tap-min);display:flex;align-items:center;gap:6px;list-style:none}
.signup__choose summary::-webkit-details-marker,.signup__after summary::-webkit-details-marker{display:none}
.signup__choose summary::after,.signup__after summary::after{content:"+";margin-left:auto;font-size:1.6rem;color:var(--red)}
.signup__choose[open] summary::after,.signup__after[open] summary::after{content:"−"}
.signup__after summary span,.signup__kids span{font-weight:400;color:var(--ink-soft)}
.gifts{border:0;margin:0 0 12px;padding:0;display:grid;gap:10px}
.gift{display:flex;gap:12px;align-items:flex-start;cursor:pointer;line-height:1.4}
.gift input{width:24px;height:24px;flex:none;margin-top:2px;accent-color:var(--pine)}
.signup__kids{display:grid;gap:6px;margin:8px 0}
.signup__kids label{font-weight:700}
.signup__status{margin:8px 0 0;font-weight:700;color:var(--pine);min-height:1.4em}
.signup__status:empty{min-height:0}
.signup__privacy{margin:8px 0 0;font-size:.9375rem;color:var(--ink-soft)}
.signup__privacy a{color:var(--red)}
.signup__more{display:block;font-weight:700;margin-bottom:6px}
.signup__after{display:none;margin-top:8px}
.signup--done .signup__after{display:block}
.signup--done .signup__row,.signup--done .signup__choose,.signup--done .signup__kids,.signup--done #gifts-title,.signup--done .signup__lede,
.signup--done .signup__privacy,.signup--done .proof{display:none}
.proof--envelope{text-align:left;margin:0 0 8px}
.era-ask{margin:28px 0 8px}
.era-ask h3{font-size:1.5rem;margin-bottom:10px}
.fold{border-top:1.5px solid var(--line)}
.fold:last-of-type{border-bottom:1.5px solid var(--line)}
.fold > summary{list-style:none;cursor:pointer;display:grid;gap:2px;padding:16px 40px 16px 0;position:relative;min-height:64px}
.fold > summary::-webkit-details-marker{display:none}
.fold > summary b{font-size:1.1875rem}
.fold > summary span{color:var(--ink-soft);font-size:1rem}
.fold > summary span:empty{display:none}
.fold > summary::after{content:"+";position:absolute;right:6px;top:12px;font-size:1.8rem;color:var(--red);transition:transform .2s}
.fold[open] > summary::after{transform:rotate(45deg)}
.fold__body{padding:0 0 20px}
.chapter{max-width:42rem}
.chapter h3{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:12px}
.chapter p{font-size:1.1875rem;line-height:1.6}
.chapter .draft{display:inline-block;font-size:.9375rem;font-weight:700;color:var(--red);box-shadow:inset 0 0 0 1.5px var(--red);border-radius:var(--radius-pill);padding:2px 12px;margin-bottom:12px}
.chapter__intro{font-size:1.25rem !important}
.chapter + .chapter{margin-top:32px}
.hours{list-style:none;margin:16px 0 0;padding:0}
.hours li{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:16px;padding:14px 0;border-top:1.5px solid var(--line)}
.hours li > span{font-family:var(--font-display);color:var(--red);font-size:1.125rem}
.hours p{margin:0}
@media (max-width:560px){.hours li{grid-template-columns:1fr;gap:4px}}
.try{margin:20px 0 0;padding:16px 18px 16px 24px;background:var(--white);border-radius:var(--radius-md);box-shadow:0 0 0 1.5px var(--line);position:relative;overflow:hidden}
.try::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--red)}
.try b{font-family:var(--font-display);font-weight:400;color:var(--pine);font-size:1.25rem}
.try p{margin:6px 0 0}
.facts{list-style:none;margin:0;padding:0}
.facts li{padding:12px 0;border-top:1.5px solid var(--line)}
.facts b{display:block;font-family:var(--font-display);font-weight:400;font-size:1.8rem;color:var(--red)}
.facts span{display:block;margin-top:2px}
.map{width:100%;height:auto;overflow:visible;max-width:340px}
.map .land{fill:#e8e2d4;stroke:var(--pine);stroke-width:2.5;stroke-linejoin:round}
.map .pin circle{fill:var(--red)}
.map .pin text{font-family:var(--font-display);font-size:32px;fill:var(--ink);paint-order:stroke;stroke:var(--snow);stroke-width:8px;stroke-linejoin:round}
.records p{margin:0 0 12px}
.records__how{font-size:1rem;color:var(--ink-soft)}
.records__go{margin:4px 0 16px}
.records__also{font-size:1rem}
.records__note{font-size:.9375rem;color:var(--ink-soft)}
.sources-list{margin:0;padding-left:20px;color:var(--ink-soft);font-size:1rem}
.sources-list a{color:var(--pine)}
.offer{all:unset;cursor:pointer;font-weight:700;color:var(--pine);text-decoration:underline;min-height:var(--tap-min);display:inline-flex;align-items:center}

/* ---------- notices, print bar, footer ---------- */
.notice{position:fixed;z-index:60;left:50%;top:14px;transform:translateX(-50%);width:min(40rem,calc(100% - 28px));max-height:calc(100svh - 28px);overflow:auto;
  background:var(--snow);color:var(--ink);padding:20px 56px 20px 22px;border-radius:var(--radius-lg);box-shadow:0 0 0 1.5px var(--line),0 24px 60px rgba(0,0,0,.35);font-size:1.125rem}
.notice::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--red);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.notice p{margin:4px 0 0}
.notice__close{all:unset;cursor:pointer;position:absolute;right:8px;top:12px;width:var(--tap-min);height:var(--tap-min);display:grid;place-items:center;font-size:1.2rem}
.notice--confirmed{top:50%;transform:translate(-50%,-50%);padding:28px clamp(18px,4vw,32px)}
.notice__tree{float:left;width:64px;height:94px;margin:0 16px 8px 0}
.notice__title{font-size:clamp(1.6rem,4.4vw,2.1rem);padding-right:24px;margin:4px 0 8px}
.notice__actions{clear:both;display:grid;gap:8px;margin-top:16px}
.notice__actions .btn{width:100%}
.notice__later{all:unset;cursor:pointer;justify-self:start;min-height:var(--tap-min);display:inline-flex;align-items:center;color:var(--pine);font-weight:700;text-decoration:underline}
.notice__state,.confirmed__state,.confirmed__news{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:16px;padding:16px;border-radius:var(--radius-md);background:var(--white);box-shadow:0 0 0 1.5px var(--line)}
.notice__state label,.confirmed__state label{display:grid;gap:6px;font-weight:700;flex:1 1 14rem}
.notice__state p,.confirmed__state p,.confirmed__news p{margin:0}
.confirmed__lede{flex:1 1 100%}
.consent{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.consent input{width:24px;height:24px;flex:none;margin-top:2px;accent-color:var(--pine)}
.foil{color:inherit}
.printbar{position:sticky;top:0;z-index:20;display:flex;justify-content:center;align-items:center;gap:16px;padding:10px;background:var(--pine);color:var(--white)}
.foot{border-top:1.5px solid var(--line);padding:32px 0;font-size:1rem;color:var(--ink-soft)}
.foot a{color:var(--pine)}
.foot__more summary{cursor:pointer;min-height:var(--tap-min);display:inline-flex;align-items:center}
.foot__credits{font-size:.9375rem}
.botcheck{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:1000}

/* ---------- confirm / unsubscribe pages (served by the Worker), privacy, the map page ---------- */
.mailpage{min-height:100vh;display:grid;place-items:center;padding:20px;background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px}
.mailpage__card{position:relative;max-width:34rem;background:var(--snow);color:var(--ink);border-radius:24px;padding:clamp(24px,5vw,40px);padding-top:150px;text-align:center;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.mailpage__card::before{content:"";position:absolute;left:50%;top:22px;width:84px;height:122px;margin-left:-42px;background:url(/art/tree.svg) center/contain no-repeat}
.mailpage__card > img{display:none}
.mailpage__brand{font-family:var(--font-display);color:var(--red);margin:4px 0 6px;font-size:1.2rem}
.mailpage h1{font-size:clamp(1.7rem,5vw,2.3rem);margin-bottom:16px}
.mailpage form{margin:20px 0}
.mailpage .btn{width:100%}
.mailpage__home{font-size:1rem;margin-top:20px}
.mailpage__home a{color:var(--pine);font-weight:700}
.legal{max-width:44rem;padding-top:clamp(28px,6vw,64px);padding-bottom:64px}
.legal h1{font-size:clamp(2.2rem,5vw,3.2rem);margin-bottom:16px}
.legal h2{font-size:1.5rem;margin:32px 0 10px}
.legal a{color:var(--pine);font-weight:700}
.legal__draft{display:inline-block;font-weight:700;color:var(--red);box-shadow:inset 0 0 0 1.5px var(--red);border-radius:var(--radius-pill);padding:2px 12px}
.lanterns-page{background:var(--pine);color:var(--white)}
.lanterns-page .brand{display:inline-flex;align-items:center;gap:10px}
.lanterns-page .brand i{font-style:normal;color:var(--straw-light)}
.hero__flags{width:84px;height:50px;flex:none}
.hero__who{font-size:1rem;color:#cfe0d4}
.lanterns__top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:18px}
.lanterns{padding-top:clamp(24px,5vw,56px);padding-bottom:64px}
.lanterns h1{font-size:clamp(2.4rem,6vw,4.2rem);color:var(--white);max-width:14ch}
.lanterns__lede{font-size:1.25rem;margin:12px 0 24px;max-width:40ch}
.lanterns__cta{margin:24px 0 36px}
.lanterns__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:clamp(24px,4vw,56px)}
.lanterns h2{font-size:1.6rem;color:var(--straw-light);margin-bottom:12px}
.lanterns__list{list-style:none;margin:0;padding:0}
.lanterns__list li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid rgba(255,255,255,.18);min-height:48px}
.lanterns__list a,.lanterns__state{font-weight:700;color:var(--white)}
.lanterns__list span{color:#cfe0d4;font-size:1rem}
.lanterns__list b{margin-left:auto;font-family:var(--font-display);font-weight:400;color:var(--straw-light)}
.lanterns__wait{color:#cfe0d4}
.lanterns__note{margin-top:36px;color:#cfe0d4;font-size:1rem;max-width:60ch}
.lanterns__note a{color:var(--straw-light)}
/* the map panels: night, so the lights read */
.lanterns__map{position:relative;background:var(--night);border-radius:var(--radius-lg);padding:clamp(12px,3vw,32px)}
.lanterns__map svg{display:block;width:100%;height:auto}
.lanterns__map .land{fill:#1b2647;stroke:none}
.land__edge{fill:none;stroke:rgba(242,196,109,.55);stroke-width:2.5;stroke-linejoin:round}
.heat circle{fill:#e9963f}
.lantern{cursor:pointer}
.lantern__glow{fill:var(--window);opacity:0;animation:lglow 1.4s ease-out forwards;animation-delay:var(--d,0ms)}
.lantern__core{fill:var(--window);opacity:0;animation:fadein .6s ease-out forwards;animation-delay:var(--d,0ms)}
.lanterns__empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(30rem,86%);margin:0;text-align:center;
  background:var(--snow);color:var(--ink);border-radius:var(--radius-md);padding:16px 18px}
.ribbon{position:relative;height:24px;margin:6px 0}
.ribbon::before{content:"";position:absolute;left:0;right:0;top:9px;height:6px;background:var(--red)}
.lanterns-home__maps .ribbon{display:none}
.tile rect{fill:#56628e}
.tile text{font-family:var(--font-body);font-weight:700;font-size:20px;fill:#e6ddc9}
.tile--lit rect{fill:hsl(40 88% calc(52% + var(--lvl) * 30%))}
.tile--lit text{fill:#1c1305}
.tile--here rect{stroke:var(--white);stroke-width:4}
@media (max-width:560px){.tile text{display:none}}

/* ---------- the shared night art (the example village, the lights, the card's picture) ---------- */
.win{fill:#1e2849;animation:light 1.4s var(--ease) forwards;animation-delay:var(--d,1s)}
@keyframes light{to{fill:var(--window)}}
.glow{opacity:0;animation:glow 2s ease-out forwards;animation-delay:var(--d,1s)}
@keyframes glow{to{opacity:.4}}
.smoke{fill:none;stroke:#aebbd6;stroke-width:5;stroke-linecap:round;opacity:.35}
.lglow{opacity:0;animation:lglow 1.6s ease-out forwards;animation-delay:var(--d,1s)}
@keyframes lglow{to{opacity:1}}
@keyframes fadein{to{opacity:1}}
.flick{transform-box:fill-box;transform-origin:50% 100%;animation:flick 2.6s ease-in-out infinite}
@keyframes flick{0%,100%{transform:scale(1,1);opacity:1}30%{transform:scale(.9,1.07);opacity:.88}65%{transform:scale(1.06,.95);opacity:1}}
.sparkle,.steam{animation:none}

/* ---------- print: the family booklet ---------- */
body.print-mode .hero,body.print-mode .teaser,body.print-mode .lanterns-home,body.print-mode .story,body.print-mode .notice,body.print-mode .signup,
body.print-mode .keep__actions,body.print-mode .era-ask,body.print-mode .result__change,body.print-mode .result__links,body.print-mode .result__inputs,
body.print-mode .keep__letter label,body.print-mode #kids,body.print-mode #letter-save,body.print-mode .fold > summary span{display:none !important}
body.print-mode .keep__card .keep__preview,body.print-mode .keep__letter .keep__preview{width:100%;max-width:640px}
@media print{
  .hero,.teaser,.printbar,.notice,.signup,.era-ask,.keep__actions,.keep__note,.keep__hint,.story,.lanterns-home,.result__change,.result__links,.result__inputs,
  .keep__letter label,#kids,#letter-save,.fold > summary span,.foot__more{display:none !important}
  html,body{background:#fff;color:#1d1b19;font-size:12pt}
  .fold{border:0}
  .fold > summary{padding:0;break-after:avoid}
  .fold > summary::after{display:none}
  .fold > summary b{display:block;font-family:var(--font-display);font-weight:400;font-size:16pt;margin:14pt 0 6pt;border-bottom:1px solid #b89a5e;padding-bottom:3pt}
  .keep__card{display:block}
  .keep__card .keep__preview,.keep__letter .keep__preview{width:100%;max-width:100%;height:auto;break-inside:avoid}
  .chapter{break-inside:avoid-page}
  #fold-letter{break-before:page}
}

@media (prefers-reduced-motion:reduce){
  .story__screen:not([hidden]) .story__body > *,.relabel .flip,.win,.glow,.lglow,.lantern__glow,.lantern__core,.flick{animation:none}
  .win{fill:var(--window)}.glow{opacity:.4}.lglow,.lantern__core{opacity:1}.lantern__glow{opacity:.3}
  .gift__ribbon,.gift__bow,.gift__tag,.win-sq,.btn{transition:none}
}
.home__status{flex-basis:100%;margin:0;font-weight:700;color:var(--pine);overflow-wrap:anywhere}
.home__status:empty{display:none}
.gate-copy > .q-email__src{margin:-6px 0 0}

/* ---------- small and short screens (QA 2026-10-25) ---------- */
.story__records p{margin:0 0 12px;font-size:1.125rem}
.story__records-go{align-self:flex-start}
@media (max-width:899px){
  /* the bar stays, but slimmer, so the question and its button fit an iPhone SE */
  .story__bar{padding:8px 16px 18px}
  .story__greet{margin-top:2px;font-size:1.0625rem}
  .story__bar::after{left:16px;right:16px;bottom:6px}
  .story__body{padding-top:16px}
  .story.on-email .story__title{font-size:1.6rem}
  .gift{aspect-ratio:5/2}
  .gift__ribbon--v{width:22px}.gift__ribbon--h{height:22px}
  .gift__bow{width:52px;height:32px;margin-left:-26px;top:calc(48% - 20px);left:calc(38% + 11px);border-width:6px}
  .gift__tag{padding:8px 12px;bottom:10%}
  .gift__family{font-size:1.1rem}
  .gift__route{font-size:.875rem}
  .windows{padding:10px 10px 8px}
  .windows__grid{gap:4px}
  .windows__cap{margin-top:6px;font-size:.875rem}
  .story__nav .btn{min-width:0;flex:1}
}
@media (max-width:359px){
  .story__barrow > .free{display:none}
  .story__where{font-size:.9375rem;gap:6px}
  .story__where .flag{width:24px;height:16px}
  .free--top{display:none}
}
/* landscape phones: the bar and the button bar scroll away instead of covering half the screen */
@media (max-height:500px) and (orientation:landscape){
  .story__bar,.story__nav{position:static}
  .story__greet{display:none}
  .gift{max-height:160px}
}

/* ---------- static pages for search and AI answers (scripts/build_seo.mjs) ---------- */
.seo-top{background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px;color:var(--white);position:relative;padding:14px 0 22px}
.seo-top::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:6px;background:var(--icing)}
.seo-top__row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.seo-top .brand{display:inline-flex;align-items:center;gap:10px;white-space:normal}
.seo-top__cta{min-height:48px;font-size:1rem;padding:0 1.2em;white-space:nowrap}
.seo{max-width:760px;padding-top:24px;padding-bottom:48px}
.crumbs{font-size:.9375rem;color:var(--ink-soft);margin-bottom:20px}
.crumbs a{color:var(--pine)}
.seo h1{font-size:clamp(2.1rem,5vw,3.2rem);margin:4px 0 14px}
.seo h2{font-size:clamp(1.5rem,3vw,2rem);margin:36px 0 12px}
.seo h3{font-family:var(--font-body);font-weight:700;font-size:1.1875rem;color:var(--ink);margin:22px 0 6px}
.seo p,.seo li{font-size:1.1875rem;line-height:1.6}
.seo a{color:var(--pine);font-weight:700}
.seo__kicker{margin:0;font-weight:700;font-size:.875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.seo__lede{font-size:1.3125rem !important;line-height:1.5;color:var(--ink)}
.seo .hours{margin:20px 0 0}
.seo__links{list-style:none;margin:0;padding:0;columns:2 260px;column-gap:32px}
.seo__links li{break-inside:avoid;padding:6px 0;font-size:1.0625rem}
.seo__names{list-style:none;margin:0;padding:0;columns:2 280px;column-gap:32px}
.seo__names li{break-inside:avoid;padding:6px 0;font-size:1.0625rem;line-height:1.35}
.seo__names span{display:block;color:var(--ink-soft);font-size:.9375rem}
.seo__counts{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--line)}
.seo__counts li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1.5px solid var(--line)}
.seo__counts b{font-family:var(--font-display);font-weight:400;color:var(--red);font-size:1.4rem}
.seo__note{font-size:.9375rem !important;color:var(--ink-soft)}
.seo__faq h3{margin-top:18px}
.seo-cta{margin:40px 0;padding:24px;border-radius:var(--radius-lg);background-color:var(--pine);background-image:var(--snowdots);background-size:38px 34px,23px 27px;color:var(--white)}
.seo-cta p{color:var(--white)}
.seo-cta__title{font-family:var(--font-display);font-size:1.6rem !important;line-height:1.15;color:var(--straw-light) !important;margin-bottom:8px}
.seo-cta .btn{color:var(--white)}
.seo__sources ol{padding-left:22px}
.seo__sources li{font-size:1rem}
.seo__sources a{font-weight:400}
.foot__links{display:flex;flex-wrap:wrap;gap:6px 22px;margin-bottom:12px}
.foot__links a{color:var(--pine);font-weight:700}
@media (max-width:600px){.seo-top__cta{display:none}.seo-top .brand__name{display:none}}
.nowrap{white-space:nowrap}
