:root{
  --paper:#f8f0e2;
  --surface:#fffaf1;
  --line:#e5d2b8;
  --ink:#2f241e;
  --muted:#817365;
  --gold:#d29a3b;
  --gold-soft:#f5e3bd;
  --wood:#436555;
  --berry:#7d4034;
  --night:#172b4a;
  --shadow:0 16px 38px rgba(82,52,25,.12);
}

html,
body{
  background:#eadfcd;
  background-image:
    radial-gradient(circle at 50% -12%,rgba(255,247,219,.95),transparent 38%),
    linear-gradient(135deg,rgba(125,64,52,.035) 25%,transparent 25%),
    linear-gradient(225deg,rgba(125,64,52,.035) 25%,transparent 25%);
  background-size:auto,22px 22px,22px 22px;
}

body::before{
  opacity:.045;
  background-image:radial-gradient(#705341 .55px,transparent .8px);
  background-size:8px 8px;
}

.shell{
  background:linear-gradient(180deg,#fbf5e9 0%,#f8f0e2 56%,#f3e7d5 100%);
  border-color:rgba(125,64,52,.24);
  box-shadow:18px 0 48px rgba(83,55,33,.10),-18px 0 48px rgba(255,250,240,.48);
}

.topbar,
.top{
  min-height:60px;
  height:60px;
  background:#7d4034;
  border-color:#5e2f27;
  box-shadow:inset 0 -1px 0 rgba(72,31,24,.72);
}

.topbar{padding-inline:18px}
.top{padding-inline:16px}
.topbar .campaign-logo img,
.top-brand img{filter:none}
.topbar .campaign-brand strong,
.top b{color:#fff7e8;text-shadow:0 1px 0 rgba(59,25,20,.32)}
.topbar .campaign-divider{background:rgba(255,247,232,.42)}
.topbar .lang,
.topbar .campaign-language-button{
  border-color:rgba(255,247,232,.35);
  background:#7d4034;
  color:#fff7e8;
  box-shadow:none;
}
.top .bk{
  width:36px;
  height:36px;
  border:1px solid rgba(255,247,232,.34);
  border-radius:12px;
  background:rgba(255,247,232,.09);
  color:#fff7e8;
}

.content{padding:14px 16px 48px}

.season-hero-media,
.couple-story-media{
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(111,67,42,.24);
  border-radius:24px;
  background:#1f3150;
  box-shadow:0 18px 36px rgba(63,40,23,.18);
  isolation:isolate;
}

.season-hero-media{aspect-ratio:16/9}
.season-hero-media img,
.couple-story-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transform:scale(1.015);
  animation:chuseokHeroBreathe 8s ease-out both;
}
.season-hero-media::after,
.couple-story-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 46%,rgba(31,25,22,.55) 100%);
}
.season-hero-media figcaption{
  position:absolute;
  left:15px;
  bottom:12px;
  z-index:2;
  color:#fff8e8;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  text-shadow:0 2px 8px rgba(0,0,0,.42);
}
@keyframes chuseokHeroBreathe{
  from{opacity:.72;transform:scale(1.045)}
  to{opacity:1;transform:scale(1.015)}
}

body.chuseok-landing .hero{
  padding:10px 0 16px;
  text-align:center;
}
body.chuseok-landing .hero .kicker{
  margin:15px 0 10px;
  padding:6px 11px;
  border:1px solid #ead1a0;
  background:#f8e7c2;
  color:#8b5d1d;
}
body.chuseok-landing .hero h1{
  max-width:390px;
  margin:0 auto 9px;
  color:#2d231d;
  font-size:29px;
  line-height:1.2;
  letter-spacing:-1.25px;
  text-wrap:balance;
}
body.chuseok-landing .hero h1 b{color:#a85a36}
body.chuseok-landing .hero>p{
  max-width:340px;
  color:#7c6d60;
  font-size:13px;
  line-height:1.6;
}
.card,
.role-card,
.energy-table-card,
.pair-preview,
.saved-rank-preview,
.member-handoff,
.companion-bridge,
.wish-intro,
.wish-compose,
.wish-personal,
.wish-family,
.reading-summary,
.flowbox,
.lockcard,
.record-card,
.delete-gate-card,
.loadcard{
  border:1px solid var(--line);
  background:rgba(255,250,241,.96);
  box-shadow:var(--shadow);
}

body.chuseok-landing .input-card{
  margin-top:10px;
  padding:17px;
  border-radius:26px;
}
body.chuseok-landing .input-card .field{margin-bottom:10px}
body.chuseok-landing .input-card .field input,
body.chuseok-landing .input-card .field select,
body.chuseok-landing .input-card .gender-choice{
  height:52px;
  border-color:#e8dccd;
  background:#fffdf9;
  color:#40342c;
}
body.chuseok-landing .identity-row{grid-template-columns:minmax(0,1fr) 104px;gap:8px}
body.chuseok-landing .identity-row>input{border-right:1px solid #e8dccd;border-radius:15px}
body.chuseok-landing .gender-choices{gap:6px}
body.chuseok-landing .gender-choice{
  border:1px solid #e8dccd;
  border-radius:14px;
  color:#9a8b7d;
}
body.chuseok-landing .gender-choice+.gender-choice{border-left:1px solid #e8dccd}
body.chuseok-landing .gender-choice.is-selected{
  border-color:#7d4034;
  background:#7d4034;
  color:#fff8e8;
}
body.chuseok-landing .date-wrap .cal-ico{color:#b87931}
body.chuseok-landing .time-toggle{
  height:46px;
  min-height:46px;
  border-color:#dfc99e;
  background:#fffaf1;
  color:#8a6124;
}
body.chuseok-landing .input-card .cta.gold,
.cta,
.history-empty button,
.rank-result button,
.paybar .pbtn{
  border:0;
  background:#36594d;
  color:#fffaf0;
  box-shadow:0 10px 20px rgba(42,80,68,.18);
}
body.chuseok-landing .input-card .cta.gold{height:54px;border-radius:16px}

body.chuseok-landing #result{margin-top:2px}
body.chuseok-landing .backlink{
  margin:2px 0 8px;
  color:#7a685a;
}
body.chuseok-landing .result-eyebrow{
  width:max-content;
  margin:0 auto 12px;
  padding:6px 11px;
  border-radius:999px;
  background:#f3dfb7;
  color:#8c5c1d;
  letter-spacing:.04em;
}
body.chuseok-landing .role-card{
  padding:27px 19px 22px;
  border-radius:28px;
  background:linear-gradient(160deg,#fffdf7 0%,#f9ead2 100%);
}
body.chuseok-landing .role-card::before{
  width:340px;
  height:340px;
  inset:-132px auto auto 50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--element) 12%,#fff7e8),transparent 70%);
}
body.chuseok-landing .role-seal{
  width:138px;
  height:138px;
  margin-bottom:15px;
  border-color:color-mix(in srgb,var(--element) 42%,#e2c58f);
  background:rgba(255,249,235,.72);
  box-shadow:0 0 0 10px color-mix(in srgb,var(--element) 8%,transparent),0 16px 28px rgba(72,45,24,.12);
}
body.chuseok-landing .role-seal img{width:130px;height:130px;filter:drop-shadow(0 10px 14px rgba(50,34,22,.17))}
body.chuseok-landing .role-owner{font-size:12px;color:#9b8062}
body.chuseok-landing .role-card h2{margin-top:7px;font-size:27px}
body.chuseok-landing .role-one-line{max-width:310px;font-size:13.5px}
body.chuseok-landing .role-badge{background:rgba(255,255,255,.58)}
body.chuseok-landing .benefactor-card{background:rgba(255,252,245,.74)}

body.chuseok-landing .energy-table-card,
body.chuseok-landing .pair-preview,
body.chuseok-landing .saved-rank-preview,
body.chuseok-landing .member-handoff{border-radius:26px}
body.chuseok-landing .energy-table{
  background:radial-gradient(circle at 50% 43%,#365848 0,#263f3a 42%,#172a3f 100%);
}
body.chuseok-landing .share-invite{
  border:1px solid rgba(255,229,189,.18);
  border-radius:26px;
  background:linear-gradient(145deg,#8c4b3b,#5f3029 78%);
  box-shadow:0 16px 34px rgba(85,40,31,.19);
}
body.chuseok-landing .share-invite button{background:#f3d99d;color:#4a3123}
body.chuseok-landing .share-invite button.secondary{background:rgba(255,250,240,.07)}

.dasoni-radar-overlay{
  background:rgba(31,37,48,.54);
  backdrop-filter:blur(8px);
}
.dasoni-radar-card{
  border:1px solid #e4cfaa;
  background:linear-gradient(180deg,#fffaf1,#f5e5c9);
  box-shadow:0 24px 70px rgba(49,34,25,.28);
}

body.chuseok-reading .content{padding:16px 18px 32px}
body.chuseok-reading .rhead{padding-top:0}
body.chuseok-reading .rhead-img{
  height:auto;
  aspect-ratio:16/9;
  border:1px solid rgba(111,67,42,.24);
  border-radius:24px;
  background-color:#1f3150;
  background-image:url('/chuseok/chuseok-wish-night-v1.jpg?v=260824a');
  background-position:center 46%;
  box-shadow:0 18px 36px rgba(63,40,23,.18);
  image-rendering:auto;
}
body.chuseok-reading .rhead-img::after{background:linear-gradient(180deg,transparent 48%,rgba(37,24,20,.38))}
body.chuseok-reading .rhead-kick{
  margin-top:14px;
  border:1px solid #ead1a0;
  background:#f8e7c2;
  color:#8b5d1d;
}
body.chuseok-reading .rhead h1{
  max-width:390px;
  margin-top:8px;
  font-size:25px;
  line-height:1.28;
  letter-spacing:-.7px;
  white-space:normal!important;
  overflow:visible!important;
  text-wrap:balance;
}
body.chuseok-reading .basis{margin-top:18px}
body.chuseok-reading .bchip{border-color:#e4d2b2;background:#f6ead2;color:#705c42}
body.chuseok-reading .bchip b{color:#7d4034}
body.chuseok-reading .reading-summary{
  border-left:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(150deg,#fffdf8,#f8e7c8);
}
body.chuseok-reading .reading-summary .summary-label{color:#a45d36}
body.chuseok-reading .reading .mark{
  margin-top:28px;
  padding-left:11px;
  border-left:3px solid #d29a3b;
  color:#7d4034;
}
body.chuseok-reading .reading p{color:#44372f;line-height:1.82}
body.chuseok-reading .flowbox,
body.chuseok-reading .lockcard{border-radius:24px}
body.chuseok-reading .flow-bar{
  clip-path:none;
  border-radius:12px 12px 5px 5px;
  background:linear-gradient(180deg,#f1c96e,#c98738);
  filter:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
  image-rendering:auto;
}
body.chuseok-reading .flow-bar::after{display:none}
body.chuseok-reading .loadcard{border-radius:28px;background:linear-gradient(160deg,#fffaf1,#f4dfb8)}
body.chuseok-reading #dsShareBtn,
body.chuseok-reading #dsSaveBtn,
body.chuseok-reading #dsResumeCta a{border-radius:14px!important}
body.chuseok-reading #dsSaveBtn{background:#7d4034!important}

body.chuseok-couple .shell{padding-inline:18px}
body.chuseok-couple .top{margin-inline:-18px}
body.chuseok-couple .hero{padding:18px 0 8px}
.couple-story-media{aspect-ratio:16/7;margin-bottom:15px}
.couple-story-media img{object-position:center 54%}
body.chuseok-couple .hero .kick{
  display:inline-flex;
  padding:6px 10px;
  border:1px solid #ead1a0;
  border-radius:999px;
  background:#f8e7c2;
  color:#8b5d1d;
}
body.chuseok-couple .hero h1{max-width:390px;font-size:25px;line-height:1.28;letter-spacing:-.8px;text-wrap:balance}
body.chuseok-couple .card{border-radius:24px}
body.chuseok-couple .identity-row{gap:8px;grid-template-columns:minmax(0,1fr) 104px}
body.chuseok-couple .identity-row>input{border-right:1px solid var(--line);border-radius:13px}
body.chuseok-couple .gender-choices{gap:6px}
body.chuseok-couple .gender-choice,
body.chuseok-couple .gender-choice+.gender-choice{border:1px solid var(--line);border-radius:12px}
body.chuseok-couple .gender-choice.is-selected,
body.chuseok-couple .rel-chip.selected{border-color:#7d4034;background:#7d4034;color:#fff8e8}
body.chuseok-couple .pcard,
body.chuseok-couple .rank-result,
body.chuseok-couple .lockcard{border-radius:22px}
body.chuseok-couple .comp{border:1px solid #e0caa5;background:#f4e4c4;color:#654b2d}
body.chuseok-couple .reading .mark{padding-left:10px;border-left:3px solid #d29a3b;color:#7d4034}
body.chuseok-couple .loadcard{background:linear-gradient(160deg,#fffaf1,#f4dfb8)}
body.chuseok-couple #dsSaveBtn{background:#7d4034!important}

@media(max-width:480px){
  .shell{border:0;box-shadow:none}
  .content{padding-inline:14px}
  body.chuseok-landing .hero h1{font-size:28px}
  body.chuseok-reading .rhead h1{font-size:24px}
}

@media(max-width:360px){
  body.chuseok-landing .hero h1{font-size:25px}
  body.chuseok-landing .role-seal{width:124px;height:124px}
  body.chuseok-landing .role-seal img{width:116px;height:116px}
  .couple-story-media{aspect-ratio:16/8}
}

@media(prefers-reduced-motion:reduce){
  .season-hero-media img,
  .couple-story-media img{animation:none;transform:none}
}
