:root {
  --bg: #0a090d;
  --bg-2: #111015;
  --ink: #f7f2e9;
  --muted: #aaa2b1;
  --line: rgba(255,255,255,.12);
  --hot: #ff5a36;
  --acid: #e7ff6a;
  --violet: #9b87ff;
  --glass: rgba(255,255,255,.055);
  --shadow: 0 30px 100px rgba(0,0,0,.4);
  --radius: 26px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--ink);
  font-family: "Manrope", system-ui, sans-serif;
  overflow-x: hidden;
}
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--acid); color: #111; }

.grain {
  position: fixed; inset: 0; z-index: 99; pointer-events: none; opacity: .13;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
.ambient { position: fixed; width: 42vw; aspect-ratio: 1; border-radius: 50%; filter: blur(120px); opacity: .14; pointer-events:none; }
.ambient-a { background: var(--hot); left: -18vw; top: 10vh; }
.ambient-b { background: var(--violet); right: -17vw; top: 46vh; }

.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: 120px 0; }
.eyebrow { margin: 0 0 18px; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: #c2bbc7; font-weight: 800; }
em { font-family: "Playfair Display", Georgia, serif; font-weight: 700; }

.intro {
  position: fixed; inset: 0; z-index: 1000; background: #08070a; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 28px; transition: opacity .8s ease, visibility .8s ease, transform 1s cubic-bezier(.2,.7,.1,1);
}
.intro.is-hidden { opacity: 0; visibility: hidden; transform: translateY(-4vh) scale(.985); }
.intro__line { width: 1px; height: 74px; background: linear-gradient(transparent, rgba(255,255,255,.6)); margin-bottom: 28px; }
.intro__title { font-size: clamp(48px, 8vw, 110px); line-height: .89; letter-spacing: -.055em; margin: 0; max-width: 980px; }
.intro__title em { color: var(--acid); font-style: italic; }
.intro__copy { color: var(--muted); margin: 24px 0 30px; max-width: 500px; }
.enter { border: 0; border-radius: 999px; padding: 16px 22px 16px 24px; background: var(--ink); color: #0c0b0f; cursor: pointer; font-weight: 800; display: inline-flex; align-items: center; gap: 16px; transition: transform .25s ease; }
.enter:hover { transform: translateY(-3px) rotate(-1deg); }
.enter span { width: 30px; height: 30px; border-radius: 50%; display:grid; place-items:center; background: #111; color:#fff; }
.intro__stamp { position:absolute; right: 6vw; bottom: 6vh; width: 86px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; display:grid; place-items:center; transform: rotate(9deg); font-size: 26px; font-weight: 800; }
.intro__stamp small { display:block; font-size: 8px; letter-spacing:.18em; color:var(--muted); }

.site { opacity: 0; transform: translateY(20px); transition: opacity .8s ease .2s, transform .8s ease .2s; }
.site.is-live { opacity: 1; transform: none; }

.nav { height: 90px; display:flex; align-items:center; justify-content:space-between; border-bottom: 1px solid var(--line); }
.brand { background:none; border:0; padding:8px 6px 8px 0; color:var(--ink); font-weight:800; letter-spacing:-.03em; cursor:pointer; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; touch-action:manipulation; -webkit-user-drag:none; }
.nav__meta { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:13px; }
.dot { width: 4px; height: 4px; border-radius:50%; background:var(--hot); }

.hero { min-height: 760px; display:grid; grid-template-columns: 1.15fr .85fr; align-items:center; gap:56px; padding: 80px 0 110px; }
.hero__title { margin:0; font-size: clamp(58px, 8vw, 112px); line-height:.88; letter-spacing:-.065em; max-width:850px; }
.hero__title em { color:var(--acid); font-style:italic; }
.hero__lead { max-width:690px; font-size:18px; line-height:1.7; color:#c3bdc8; margin:30px 0 0; }
.hero__actions { display:flex; gap:12px; margin-top:36px; flex-wrap:wrap; }
.btn { min-height:52px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:0 20px; border:1px solid var(--line); cursor:pointer; transition:.25s ease; font-weight:700; }
.btn:hover { transform:translateY(-2px); }
.btn--primary { background:var(--ink); color:#0f0e12; border-color:var(--ink); }
.btn--ghost { background:rgba(255,255,255,.03); color:var(--ink); }
.hero__art { position:relative; min-height:500px; display:grid; place-items:center; }
.hero__disc { width:min(70vw, 330px); aspect-ratio:1; border-radius:50%; background: radial-gradient(circle at 38% 35%, #ff8e6c 0, var(--hot) 26%, #8e2814 70%, #2a120d 100%); display:grid; place-items:center; box-shadow:0 0 100px rgba(255,90,54,.24); position:relative; z-index:2; }
.hero__disc span { font-size:118px; line-height:.75; letter-spacing:-.08em; font-weight:800; }
.hero__disc small { position:absolute; bottom:75px; font-size:12px; letter-spacing:.28em; font-weight:800; }
.orbit { position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.orbit--1 { width:390px; height:390px; animation: spin 18s linear infinite; }
.orbit--1::after { content:""; position:absolute; width:14px; height:14px; border-radius:50%; background:var(--acid); top:33px; left:58px; box-shadow:0 0 30px rgba(231,255,106,.8); }
.orbit--2 { width:470px; height:470px; border-style:dashed; opacity:.35; animation:spin 32s linear infinite reverse; }
.hero__micro { position:absolute; right:0; bottom:45px; font-size:11px; line-height:1.35; letter-spacing:.18em; color:var(--muted); text-align:right; }
@keyframes spin { to { transform:rotate(360deg); } }

.ticker { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--acid); color:#111; transform:rotate(-1.1deg); }
.ticker__track { white-space:nowrap; display:flex; align-items:center; gap:28px; width:max-content; padding:14px 0; font-size:14px; font-weight:800; letter-spacing:.08em; animation:ticker 24s linear infinite; }
.ticker i { font-style:normal; }
@keyframes ticker { to { transform:translateX(-50%); } }

.story { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.story h3, .rsvp h3, .vote h3, .finale h3 { margin:0; font-size:clamp(42px, 6vw, 78px); line-height:.95; letter-spacing:-.05em; }
.story h3 em, .rsvp h3 em, .vote h3 em, .finale h3 em { color:var(--hot); font-style:italic; }
.story__text { padding-top:34px; }
.story__text p { margin:0 0 24px; font-size:18px; line-height:1.7; color:#bdb6c2; }

.rsvp__head { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:38px; }
.rsvp__card { padding:28px; }
.glass { background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.035)); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); backdrop-filter: blur(20px); }
.rsvp label { display:block; color:#cbc4cf; margin-bottom:10px; font-size:14px; }
.field-row { display:grid; grid-template-columns:1fr auto; gap:14px; }
.rsvp input { width:100%; min-height:56px; padding:0 18px; border-radius:16px; border:1px solid var(--line); background:#0e0d11; color:var(--ink); outline:none; }
.rsvp input:focus { border-color:rgba(231,255,106,.5); box-shadow:0 0 0 4px rgba(231,255,106,.05); }
.segmented { display:flex; background:#0e0d11; border:1px solid var(--line); border-radius:16px; padding:4px; }
.segmented__btn { background:transparent; color:var(--muted); border:0; border-radius:12px; padding:0 18px; cursor:pointer; font-weight:700; }
.segmented__btn.is-active[data-rsvp="yes"] { background:var(--acid); color:#111; }
.segmented__btn.is-active[data-rsvp="no"] { background:#2b252d; color:#fff; }
.microcopy { color:#7f7885; font-size:12px; margin:14px 0 18px; }
.save-rsvp { border:0; }

.vote__head { display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:end; margin-bottom:40px; }
.vote__head > p { margin:0 0 4px; color:var(--muted); line-height:1.7; max-width:520px; }
.cards { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.card { min-height:520px; border-radius:26px; border:1px solid var(--line); padding:22px; position:relative; overflow:hidden; display:flex; flex-direction:column; background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025)); transition:.3s ease; }
.card:hover { transform:translateY(-6px); border-color:rgba(255,255,255,.23); }
.card::before { content:""; position:absolute; inset:-30% -20% auto; height:55%; background:radial-gradient(circle, var(--card-glow) 0, transparent 68%); opacity:.25; pointer-events:none; }
.card__top { display:flex; justify-content:space-between; align-items:center; position:relative; z-index:1; }
.card__index { font-size:11px; letter-spacing:.18em; color:var(--muted); }
.card__icon { width:48px; height:48px; border-radius:16px; display:grid; place-items:center; background:rgba(255,255,255,.08); font-size:24px; }
.card h4 { margin:120px 0 14px; font-size:38px; line-height:.95; letter-spacing:-.04em; position:relative; z-index:1; }
.card__desc { color:#aaa2ae; line-height:1.65; margin:0 0 20px; position:relative; z-index:1; }
.card__meta { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; margin-bottom:18px; }
.card__meta span { border:1px solid var(--line); border-radius:999px; padding:7px 10px; font-size:11px; color:#c8c1cb; }
.card__vote { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.vote-btn { min-height:42px; border:1px solid var(--line); border-radius:12px; background:#0e0d11; color:#aaa2ae; cursor:pointer; transition:.2s; font-weight:700; font-size:12px; }
.vote-btn:hover { border-color:rgba(255,255,255,.28); color:#fff; }
.vote-btn.is-active[data-value="love"] { background:var(--acid); border-color:var(--acid); color:#111; }
.vote-btn.is-active[data-value="ok"] { background:var(--violet); border-color:var(--violet); color:#111; }
.vote-btn.is-active[data-value="no"] { background:#2e2931; color:#fff; }

.finale__panel { display:grid; grid-template-columns:160px 1fr; gap:40px; padding:44px; align-items:start; }
.finale__number { font-size:120px; line-height:.8; font-weight:800; letter-spacing:-.08em; color:var(--acid); }
.finale p:last-child { color:var(--muted); max-width:650px; line-height:1.7; }

.countdown { text-align:center; }
.countdown__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; border:1px solid var(--line); border-radius:26px; overflow:hidden; background:var(--line); margin-top:28px; }
.countdown__grid div { background:#0d0c10; padding:44px 16px; }
.countdown strong { display:block; font-size:clamp(62px, 9vw, 128px); letter-spacing:-.07em; line-height:.8; }
.countdown span { display:block; color:var(--muted); margin-top:18px; font-size:12px; text-transform:uppercase; letter-spacing:.18em; }

.footer { min-height:180px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto; align-content:center; gap:12px; color:#8e8792; font-size:12px; letter-spacing:.08em; }
.footer small { grid-column:2; text-align:right; color:#5f5963; }

.toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%, 20px); z-index:2000; background:var(--ink); color:#111; padding:12px 16px; border-radius:999px; font-weight:800; font-size:13px; opacity:0; pointer-events:none; transition:.25s ease; box-shadow:var(--shadow); }
.toast.show { opacity:1; transform:translate(-50%, 0); }
.confetti { position:fixed; inset:0; pointer-events:none; z-index:1500; overflow:hidden; }
.confetti i { position:absolute; top:-30px; width:10px; height:18px; border-radius:2px; animation:fall 1.9s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes fall { to { transform:translate3d(var(--x), 110vh, 0) rotate(680deg); opacity:.7; } }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 900px) {
  .section { padding:84px 0; }
  .hero { grid-template-columns:1fr; min-height:auto; padding-top:56px; }
  .hero__art { min-height:390px; }
  .hero__disc { width:250px; }
  .hero__disc span { font-size:92px; }
  .hero__disc small { bottom:55px; }
  .orbit--1 { width:310px; height:310px; }
  .orbit--2 { width:360px; height:360px; }
  .story, .vote__head { grid-template-columns:1fr; gap:30px; }
  .cards { grid-template-columns:1fr; }
  .card { min-height:440px; }
  .card h4 { margin-top:90px; }
  .finale__panel { grid-template-columns:1fr; }
  .finale__number { font-size:74px; }
}

@media (max-width: 620px) {
  .shell { width:min(100% - 24px, 1180px); }
  .nav { height:72px; }
  .nav__meta span:first-child, .nav__meta .dot { display:none; }
  .hero { padding-bottom:80px; }
  .hero__title { font-size:clamp(54px, 16vw, 82px); }
  .hero__lead { font-size:16px; }
  .hero__actions { display:grid; }
  .hero__actions .btn { width:100%; }
  .intro__stamp { display:none; }
  .intro__line { height:48px; }
  .field-row { grid-template-columns:1fr; }
  .segmented__btn { min-height:48px; flex:1; }
  .rsvp__head { display:block; }
  .rsvp__card { padding:18px; }
  .vote__head { display:block; }
  .vote__head > p { margin-top:20px; }
  .finale__panel { padding:24px; }
  .countdown__grid div { padding:30px 10px; }
  .footer { grid-template-columns:1fr; padding:40px 0; }
  .footer small { grid-column:1; text-align:left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
}

/* ===== Activity catalog v2 ===== */
.category-map {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin:0 0 58px;
}
.category-chip {
  min-height:86px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.03);
  transition:.25s ease;
}
.category-chip:hover { transform:translateY(-3px); border-color:rgba(255,255,255,.24); background:rgba(255,255,255,.05); }
.category-chip span {
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--acid);
  color:#111;
  font-size:12px;
  font-weight:900;
}
.category-chip strong { font-size:13px; line-height:1.25; }

.activity-catalog { display:grid; gap:82px; }
.activity-group { scroll-margin-top:24px; }
.activity-group__head {
  display:grid;
  grid-template-columns:72px minmax(0, 760px);
  gap:22px;
  align-items:start;
  margin-bottom:22px;
}
.activity-group__mark {
  width:64px;
  height:64px;
  border:1px solid var(--line);
  border-radius:20px;
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:900;
  color:var(--acid);
  background:rgba(255,255,255,.035);
}
.activity-group__head h4 {
  margin:1px 0 8px;
  font-size:28px;
  letter-spacing:-.035em;
}
.activity-group__head p {
  margin:0;
  color:var(--muted);
  line-height:1.65;
  max-width:720px;
}

.cards--grouped { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
.card--activity {
  min-height:0;
  padding:0;
  background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.022));
}
.card--activity::before { display:none; }
.card__preview {
  min-height:220px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:22px;
  border-bottom:1px solid var(--line);
  isolation:isolate;
}
.card__preview::before,
.card__preview::after {
  content:"";
  position:absolute;
  inset:auto;
  pointer-events:none;
  z-index:-1;
}
.card__preview strong {
  font-size:clamp(42px, 6vw, 76px);
  line-height:.82;
  letter-spacing:-.07em;
  max-width:80%;
}
.card__preview-index {
  position:absolute;
  top:18px;
  left:20px;
  font-size:11px;
  letter-spacing:.18em;
  font-weight:800;
  opacity:.74;
}
.card__preview-icon {
  position:absolute;
  top:18px;
  right:20px;
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.15);
  font-size:22px;
  backdrop-filter:blur(8px);
}
.card__preview i { position:absolute; display:block; border:1px solid rgba(255,255,255,.15); border-radius:50%; }
.card__preview i:nth-of-type(1) { width:170px; height:170px; right:-34px; bottom:-58px; }
.card__preview i:nth-of-type(2) { width:96px; height:96px; right:48px; top:42px; }
.card__preview i:nth-of-type(3) { width:16px; height:16px; right:125px; top:44px; background:rgba(255,255,255,.72); border:0; }
.preview--quest { background:linear-gradient(130deg,#40150e 0%,#111015 48%,#251529 100%); }
.preview--quest::before { width:260px; height:260px; border-radius:50%; background:radial-gradient(circle,#ff5a36 0%,rgba(255,90,54,.08) 58%,transparent 70%); right:-40px; top:-70px; filter:blur(8px); }
.preview--hide { background:linear-gradient(145deg,#08090b,#16121d 55%,#202111); }
.preview--hide::before { width:340px; height:2px; background:var(--acid); box-shadow:0 44px 0 rgba(231,255,106,.45),0 88px 0 rgba(231,255,106,.18); transform:rotate(-16deg); left:-30px; top:84px; }
.preview--fort { background:linear-gradient(130deg,#271a08,#111015 50%,#352b0d); }
.preview--fort::before { width:180px; height:180px; border:28px solid rgba(231,255,106,.16); transform:rotate(22deg); right:-15px; top:-15px; }
.preview--laser { background:linear-gradient(135deg,#071923,#111015 48%,#17112e); }
.preview--laser::before { width:120%; height:1px; background:#9b87ff; left:-10%; top:52%; box-shadow:0 0 18px #9b87ff; transform:rotate(-11deg); }
.preview--show { background:linear-gradient(120deg,#35270b,#171116 52%,#4b1722); }
.preview--show::before { width:220px; height:220px; border-radius:50%; background:conic-gradient(from 30deg,var(--acid),transparent 24%,var(--hot),transparent 58%,var(--violet),transparent 82%); right:-70px; top:-65px; opacity:.55; filter:blur(3px); }
.preview--karaoke { background:linear-gradient(130deg,#2d143b,#111015 45%,#481821); }
.preview--karaoke::before { width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,.08); box-shadow:75px 20px 0 rgba(255,90,54,.18),-40px 95px 0 rgba(155,135,255,.18); right:60px; top:48px; }
.preview--cooking { background:linear-gradient(130deg,#30230d,#12110f 48%,#2b1710); }
.preview--cooking::before { width:210px; height:210px; border-radius:50%; border:34px solid rgba(255,255,255,.09); right:-10px; top:-50px; }

.card__body { padding:22px; display:flex; flex-direction:column; flex:1; }
.card__topline {
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:#7f7885;
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:28px;
}
.card__topline span:last-child { text-align:right; }
.card--activity h5 {
  margin:0 0 14px;
  font-size:36px;
  line-height:.95;
  letter-spacing:-.045em;
}
.card--activity .card__desc { min-height:132px; }
.card__facts {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  margin:4px 0 18px;
}
.card__facts div {
  min-height:66px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:11px 12px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.card__facts div:last-child:nth-child(odd) { grid-column:1 / -1; }
.card__facts span { color:#7f7885; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.card__facts strong { font-size:13px; font-weight:700; }
.card--activity .card__meta { margin-top:0; }
.card--activity .card__vote { margin-top:auto; }

@media (max-width: 900px) {
  .category-map { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .cards--grouped { grid-template-columns:1fr; }
  .card--activity .card__desc { min-height:0; }
}

@media (max-width: 620px) {
  .category-map { grid-template-columns:1fr; margin-bottom:44px; }
  .activity-catalog { gap:64px; }
  .activity-group__head { grid-template-columns:52px 1fr; gap:14px; }
  .activity-group__mark { width:48px; height:48px; border-radius:15px; font-size:18px; }
  .activity-group__head h4 { font-size:23px; }
  .activity-group__head p { font-size:14px; }
  .card__preview { min-height:180px; }
  .card__preview strong { font-size:44px; }
  .card--activity h5 { font-size:32px; }
  .card__facts { grid-template-columns:1fr 1fr; }
  .card__topline { font-size:9px; }
}

/* ===== Optional wishes per activity v3 ===== */
.card__wish {
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-4px);
  transition:max-height .35s ease, opacity .25s ease, transform .3s ease, margin-top .3s ease;
  margin-top:0;
}
.card__wish.is-visible {
  max-height:260px;
  opacity:1;
  transform:none;
  margin-top:14px;
}
.card__wish-head {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:14px;
  margin-bottom:8px;
}
.card__wish-head label {
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  color:#e6e0e8;
}
.card__wish-head > span {
  color:#706a75;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  white-space:nowrap;
}
.card__wish textarea {
  width:100%;
  min-height:86px;
  resize:vertical;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0d0c10;
  color:var(--ink);
  padding:12px 13px;
  font:inherit;
  font-size:13px;
  line-height:1.45;
  outline:none;
  transition:border-color .2s ease, background .2s ease;
}
.card__wish textarea::placeholder { color:#69636e; }
.card__wish textarea:focus {
  border-color:rgba(231,255,106,.55);
  background:#100f13;
}
.card__wish-foot {
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:7px;
  color:#6f6974;
  font-size:10px;
  line-height:1.35;
}
.card__wish-foot strong {
  color:#8f8895;
  font-weight:700;
  white-space:nowrap;
}

@media (max-width: 620px) {
  .card__wish-head { align-items:flex-start; }
  .card__wish-foot > span { max-width:78%; }
}

/* ===== Backend / final plan / Telegram v4 ===== */
.is-hidden-section { display:none !important; }
.final-plan__panel {
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:120px 1fr;
  gap:28px;
  padding:34px;
  border-color:rgba(231,255,106,.28);
}
.final-plan__panel::after {
  content:"";
  position:absolute;
  width:300px;
  height:300px;
  border-radius:50%;
  right:-120px;
  top:-150px;
  background:radial-gradient(circle,rgba(231,255,106,.18),transparent 68%);
  pointer-events:none;
}
.final-plan__label {
  color:var(--acid);
  font-size:12px;
  font-weight:900;
  letter-spacing:.17em;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  border-right:1px solid var(--line);
  padding-right:24px;
}
.final-plan__content h3 { margin:7px 0 24px; font-size:clamp(38px,6vw,70px); line-height:.94; letter-spacing:-.055em; }
.final-plan__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.final-plan__grid div { padding:16px; min-height:78px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:7px; }
.final-plan__grid span { color:#7f7885; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.final-plan__grid strong { font-size:15px; }
.final-plan__note { margin:20px 0 0; color:var(--muted); line-height:1.65; max-width:760px; white-space:pre-line; }
.final-plan__updated { margin-top:18px; color:#756f79; font-size:11px; }
.phase-final .hero__actions .btn--primary::before { content:"План готов · "; }
.notify__panel { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr); gap:34px; padding:30px; align-items:center; }
.notify__panel h3 { margin:7px 0 12px; font-size:clamp(34px,5vw,54px); line-height:.96; letter-spacing:-.05em; }
.notify__panel p:not(.eyebrow) { margin:0; color:var(--muted); line-height:1.6; max-width:680px; }
.notify__action { display:flex; flex-direction:column; align-items:stretch; gap:10px; }
.notify__action .btn { width:100%; justify-content:center; }
.notify__action > span { color:#706a75; font-size:11px; line-height:1.45; }
.btn:disabled { opacity:.48; cursor:not-allowed; transform:none !important; }

@media (max-width: 760px) {
  .final-plan__panel { grid-template-columns:1fr; padding:24px; }
  .final-plan__label { writing-mode:horizontal-tb; transform:none; border-right:0; border-bottom:1px solid var(--line); padding:0 0 14px; }
  .final-plan__grid { grid-template-columns:1fr; }
  .notify__panel { grid-template-columns:1fr; padding:24px; }
}

/* ===== FAQ + meme layer: October 2026 ===== */
.faq__panel {
  position: relative;
  overflow: hidden;
  padding: 34px;
  background:
    radial-gradient(circle at 92% 8%, rgba(231,255,106,.06), transparent 30%),
    #0c0b0f;
}

.faq__panel::after {
  content: "FAQ";
  position: absolute;
  right: 24px;
  top: 10px;
  font-size: clamp(68px, 10vw, 150px);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.08em;
  color: rgba(255,255,255,.025);
  pointer-events: none;
}

.faq__kicker {
  position: relative;
  z-index: 1;
  display: inline-flex;
  margin-bottom: 28px;
  padding: 7px 9px;
  border: 1px solid rgba(231,255,106,.35);
  color: var(--acid);
  font-size: 9px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .16em;
}

.faq__head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 30px;
}

.faq h3 {
  margin: 8px 0 0;
  font-size: clamp(35px, 5.3vw, 62px);
  line-height: .96;
  letter-spacing: -.052em;
}

.faq__intro {
  margin: 0;
  max-width: 390px;
  color: var(--muted);
  line-height: 1.65;
  font-size: 14px;
}

.faq__list {
  position: relative;
  z-index: 1;
  border-top: 1px solid var(--line);
}

.faq__item {
  border-bottom: 1px solid var(--line);
}

.faq__item summary {
  list-style: none;
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) 24px;
  gap: 16px;
  align-items: center;
  padding: 22px 0;
  cursor: pointer;
  user-select: none;
}

.faq__item summary::-webkit-details-marker { display: none; }

.faq__item summary::after {
  content: "+";
  justify-self: end;
  color: var(--acid);
  font-size: 22px;
  font-weight: 500;
  transition: transform .22s ease;
}

.faq__item[open] summary::after { transform: rotate(45deg); }

.faq__item summary span {
  color: var(--acid);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .1em;
}

.faq__item summary strong {
  font-size: clamp(15px, 2vw, 19px);
  line-height: 1.4;
  font-weight: 600;
}

.faq__item p {
  margin: -3px 40px 24px 64px;
  max-width: 820px;
  color: rgba(255,255,255,.68);
  line-height: 1.75;
  font-size: 14px;
}

.faq__note {
  position: relative;
  z-index: 1;
  margin: 22px 0 0;
  max-width: 820px;
  color: #746e79;
  font-size: 10px;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.squirrel-meme {
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
  pointer-events:none;
  overflow:hidden;
}
.squirrel-meme.is-live { display:block; }
.squirrel-meme__animal {
  position:absolute;
  left:12%;
  top:48%;
  font-size:64px;
  line-height:1;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));
  transform:translate(-50%,-50%) rotate(-8deg);
  animation:squirrelGone 1.55s cubic-bezier(.22,.72,.36,1) forwards;
}
.squirrel-meme__caption {
  position:absolute;
  left:50%;
  top:25%;
  transform:translateX(-50%);
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(8,7,10,.86);
  backdrop-filter:blur(10px);
  color:#f3edf5;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  border-radius:999px;
  opacity:0;
  animation:memeCaption 1.45s ease forwards;
}
.squirrel-meme__wind {
  position:absolute;
  inset:0;
  opacity:0;
  animation:windFlash 1.45s ease forwards;
}
.squirrel-meme__wind i {
  position:absolute;
  left:-10%;
  width:55%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  transform:skewX(-20deg);
}
.squirrel-meme__wind i:nth-child(1){top:42%;}
.squirrel-meme__wind i:nth-child(2){top:50%;left:5%;}
.squirrel-meme__wind i:nth-child(3){top:58%;left:-2%;}
@keyframes squirrelGone {
  0% { left:12%; top:48%; transform:translate(-50%,-50%) rotate(-8deg) scale(1); opacity:1; }
  22% { left:18%; top:44%; transform:translate(-50%,-50%) rotate(4deg) scale(1); }
  100% { left:118%; top:23%; transform:translate(-50%,-50%) rotate(810deg) scale(.42); opacity:.05; }
}
@keyframes memeCaption {
  0%,12% { opacity:0; transform:translate(-50%,8px); }
  24%,72% { opacity:1; transform:translate(-50%,0); }
  100% { opacity:0; transform:translate(-50%,-4px); }
}
@keyframes windFlash {
  0% { opacity:0; transform:translateX(-8%); }
  20%,70% { opacity:.8; }
  100% { opacity:0; transform:translateX(45%); }
}

@media (max-width:760px) {
  .faq__panel { padding:24px; }
  .faq__head { grid-template-columns:1fr; gap:18px; }
  .faq__item summary { grid-template-columns:34px minmax(0,1fr) 22px; gap:10px; padding:18px 0; }
  .faq__item p { margin:-2px 26px 20px 44px; }
  .squirrel-meme__animal { font-size:52px; }
  .squirrel-meme__caption { top:20%; max-width:80%; text-align:center; white-space:nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .squirrel-meme__animal { animation:none; left:50%; top:45%; }
  .squirrel-meme__caption { animation:none; opacity:1; }
  .squirrel-meme__wind { display:none; }
}

/* Final catalog preview themes */
.preview--action { background:linear-gradient(135deg,#2a1c08,#111015 48%,#311e12); }
.preview--action::before { width:210px; height:210px; border:24px solid rgba(231,255,106,.14); transform:rotate(32deg); right:-32px; top:-42px; }
.preview--bubble { background:linear-gradient(130deg,#17251c,#101113 52%,#282011); }
.preview--bubble::before { width:190px; height:190px; border-radius:50%; border:2px solid rgba(255,255,255,.32); box-shadow:-70px 42px 0 -18px rgba(231,255,106,.14),55px 60px 0 -26px rgba(255,90,54,.22); right:-20px; top:-44px; }
.preview--curling { background:linear-gradient(135deg,#0d1e2a,#101217 50%,#20252e); }
.preview--curling::before { width:170px; height:170px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.22) 0 16%,rgba(255,90,54,.38) 17% 32%,rgba(255,255,255,.14) 33% 48%,transparent 49%); right:-18px; top:-38px; }
.preview--sim { background:linear-gradient(120deg,#14151b,#111015 45%,#30151c); }
.preview--sim::before { width:125%; height:2px; left:-10%; top:54%; background:linear-gradient(90deg,transparent,var(--hot),var(--acid),transparent); transform:rotate(-13deg); box-shadow:0 0 20px rgba(255,90,54,.45); }
.preview--bowling { background:linear-gradient(135deg,#21131d,#111015 48%,#202333); }
.preview--bowling::before { width:130px; height:130px; border-radius:50%; background:rgba(155,135,255,.18); box-shadow:52px 38px 0 -34px rgba(255,255,255,.55),82px 76px 0 -42px rgba(231,255,106,.48); right:45px; top:25px; }
.preview--aqua { background:linear-gradient(135deg,#09212a,#0f1217 46%,#132b32); }
.preview--aqua::before { width:130%; height:100px; left:-12%; bottom:-60px; border-radius:50%; border:2px solid rgba(255,255,255,.18); box-shadow:0 -26px 0 rgba(155,135,255,.10),0 -52px 0 rgba(255,255,255,.06); }
.preview--spa { background:linear-gradient(130deg,#2a1d16,#11100f 52%,#26251c); }
.preview--spa::before { width:180px; height:180px; border-radius:50%; background:radial-gradient(circle,rgba(231,255,106,.12),transparent 68%); right:-15px; top:-40px; filter:blur(3px); }

/* ===== Required wish for selected activities ===== */
.card__wish.is-required .card__wish-head > span {
  color:#e7ff6a;
}
.card__wish.is-required textarea {
  border-color:rgba(231,255,106,.28);
}
.card__wish.has-error textarea {
  border-color:rgba(255,90,54,.9);
  background:#160d0c;
}
.card__wish.has-error .card__wish-head > span {
  color:#ff7a5c;
}

/* ===== Final toast hierarchy ===== */
.toast {
  max-width:min(560px, calc(100vw - 28px));
  white-space:normal;
  text-align:center;
  border:1px solid transparent;
}
.toast--reaction-love {
  background:var(--acid);
  color:#0a090d;
  border-color:rgba(255,255,255,.24);
}
.toast--reaction-ok {
  background:#f1edf4;
  color:#19161d;
  border-color:rgba(155,135,255,.42);
}
.toast--reaction-no {
  background:var(--hot);
  color:#fff;
  border-color:rgba(255,255,255,.22);
}
.toast--success {
  background:#151b12;
  color:var(--acid);
  border-color:rgba(231,255,106,.52);
  box-shadow:0 18px 50px rgba(0,0,0,.38), 0 0 28px rgba(231,255,106,.08);
}
.toast--warning {
  background:#241d0f;
  color:#ffd979;
  border-color:rgba(255,217,121,.45);
}
.toast--error {
  background:#2b1012;
  color:#ffb1ab;
  border-color:rgba(255,90,54,.58);
}
.toast--special {
  background:#181129;
  color:#d9cfff;
  border-color:rgba(155,135,255,.62);
  box-shadow:0 18px 60px rgba(0,0,0,.45), 0 0 34px rgba(155,135,255,.18);
}
.toast--info {
  background:var(--ink);
  color:#111;
}


/* v12: последовательный сценарий участия -> активности */
.vote-gate { padding:28px; display:grid; gap:8px; border-style:dashed; }
.vote-gate[hidden] { display:none !important; }
.vote-gate span { color:var(--hot); font-size:11px; letter-spacing:.16em; font-weight:800; }
.vote-gate strong { font-size:clamp(22px,3vw,34px); letter-spacing:-.03em; }
.vote-gate p { margin:0; max-width:680px; color:var(--muted); line-height:1.65; }
.vote-gate.is-no span { color:#ff8c7a; }
.vote-content[hidden] { display:none !important; }
.vote-autosave { display:flex; align-items:center; gap:10px; margin:-12px 0 28px; color:var(--muted); font-size:13px; }
.vote-autosave__dot { width:8px; height:8px; border-radius:50%; background:var(--acid); box-shadow:0 0 16px rgba(231,255,106,.45); flex:0 0 auto; }
.vote-autosave.is-saving .vote-autosave__dot { animation:pulse-save .85s ease-in-out infinite alternate; }
.vote-autosave.is-error .vote-autosave__dot { background:#ff6f61; box-shadow:0 0 16px rgba(255,111,97,.4); }
@keyframes pulse-save { from { opacity:.35; transform:scale(.8); } to { opacity:1; transform:scale(1.2); } }

.final-plan__panel--cta .final-plan__content { display:flex; flex-direction:column; align-items:flex-start; }
.final-plan__panel--cta .final-plan__note { margin:0 0 22px; }
.final-plan__panel--cta .btn { margin-top:2px; }


/* v14: visible top-level CTA when final plan is published */
.nav__right { display:flex; align-items:center; gap:18px; }
.nav-final-link { display:inline-flex; align-items:center; gap:8px; min-height:38px; padding:0 14px; border:1px solid rgba(231,255,106,.38); border-radius:999px; color:var(--accent-2, #e7ff6a); text-decoration:none; font-size:10px; font-weight:800; letter-spacing:.11em; transition:.2s ease; }
.nav-final-link[hidden] { display:none !important; }
.nav-final-link:hover { border-color:rgba(231,255,106,.8); background:rgba(231,255,106,.06); }
@media (max-width:700px) {
  .nav__right { gap:9px; }
  .nav-final-link { min-height:34px; padding:0 10px; font-size:9px; letter-spacing:.08em; }
  .phase-final .nav__meta { display:none; }
}

/* ===== v16: phone-first responsive hardening ===== */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--bg);
}
body {
  min-height: 100dvh;
  overscroll-behavior-x: none;
}
img, svg, video, canvas { max-width: 100%; height: auto; }
button, input, textarea, select { min-width: 0; }
.intro {
  min-height: 100dvh;
  padding-top: max(28px, env(safe-area-inset-top));
  padding-right: max(28px, env(safe-area-inset-right));
  padding-bottom: max(28px, env(safe-area-inset-bottom));
  padding-left: max(28px, env(safe-area-inset-left));
}
.shell {
  width: min(1180px, calc(100% - 40px - env(safe-area-inset-left) - env(safe-area-inset-right)));
}
.toast {
  bottom: max(24px, calc(env(safe-area-inset-bottom) + 12px));
}
.hero__title,
.story h3,
.rsvp h3,
.vote h3,
.finale h3,
.faq h3,
.card--activity h5,
.activity-group__head h4 {
  text-wrap: balance;
  overflow-wrap: break-word;
}
.card__desc,
.card__facts strong,
.card__wish textarea,
.faq__item p,
.story__text p,
.vote__head > p,
.notify__panel p,
.finale p {
  overflow-wrap: anywhere;
}

@media (hover: none) and (pointer: coarse) {
  .btn:hover,
  .enter:hover,
  .card:hover,
  .category-chip:hover,
  .nav-final-link:hover { transform: none; }
  .btn, .enter, .segmented__btn, .vote-btn, .category-chip, .faq__item summary { touch-action: manipulation; }
}

@media (max-width: 760px) {
  input, textarea, select { font-size: 16px !important; }
  .section { padding: 76px 0; }
  .nav { min-height: 68px; height: auto; padding: 12px 0; gap: 12px; }
  .nav__right { min-width: 0; }
  .nav__meta { white-space: nowrap; font-size: 12px; }
  .brand { flex: 0 0 auto; }
  .hero { padding-top: 46px; padding-bottom: 72px; gap: 20px; }
  .hero__art { min-height: 340px; }
  .story__text { padding-top: 6px; }
  .rsvp__head { margin-bottom: 26px; }
  .save-rsvp { width: 100%; }
  .vote-gate { padding: 22px; }
  .vote-autosave { margin-top: 0; align-items: flex-start; line-height: 1.45; }
  .category-chip { min-height: 76px; }
  .card__body { padding: 20px; }
  .card__preview { padding: 20px; }
  .card__topline { gap: 8px; }
  .faq__panel { border-radius: 22px; }
  .notify__panel { border-radius: 22px; }
  .finale__panel { border-radius: 22px; }
  .countdown__grid { border-radius: 22px; }
  .toast { width: auto; max-width: calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)); }
  .footer { padding-bottom: max(40px, calc(env(safe-area-inset-bottom) + 24px)); }
}

@media (max-width: 520px) {
  .ticker { transform: none; }
  .shell {
    width: min(1180px, calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));
  }
  .section { padding: 62px 0; }
  .eyebrow { margin-bottom: 12px; font-size: 10px; letter-spacing: .15em; }

  .intro__line { height: 36px; margin-bottom: 20px; }
  .intro__title { font-size: clamp(42px, 14.5vw, 64px); line-height: .9; }
  .intro__copy { margin: 18px 0 22px; font-size: 14px; line-height: 1.55; }
  .enter { width: min(100%, 330px); justify-content: space-between; min-height: 54px; }

  .nav { min-height: 62px; }
  .brand { font-size: 13px; }
  .nav__meta { gap: 7px; font-size: 10px; }
  .nav-final-link { min-height: 34px; padding-inline: 9px; max-width: 190px; white-space: nowrap; }

  .hero { padding-top: 34px; padding-bottom: 54px; }
  .hero__title { font-size: clamp(48px, 15vw, 68px); line-height: .91; letter-spacing: -.055em; }
  .hero__lead { margin-top: 22px; font-size: 15px; line-height: 1.6; }
  .hero__actions { margin-top: 26px; gap: 9px; }
  .hero__art { min-height: 285px; }
  .hero__disc { width: 205px; }
  .hero__disc span { font-size: 76px; }
  .hero__disc small { bottom: 45px; font-size: 10px; }
  .orbit--1 { width: 250px; height: 250px; }
  .orbit--2 { width: 286px; height: 286px; }
  .hero__micro { right: 8px; bottom: 20px; font-size: 9px; }
  .ticker__track { gap: 20px; padding: 11px 0; font-size: 11px; }

  .story { gap: 22px; }
  .story h3, .rsvp h3, .vote h3, .finale h3 { font-size: clamp(36px, 11.5vw, 52px); }
  .story__text p { font-size: 15px; line-height: 1.65; margin-bottom: 18px; }

  .rsvp__card { padding: 16px; border-radius: 20px; }
  .rsvp input { min-height: 52px; }
  .segmented { width: 100%; }
  .segmented__btn { padding-inline: 10px; }
  .microcopy { line-height: 1.45; }

  .vote__head { margin-bottom: 28px; }
  .vote__head > p { font-size: 14px; line-height: 1.6; }
  .vote-gate { padding: 18px; border-radius: 20px; }
  .vote-gate strong { font-size: clamp(20px, 7vw, 28px); }
  .vote-gate p { font-size: 13px; }
  .category-map { grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 36px; }
  .category-chip { min-height: 70px; padding: 12px; gap: 10px; border-radius: 16px; }
  .category-chip span { width: 34px; height: 34px; flex-basis: 34px; }
  .category-chip strong { font-size: 11px; }
  .activity-catalog { gap: 54px; }
  .activity-group__head { grid-template-columns: 44px 1fr; gap: 11px; margin-bottom: 16px; }
  .activity-group__mark { width: 42px; height: 42px; border-radius: 13px; font-size: 16px; }
  .activity-group__head h4 { font-size: 21px; }
  .activity-group__head p { font-size: 13px; line-height: 1.55; }
  .cards--grouped { gap: 14px; }
  .card--activity { border-radius: 22px; }
  .card__preview { min-height: 150px; padding: 17px; }
  .card__preview strong { max-width: 74%; font-size: clamp(36px, 11vw, 46px); }
  .card__preview-icon { width: 42px; height: 42px; border-radius: 13px; font-size: 19px; }
  .card__body { padding: 17px; }
  .card__topline { margin-bottom: 20px; font-size: 8px; letter-spacing: .11em; }
  .card--activity h5 { font-size: clamp(28px, 9vw, 36px); }
  .card__desc { font-size: 14px; line-height: 1.58; }
  .card__facts { grid-template-columns: 1fr; }
  .card__facts div:last-child:nth-child(odd) { grid-column: auto; }
  .card__facts div { min-height: 58px; padding: 10px 11px; }
  .card__vote { gap: 6px; }
  .vote-btn { min-height: 44px; padding: 5px 4px; font-size: 10px; }
  .card__wish textarea { min-height: 96px; }
  .card__wish-head { gap: 8px; }
  .card__wish-head label { font-size: 11px; }
  .card__wish-head > span { font-size: 8px; }
  .card__wish-foot { gap: 8px; }
  .card__wish-foot > span { max-width: 72%; }

  .faq__panel { padding: 18px; }
  .faq__kicker { margin-bottom: 20px; letter-spacing: .11em; }
  .faq__head { margin-bottom: 20px; }
  .faq h3 { font-size: clamp(32px, 10vw, 44px); }
  .faq__intro { font-size: 13px; }
  .faq__item summary { grid-template-columns: 28px minmax(0,1fr) 18px; gap: 8px; padding: 16px 0; }
  .faq__item summary strong { font-size: 14px; }
  .faq__item summary::after { font-size: 19px; }
  .faq__item p { margin: -1px 0 18px 36px; font-size: 13px; line-height: 1.65; }

  .notify__panel { padding: 19px; gap: 22px; }
  .notify__panel h3 { font-size: clamp(31px, 10vw, 43px); }
  .notify__panel p:not(.eyebrow) { font-size: 14px; }
  .finale__panel { padding: 19px; gap: 22px; }
  .finale__number { font-size: 60px; }
  .finale p:last-child { font-size: 14px; }

  .countdown__grid div { padding: 25px 6px; }
  .countdown strong { font-size: clamp(46px, 15vw, 70px); }
  .countdown span { margin-top: 12px; font-size: 9px; letter-spacing: .13em; }
  .footer { min-height: 150px; gap: 9px; font-size: 10px; line-height: 1.5; }

  .squirrel-meme__caption { max-width: calc(100vw - 28px); white-space: normal; line-height: 1.35; }
}

@media (max-width: 380px) {
  .shell { width: min(1180px, calc(100% - 20px - env(safe-area-inset-left) - env(safe-area-inset-right))); }
  .section { padding: 54px 0; }
  .intro { padding-inline: max(16px, env(safe-area-inset-left)); }
  .intro__title { font-size: clamp(40px, 14.2vw, 54px); }
  .hero__title { font-size: clamp(44px, 14.3vw, 58px); }
  .hero__art { min-height: 260px; }
  .hero__disc { width: 186px; }
  .hero__disc span { font-size: 68px; }
  .orbit--1 { width: 226px; height: 226px; }
  .orbit--2 { width: 258px; height: 258px; }
  .category-map { grid-template-columns: 1fr; }
  .category-chip { min-height: 62px; }
  .card__preview { min-height: 138px; }
  .card__body { padding: 15px; }
  .vote-btn { font-size: 9px; }
  .card__wish-foot { flex-direction: column; }
  .card__wish-foot > span { max-width: 100%; }
  .nav-final-link { max-width: 165px; font-size: 8px; }
  .toast { max-width: calc(100vw - 16px); border-radius: 18px; }
}

@media (orientation: landscape) and (max-height: 520px) and (max-width: 950px) {
  .ticker { transform: none; }
  .intro { justify-content: center; padding-block: max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-bottom)); }
  .intro__line, .intro__stamp { display: none; }
  .intro__title { font-size: clamp(38px, 8vw, 60px); }
  .intro__copy { margin: 12px 0 14px; }
  .enter { min-height: 46px; padding-block: 7px; }
  .hero { min-height: 0; padding-block: 34px; }
  .hero__art { display: none; }
  .section { padding: 48px 0; }
}
