:root{
  --bg:#f6f7f2;
  --panel:#fbfbf8;
  --panel-2:#f0f1ed;
  --text:#202521;
  --muted:#6f766f;
  --line:#d8ddd4;
  --green:#174f3a;
  --green-soft:#e7f0ea;
  --error:#9a3d31;
  --shadow:0 30px 90px rgba(24,38,31,.12);
  --radius:38px;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  min-height:100vh;
  font-family:var(--sans);
  color:var(--text);
  background:
    radial-gradient(circle at 8% 10%, rgba(23,79,58,.10), transparent 30%),
    radial-gradient(circle at 90% 90%, rgba(23,79,58,.07), transparent 34%),
    var(--bg);
}
button{border:none;font:inherit;cursor:pointer;color:inherit}
input{font:inherit;color:inherit}
.page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:56px;
  animation:pageIn .55s ease both;
}
@keyframes pageIn{from{opacity:0;transform:translateY(16px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid rgba(23,79,58,.20);
  border-radius:999px;
  background:rgba(231,240,234,.70);
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:13px;
  font-weight:900;
  margin-bottom:38px;
}
.pill:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);display:block}
.eyebrow{color:var(--green);text-transform:uppercase;font-weight:900;letter-spacing:.22em;font-size:14px;margin-bottom:18px}
.lead{margin:30px auto 0;max-width:760px;color:var(--muted);font-size:clamp(18px,1.45vw,23px);line-height:1.55;font-weight:500}
.primary{min-height:62px;border-radius:20px;background:var(--green);color:#fff;font-weight:900;padding:0 24px;box-shadow:0 18px 36px rgba(23,79,58,.20);transition:transform .18s ease,box-shadow .18s ease}
.primary:hover{transform:translateY(-2px);box-shadow:0 22px 44px rgba(23,79,58,.24)}
.ghost{min-height:54px;border-radius:18px;background:transparent;border:1px solid var(--line);color:var(--muted);font-weight:850;padding:0 20px}
.transition-wipe{position:fixed;inset:0;z-index:10;background:var(--green);transform:translateX(-105%);pointer-events:none}
.transition-wipe.run{animation:wipe 1.05s cubic-bezier(.76,0,.24,1) forwards}
@keyframes wipe{0%{transform:translateX(-105%)}48%{transform:translateX(0)}52%{transform:translateX(0)}100%{transform:translateX(105%)}}

/* 01 CAPTCHA */
.captcha-layout{width:min(1320px,100%);min-height:min(760px,calc(100vh - 112px));display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:72px}
.intro{padding-left:clamp(0px,2vw,36px)}
.intro h1{margin:0;font-family:var(--serif);font-weight:800;letter-spacing:-.055em;line-height:.92;font-size:clamp(76px,8vw,132px);max-width:720px}
.intro p{margin:34px 0 0;max-width:610px;color:var(--muted);font-size:clamp(19px,1.55vw,25px);line-height:1.55;font-weight:500}
.question-card{width:min(590px,100%);justify-self:center;background:rgba(251,251,248,.92);border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);padding:46px;position:relative;overflow:hidden}
.question-card:before{content:"";position:absolute;inset:18px;border:1px solid rgba(23,79,58,.07);border-radius:22px;pointer-events:none}
.question-card h2{margin:0;font-size:clamp(42px,4vw,68px);line-height:.98;letter-spacing:-.06em;font-weight:950}
.hint{margin:22px 0 0;color:var(--muted);font-size:18px;line-height:1.45;font-weight:550}
.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px}
.choice{min-height:58px;border:1px solid var(--line);border-radius:18px;background:var(--panel-2);font-weight:850;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.choice:hover,.choice.selected{transform:translateY(-2px);border-color:rgba(23,79,58,.34);background:#fff;box-shadow:0 14px 28px rgba(24,38,31,.08)}
.choice.selected{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.input-row{display:grid;grid-template-columns:1fr auto;gap:12px;margin-top:18px}
.input-row input,.custom-place input{min-height:62px;border-radius:20px;border:1px solid var(--line);background:#fff;padding:0 18px;outline:none;font-weight:750;width:100%}
.input-row input:focus,.custom-place input:focus{border-color:rgba(23,79,58,.5);box-shadow:0 0 0 4px rgba(23,79,58,.08)}
.message{min-height:28px;margin-top:16px;font-weight:850;color:var(--error)}
.message.ok{color:var(--green)}

/* 02 INVITE */
.invite-card,.place-card,.success-card{width:min(1240px,calc(100vw - 112px));min-height:min(730px,calc(100vh - 112px));background:rgba(251,251,248,.94);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 72px;position:relative}
.invite-card h1,.place-card h1,.success-card h1{margin:0;max-width:980px;font-family:var(--serif);font-weight:800;letter-spacing:-.055em;line-height:.93;font-size:clamp(48px,6.15vw,104px)}
.success-icon{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(23,79,58,.24);background:var(--green-soft);color:var(--green);font-size:52px;margin-bottom:26px}
.actions{width:min(960px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:46px}
.action-card{min-height:126px;border:1px solid var(--line);border-radius:24px;background:var(--panel-2);padding:22px 24px;text-align:center;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.action-card:hover{transform:translateY(-3px);border-color:rgba(23,79,58,.35);background:#fff;box-shadow:0 18px 40px rgba(24,38,31,.10)}
.action-title{display:block;font-weight:900;font-size:22px;margin-bottom:8px;color:var(--text)}
.action-sub{display:block;font-weight:800;font-size:15px;line-height:1.35;color:var(--muted)}

/* 03 PLACE */
.place-card{padding:60px 72px}
.place-card h1{font-size:clamp(58px,7vw,116px)}
.place-grid{width:min(1040px,100%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:34px}
.place-grid-accordion{grid-template-columns:repeat(3,minmax(0,1fr))}
.place-category,.place-category-toggle{border:1px solid var(--line);border-radius:26px;background:var(--panel-2);padding:20px;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.place-category:hover,.place-category-toggle:hover{transform:translateY(-3px);border-color:rgba(23,79,58,.26);background:#fff;box-shadow:0 18px 40px rgba(24,38,31,.08)}
.place-category-toggle.selected{border-color:var(--green);background:var(--green-soft);box-shadow:0 18px 40px rgba(24,38,31,.08)}
.place-title{display:block;font-weight:950;font-size:24px;margin-bottom:8px;color:var(--text)}
.place-sub{display:block;font-weight:750;font-size:15px;line-height:1.35;color:var(--muted)}
.suboption-panel{width:min(1040px,100%);display:none;margin-top:16px;border:1px solid rgba(23,79,58,.16);border-radius:26px;background:rgba(255,255,255,.72);padding:18px 20px;text-align:left;box-shadow:0 18px 40px rgba(24,38,31,.06);animation:panelIn .24s ease both}
.suboption-panel.visible{display:block}
@keyframes panelIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.suboption-panel-title{font-weight:950;color:var(--green);font-size:17px;margin-bottom:12px}
.suboptions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.suboptions.expanded{margin-top:0}
.sub-option{min-height:46px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 18px;font-weight:900;font-size:15px;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.sub-option:hover{transform:translateY(-2px);border-color:rgba(23,79,58,.34);box-shadow:0 10px 24px rgba(24,38,31,.08)}
.sub-option.selected{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.place-option{min-height:126px;border:1px solid var(--line);border-radius:26px;background:var(--panel-2);padding:20px;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.place-option:hover{transform:translateY(-3px);border-color:rgba(23,79,58,.35);background:#fff;box-shadow:0 18px 40px rgba(24,38,31,.10)}
.place-option.selected{border-color:var(--green);background:var(--green-soft)}
.place-option.wide{grid-column:1 / -1}
.custom-place{width:min(1040px,100%);display:none;margin-top:16px}.custom-place.visible{display:block;animation:panelIn .24s ease both}
.next-row{margin-top:26px;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}

@media (max-width:980px){
  .page{padding:22px;align-items:flex-start;min-height:100vh}
  .captcha-layout{min-height:calc(100vh - 44px);grid-template-columns:1fr;gap:28px}
  .intro{padding:0;text-align:center}.intro h1{font-size:clamp(56px,16vw,88px);margin:auto}.intro p{margin-left:auto;margin-right:auto}
  .question-card,.invite-card,.place-card,.success-card{width:100%;min-height:auto;padding:42px 22px;border-radius:28px;margin:auto 0}
  .input-row{grid-template-columns:1fr}.actions,.place-grid{grid-template-columns:1fr}.invite-card h1,.success-card h1,.place-card h1{font-size:clamp(42px,12vw,68px)}
  .place-option.wide{grid-column:auto}
}

/* 04 TIME */
.time-card{
  width:min(1240px,calc(100vw - 112px));
  min-height:min(730px,calc(100vh - 112px));
  background:rgba(251,251,248,.94);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:54px 64px;
  position:relative;
}
.time-card h1{
  margin:0;
  max-width:980px;
  font-family:var(--serif);
  font-weight:800;
  letter-spacing:-.055em;
  line-height:.93;
  font-size:clamp(50px,6.6vw,108px);
}
.calendar-shell{
  width:min(900px,100%);
  margin-top:34px;
  border:1px solid var(--line);
  border-radius:30px;
  background:rgba(255,255,255,.68);
  padding:22px;
  box-shadow:0 18px 44px rgba(24,38,31,.07);
}
.month-tabs{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-bottom:18px;
}
.month-tab{
  min-height:42px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel-2);
  padding:0 18px;
  font-weight:900;
  color:var(--muted);
  transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease;
}
.month-tab:hover{transform:translateY(-2px);border-color:rgba(23,79,58,.34);background:#fff;color:var(--text)}
.month-tab.selected{background:var(--green);border-color:var(--green);color:#fff}
.calendar-head{
  display:grid;
  grid-template-columns:48px 1fr 48px;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.calendar-title{
  font-family:var(--serif);
  font-size:clamp(28px,3vw,44px);
  font-weight:800;
  letter-spacing:-.04em;
  color:var(--text);
}
.calendar-nav{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--panel-2);
  font-size:32px;
  line-height:1;
  color:var(--green);
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
}
.calendar-nav:hover:not(:disabled){transform:translateY(-2px);background:#fff}
.calendar-nav:disabled{opacity:.35;cursor:not-allowed}
.weekdays,.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:8px;
}
.weekdays{
  margin-bottom:8px;
  color:var(--muted);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:950;
}
.weekdays span{padding:8px 0}
.calendar-empty{min-height:54px}
.calendar-day{
  min-height:54px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel-2);
  font-weight:950;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease;
}
.calendar-day:hover:not(:disabled){transform:translateY(-2px);border-color:rgba(23,79,58,.34);background:#fff;box-shadow:0 10px 24px rgba(24,38,31,.08)}
.calendar-day.selected{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 12px 28px rgba(23,79,58,.18)}
.calendar-day:disabled{opacity:.25;cursor:not-allowed;background:#eceee9}
.time-panel{
  width:min(900px,100%);
  display:none;
  margin-top:18px;
  border:1px solid rgba(23,79,58,.16);
  border-radius:30px;
  background:rgba(255,255,255,.72);
  padding:20px;
  text-align:left;
  box-shadow:0 18px 40px rgba(24,38,31,.06);
}
.time-panel.visible{display:block;animation:panelIn .24s ease both}
.time-panel-title{
  font-weight:950;
  color:var(--green);
  font-size:18px;
  margin-bottom:14px;
}
.time-options{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.time-option{
  min-height:48px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  padding:0 18px;
  font-weight:900;
  font-size:15px;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease;
}
.time-option:hover{transform:translateY(-2px);border-color:rgba(23,79,58,.34);box-shadow:0 10px 24px rgba(24,38,31,.08)}
.time-option.selected{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.custom-time{display:none;margin-top:14px}.custom-time.visible{display:block;animation:panelIn .24s ease both}
.custom-time input{
  min-height:58px;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  padding:0 18px;
  outline:none;
  font-weight:750;
  width:100%;
}
.custom-time input:focus,.comment-field:focus{border-color:rgba(23,79,58,.5);box-shadow:0 0 0 4px rgba(23,79,58,.08)}
.comment-field{
  width:100%;
  min-height:96px;
  margin-top:14px;
  border-radius:20px;
  border:1px solid var(--line);
  background:#fff;
  padding:16px 18px;
  outline:none;
  resize:vertical;
  font:inherit;
  color:inherit;
  font-weight:650;
  line-height:1.45;
}

@media (max-width:980px){
  .time-card{width:100%;min-height:auto;padding:42px 22px;border-radius:28px;margin:auto 0}
  .time-card h1{font-size:clamp(42px,12vw,68px)}
  .calendar-shell,.time-panel{padding:16px;border-radius:24px}
  .calendar-head{grid-template-columns:42px 1fr 42px}
  .calendar-nav{width:42px;height:42px;font-size:28px}
  .weekdays,.calendar-grid{gap:6px}
  .calendar-day,.calendar-empty{min-height:44px;border-radius:13px}
}

/* 05 FINAL */
.final-page{
  align-items:center;
}
.final-card{
  width:min(1120px,calc(100vw - 112px));
  min-height:min(700px,calc(100vh - 112px));
  background:rgba(251,251,248,.94);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:70px 72px;
  position:relative;
  overflow:hidden;
}
.final-card:before{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,79,58,.12), transparent 68%);
  top:-180px;
  right:-120px;
  pointer-events:none;
}
.final-card:after{
  content:"";
  position:absolute;
  width:320px;
  height:320px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(23,79,58,.08), transparent 70%);
  bottom:-160px;
  left:-90px;
  pointer-events:none;
}
.final-mark{
  width:92px;
  height:92px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(23,79,58,.24);
  background:var(--green-soft);
  color:var(--green);
  font-size:48px;
  font-weight:900;
  margin-bottom:30px;
  position:relative;
  z-index:1;
}
.final-card h1{
  margin:0;
  max-width:920px;
  font-family:var(--serif);
  font-weight:800;
  letter-spacing:-.055em;
  line-height:.94;
  font-size:clamp(58px,7vw,116px);
  position:relative;
  z-index:1;
}
.final-text{
  margin:34px auto 0;
  max-width:780px;
  color:var(--muted);
  font-size:clamp(21px,1.8vw,30px);
  line-height:1.5;
  font-weight:560;
  position:relative;
  z-index:1;
}
.final-goodbye{
  margin:44px 0 0;
  color:var(--green);
  font-size:clamp(28px,3vw,46px);
  font-weight:900;
  letter-spacing:-.04em;
  position:relative;
  z-index:1;
}

@media (max-width:980px){
  .final-card{width:100%;min-height:calc(100vh - 44px);padding:44px 22px;border-radius:28px;margin:auto 0}
  .final-mark{width:78px;height:78px;font-size:40px;margin-bottom:24px}
  .final-card h1{font-size:clamp(46px,13vw,72px)}
}

/* Visual polish pass: no text or layout content changes */
:root{
  --shadow:0 34px 110px rgba(24,38,31,.13);
  --shadow-soft:0 18px 52px rgba(24,38,31,.08);
  --shadow-selected:0 18px 44px rgba(23,79,58,.16);
}
body{
  background:
    radial-gradient(circle at 10% 8%, rgba(23,79,58,.12), transparent 28%),
    radial-gradient(circle at 88% 18%, rgba(216,221,212,.58), transparent 30%),
    radial-gradient(circle at 78% 92%, rgba(23,79,58,.08), transparent 34%),
    linear-gradient(135deg,#f8f9f5 0%,#f3f5f0 48%,#f7f7f2 100%);
  background-attachment:fixed;
}
.page{padding:clamp(24px,4vw,56px)}
.question-card,.invite-card,.place-card,.success-card,.time-card,.final-card{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.primary,.ghost,.choice,.action-card,.place-category,.place-category-toggle,.place-option,.sub-option,.time-option,.calendar-day,.month-tab,.calendar-nav{
  -webkit-tap-highlight-color:transparent;
}
.choice,.action-card,.place-category,.place-option,.sub-option,.time-option,.calendar-day,.month-tab{
  will-change:transform;
}
.choice:active,.action-card:active,.place-category:active,.place-option:active,.sub-option:active,.time-option:active,.calendar-day:active,.month-tab:active{
  transform:translateY(0) scale(.985);
}

/* Clearer multi-select states */
.choice.selected,.place-category-toggle.selected,.place-option.selected,.sub-option.selected,.time-option.selected{
  position:relative;
  box-shadow:var(--shadow-selected);
}
.place-option.selected,.place-category-toggle.selected{
  padding-right:58px;
}
.place-option.selected::after,.place-category-toggle.selected::after{
  content:"✓";
  position:absolute;
  top:18px;
  right:18px;
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--green);
  color:#fff;
  font-weight:950;
  font-size:17px;
  box-shadow:0 10px 22px rgba(23,79,58,.22);
  animation:checkIn .18s ease both;
}
.sub-option.selected::after,.time-option.selected::after{
  content:" ✓";
  font-weight:950;
}
@keyframes checkIn{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}

/* Page 03 polish */
.place-card{
  justify-content:flex-start;
  padding-top:clamp(42px,5vw,64px);
  padding-bottom:clamp(38px,4vw,56px);
}
.place-grid{
  gap:18px;
}
.place-category,.place-option{
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset;
}
.place-category{
  background:rgba(240,241,237,.78);
}
.place-category:hover,.place-option:hover{
  box-shadow:var(--shadow-soft),0 1px 0 rgba(255,255,255,.8) inset;
}
.suboptions{
  align-items:center;
}
.sub-option{
  background:rgba(255,255,255,.88);
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset;
}
.sub-option.selected{
  background:var(--green);
  color:#fff;
  border-color:var(--green);
}
.place-option.selected{
  background:linear-gradient(135deg,var(--green-soft),#f5f8f4);
}
.custom-place input,.custom-time input,.comment-field,.input-row input{
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.custom-place input:hover,.custom-time input:hover,.comment-field:hover,.input-row input:hover{
  background:#fff;
  border-color:rgba(23,79,58,.28);
}
.next-row{
  position:relative;
  z-index:1;
}

/* Page 04 calendar polish */
.calendar-shell,.time-panel{
  box-shadow:var(--shadow-soft);
}
.calendar-shell{
  background:rgba(255,255,255,.76);
}
.calendar-day{
  position:relative;
  background:rgba(240,241,237,.88);
}
.calendar-day:not(:disabled)::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:12px;
  border:1px solid transparent;
  pointer-events:none;
  transition:border-color .16s ease;
}
.calendar-day:hover:not(:disabled)::before{
  border-color:rgba(23,79,58,.14);
}
.calendar-day.selected{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(23,79,58,.20);
}
.calendar-day.selected::after{
  content:"";
  position:absolute;
  right:7px;
  top:7px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#fff;
  opacity:.95;
}
.month-tab.selected{
  box-shadow:0 12px 24px rgba(23,79,58,.18);
}
.time-panel{
  background:rgba(255,255,255,.80);
}
.time-option.selected{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}

/* Final page subtle depth */
.final-mark{
  animation:finalMark .42s ease both;
}
@keyframes finalMark{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}

@media (max-width:980px){
  body{background-attachment:scroll}
  .page{padding:18px}
  .place-card,.time-card,.final-card,.invite-card,.success-card,.question-card{
    box-shadow:0 22px 70px rgba(24,38,31,.11);
  }
  .place-card{padding-top:34px;padding-bottom:34px}
  .place-grid{gap:12px;margin-top:26px}
  .place-category,.place-option{padding:18px;border-radius:22px}
  .place-title{font-size:22px}
  .suboptions{gap:8px}
  .sub-option,.time-option{min-height:44px;font-size:14px;padding:0 15px}
  .actions{gap:12px;margin-top:34px}
  .action-card{min-height:104px;padding:18px}
}

@media (max-width:560px){
  .options{grid-template-columns:1fr}
  .calendar-shell{margin-top:26px}
  .weekdays,.calendar-grid{gap:5px}
  .calendar-day,.calendar-empty{min-height:40px;border-radius:12px;font-size:14px}
  .month-tabs{gap:8px}
  .month-tab{min-height:40px;padding:0 14px;font-size:14px}
  .calendar-title{font-size:30px}
  .lead{font-size:17px}
}

/* Mini game on final page */
.mini-game{
  width:min(640px,100%);
  aspect-ratio:760/220;
  height:auto;
  max-height:185px;
  margin:26px auto 0;
  position:relative;
  z-index:1;
  border:1px solid rgba(23,79,58,.16);
  border-radius:22px;
  background:rgba(255,255,255,.54);
  box-shadow:0 14px 36px rgba(24,38,31,.07);
  overflow:hidden;
}
.mini-game canvas{
  width:100%;
  height:100%;
  display:block;
  cursor:pointer;
  touch-action:manipulation;
}
@media (max-width:980px){
  .mini-game{width:min(600px,100%);margin-top:24px;border-radius:20px}
}
@media (max-width:560px){
  .mini-game{width:100%;aspect-ratio:760/250;min-height:112px;max-height:128px;margin-top:18px;border-radius:16px}
}
