/* =========================================================
   Taegyo · Little Beginnings — site styles
   Every colour below comes from the Taegyo logo file:
   plum #593A41 · rose #D0547C · dusty rose #C97483
   coral #EA9195 · petal #EEBBBC
   ========================================================= */

:root{
  /* logo colours */
  --plum:#593A41;
  --rose:#D0547C;
  --dusty:#C97483;
  --coral:#EA9195;
  --petal:#EEBBBC;

  /* derived for readability (same hues, adjusted for contrast) */
  --ink:#3F282E;          /* body text, darker plum            */
  --rose-text:#A8436A;    /* rose for small text: 4.8:1 on ivory */
  --muted:#7A6468;        /* secondary text: 5.1:1 on ivory     */

  /* surfaces */
  --ivory:#FBF7F3;
  --blush:#F8ECEC;        /* petal tint */
  --petal-wash:#FBF1F0;
  --paper:#F6EDE6;        /* notebook paper */
  --line:#EBDCDD;
  --card:#FFFFFF;

  --on-plum:#FFFFFF;
  --shadow:0 1px 2px rgba(89,58,65,.05),0 10px 30px rgba(89,58,65,.07);

  --serif:"Playfair Display","Times New Roman",Georgia,serif;
  --classic:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter","Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --hangul:"Nanum Myeongjo","Noto Serif KR","Apple SD Gothic Neo","Malgun Gothic",serif;

  --fs:100%;
  --radius:4px;
  --wrap:1240px;
  color-scheme:light;
}

/* Night mode — for reading at 2 a.m. */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --plum:#F3E6E8; --ink:#F1E5E7; --rose:#E77E9F; --rose-text:#EC96B0; --dusty:#D98E9B;
    --coral:#EFA3A6; --petal:#8C5F66; --muted:#BCA9AD;
    --ivory:#1C1517; --blush:#2A1F22; --petal-wash:#261C1F; --paper:#271F1D; --line:#3B2E32; --card:#231A1D;
    --on-plum:#1C1517; --shadow:0 1px 2px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --plum:#F3E6E8; --ink:#F1E5E7; --rose:#E77E9F; --rose-text:#EC96B0; --dusty:#D98E9B;
  --coral:#EFA3A6; --petal:#8C5F66; --muted:#BCA9AD;
  --ivory:#1C1517; --blush:#2A1F22; --petal-wash:#261C1F; --paper:#271F1D; --line:#3B2E32; --card:#231A1D;
  --on-plum:#1C1517; --shadow:0 1px 2px rgba(0,0,0,.35);
}

/* ---------- fonts (bundled, SIL Open Font License) ---------- */
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-italic.woff2) format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-latin-400-italic.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/source-sans-3-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-sans-3-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/source-sans-3-latin-700-normal.woff2) format("woff2");}

@font-face{font-family:"Playfair Display";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/playfair-display-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/playfair-display-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/playfair-display-latin-500-italic.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-300-normal.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2");}

/* ---------- base ---------- */
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--fs);-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;padding-inline:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--rose-text);text-underline-offset:3px}
a:hover{color:var(--rose)}
p{margin:0}
h1,h2,h3,h4{font-variant-numeric:lining-nums;font-family:var(--serif);color:var(--plum);font-weight:600;line-height:1.1;margin:0;text-wrap:balance;letter-spacing:.005em}
h1{font-size:clamp(2.5rem,6vw,4.1rem);font-weight:500}
h1 em,h2 em{font-style:italic;color:var(--rose)}
h2{font-size:clamp(1.9rem,3.8vw,2.6rem);font-weight:500}
h3{font-size:1.5rem}
h4{font-family:var(--sans);font-size:1rem;font-weight:700}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--rose);outline-offset:3px;border-radius:8px}
::selection{background:var(--petal);color:var(--plum)}
.wrap{max-width:var(--wrap);margin-inline:auto}
.hangul{font-family:var(--hangul);color:var(--rose);font-weight:700;white-space:nowrap}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;background:var(--plum);color:var(--on-plum);padding:10px 16px;border-radius:999px;z-index:100}
.skip:focus{top:12px}

/* Eyebrow echoes the logo's tracked "KOREAN PRENATAL EDUCATION" line */
.eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--plum)}
.eyebrow b{color:var(--rose);font-weight:700}
.muted{color:var(--muted)}
.small{font-size:.92rem}
.tiny{font-size:.82rem}
.stack{display:grid;gap:12px;align-content:start}
.stack-lg{display:grid;gap:22px;align-content:start}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* hairline with the logo's dash-and-mark motif ( — 태교 — ) */
.motif{display:flex;align-items:center;gap:14px;color:var(--rose)}
.motif::before,.motif::after{content:"";height:2px;background:var(--rose);flex:1;max-width:64px;border-radius:2px}
.motif.center{justify-content:center}

/* ---------- buttons & controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 22px;border-radius:999px;border:1.5px solid var(--plum);background:var(--plum);color:var(--on-plum);font-weight:600;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,transform .15s}
.btn:hover{background:var(--ink);color:var(--on-plum)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--plum)}
.btn.ghost:hover{background:var(--blush)}
.btn.rose{background:var(--rose);border-color:var(--rose);color:#fff}
.btn.rose:hover{background:var(--rose-text);border-color:var(--rose-text)}
.btn.small{min-height:38px;padding:7px 16px;font-size:.92rem}
.linkbtn{background:none;border:0;padding:6px 0;color:var(--rose-text);font-weight:600;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px}
.iconbtn{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--plum);cursor:pointer;font-weight:600}
.iconbtn:hover{border-color:var(--dusty)}
.field{display:grid;gap:6px}
.field>label,.label{font-weight:600;font-size:.92rem;color:var(--plum)}
.input,select.input,textarea.input{width:100%;min-height:46px;border:1.5px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--card);color:var(--ink)}
.input:focus{border-color:var(--dusty);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--petal) 60%,transparent)}
textarea.input{min-height:110px;resize:vertical;line-height:1.55}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--petal);background:var(--card);color:var(--plum);cursor:pointer;font-weight:500;transition:background .15s,border-color .15s}
.chip:hover{border-color:var(--dusty)}
.chip[aria-pressed="true"]{background:var(--plum);border-color:var(--plum);color:var(--on-plum)}
.chip.urgent{border-color:var(--coral)}
.chip.urgent[aria-pressed="true"]{background:var(--rose);border-color:var(--rose);color:#fff}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:999px;overflow:hidden;background:var(--card)}
.seg button{border:0;background:transparent;padding:6px 14px;min-height:36px;cursor:pointer;color:var(--plum)}
.seg button[aria-pressed="true"]{background:var(--plum);color:var(--on-plum)}

/* ---------- header ---------- */
.proto-note{margin-inline:-16px;background:var(--plum);color:var(--on-plum);text-align:center;font-size:.8rem;letter-spacing:.04em;padding:6px 16px}
.site-header{position:sticky;top:0;z-index:40;margin-inline:-16px;padding-inline:16px;background:color-mix(in srgb,var(--ivory) 90%,transparent);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:10px;min-height:72px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;text-decoration:none}
.brand .icon{width:46px;height:auto}
.brand .word{height:30px;width:auto}
[data-theme="dark"] .brand .word{filter:brightness(0) invert(.92)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .brand .word{filter:brightness(0) invert(.92)}}
.nav{display:flex;gap:2px}
.nav a{padding:9px 14px;border-radius:999px;text-decoration:none;color:var(--plum);font-weight:500;font-size:.98rem}
.nav a:hover{background:var(--blush)}
.nav a[aria-current="page"]{background:var(--blush);color:var(--plum);font-weight:700}
.support-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border-radius:999px;background:var(--petal-wash);border:1.5px solid var(--coral);color:var(--plum);text-decoration:none;font-weight:600;font-size:.95rem}
.support-btn svg{color:var(--rose)}
.menu-btn{display:none}
.comfort{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding:12px 0 14px;font-size:.9rem;color:var(--muted)}
.comfort[hidden]{display:none}
@media (max-width:980px){
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--ivory);border-bottom:1px solid var(--line);padding:8px 16px 18px;box-shadow:var(--shadow)}
  .nav.open{display:flex}
  .nav a{padding:13px 14px;font-size:1.05rem}
  .menu-btn{display:inline-grid;padding-inline:14px}
}
@media (max-width:560px){
  .support-btn span{display:none}
  .support-btn{padding:8px 12px}
  .brand .word{height:24px}
  .brand .icon{width:38px}
}

main{padding-block:40px 80px}
section+section{margin-top:72px}

/* ---------- home ---------- */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
@media (max-width:900px){.hero{grid-template-columns:1fr;gap:32px}.checkin-wrap::before{right:-6px;top:-30px;width:130px;height:154px}}
.hero .lede{font-size:1.22rem;color:var(--muted);max-width:36ch;margin-top:18px}
.hero .meaning{display:flex;gap:14px;align-items:baseline;margin-top:26px;padding-top:18px;border-top:1px solid var(--line);max-width:44ch}
.hero .meaning .hangul{font-size:1.7rem;line-height:1}
.pullquote{font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.35;color:var(--plum);border-left:2px solid var(--rose);padding-left:18px;margin-top:26px;max-width:40ch}
.pullquote cite{display:block;font-family:var(--sans);font-style:normal;font-size:.82rem;color:var(--muted);margin-top:8px}

.checkin-wrap{position:relative;isolation:isolate}
.checkin-wrap::before{content:"";position:absolute;inset:-34px -26px auto auto;width:190px;height:224px;background:url(../img/ring.png) center/contain no-repeat;opacity:.55;z-index:-1}
.checkin{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow);display:grid;gap:18px}
.checkin h2{font-size:2rem}
.reply{background:var(--blush);border-radius:16px;padding:18px 20px;display:grid;gap:10px}
.reply h3{font-size:1.35rem}
.reply ul{margin:0;padding-left:1.15rem;display:grid;gap:4px}
.reply .soft{border-top:1px solid color-mix(in srgb,var(--dusty) 35%,transparent);padding-top:10px;font-size:.95rem}
.lock{display:flex;gap:8px;align-items:flex-start;font-size:.84rem;color:var(--muted)}
.lock svg{flex:none;margin-top:3px}

.finder{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;background:var(--blush);border-radius:var(--radius);padding:24px 28px}
.finder form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.finder .field{min-width:200px}
.finder-out{grid-column:1/-1;font-size:.95rem}
@media (max-width:760px){.finder{grid-template-columns:1fr}}

.circles{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.circle{padding:28px 22px;display:grid;gap:10px;align-content:start;border-right:1px solid var(--line)}
.circle:last-child{border-right:0}
.circle .who{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--rose)}
.circle a{font-weight:600;text-decoration:none}
.circle a::after{content:" →"}
@media (max-width:900px){.circles{grid-template-columns:1fr 1fr}.circle:nth-child(2){border-right:0}.circle:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:520px){.circles{grid-template-columns:1fr}.circle{border-right:0;border-bottom:1px solid var(--line)}.circle:last-child{border-bottom:0}}

.duo{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width:800px){.duo{grid-template-columns:1fr}}
.panel{border-radius:var(--radius);padding:28px;display:grid;gap:12px;align-content:start}
.panel.blush{background:var(--blush)}
.panel.paper{background:var(--paper)}
.panel.line{border:1px solid var(--line);background:var(--card)}
.panel.petal{background:var(--petal-wash);border:1.5px solid var(--petal)}

.programme{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center;border:1px solid var(--line);border-radius:26px;padding:32px;background:var(--card)}
.programme ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.programme li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline}
.programme li b{font-variant-numeric:lining-nums;font-family:var(--serif);font-size:1.25rem;color:var(--rose)}
@media (max-width:800px){.programme{grid-template-columns:1fr}}

/* ---------- week ---------- */
.week-top{display:grid;gap:18px}
.week-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.week-strip{display:grid;gap:10px}
.tri-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tri-row .tri-label{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);width:110px;font-weight:600}
.wk{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--plum);font-size:.85rem;font-weight:600;text-decoration:none;display:inline-grid;place-items:center;font-variant-numeric:tabular-nums}
.wk:hover{border-color:var(--dusty)}
.wk[aria-current="page"]{background:var(--rose);border-color:var(--rose);color:#fff}
@media (max-width:640px){.tri-row .tri-label{width:100%}.wk{width:34px;height:34px}}

.week-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center}
@media (max-width:860px){.week-hero{grid-template-columns:1fr;gap:24px}}
.womb{position:relative;width:min(100%,380px);aspect-ratio:553/651;margin-inline:auto}
.womb .ring{position:absolute;inset:0;background:url(../img/ring.png) center/contain no-repeat;z-index:2;pointer-events:none}
.womb .inside{position:absolute;inset:17% 16%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 45% 40%,#FDEDEC 0%,#F6D6D6 55%,#EFC2C3 100%);display:grid;place-items:center;z-index:1}
.womb .inside img{width:100%;height:100%;object-fit:cover}
.womb .placeholder{display:grid;place-items:center;text-align:center;gap:6px;padding:18%;color:#7A4B55}
.womb .placeholder img{width:62%;height:auto;opacity:.85}
.womb .placeholder span{font-size:.8rem;letter-spacing:.06em}
.womb-caption{text-align:center;font-size:.82rem;color:var(--muted);margin-top:8px}
.size-line{font-family:var(--serif);font-size:1.5rem;color:var(--plum)}
.size-line b{color:var(--rose);font-weight:600}
.week-title{display:flex;align-items:flex-end;gap:16px;font-size:inherit}
.big-num{font-family:var(--serif);font-size:clamp(4.5rem,12vw,7.5rem);line-height:.82;color:var(--rose);font-weight:500;font-variant-numeric:lining-nums}
.week-word{font-family:var(--serif);font-size:clamp(1.7rem,4vw,2.4rem);color:var(--plum);line-height:1.1;padding-bottom:6px}
.week-word em{color:var(--rose)}

.week-body{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:start}
@media (max-width:900px){.week-body{grid-template-columns:1fr}}
.block{display:grid;gap:12px;padding:28px 0;border-top:1px solid var(--line)}
.block:first-child{border-top:0;padding-top:0}
.tag{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.tag.feel{color:var(--rose-text)}
.tag.you{color:var(--plum)}
.tag.baby{color:var(--dusty)}
.tag.bond{color:var(--rose-text)}
.tag.people{color:var(--plum)}
.notice{margin:0;padding-left:1.2rem;display:grid;gap:6px}
.notice li::marker{color:var(--rose)}
.source{font-size:.82rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:8px}
.sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:620px){.sizes{grid-template-columns:1fr}}
.size-card{display:grid;gap:4px;text-align:left;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--card);cursor:pointer;color:var(--ink)}
.size-card b{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-text)}
.size-card[aria-pressed="true"]{border-color:var(--rose);background:var(--blush)}
.aside{position:sticky;top:100px;display:grid;gap:18px}
@media (max-width:900px){.aside{position:static}}
.paused-note{background:var(--petal-wash);border:1.5px solid var(--petal);border-radius:var(--radius);padding:24px;display:grid;gap:10px}

/* symptom logger */
.logger{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:grid;gap:14px;box-shadow:var(--shadow)}
.logger h3{font-size:1.45rem}
.chipset{display:flex;flex-wrap:wrap;gap:8px}
.group-label{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-top:4px}
.levels{display:grid;gap:8px}
.level-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:12px;background:var(--blush)}
.alert{border:2px solid var(--rose);background:var(--petal-wash);border-radius:14px;padding:14px 16px;display:grid;gap:6px}
.alert strong{color:var(--rose-text)}
.saved{color:var(--rose-text);font-weight:600;font-size:.92rem}

/* ---------- notebook ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.tabs button{border:0;background:transparent;padding:14px 16px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;min-height:48px}
.tabs button[aria-selected="true"]{color:var(--plum);border-bottom-color:var(--rose)}
.nb{background:var(--paper);border-radius:0 0 var(--radius) var(--radius);padding:28px;display:grid;gap:18px;min-width:0}
.nb.lined{background-image:repeating-linear-gradient(to bottom,transparent 0 33px,color-mix(in srgb,var(--line) 75%,transparent) 33px 34px)}
.prompt{font-family:var(--serif);font-style:italic;font-size:1.45rem;color:var(--plum);line-height:1.3}
.entries{display:grid;gap:10px}
.entry{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;gap:6px}
.entry .meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:var(--blush);color:var(--plum);font-size:.85rem;margin:2px 4px 2px 0}
.pill.lot{background:var(--petal);color:#4A2E34}
.pill.urgent{background:var(--rose);color:#fff}
.dots{display:flex;gap:10px;flex-wrap:wrap}
.dot{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--dusty);background:var(--card);color:var(--plum);font-weight:700;cursor:pointer}
.dot[aria-pressed="true"]{background:var(--dusty);border-color:var(--dusty);color:#fff}
.store-note{display:flex;gap:10px;align-items:flex-start;background:var(--petal-wash);border:1px solid var(--petal);border-radius:14px;padding:12px 16px;font-size:.9rem}
.empty{color:var(--muted);font-style:italic}

/* ---------- circle ---------- */
.circle-tool{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media (max-width:820px){.circle-tool{grid-template-columns:1fr}}
.options{display:grid;gap:8px;border:0;padding:0;margin:0}
.options legend{font-weight:600;color:var(--plum);margin-bottom:8px;font-size:.95rem}
.option{display:flex;gap:12px;align-items:center;padding:13px 16px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer}
.option:has(input:checked){border-color:var(--rose);background:var(--blush)}
.option input{width:20px;height:20px;accent-color:var(--rose)}
.message{background:var(--paper);border-radius:var(--radius);padding:22px;font-family:var(--serif);font-size:1.25rem;line-height:1.45;color:var(--plum);white-space:pre-wrap}

/* ---------- support ---------- */
.support-hero{background:var(--petal-wash);border:1.5px solid var(--petal);border-radius:26px;padding:36px;display:grid;gap:14px;position:relative;overflow:hidden}
.support-hero::after{content:"";position:absolute;right:-30px;bottom:-40px;width:180px;height:212px;background:url(../img/ring.png) center/contain no-repeat;opacity:.5}
.lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.line-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:grid;gap:6px;align-content:start}
.line-card .num{font-family:var(--serif);font-size:2.1rem;font-weight:600;color:var(--plum);font-variant-numeric:tabular-nums;user-select:all;line-height:1.1}
.line-card.urgent{border:2px solid var(--rose)}
.line-card.urgent .num{color:var(--rose)}
.signs{margin:0;padding-left:1.2rem;display:grid;gap:6px}
.review{font-size:.85rem;color:var(--muted);background:var(--paper);border-radius:12px;padding:12px 16px}

/* ---------- doctor summary ---------- */
.doc-sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:32px;display:grid;gap:18px}
.doc-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;border-bottom:2px solid var(--rose);padding-bottom:14px}
.doc-head img{height:44px;width:auto}
.table-wrap{overflow-x:auto}
table.log{width:100%;border-collapse:collapse;font-size:.95rem}
table.log th{text-align:left;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px}
table.log td{border-bottom:1px solid var(--line);padding:10px;vertical-align:top}
table.log td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.write-lines{display:grid;gap:22px;margin-top:6px}
.write-lines span{border-bottom:1px solid var(--line);height:22px}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding-block:40px 32px;display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:start}
.site-footer img{width:190px}
[data-theme="dark"] .site-footer img{background:#FCF8F5;border-radius:12px;padding:10px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .site-footer img{background:#FCF8F5;border-radius:12px;padding:10px}}
.site-footer p{font-size:.9rem;color:var(--muted)}
@media (max-width:640px){.site-footer{grid-template-columns:1fr}}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:no-preference){
  .reply,.message,.alert{animation:rise .35s ease both}
  @keyframes rise{from{transform:translateY(6px);opacity:.5}to{transform:none;opacity:1}}
  .womb .ring{animation:breathe 7s ease-in-out infinite}
  @keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}
}

/* ---------- print (doctor summary) ---------- */
@media print{
  body{background:#fff;color:#000;padding:0;font-size:11pt}
  .site-header,.site-footer,.proto-note,.no-print{display:none!important}
  main{padding:0}
  .doc-sheet{border:0;padding:0}
  a{color:#000}
}

/* =========================================================
   v4 · programme-first homepage, journal sub-menu, promo, invitation
   ========================================================= */
.free-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--petal);color:#4A2E34;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
.subnav{border-top:1px solid var(--line);background:var(--blush);margin-inline:-16px;padding-inline:16px}
.subnav-in{display:flex;align-items:center;gap:4px;overflow-x:auto;min-height:48px;scrollbar-width:none}
.subnav-title{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--rose-text);margin-right:12px;white-space:nowrap}
.subnav a{padding:7px 14px;border-radius:999px;text-decoration:none;color:var(--plum);font-weight:600;font-size:.94rem;white-space:nowrap}
.subnav a[aria-current="page"]{background:var(--card);box-shadow:0 0 0 1.5px var(--petal)}
@media (max-width:560px){.subnav-title{display:none}}

.promo{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 16px 8px 8px;border-radius:999px;background:var(--petal-wash);border:1.5px solid var(--coral);font-size:.92rem;color:var(--plum)}
.promo-label{background:var(--rose);color:#fff;border-radius:999px;padding:3px 12px;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.invite{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:var(--card);border:1.5px solid var(--petal);border-radius:var(--radius);padding:22px 26px;box-shadow:var(--shadow);margin-bottom:28px}
.invite h3{font-size:1.5rem}
@media (max-width:760px){.invite{grid-template-columns:1fr}}

/* image slots: fallback art until the Leonardo image exists */
.slot{position:relative;margin:0;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,var(--blush),var(--petal-wash))}
.slot>img[data-slot]{display:block;width:100%;height:100%;object-fit:cover}
.slot.has-img .slot-fallback{display:none}
.slot-fallback{position:absolute;inset:0;display:grid;place-items:center}
.slot:not(.has-img)>img[data-slot]{position:absolute;opacity:0}

.home-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-top:8px}
.home-hero h1{font-size:clamp(2.6rem,6vw,4.4rem)}
.home-hero .lede{font-size:1.24rem;color:var(--muted);max-width:40ch}
.hero-art{aspect-ratio:4/3.4;width:100%}
.ring-frame{position:relative;width:62%;aspect-ratio:553/651;background:url(../img/ring.png) center/contain no-repeat;display:grid;place-items:center}
.ring-frame img{width:52%;height:auto}
@media (max-width:900px){.home-hero{grid-template-columns:1fr;gap:28px}.hero-art{aspect-ratio:16/10}.ring-frame{width:34%}}
.facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.95rem;color:var(--muted)}
.facts li{display:flex;gap:6px;align-items:center}
.facts b{font-variant-numeric:lining-nums;font-family:var(--serif);font-size:1.25rem;color:var(--rose);font-weight:600}

.trust{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust p{padding:18px 20px;border-right:1px solid var(--line);font-family:var(--serif);font-size:1.2rem;color:var(--plum);line-height:1.3}
.trust p:last-child{border-right:0}
.trust .k{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:4px}
@media (max-width:760px){.trust{grid-template-columns:1fr}.trust p{border-right:0;border-bottom:1px solid var(--line)}.trust p:last-child{border-bottom:0}}

.section-head{display:grid;gap:10px;max-width:62ch}
.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:900px){.modules{grid-template-columns:1fr}}
.module-card{display:grid;gap:10px;align-content:start;grid-template-rows:auto auto auto 1fr auto}
.module-card .slot{aspect-ratio:4/3}
.module-card .num{font-family:var(--serif);font-size:5rem;color:var(--rose);font-variant-numeric:lining-nums;opacity:.85}
.module-card h3{font-size:1.55rem}
.gain{border-top:1px solid var(--line);padding-top:10px;font-size:.95rem;color:var(--plum);font-weight:600}
.gain span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-text);font-weight:700;margin-bottom:2px}

.journal-band{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start;background:var(--blush);border-radius:28px;padding:40px}
@media (max-width:900px){.journal-band{grid-template-columns:1fr;padding:26px}}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ticks li{position:relative;padding-left:30px}
.ticks li::before{content:"";position:absolute;left:0;top:.3em;width:18px;height:18px;border-radius:50%;background:var(--rose) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.finder-inline{display:flex;flex-wrap:wrap;gap:12px;align-items:end;border-top:1px solid color-mix(in srgb,var(--dusty) 30%,transparent);padding-top:20px}
.finder-inline .field{min-width:210px}
.finder-inline .finder-out{flex-basis:100%;color:var(--muted)}
.journal-band .checkin{background:var(--card)}
.journal-band .reply{background:var(--blush)}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.steps li{padding:24px 22px 8px 0;display:grid;gap:8px;align-content:start}
.steps .n{font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--rose);font-variant-numeric:lining-nums}
@media (max-width:760px){.steps{grid-template-columns:1fr}.steps li{border-bottom:1px solid var(--line);padding-bottom:20px}}

.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;font-family:var(--serif);font-size:1.35rem;color:var(--plum);font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-size:1.4rem;color:var(--rose);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 18px;max-width:70ch;color:var(--ink)}

.final-cta{position:relative;text-align:center;display:grid;gap:18px;justify-items:center;padding:56px 20px;border-radius:28px;background:var(--petal-wash);overflow:hidden}
.final-cta h2{position:relative}
.final-ring{position:absolute;width:210px;right:-40px;top:-50px;opacity:.35;pointer-events:none}

.price-box{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:10px;padding:20px 24px;border:1.5px solid var(--petal);border-radius:var(--radius);background:var(--card)}
.price{font-family:var(--serif);font-size:1.9rem;color:var(--plum);font-weight:600;line-height:1.1}

/* =========================================================
   v5 · WARM SOFT-LUXURY LAYER
   Square-cornered controls, Playfair + Inter, calm full-width bands,
   photography slots for the Leonardo image pack.
   ========================================================= */
body{font-size:1.02rem;line-height:1.72;letter-spacing:-.003em}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.012em;color:var(--plum)}
h1{font-size:clamp(2.5rem,5.4vw,4.2rem);line-height:1.06}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem);line-height:1.12}
h3{font-size:1.45rem;line-height:1.2}
h1 em,h2 em,h3 em{font-style:italic;color:var(--rose)}
.lede,.muted.lede{font-weight:400}
.eyebrow{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;font-weight:600;color:var(--rose-text)}
.eyebrow b{color:var(--rose)}
.muted{color:var(--muted)}
main{padding-block:0 0}
section+section{margin-top:0}

/* ---------- buttons: no ovals ---------- */
.btn{border-radius:2px;text-transform:uppercase;letter-spacing:.2em;font-size:.74rem;font-weight:600;padding:17px 26px;min-height:52px;gap:14px}
.btn::after{content:"";width:22px;height:1px;background:currentColor;transition:width .25s}
.btn:hover::after{width:34px}
.btn.small{padding:12px 18px;min-height:42px;font-size:.74rem}
.btn.small::after{width:14px}
.btn.ghost{background:transparent;border:1px solid var(--plum);color:var(--plum)}
.btn.ghost:hover{background:var(--plum);color:var(--on-plum)}
.btn.rose{background:var(--rose);border-color:var(--rose)}
.btn.noline::after{display:none}
.linkbtn{text-decoration:none;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:600;color:var(--plum);border-bottom:1px solid var(--dusty);padding:8px 0 6px;display:inline-block}
.linkbtn:hover{color:var(--rose-text);border-color:var(--rose)}
p .linkbtn,.small .linkbtn{text-transform:none;letter-spacing:0;font-size:inherit;border:0;text-decoration:underline;padding:0;color:var(--rose-text)}
.chip{border-radius:2px;border:1px solid var(--petal);font-size:.92rem;min-height:40px;padding:8px 14px}
.seg{border-radius:2px}
.iconbtn{border-radius:2px;border:1px solid var(--line);background:transparent}
.input,select.input,textarea.input{border-radius:2px}
.panel,.checkin,.logger,.programme,.journal-band,.final-cta,.support-hero,.line-card,.doc-sheet,.invite,.price-box,.paused-note,.book{border-radius:var(--radius)}
.reply,.alert,.store-note,.review,.entry,.size-card,.option,.message,.nb{border-radius:2px}
.nb{border-radius:0 0 2px 2px}
.free-tag{background:none;color:var(--rose);padding:0;margin-left:6px;font-size:.7rem;letter-spacing:.2em;border-radius:0}

/* ---------- header ---------- */
.site-header{background:color-mix(in srgb,var(--ivory) 94%,transparent)}
.bar{min-height:84px;gap:26px}
.brand .word{height:30px}
.nav{gap:30px}
.nav a{background:none!important;padding:8px 0;border-radius:0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--rose);transition:right .3s}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.nav a[aria-current="page"]{font-weight:600}
.support-btn{background:none;border:0;border-radius:0;padding:8px 0;font-size:.76rem;letter-spacing:.06em;color:var(--rose-text)}
.support-btn:hover{color:var(--rose)}
.subnav{background:var(--blush)}
.subnav a{border-radius:0;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:8px 2px;margin-right:22px;box-shadow:none!important;background:none!important;border-bottom:1px solid transparent}
.subnav a[aria-current="page"]{border-bottom-color:var(--rose)}
@media (max-width:980px){.nav{gap:0}.nav a{padding:14px 0;font-size:.8rem}.nav a::after{bottom:8px}}

/* ---------- full-width bands ---------- */
.band{margin-inline:-16px;padding:104px 16px}
.band>.in{max-width:var(--wrap);margin-inline:auto}
.band.blush{background:linear-gradient(180deg,#F8EEEC,#F6E9E8)}
.band.ivory{background:var(--ivory)}
.band.plum{background:var(--plum);color:#FBF7F3}
.band.plum h2,.band.plum h3{color:#FBF7F3}
.band.plum h2 em{color:var(--petal)}
.band.plum .eyebrow{color:var(--petal)}
.band.plum .muted{color:rgba(251,247,243,.78)}
.band.fabric{background:var(--ivory) url(../img/photos/taegyo-ivory-background.webp) center/cover no-repeat}
@media (max-width:760px){.band{padding:64px 16px}}
.section-intro{display:grid;gap:14px;max-width:60ch;margin-bottom:48px}
.section-intro.center{margin-inline:auto;text-align:center;justify-items:center}
.rule{display:flex;align-items:center;gap:16px}
.rule::before{content:"";width:40px;height:1px;background:var(--rose)}

/* ---------- photographs (Leonardo image pack) ---------- */
.photo{position:relative;margin:0;overflow:hidden;border-radius:2px;background:linear-gradient(150deg,#F7ECEA 0%,#EFD9D9 55%,#E8C8CA 100%);isolation:isolate}
.photo img{position:relative;display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.photo.r32{aspect-ratio:3/2}.photo.r169{aspect-ratio:16/9}.photo.r11{aspect-ratio:1/1}.photo.r45{aspect-ratio:4/5}
.photo .ph-label{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#9A6E77;z-index:-1}
.photo .ph-label::before{content:"";position:absolute;width:120px;height:141px;left:50%;top:50%;transform:translate(-50%,-62%);background:url(../img/ring.png) center/contain no-repeat;opacity:.55}
.photo .ph-label span{margin-top:120px}
a:hover .photo img,a:focus-visible .photo img,.photo.zoom:hover img{transform:scale(1.03)}
.photo-frame{position:relative}
.photo-frame::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--petal);z-index:-1;pointer-events:none}
.ribbon-deco{position:absolute;pointer-events:none;width:220px;height:auto;opacity:.9}

/* ---------- homepage photo hero ---------- */
.lux-hero{position:relative;margin-inline:-16px;min-height:clamp(560px,76vh,780px);display:grid;align-items:center;overflow:hidden;background:#F4ECE8}
.lux-hero picture,.lux-hero .hero-img{position:absolute;inset:0}
.lux-hero picture img{width:100%;height:100%;object-fit:cover;object-position:right center}
.lux-hero .hero-img .ph-label{position:absolute;right:8%;top:50%;transform:translateY(-50%);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#9A6E77;text-align:center;display:grid;justify-items:center;gap:14px;z-index:0}
.lux-hero .hero-img .ph-label::before{content:"";width:180px;height:212px;background:url(../img/ring.png) center/contain no-repeat;opacity:.6}
.lux-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(251,247,243,.96) 0%,rgba(251,247,243,.86) 34%,rgba(251,247,243,0) 58%)}
.lux-hero .copy{position:relative;z-index:2;max-width:var(--wrap);width:100%;margin-inline:auto;padding:80px 16px}
.lux-hero .copy>div{max-width:540px;display:grid;gap:24px}
.lux-hero h1{font-size:clamp(2.7rem,5.6vw,4.5rem)}
.lux-hero .lede{font-size:1.14rem;color:#4A3A40;max-width:44ch}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:28px}
.sample-btn{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--plum);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.sample-btn .d{position:relative;width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 8px 20px rgba(89,58,65,.16);flex:none}
.sample-btn .d img{width:32px}
.sample-btn .d::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid rgba(208,84,124,.45)}
.sample-btn:hover{color:var(--rose-text)}
@media (prefers-reduced-motion:no-preference){.sample-btn .d::after{animation:tgwave 2.6s ease-out infinite}@keyframes tgwave{0%{transform:scale(.9);opacity:0}30%{opacity:1}100%{transform:scale(1.28);opacity:0}}}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px 26px;padding-top:18px;border-top:1px solid rgba(89,58,65,.12);font-size:.8rem;letter-spacing:.06em;color:var(--muted)}
.hero-facts b{color:var(--plum);font-weight:600}
@media (max-width:860px){
  .lux-hero{min-height:0;display:block;background:var(--ivory)}
  .lux-hero::before{display:none}
  .lux-hero picture,.lux-hero .hero-img{position:relative;display:block;aspect-ratio:4/5;background:#F4ECE8}
  .lux-hero .copy{padding:36px 16px 40px}
  .lux-hero .hero-img .ph-label{right:50%;transform:translate(50%,-50%)}
}

/* ---------- split layouts ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}
.split.rev>:first-child{order:2}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:40px}.split.rev>:first-child{order:0}}
.acc{border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 0;font-family:var(--serif);font-size:1.25rem;color:var(--plum)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";width:12px;height:12px;border-right:1px solid var(--rose);border-bottom:1px solid var(--rose);transform:rotate(45deg) translate(-3px,-3px);transition:transform .25s;flex:none}
.acc details[open] summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
.acc details p{margin:0 0 18px;color:var(--ink);font-weight:400;max-width:56ch}

/* ---------- module cards with photos ---------- */
.mods{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
@media (max-width:980px){.mods{grid-template-columns:1fr;gap:48px}}
.mod-card{display:grid;gap:14px;align-content:start;text-decoration:none;color:inherit}
.mod-card .num{font-family:var(--serif);font-style:italic;color:var(--rose);font-size:1.1rem}
.mod-card h3{font-size:1.5rem}
.mod-card .gain{border-top:1px solid var(--line);padding-top:12px;font-size:.92rem}
.mod-card details summary{cursor:pointer;list-style:none;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--plum);border-bottom:1px solid var(--dusty);display:inline-block;padding-bottom:6px}
.mod-card details summary::-webkit-details-marker{display:none}
.mod-card details ul{margin:14px 0 0;padding-left:1.1rem;display:grid;gap:4px;font-size:.92rem;font-weight:400}
.mod-card details ul li::marker{color:var(--rose)}

/* ---------- learning facts ---------- */
.facts4{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.facts4>div{padding:26px 22px 8px 0;display:grid;gap:6px;align-content:start}
.facts4 b{font-family:var(--serif);font-size:1.9rem;font-weight:500;color:var(--rose);line-height:1;font-variant-numeric:lining-nums}
.facts4 span{font-size:.92rem;font-weight:400;color:var(--muted)}
@media (max-width:760px){.facts4{grid-template-columns:1fr 1fr}}

/* ---------- small act of care ---------- */
.act{display:grid;gap:16px;background:var(--card);border:1px solid var(--line);padding:30px;border-radius:var(--radius)}
.act .act-text{font-family:var(--serif);font-size:1.5rem;line-height:1.3;color:var(--plum);min-height:2.6em}
.act .done{font-size:.9rem;color:var(--rose-text)}

/* ---------- reveal on scroll (content stays visible if JS is off) ---------- */
@media (prefers-reduced-motion:no-preference){
  .js-reveal .rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
  .js-reveal .rv.in{opacity:1;transform:none}
  .lux-hero .copy>div{animation:tgRise .7s ease both}
  .lux-hero picture img{animation:tgSettle 1.2s ease both}
  @keyframes tgRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  @keyframes tgSettle{from{transform:scale(1.03)}to{transform:none}}
}
.trust{margin-top:0}
.faq summary{font-family:var(--serif)}
.final-cta{border-radius:0}
.trust p,.facts4 b,.hero-facts,.big-num,.stat,.year{font-variant-numeric:lining-nums}
body{font-variant-numeric:lining-nums}

main.wrap{padding-block:56px 110px}
main.wrap>section+section,main.wrap>section+div,main.wrap>div+section{margin-top:72px}
.wk-in{display:grid;justify-items:center;gap:2px;color:var(--plum);text-align:center}
.wk-in .wk-l{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--rose-text)}
.wk-in .wk-n{font-family:var(--serif);font-size:clamp(4.5rem,11vw,6.5rem);line-height:.95;color:var(--rose);font-weight:500}
.wk-in .wk-t{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.page-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
@media (max-width:900px){.page-intro{grid-template-columns:1fr;gap:28px}}

.has-photo .ph-label{display:none}
.lux-hero .hero-img.has-photo .ph-label,.photo.has-photo .ph-label{display:none}

/* =========================================================
   v6 · DAWN & DUSK
   Warmer, lower-key light: peach-rose dawn bands, plum twilight bands,
   golden-hour warmth on photographs. Text contrast kept at AA or better.
   ========================================================= */
:root{ --ivory:#F6EEE8; --dawn-1:#F7E7DF; --dawn-2:#F1DAD6; --dawn-3:#EACBCB; --tw-1:#3E2A2F; --tw-2:#593A41; --tw-3:#7E5361; --glow:#F9D9C2; }
body{background:var(--ivory)}
.site-header{background:rgba(246,238,232,.9)}
.subnav{background:#F1E1DC}

/* dawn: soft sunrise, peach into rose */
.band.ivory{background:
  radial-gradient(ellipse 60% 55% at 100% 0%, rgba(249,217,194,.55), transparent 70%),
  linear-gradient(180deg,#F7EFE9 0%,#F4E9E3 100%)}
.band.blush,.band.dawn{background:
  radial-gradient(ellipse 70% 60% at 15% 0%, rgba(249,217,194,.75), transparent 70%),
  linear-gradient(180deg,var(--dawn-1) 0%,var(--dawn-2) 60%,var(--dawn-3) 100%)}

/* twilight: evening plum into mauve, a low warm glow on the horizon */
.band.twilight{color:#F6EEE8;background:
  radial-gradient(ellipse 55% 45% at 85% 100%, rgba(234,145,149,.35), transparent 70%),
  radial-gradient(ellipse 40% 35% at 10% 0%, rgba(249,217,194,.12), transparent 70%),
  linear-gradient(165deg,var(--tw-1) 0%,var(--tw-2) 50%,var(--tw-3) 100%)}
.band.twilight h2,.band.twilight h3{color:#FBF4EF}
.band.twilight h2 em,.band.twilight h3 em{color:var(--petal)}
.band.twilight .eyebrow{color:var(--petal)}
.band.twilight .rule::before{background:var(--petal)}
.band.twilight .muted,.band.twilight .lede{color:rgba(246,238,232,.82)}
.band.twilight .facts4{border-top-color:rgba(246,238,232,.2)}
.band.twilight .facts4 b{color:var(--petal)}
.band.twilight .facts4 span{color:rgba(246,238,232,.78)}
.band.twilight .faq summary,.band.twilight details summary{color:#FBF4EF}
.band.twilight.faq details,.band.twilight .faq details{border-color:rgba(246,238,232,.18)}
.band.twilight .faq details:first-of-type{border-top-color:rgba(246,238,232,.18)}
.band.twilight .faq details p{color:rgba(246,238,232,.86)}
.band.twilight .faq summary::after{color:var(--petal)}
.band.twilight a:not(.btn){color:var(--petal)}
.band.twilight .btn{background:#F6EEE8;border-color:#F6EEE8;color:var(--plum)}
.band.twilight .btn:hover{background:#fff}
.band.twilight .linkbtn{color:#F6EEE8;border-color:var(--petal)}
.band.twilight .photo{box-shadow:0 30px 60px rgba(20,10,14,.35)}

/* dusk: the closing section, fabric under a warm evening veil */
.band.fabric.dusk{position:relative;color:#F6EEE8;background:
  linear-gradient(170deg,rgba(62,42,47,.86) 0%,rgba(89,58,65,.78) 55%,rgba(150,95,105,.62) 100%),
  url(../img/photos/taegyo-ivory-background.webp) center/cover no-repeat, var(--tw-2)}
.band.dusk h2{color:#FBF4EF}.band.dusk h2 em{color:var(--petal)}
.band.dusk .eyebrow{color:var(--petal)}
.band.dusk .muted{color:rgba(246,238,232,.8)}
.band.dusk a:not(.btn){color:var(--petal)}
.band.dusk .btn{background:#F6EEE8;border-color:#F6EEE8;color:var(--plum)}
.band.dusk .linkbtn{color:#F6EEE8;border-color:var(--petal)}
.band.dusk .ribbon-deco{opacity:.95;filter:drop-shadow(0 20px 30px rgba(0,0,0,.35))}

/* hero at golden hour */
.lux-hero{background:#EFE2DA}
.lux-hero::before{background:
  linear-gradient(90deg,rgba(246,236,229,.97) 0%,rgba(246,236,229,.88) 32%,rgba(246,236,229,0) 58%)}
.lux-hero .hero-img::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:
   radial-gradient(ellipse 60% 70% at 95% 10%, rgba(249,205,170,.30), transparent 70%),
   linear-gradient(180deg,rgba(255,226,200,.10) 0%,rgba(120,70,85,.16) 100%);
  mix-blend-mode:multiply}
@media (max-width:860px){.lux-hero .hero-img::after{background:linear-gradient(180deg,rgba(255,226,200,.1),rgba(120,70,85,.14))}}

/* golden-hour warmth on every photograph */
.photo img,.lux-hero picture img{filter:sepia(.07) saturate(1.04) brightness(.97) contrast(1.02)}

/* cards sit warm, not stark white */
:root{--card:#FBF6F2}
.checkin,.logger,.panel.line,.act,.entry,.line-card,.doc-sheet,.guide{background:#FBF6F2}
.trust{background:transparent}
.trust p{border-color:rgba(89,58,65,.12)}

/* v6.1 · warm ivory first: champagne dawn, twilight only as two accents */
:root{--ivory:#F8F2EC;--muted:#6E5A5E}
body{background:var(--ivory)}
.site-header{background:rgba(248,242,236,.92)}
.subnav{background:#F2E8E1}
.band.ivory{background:
  radial-gradient(ellipse 55% 50% at 100% 0%, rgba(250,222,200,.40), transparent 70%),
  linear-gradient(180deg,#F9F4EE 0%,#F6EEE7 100%)}
.band.blush,.band.dawn{background:
  radial-gradient(ellipse 65% 55% at 12% 0%, rgba(250,220,196,.55), transparent 70%),
  radial-gradient(ellipse 50% 45% at 100% 100%, rgba(238,187,188,.22), transparent 70%),
  linear-gradient(180deg,#F6EDE5 0%,#F3E6DE 100%)}
.lux-hero{background:#F2E8E0}
.lux-hero::before{background:linear-gradient(90deg,rgba(248,242,236,.97) 0%,rgba(248,242,236,.88) 32%,rgba(248,242,236,0) 58%)}
.checkin,.logger,.panel.line,.act,.entry,.line-card,.doc-sheet,.guide{background:#FDFAF6;border-color:#EFE3DC}
.panel.blush{background:#F3E7E0}
.trust p{border-color:rgba(89,58,65,.1)}
.mod .body{align-items:start}
.mod .body ul{align-content:start}
.week-title{font-size:clamp(2.2rem,4.6vw,3.2rem)!important;display:block}

/* v6.2 · proportional sizing on laptops: text scales with the screen width
   between 900px and 1440px, so a zoomed Windows laptop looks like the full design */
@media (min-width:900px){ html{font-size:calc(clamp(14px,1.111vw,16px) * var(--fsx,1))} }

/* =========================================================
   v8 · FULL-WIDTH PHOTO BANNERS for inner pages
   --img: photo · data-side: where the text sits (left/right)
   The ivory gradient is strongest behind the text and clears over the people.
   ========================================================= */
.page-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-top:-56px;
  min-height:clamp(480px,68vh,680px);display:grid;align-items:center;overflow:hidden;
  background-color:#EFE3DB;background-position:var(--pos,center);background-size:cover;background-repeat:no-repeat}
.page-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(248,242,236,0) 72%,var(--ivory) 100%),
    radial-gradient(ellipse 50% 60% at var(--glow-x,90%) 0%,rgba(249,213,186,.28),transparent 70%),
    linear-gradient(90deg,rgba(248,242,236,.97) 0%,rgba(248,242,236,.92) 28%,rgba(248,242,236,.55) 44%,rgba(248,242,236,.08) 60%,rgba(248,242,236,0) 70%)}
.page-hero[data-side="right"]::before{--glow-x:10%;background:
    linear-gradient(180deg,rgba(248,242,236,0) 72%,var(--ivory) 100%),
    radial-gradient(ellipse 50% 60% at 10% 0%,rgba(249,213,186,.28),transparent 70%),
    linear-gradient(270deg,rgba(248,242,236,.97) 0%,rgba(248,242,236,.92) 28%,rgba(248,242,236,.55) 44%,rgba(248,242,236,.08) 60%,rgba(248,242,236,0) 70%)}
.page-hero[data-tone="soft"]::before{background:
    linear-gradient(180deg,rgba(248,242,236,0) 70%,var(--ivory) 100%),
    linear-gradient(90deg,rgba(248,242,236,.9) 0%,rgba(248,242,236,.7) 40%,rgba(248,242,236,0) 75%)}
.page-hero>.in{position:relative;z-index:1;width:100%;max-width:var(--wrap);margin-inline:auto;padding:88px 32px;display:grid;grid-template-columns:1fr 1fr}
.page-hero .copy{display:grid;gap:20px;align-content:start;max-width:540px}
.page-hero[data-side="right"] .copy{grid-column:2;justify-self:end}
.page-hero h1{font-size:clamp(2.4rem,4.6vw,3.7rem);line-height:1.08}
.page-hero .lede{font-size:1.12rem;color:#4A3A40;max-width:46ch}
.page-hero .price-box{background:rgba(253,250,246,.9);backdrop-filter:blur(6px)}
@media (max-width:860px){
  .page-hero{min-height:0;align-items:start;background-color:var(--ivory)}
  .page-hero::before,.page-hero[data-side="right"]::before,.page-hero[data-tone="soft"]::before{background:linear-gradient(180deg,rgba(248,242,236,0) 0,rgba(248,242,236,0) 38vw,var(--ivory) 62vw)}
  .page-hero>.in{grid-template-columns:1fr;padding:56vw 16px 36px}
  .page-hero[data-side="right"] .copy{grid-column:1;justify-self:start}
}
@media (max-width:860px){.page-hero{background-size:auto 66vw;background-position:var(--pos-m,center) 0}
  .site-header .subnav-in{justify-content:flex-start}}

/* 1800 book section: fabric background, gradient toward the text */
.book{background:
  linear-gradient(90deg,rgba(246,237,229,.97) 0%,rgba(246,237,229,.9) 50%,rgba(246,237,229,.35) 100%),
  url(../img/photos/bg-fabric.webp) right center / cover no-repeat !important;border-radius:4px}
/* v8.1 · banners: photo anchored away from the text, sized to height; ivory fills the rest */
@media (min-width:861px){
  .page-hero{background-size:auto 100%;background-position:right center}
  .page-hero[data-side="right"]{background-position:left center}
  .page-hero[data-tone="soft"]{background-size:cover;background-position:right center}
}
main.wrap>.page-hero,main.wrap>div+.page-hero{margin-top:-56px}

.site-header{padding-inline:16px}

/* v9 · content from the Baby Angels prenatal page */
.four{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(89,58,65,.14)}
.four>div{padding:30px 26px 10px 0;display:grid;gap:10px;align-content:start}
.four>div+div{padding-left:26px;border-left:1px solid rgba(89,58,65,.1)}
.four h3{font-size:1.3rem}
.four p{font-size:.95rem;font-weight:400;color:var(--muted)}
.nos{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin-top:40px;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--plum)}
.nos span{display:inline-flex;align-items:center;gap:10px}
.nos span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rose)}
@media (max-width:900px){.four{grid-template-columns:1fr 1fr}.four>div:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:560px){.four{grid-template-columns:1fr}.four>div,.four>div+div{padding:22px 0 6px;border-left:0;border-bottom:1px solid rgba(89,58,65,.1)}}

.timeline{list-style:none;margin:64px auto 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);max-width:900px;position:relative}
.timeline::before{content:"";position:absolute;left:12.5%;right:12.5%;top:9px;height:1px;background:linear-gradient(90deg,var(--petal),var(--rose),var(--dusty))}
.timeline li{position:relative;display:grid;justify-items:center;gap:4px;text-align:center;padding-top:30px}
.timeline li::before{content:"";position:absolute;top:3px;width:13px;height:13px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--rose)}
.timeline li.live::before{background:var(--rose)}
.timeline span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-text);font-weight:600}
.timeline b{font-family:var(--serif);font-size:1.35rem;font-weight:500;color:var(--plum)}
.timeline i{font-size:.85rem;color:var(--muted)}
.begins{text-align:center;margin-top:26px;font-size:.95rem;color:var(--muted)}
.begins b{color:var(--plum);font-weight:600}
@media (max-width:640px){.timeline{grid-template-columns:1fr 1fr;row-gap:28px}.timeline::before{display:none}}

.research{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.research article{background:#FDFAF6;border:1px solid #EFE3DC;border-radius:4px;padding:32px 30px;display:grid;gap:12px;align-content:start}
.research .n{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--rose)}
.research h3{font-size:1.4rem}
.research p{font-weight:400;color:var(--muted)}
@media (max-width:900px){.research{grid-template-columns:1fr}}

/* v10 · instructor profile with read-more */
.instructor{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start;margin-top:88px;padding-top:72px;border-top:1px solid var(--line)}
.ins-photo{margin:0;position:relative}
.ins-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:2px;filter:sepia(.06) saturate(1.02)}
.ins-photo::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--petal);z-index:-1}
.ins-copy{display:grid;gap:16px;max-width:62ch}
.ins-copy h2{font-size:clamp(2rem,3.8vw,2.9rem)}
.ins-role{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--muted);margin-top:-6px}
.ins-copy>p:not(.eyebrow):not(.ins-role){font-weight:400;color:var(--ink)}
.ins-facts{list-style:none;margin:8px 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ins-facts li{display:grid;gap:2px}
.ins-facts b{font-family:var(--serif);font-size:1.6rem;font-weight:500;color:var(--rose)}
.ins-facts span{font-size:.82rem;color:var(--muted)}
.readmore{border-top:1px solid var(--line);padding-top:6px}
.readmore summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:12px;padding:12px 0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--plum);border-bottom:1px solid var(--dusty)}
.readmore summary::-webkit-details-marker{display:none}
.readmore summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--rose);border-bottom:1.5px solid var(--rose);transform:rotate(45deg) translateY(-3px);transition:transform .25s}
.readmore[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.readmore .less,.readmore[open] .more{display:none}
.readmore[open] .less{display:inline}
.readmore .story{display:grid;grid-template-columns:180px 1fr;gap:28px;align-items:start;padding-top:22px}
.readmore .story p{font-weight:400;color:var(--ink)}
.ins-family{margin:0}.ins-family img{width:100%;height:auto;border-radius:2px}
@media (prefers-reduced-motion:no-preference){.readmore[open] .story{animation:tgRise .4s ease both}}
@media (max-width:860px){.instructor{grid-template-columns:1fr;gap:36px}.ins-photo{max-width:340px}.readmore .story{grid-template-columns:1fr}.ins-family{max-width:220px}}

.ins-strip{display:flex;align-items:center;gap:16px;width:max-content;max-width:100%;margin:28px auto 0;padding:10px 22px 10px 10px;background:#FDFAF6;border:1px solid #EFE3DC;border-radius:2px;text-decoration:none;color:var(--plum)}
.ins-strip img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 20%}
.ins-strip span{display:grid;font-family:var(--serif);font-size:1.15rem;line-height:1.2}
.ins-strip small{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ins-strip em{font-style:normal;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--rose-text);border-left:1px solid var(--line);padding-left:16px}
.ins-strip:hover em{color:var(--rose)}
@media (max-width:480px){.ins-strip em{display:none}}

/* v11 · language switch + member button */
.member-btn{display:inline-flex;align-items:center;height:40px;padding:0 18px;border:1px solid var(--plum);border-radius:2px;color:var(--plum);text-decoration:none;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;white-space:nowrap;flex:none}
.member-btn:hover,.member-btn[aria-current="page"]{background:var(--plum);color:#FBF7F2}
@media (min-width:981px){.nav{gap:24px}.bar{gap:18px}}
@media (max-width:1180px) and (min-width:981px){.support-btn span{display:none}.nav a{letter-spacing:.16em}}
@media (max-width:560px){.member-btn{padding:0 10px;height:34px;font-size:.7rem;letter-spacing:.12em}.bar{gap:8px}}
.lang-note{background:var(--plum);color:#F6EEE8;text-align:center;font-size:.78rem;letter-spacing:.04em;padding:7px 16px;margin:0 0 0 calc(50% - 50vw);width:100vw;position:relative;z-index:5}
html[lang=zh-Hans] body{font-family:var(--sans),"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif}

/* =========================================================
   v12 · MEMBERS: account (sign up / log in), dashboard, lesson player
   Square corners, warm ivory, plum lines.
   ========================================================= */
.preview-note{font-size:.78rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:12px;margin-top:18px}
.preview-note .linkbtn{font-size:.78rem;padding:0;border:0;text-decoration:underline;text-transform:none;letter-spacing:0;color:var(--rose-text)}
.form-msg{min-height:1.2em;font-size:.86rem;color:var(--rose-text);margin:0}
.check{display:flex;gap:10px;align-items:flex-start;line-height:1.5;color:var(--ink)}
.check input{margin-top:.28em;accent-color:var(--rose);flex:none;width:16px;height:16px}

/* sign up / log in */
.auth{display:grid;grid-template-columns:1.05fr .95fr;min-height:640px;margin:8px 0 40px;border:1px solid #EFE3DC;background:#FDFAF6}
.auth-art{position:relative;background-size:cover;background-position:70% center;display:flex;align-items:flex-end;min-height:360px}
.auth-art::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(89,58,65,0) 30%,rgba(89,58,65,.78) 100%)}
.auth-art-copy{position:relative;padding:44px 44px 48px;color:#FBF3EE;display:grid;gap:16px;max-width:520px}
.auth-art-copy .eyebrow{color:#F3C9CF}
.auth-quote{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;font-style:italic;color:#FFF}
.auth-art .ticks li{color:#F6EAE6;font-size:.95rem;font-weight:400}
.auth-card{padding:44px clamp(24px,4vw,56px);display:grid;align-content:start;gap:8px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:22px}
.auth-tabs button{background:none;border:0;padding:14px 0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.auth-tabs button[aria-selected="true"]{color:var(--plum);border-bottom-color:var(--rose)}
.auth-form{display:grid;gap:16px}
.auth-form h1{font-size:clamp(1.9rem,3vw,2.4rem)}
.auth-form .btn{justify-self:start}
@media (max-width:860px){.auth{grid-template-columns:1fr;min-height:0}.auth-art{min-height:300px}.auth-art-copy{padding:28px 20px}.auth-card{padding:28px 20px}}

/* dashboard */
.dash{padding:0 0 40px;display:grid;gap:32px}
.page-hero[hidden],.dash[hidden]{display:none}
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid var(--line)}
.dash-head h1{font-size:clamp(2.2rem,4vw,3.2rem)}
.dash-head h1 em{color:var(--rose);font-style:italic}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.dash-card{background:#FDFAF6;border:1px solid #EFE3DC;border-radius:2px;padding:28px;display:grid;gap:12px;align-content:start}
.dash-card.feature{background:linear-gradient(160deg,#FDF7F3,#F6E9E6);border-color:var(--petal)}
.dash-card h2{font-size:1.9rem}.dash-card h3{font-size:1.3rem}
.dash-card .btn{justify-self:start}
.details{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0;font-size:.92rem}
.details dt{color:var(--muted);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding-top:.2em}
.details dd{margin:0;color:var(--ink);word-break:break-word}
@media (max-width:600px){.dash-grid{grid-template-columns:1fr}}

.prog-wrap{display:grid;gap:8px;max-width:420px}
.prog-bar{height:4px;background:rgba(89,58,65,.12);border-radius:2px;overflow:hidden}
.prog-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--petal),var(--rose));transition:width .5s ease}

/* lesson player */
.gate{text-align:center;display:grid;gap:14px;justify-items:center;padding:64px 20px 80px;max-width:620px;margin:0 auto}
.classroom{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:40px;align-items:start;padding:8px 0 40px}
.player{position:relative;aspect-ratio:16/9;background:#2E2024;border-radius:2px;overflow:hidden;box-shadow:0 18px 50px rgba(89,58,65,.18)}
.player video{position:absolute;inset:0;width:100%;height:100%;background:#000}
.player-cover{position:absolute;inset:0;display:grid;place-items:center}
.player-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.player-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(46,32,36,.55),rgba(46,32,36,.82))}
.cover-msg{position:relative;z-index:1;text-align:center;color:#FBF3EE;display:grid;gap:12px;justify-items:center;padding:24px;max-width:480px}
.cover-msg h3{color:#fff;font-size:clamp(1.3rem,2.4vw,1.8rem)}
.cover-msg p{font-weight:400;font-size:.95rem}
.cover-msg .eyebrow{color:#F3C9CF}
.cover-msg .linkbtn{color:#fff;border-color:var(--coral)}
.play-ring{width:62px;height:62px;border:1.5px solid rgba(255,255,255,.7);border-radius:50%;position:relative}
.play-ring::after{content:"";position:absolute;left:24px;top:19px;border-left:18px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.lesson-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;padding:24px 0 18px;border-bottom:1px solid var(--line)}
.lesson-head h2{font-size:clamp(1.5rem,2.6vw,2.1rem)}
.lesson-head .btn[disabled]{opacity:.45;pointer-events:none}
.lesson-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line)}
.lesson-tabs button{background:none;border:0;padding:14px 0;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.lesson-tabs button[aria-selected="true"]{color:var(--plum);border-bottom-color:var(--rose)}
.lesson-panel{padding:22px 0;display:grid;gap:12px;max-width:68ch}
.lesson-panel p{font-weight:400}
.transcript{max-height:360px;overflow:auto;display:grid;gap:10px;padding-right:10px}

.chapters{position:sticky;top:96px;display:grid;gap:18px;max-height:calc(100vh - 120px);overflow:auto;padding-right:4px}
.chap-mod{display:grid;gap:18px}
.chap-group{background:#FDFAF6;border:1px solid #EFE3DC;border-radius:2px;padding:16px 16px 10px}
.chap-mod-title{display:flex;justify-content:space-between;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--rose-text);margin:0}
.chap-mod-title em{font-style:normal;color:var(--muted);letter-spacing:.08em}
.chap-mod-name{font-family:var(--serif);font-size:1.08rem;color:var(--plum);margin:4px 0 8px}
.chap-group ol{list-style:none;margin:0;padding:0}
.chap{width:100%;display:grid;grid-template-columns:28px 1fr 18px;gap:10px;align-items:center;text-align:left;background:none;border:0;border-top:1px solid rgba(89,58,65,.08);padding:11px 4px;cursor:pointer;color:var(--ink);font-size:.9rem;line-height:1.35}
.chap .n{font-family:var(--serif);font-style:italic;color:var(--dusty)}
.chap .i{color:var(--muted);width:16px;height:16px}.chap .i svg{width:16px;height:16px;display:block}
.chap:hover{background:var(--petal-wash)}
.chap.is-done .i{color:var(--rose)}
.chap.is-locked{color:var(--muted)}
.chap.is-current{background:var(--blush);box-shadow:inset 2px 0 0 var(--rose)}
.chap.is-current .t{color:var(--plum);font-weight:600}
.qa-card{border:1px solid var(--petal);border-radius:2px;padding:18px;display:grid;gap:6px;background:linear-gradient(160deg,#FDF7F3,#F6E9E6)}
@media (max-width:980px){.classroom{grid-template-columns:1fr}.chapters{position:static;max-height:none;overflow:visible}}

/* programme page: sample video */
.sample-video{position:relative;display:block;aspect-ratio:16/9;border-radius:2px;overflow:hidden;background:#2E2024;text-decoration:none;color:#fff}
.sample-video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sample-video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,32,36,.1),rgba(46,32,36,.7))}
.sample-video .cap{position:absolute;left:24px;right:24px;bottom:20px;z-index:1;display:flex;align-items:center;gap:16px}
.sample-video .play-ring{flex:none;width:52px;height:52px}
.sample-video .play-ring::after{left:20px;top:15px;border-left-width:15px;border-top-width:11px;border-bottom-width:11px}
.sample-video b{font-family:var(--serif);font-weight:500;font-size:1.25rem;display:block}
.sample-video small{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#F3C9CF}

/* =========================================================
   v13 · JOURNAL PDF on Taegyo letterhead (doctor.html)
   Same sheet on screen and in print. Print → "Save as PDF".
   ========================================================= */
.doc-controls{margin-top:8px;gap:18px}
.doc-form{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.doc-include{border:1px solid #EFE3DC;border-radius:2px;padding:14px 18px;display:flex;flex-wrap:wrap;gap:10px 26px;margin:0;background:#FDFAF6}
.doc-include legend{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--rose-text);padding:0 6px}

.lh-sheet{position:relative;overflow:hidden;max-width:860px;margin:44px auto 0;background:#FFFDFB;color:#3F282E;border:1px solid #EFE3DC;
  box-shadow:0 1px 2px rgba(89,58,65,.05),0 24px 60px rgba(89,58,65,.12);padding:56px 64px 44px;display:grid;gap:30px;font-size:.95rem;line-height:1.55}
.lh-sheet::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--petal),var(--rose) 45%,var(--dusty))}
.lh-mark{position:absolute;right:-60px;top:190px;width:340px;opacity:.06;pointer-events:none;filter:saturate(.8)}
.lh{display:grid;gap:18px;position:relative}
.lh-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.lh-brand{display:grid;gap:8px}
.lh-brand img{width:150px;height:auto}
.lh-tag{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#7A6468;font-weight:600;display:flex;align-items:center;gap:10px}
.lh-ko{font-family:var(--hangul);font-size:.95rem;letter-spacing:.1em;color:#D0547C;text-transform:none}
.lh-doc{display:grid;justify-items:end;text-align:right;gap:2px}
.lh-kind{font-family:var(--serif);font-size:1.9rem;font-weight:500;color:#593A41;line-height:1.1}
.lh-sub{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#A8436A;font-weight:600}
.lh-rule{display:grid;grid-template-columns:3fr 1.2fr .6fr;gap:5px;height:3px}
.lh-rule i:nth-child(1){background:#593A41}.lh-rule i:nth-child(2){background:#D0547C}.lh-rule i:nth-child(3){background:#EEBBBC}
.lh-who{display:grid;grid-template-columns:repeat(5,auto);gap:10px 26px;margin:0;justify-content:space-between}
.lh-who dt{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#7A6468;font-weight:600}
.lh-who dd{margin:2px 0 0;font-family:var(--serif);font-size:1.02rem;color:#593A41}
.lh-sec{display:grid;gap:12px;position:relative;break-inside:auto}
.lh-sec h2{font-size:1.35rem;color:#593A41;display:flex;align-items:baseline;gap:14px;padding-bottom:8px;border-bottom:1px solid #EBDCDD;break-after:avoid}
.lh-sec h2 .num{font-family:var(--serif);font-style:italic;color:#D0547C;font-size:1.05rem;min-width:1.6em}
.lh-hint{font-size:.8rem;color:#7A6468;margin:-4px 0 0}
.lh-table{width:100%;border-collapse:collapse;font-size:.88rem}
.lh-table th{text-align:left;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:#7A6468;font-weight:600;padding:6px 10px;border-bottom:1px solid #D9C6C8;background:#FBF3F1}
.lh-table td{padding:10px;border-bottom:1px solid #F0E4E4;vertical-align:top}
.lh-table td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums;color:#593A41}
.lh-table td .t{font-size:.75rem;color:#7A6468}
.lh-table tr{break-inside:avoid}
.lh-pill{display:inline-block;border:1px solid #EBD3D6;background:#FCF4F3;border-radius:2px;padding:1px 7px;margin:0 3px 4px 0;font-size:.8rem;white-space:nowrap}
.lh-pill.urgent{border-color:#D0547C;color:#A8436A;font-weight:600}
.lh-qs{margin:0;padding-left:1.4rem;display:grid;gap:12px}
.lh-qs li::marker{color:#D0547C;font-family:var(--serif)}
.lh-qs .q{margin:0;color:#3F282E;font-weight:500}
.lh-qs .a{margin:2px 0 0;font-size:.86rem;color:#5b4449}
.lh-qs .a.blank{border-bottom:1px solid #EBDCDD;padding-bottom:12px;color:#9a878b}
.lh-qs li{break-inside:avoid}
.lh-entries{display:grid;gap:0}
.lh-entry{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid #F0E4E4;break-inside:avoid}
.lh-entry .d{margin:0;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#A8436A;font-weight:600;padding-top:.3em}
.lh-entry p{margin:0}
.lh-entry .p{font-family:var(--serif);font-style:italic;color:#7A6468;font-size:.92rem;margin-bottom:4px}
.lh-seven-a{margin:0}
.lh-days{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.lh-days li{border:1px solid #EBDCDD;border-radius:2px;text-align:center;padding:6px 0;display:grid;gap:2px}
.lh-days span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#7A6468}
.lh-days b{height:1.2em;color:#D0547C}
.lh-days li.on{background:#FCF1F1;border-color:#EEBBBC}
.lh-lines{display:grid;gap:26px;margin-top:8px}
.lh-lines span{border-bottom:1px solid #E4D3D5;height:1px}
.lh-sheet .empty{color:#7A6468;font-style:italic;font-size:.88rem;list-style:none;margin:0}
.lh-foot{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border-top:1px solid #EBDCDD;padding-top:16px;margin-top:6px}
.lh-foot p{margin:0;font-size:.72rem;color:#7A6468;line-height:1.5}
.lh-site{font-size:.7rem!important;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#593A41!important}
@media screen and (max-width:700px){
  .lh-sheet{padding:36px 22px 28px;margin-top:28px}
  .lh-doc{justify-items:start;text-align:left}
  .lh-who{grid-template-columns:1fr 1fr}
  .lh-entry{grid-template-columns:1fr;gap:4px}
  .lh-table thead{display:none}.lh-table td{display:block;border:0;padding:2px 0}.lh-table tr{display:block;border-bottom:1px solid #F0E4E4;padding:10px 0}
  .lh-foot{grid-template-columns:auto 1fr}.lh-site{grid-column:1/-1}
}

@page{size:A4;margin:16mm 16mm 18mm 18mm;
  @bottom-left{content:"taegyo.com.my  ·  My own record, not a medical record";font-family:Inter,Arial,sans-serif;font-size:7.5pt;color:#7A6468;letter-spacing:.04em}
  @bottom-right{content:"Page " counter(page) " of " counter(pages);font-family:Inter,Arial,sans-serif;font-size:7.5pt;color:#A8436A}
  @top-right{content:"Taegyo · Pregnancy Journal";font-family:"Playfair Display",Georgia,serif;font-size:8pt;color:#593A41}
}
@page :first{@top-right{content:none}}
@media print{
  html,body{background:#fff!important}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .lang-note,.skip,.page-hero,.doc-controls{display:none!important}
  main.wrap{padding:0!important;max-width:none}
  .lh-sheet{max-width:none;margin:0;border:0;box-shadow:none;padding:0 0 0 14px;font-size:10pt;gap:22px;overflow:visible}
  .lh-sheet::before{position:fixed;left:0;top:0;bottom:0;width:4px}
  .lh-mark{position:fixed;right:-30mm;top:80mm;width:95mm;opacity:.055}
  .lh-sec[hidden]{display:none!important}
  .lh-kind{font-size:20pt}
  .lh-top{flex-wrap:nowrap}
  .lh-tag,.lh-sub,.lh-ko{white-space:nowrap}
  .lh-tag{letter-spacing:.18em}
  .lh-sec[data-sec=seven],.lh-foot{break-inside:avoid}
  .lh-foot img{width:18px;height:auto}
}

/* banner whose photo is narrower than the screen: soften its left edge */
@media (min-width:861px){
  .page-hero.fade-edge::before{background:
    linear-gradient(180deg,rgba(248,242,236,0) 72%,var(--ivory) 100%),
    linear-gradient(90deg,rgba(248,242,236,.97) 0%,rgba(248,242,236,.92) 40%,rgba(248,242,236,.75) 62%,rgba(248,242,236,.2) 76%,rgba(248,242,236,0) 86%)}
}
.lh-foot img{width:22px;height:auto;opacity:.8}
.stack>*,.stack-lg>*{min-width:0}
.lh-sheet{contain:paint}
@media (min-width:700px){html[lang=zh-Hans] h1,html[lang=zh-Hans] h2{word-break:keep-all;line-break:strict}}
html:not([lang=en]) .nav a{white-space:nowrap;letter-spacing:.12em}

/* v14 · language dropdown (replaces the EN/BM/中文 row) */
.lang-dd{position:relative;flex:none}
.lang-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px 0 11px;background:transparent;border:1px solid var(--line);border-radius:2px;color:var(--plum);cursor:pointer;font-size:.7rem;letter-spacing:.14em;font-weight:600;transition:border-color .2s,background .2s}
.lang-btn:hover,.lang-dd.open .lang-btn{border-color:var(--dusty);background:#FDFAF6}
.lang-btn .globe{color:var(--rose)}
.lang-btn .chev{color:var(--muted);transition:transform .25s}
.lang-dd.open .lang-btn .chev{transform:rotate(180deg)}
.lang-list{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:214px;margin:0;padding:6px 0;list-style:none;background:#FFFDFB;border:1px solid #EFE3DC;border-top:2px solid var(--rose);border-radius:2px;box-shadow:0 18px 44px rgba(89,58,65,.16)}
.lang-list::before{content:"";position:absolute;right:18px;top:-7px;width:10px;height:10px;background:var(--rose);transform:rotate(45deg);z-index:-1}
.lang-list li{display:grid;grid-template-columns:40px 1fr 16px;align-items:center;gap:6px;padding:11px 16px;cursor:pointer;color:var(--ink);font-size:.95rem;outline:none}
.lang-list li+li{border-top:1px solid rgba(89,58,65,.07)}
.lang-list .code{font-size:.7rem;letter-spacing:.18em;font-weight:600;color:var(--muted)}
.lang-list .name{font-family:var(--serif);font-size:1.02rem;color:var(--plum)}
.lang-list li[lang=zh-Hans] .name{font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;font-size:.98rem}
.lang-list .tick{color:var(--rose);opacity:0}
.lang-list li[aria-selected=true] .tick{opacity:1}
.lang-list li[aria-selected=true] .code{color:var(--rose-text)}
.lang-list li:hover,.lang-list li:focus{background:var(--petal-wash);box-shadow:inset 2px 0 0 var(--rose)}
@media (prefers-reduced-motion:no-preference){.lang-dd.open .lang-list{animation:tgRise .22s ease both}}
@media (max-width:560px){.lang-btn{height:34px;padding:0 8px;gap:5px;font-size:.7rem}.lang-btn .globe{width:13px;height:13px}.lang-list{right:-60px}.lang-list::before{right:78px}}

/* v15 · friendlier reading: darker secondary text, clearer menu */
:root{--muted:#665055}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--muted:#C9B7BB}}
:root[data-theme="dark"]{--muted:#C9B7BB}
body{color:#3A252B}
.page-hero .lede,.lux-hero .lede{color:#3F2D33}
@media (min-width:900px){ html{font-size:calc(clamp(15px,1.15vw,16.5px) * var(--fsx,1))} }

/* menu: name + plain-English subtitle */
.nav a{display:grid;justify-items:start;gap:3px;line-height:1.1}
.nav .nav-t{display:inline-flex;align-items:center;gap:6px}
.nav .nav-sub{font-size:.72rem;letter-spacing:.02em;text-transform:none;font-weight:400;color:var(--muted);white-space:nowrap}
.nav a[aria-current="page"] .nav-sub{color:var(--rose-text)}
@media (min-width:981px){.nav a::after{bottom:-6px}}
.nav-extra{display:none}
@media (min-width:981px){.nav a{padding:6px 0 8px}}
@media (max-width:1180px) and (min-width:981px){.nav .nav-sub{font-size:.68rem}}

/* phones & tablets: language and text size live inside the Menu */
@media (max-width:980px){
  .bar .lang-dd,#comfortBtn{display:none}
  .nav a{grid-template-columns:1fr;padding:14px 0!important;border-bottom:1px solid rgba(89,58,65,.08)}
  .nav .nav-t{font-size:.86rem}
  .nav .nav-sub{font-size:.85rem}
  .nav-extra{display:grid;gap:12px;padding:18px 0 4px}
  .nav-extra-t{margin:0;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--rose-text)}
  .nav-langs{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:2px;overflow:hidden}
  .nav-langs button{background:#FDFAF6;border:0;padding:12px 4px;font-size:.9rem;color:var(--plum);cursor:pointer}
  .nav-langs button+button{border-left:1px solid var(--line)}
  .nav-langs button[aria-pressed="true"]{background:var(--plum);color:#FBF7F2;font-weight:600}
  .nav-comfort{justify-self:start;background:none;border:0;border-bottom:1px solid var(--dusty);padding:6px 0;font-size:.9rem;color:var(--plum);cursor:pointer}
}

/* v16 · luxury spacing: generous leading, air between words, lines and sections */
body{line-height:1.85;letter-spacing:.006em;word-spacing:.04em}
p,li,dd{line-height:1.85}
.lede,.page-hero .lede,.lux-hero .lede{line-height:1.9;letter-spacing:.01em}
h1,h2,h3{letter-spacing:.004em;line-height:1.14}
h1{margin-bottom:.1em}
.stack{gap:18px}
.stack-lg{gap:34px}
.page-hero .copy{gap:26px}
p+p{margin-top:.35em}
main.wrap>section+section,main.wrap>section+div,main.wrap>div+section{margin-top:112px}
main.wrap>.page-hero+section,main.wrap>.page-hero+div{margin-top:72px}
.eyebrow{letter-spacing:.2em}
.faq details,.acc details{padding-block:6px}
.dash-card,.auth-card,.chap-group{line-height:1.8}
.lesson-panel{gap:16px}
.ins-copy{gap:22px}
@media (max-width:640px){
  body{line-height:1.8}
  main.wrap>section+section,main.wrap>section+div,main.wrap>div+section{margin-top:80px}
  .page-hero .copy{gap:20px}
}
html[lang=zh-Hans] body{line-height:1.95;letter-spacing:.04em;word-spacing:0}
.price-line{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:10px 0 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.price-line span{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.price-line b{font-family:var(--serif);font-weight:500;font-size:1.25rem;color:var(--plum)}
.lang-list .lang-foot{display:block;grid-template-columns:none;cursor:default;padding:10px 16px 6px;font-size:.74rem;color:var(--muted);border-top:1px solid var(--line)!important}
.lang-list .lang-foot:hover{background:none;box-shadow:none}

/* =========================================================
   v17 · MINIMAL: quiet header, fewer boxes, more air
   ========================================================= */
/* header: wordmark · four words · quiet utilities */
.site-header,.site-header.scrolled{background:rgba(250,246,242,.94);border-bottom:1px solid rgba(89,58,65,.06);box-shadow:none}
.bar{min-height:88px}
@media (min-width:981px){
  .bar{gap:0}
  .nav{gap:40px;margin-left:auto;margin-right:40px}
  .nav .nav-sub{display:none}
  .nav a{display:inline-flex;padding:6px 0;font-size:.72rem;letter-spacing:.2em;font-weight:500;color:var(--plum)}
  .nav a::after{bottom:-4px}
  .nav .free-tag{font-size:.56rem;letter-spacing:.14em;margin-left:5px;vertical-align:5px;color:var(--rose);font-weight:600}
  .bar>.lang-dd,.bar>#comfortBtn,.bar>.support-btn,.bar>.member-btn{margin-left:22px}
  .bar>.lang-dd{padding-left:32px;border-left:1px solid rgba(89,58,65,.14);margin-left:0}
}
.lang-btn{border:0;background:none!important;height:auto;padding:6px 0;gap:6px;font-size:.72rem;letter-spacing:.16em;color:var(--plum)}
.lang-btn .globe{display:none}
.lang-btn .chev{width:8px;height:8px}
#comfortBtn{border:0;background:none;min-width:0;width:auto;height:auto;padding:6px 0;font-size:.82rem;color:var(--plum);font-weight:500}
.support-btn{background:none;border:0;padding:6px 0;min-height:0;gap:6px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--plum)}
.support-btn svg{width:11px;height:11px}
.member-btn{border:0;height:auto;padding:6px 0;background:none!important;color:var(--plum)!important;font-weight:500;border-bottom:1px solid var(--dusty)}
.member-btn:hover{color:var(--rose-text)!important;border-color:var(--rose)}
@media (max-width:1180px) and (min-width:981px){.nav{gap:26px;margin-right:28px}.bar>.lang-dd{padding-left:22px}.bar>#comfortBtn,.bar>.support-btn,.bar>.member-btn{margin-left:16px}}
@media (max-width:980px){.bar{min-height:72px;gap:18px}.menu-btn{border:0;background:none;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding:6px 0;min-width:0}.support-btn span{display:none}}

/* fewer boxes: content sits on ivory, divided by hairlines */
.panel,.panel.line,.panel.paper,.dash-card,.dash-card.feature,.chap-group,.research article,.entry,.line-card,.guide,.qa-card,.price-box,.doc-include,.store-note,.invite,.checkin,.logger,.act,.ins-strip{
  background:transparent!important;border:0!important;border-top:1px solid rgba(89,58,65,.12)!important;box-shadow:none!important;border-radius:0!important}
.panel,.panel.line,.panel.paper,.dash-card,.research article,.line-card,.guide,.qa-card{padding-left:0!important;padding-right:0!important}
.page-hero .price-box{background:rgba(250,246,242,.72)!important;border-top:1px solid var(--rose)!important;padding:26px 28px!important;backdrop-filter:blur(4px)}
.line-card.urgent{border-top:2px solid var(--rose)!important}
.auth{border:0;background:transparent}
.auth-card{padding-top:12px}
.eyebrow.rule::before{display:none}
.eyebrow.rule{padding-left:0}
.btn.ghost{border-color:rgba(89,58,65,.4)}
.player{box-shadow:none}
.lh-sheet{box-shadow:0 1px 2px rgba(89,58,65,.04)}
.site-footer{border-top:1px solid rgba(89,58,65,.08)}

/* v18 · twilight plum header: spacious, ivory type, soft dusk glow */
.site-header,.site-header.scrolled{
  background:
    radial-gradient(ellipse 38% 180% at 88% 0%,rgba(208,84,124,.22),transparent 70%),
    radial-gradient(ellipse 30% 160% at 8% 120%,rgba(234,145,149,.10),transparent 70%),
    linear-gradient(100deg,#3B262C 0%,#4E3238 45%,#593A41 100%)!important;
  border-bottom:1px solid rgba(238,187,188,.14);backdrop-filter:none;-webkit-backdrop-filter:none;color:#F6EEE8}
.site-header .bar{min-height:104px}
.site-header .brand .word{width:150px;height:auto}
.site-header .nav a,.site-header .lang-btn,.site-header #comfortBtn,.site-header .support-btn,.site-header .member-btn,.site-header .menu-btn{color:#F3E8E3!important}
.site-header .nav a{opacity:.86}
.site-header .nav a:hover,.site-header .nav a[aria-current="page"]{opacity:1}
.site-header .nav a::after{background:var(--coral)}
.site-header .nav .free-tag{color:var(--coral)!important}
.site-header .lang-btn .chev{color:rgba(243,232,227,.7)}
.site-header .support-btn svg{color:var(--coral)}
.site-header .member-btn{border-bottom-color:rgba(238,187,188,.7)}
.site-header .member-btn:hover{color:#fff!important;border-color:var(--coral)}
@media (min-width:981px){.site-header .bar>.lang-dd{border-left-color:rgba(238,187,188,.25)}.site-header .nav{gap:46px;margin-right:46px}}
.site-header .comfort{color:#E9DAD6}
.site-header .comfort .seg button{color:#F3E8E3;border-color:rgba(238,187,188,.3)}
.site-header .comfort .seg button[aria-pressed="true"]{background:#F6EEE8;color:var(--plum)}
/* journey sub-menu sits under the twilight bar */
.site-header .subnav{background:rgba(35,22,26,.35);border-top:1px solid rgba(238,187,188,.12)}
.site-header .subnav a,.site-header .subnav-title{color:#EADCD8!important}
.site-header .subnav a[aria-current="page"]{color:#fff!important;border-color:var(--coral)!important}
/* phone menu opens as a plum panel */
@media (max-width:980px){
  .site-header .bar{min-height:80px}
  .site-header .brand .word{width:122px}
  .site-header .nav{background:linear-gradient(180deg,#4E3238,#3B262C)!important;border-bottom:1px solid rgba(238,187,188,.14)}
  .site-header .nav a{border-bottom-color:rgba(238,187,188,.12)!important;opacity:1}
  .site-header .nav .nav-sub{color:#CDB7B7}
  .site-header .nav-extra-t{color:var(--coral)}
  .site-header .nav-langs{border-color:rgba(238,187,188,.3)}
  .site-header .nav-langs button{background:transparent;color:#F3E8E3}
  .site-header .nav-langs button+button{border-left-color:rgba(238,187,188,.3)}
  .site-header .nav-langs button[aria-pressed="true"]{background:#F6EEE8;color:var(--plum)}
  .site-header .nav-comfort{color:#F3E8E3;border-bottom-color:var(--coral)}
}

/* v19 · header icons for easier scanning */
.site-header .mi{flex:none;color:var(--coral)}
.lang-btn .globe{display:block;width:15px;height:15px;color:var(--coral)!important}
.member-btn{display:inline-flex;align-items:center;gap:8px}
#comfortBtn{display:inline-flex;align-items:center;gap:7px}
#comfortBtn .mi-label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500}
.site-header .support-btn svg{width:14px;height:14px}
.site-header .support-btn,.site-header .lang-btn{gap:8px}
@media (max-width:1180px) and (min-width:981px){#comfortBtn .mi-label{display:none}}
@media (max-width:980px){.site-header .support-btn svg{width:18px;height:18px}.member-btn .mi{width:18px;height:18px}}
@media (max-width:420px){.member-btn span{display:none}.member-btn{border-bottom:0}}

/* v20 · icon system: thin rose line icons beside labels */
.ic{flex:none;width:16px;height:16px;color:var(--rose);vertical-align:-3px}
[data-icon]{}
.eyebrow[data-icon],h4[data-icon],legend[data-icon],.nav-extra-t[data-icon],.price-line [data-icon],.foot-contact span[data-icon],.line-card span[data-icon]{display:inline-flex;align-items:center;gap:9px}
[data-icon]>.ic:first-child{margin-right:8px}
.eyebrow[data-icon]>.ic:first-child,h4[data-icon]>.ic:first-child,legend[data-icon]>.ic,.btn[data-icon]>.ic,.linkbtn[data-icon]>.ic,.tabs [data-icon]>.ic,.lesson-tabs [data-icon]>.ic,.auth-tabs [data-icon]>.ic,.subnav [data-icon]>.ic,.foot-contact [data-icon]>.ic,.line-card [data-icon]>.ic,.price-line [data-icon]>.ic,.nav-extra-t>.ic,.nav-comfort>.ic,.menu-btn .ic{margin-right:0}
.eyebrow[data-icon] .ic{width:15px;height:15px}
.band.twilight .ic,.band.dusk .ic,.band.plum .ic{color:var(--coral)}
.btn[data-icon] .ic,.btn .ic{color:currentColor;width:16px;height:16px}
.btn[data-icon]{gap:12px}
.linkbtn[data-icon]{display:inline-flex;align-items:center;gap:8px}
.linkbtn .ic{width:14px;height:14px}
/* hero facts + trust strip */
.hero-facts span[data-icon]>.ic{margin-right:6px}
.hero-facts .ic{width:15px;height:15px}
.trust p[data-icon] .ic{margin-right:10px;vertical-align:-4px}
.trust p[data-icon] .ic{width:18px;height:18px}
/* big feature icons (facts, four practices, timeline) */
.facts4 i[data-icon],.four i[data-icon],.timeline i[data-icon]{display:block;font-style:normal}
.facts4 i[data-icon] .ic,.four i[data-icon] .ic{width:26px;height:26px;stroke-width:1.1}
.band.twilight .facts4 i .ic{color:var(--coral)}
.four i[data-icon]{margin-bottom:14px}
.facts4 i[data-icon]{margin-bottom:10px}
.timeline li::before{display:none}
.timeline li{padding-top:0}
.timeline i[data-icon]{width:34px;height:34px;border-radius:50%;background:var(--ivory);border:1px solid var(--rose);display:grid;place-items:center;margin-bottom:8px;position:relative;z-index:1}
.timeline li.live i[data-icon]{background:var(--rose)}
.timeline li.live i[data-icon] .ic{color:#fff}
.timeline::before{top:17px}
/* icon list (journal features) */
.ilist{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ilist li{position:relative;padding-left:36px}
.ilist li>.ic:first-child{position:absolute;left:0;top:4px;width:20px;height:20px;margin:0}
/* tabs, lesson tabs, auth tabs, sub-menu */
.tabs button[data-icon],.lesson-tabs button[data-icon],.auth-tabs button[data-icon]{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.tabs .ic{width:15px;height:15px}
.lesson-tabs .ic,.auth-tabs .ic{width:14px;height:14px}
.subnav a[data-icon]{display:inline-flex;align-items:center;gap:8px}
.site-header .subnav .ic{color:var(--coral);width:14px;height:14px}
/* support cards */
.line-card [data-icon] .ic{width:17px;height:17px}
/* footer */
.foot-contact{display:flex;flex-wrap:wrap;gap:10px 26px}
.foot-contact span{display:inline-flex;align-items:center;gap:8px}
/* header: menu words stay text-only on laptops; icons show in the phone menu */
.nav-ic{display:none}
@media (max-width:980px){
  .nav-ic{display:inline-flex}
  .site-header .nav a{grid-template-columns:30px 1fr!important;column-gap:10px}
  .site-header .nav a .nav-ic{grid-row:1/3;align-self:center}
  .site-header .nav a .nav-ic .ic{width:20px;height:20px;color:var(--coral)}
  .site-header .nav-extra-t .ic{color:var(--coral)}
  .nav-comfort{display:inline-flex;align-items:center;gap:8px}
  .site-header .nav-comfort .ic{color:var(--coral)}
  .menu-btn{display:inline-flex!important;align-items:center;gap:8px}
  .menu-btn .ic{color:var(--coral);width:18px;height:18px}
  .site-header .bar #comfortBtn{display:none}
}
.lh-sheet .ic{display:none}
@media print{.ic{display:none}}

/* v21 · "Text" button sits at the far right; keep utilities on one line */
.site-header .support-btn,.site-header .member-btn,.site-header .lang-btn{white-space:nowrap}
@media (min-width:981px){.bar>#comfortBtn{margin-left:26px;padding-left:26px!important;border-left:1px solid rgba(238,187,188,.25)!important;border-radius:0}}
.site-header .comfort .seg{border-radius:2px}

/* v22 · one-line menu, clear space after the wordmark */
.site-header .brand{flex:none;margin-right:56px}
.site-header .nav{flex:0 1 auto;min-width:0}
.site-header .nav a,.site-header .nav .nav-t{white-space:nowrap}
.site-header .nav .nav-t{display:inline-flex;align-items:baseline;gap:8px}
.site-header .nav .free-tag{margin-left:0;vertical-align:0}
@media (min-width:981px){.site-header .nav{gap:44px}}
@media (max-width:1180px) and (min-width:981px){.site-header .brand{margin-right:32px}.site-header .nav{gap:28px}.site-header .nav a{letter-spacing:.14em}}
/* reading-comfort panel on the plum bar */
.site-header .comfort .seg{background:transparent;border:1px solid rgba(238,187,188,.35)}
.site-header .comfort .seg button{background:transparent!important;color:#F3E8E3!important;opacity:1}
.site-header .comfort .seg button[aria-pressed="true"]{background:#F6EEE8!important;color:var(--plum)!important}
.site-header .comfort>span{color:#E9DAD6}

/* v23 · utilities move to a slim top strip; main bar = logo + three words */
.topline{background:rgba(28,17,21,.42);border-bottom:1px solid rgba(238,187,188,.10);margin-inline:-16px;padding-inline:16px;position:relative;z-index:61}
.tl-in{display:flex;align-items:center;justify-content:space-between;min-height:38px;gap:20px}
.tl-right{display:flex;align-items:center;gap:0}
.topline .support-btn,.topline .lang-btn,.topline .member-btn{font-size:.66rem!important;letter-spacing:.18em;padding:4px 0!important;height:auto;min-height:0;border:0!important;color:#EADCD8!important;opacity:.92}
.topline .support-btn:hover,.topline .lang-btn:hover,.topline .member-btn:hover{opacity:1;color:#fff!important}
.topline .support-btn svg{width:11px!important;height:11px!important;color:var(--coral)}
.topline .lang-btn .globe{width:13px!important;height:13px!important}
.topline .member-btn .mi{width:13px;height:13px;color:var(--coral)}
.topline .member-btn{margin-left:22px;padding-left:22px!important;border-left:1px solid rgba(238,187,188,.25)!important}
.topline .member-btn[aria-current="page"]{color:#fff!important}
.topline .lang-list{top:calc(100% + 10px)}
.site-header .bar{min-height:92px}
@media (min-width:981px){.site-header .nav{margin-left:auto;margin-right:0}}
@media (max-width:980px){
  .site-header .bar{min-height:72px}
  .menu-btn{margin-left:auto}
  .tl-in{min-height:36px}
  .topline .support-btn span{display:inline}
}
@media (max-width:420px){
  .topline .support-btn span{display:inline}
  .topline .member-btn span{display:inline}
  .topline .support-btn,.topline .lang-btn,.topline .member-btn{font-size:.6rem!important;letter-spacing:.12em}
  .topline .member-btn{margin-left:16px;padding-left:16px!important}
}
@media (max-width:560px){.topline .lang-list{right:-80px}.topline .lang-list::before{right:98px}}

/* v24 · wide screens: pull the banner words left so the left side isn't empty */
@media (min-width:861px){
  .lux-hero .copy{max-width:none;margin-inline:0;padding-left:clamp(40px,6.5vw,150px);padding-right:24px}
  .lux-hero .copy>div{max-width:620px}
  .lux-hero .hero-ctas{flex-wrap:nowrap}
  .page-hero>.in{max-width:none;padding-left:clamp(40px,6.5vw,150px);padding-right:clamp(40px,6.5vw,150px)}
  .lux-hero::before{background:linear-gradient(90deg,rgba(248,242,236,.97) 0%,rgba(248,242,236,.88) 30%,rgba(248,242,236,0) 55%)!important}
}
@media (min-width:861px){
  .site-header .bar,.topline .tl-in,.site-header .subnav-in{max-width:none;padding-left:calc(clamp(40px,6.5vw,150px) - 16px);padding-right:calc(clamp(40px,6.5vw,150px) - 16px)}
}

/* v25 · homepage first screen: banner + key facts fit before scrolling, one left edge */
@media (min-width:861px){
  .lux-hero{min-height:0;height:max(400px,calc(100svh - 134px - 76px));max-height:900px}
  .lux-hero picture img{object-position:right 28%}
  .lux-hero .copy{padding-top:clamp(20px,4vh,56px);padding-bottom:clamp(20px,4vh,56px)}
  .lux-hero .copy>div{max-width:680px;gap:clamp(12px,2.6vh,24px)}
  .lux-hero h1{font-size:clamp(2.3rem,min(5.4vw,8.6vh),4.6rem);line-height:1.06}
  .lux-hero .lede{max-width:none;line-height:1.7}
  .lux-hero .hero-facts{margin-top:0;padding-top:clamp(10px,1.8vh,18px)}
  /* facts strip: same left edge as the banner words, compact */
  .trust-wrap{max-width:none;padding-inline:calc(clamp(40px,6.5vw,150px) - 16px)}
  .trust{height:76px;align-items:center;border-top:0}
  .trust p{padding:0 28px;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;font-size:1.1rem;line-height:1.25}
  .trust p:first-child{padding-left:0}
  .trust p .ic{grid-row:1/3;margin:0!important;width:20px;height:20px}
  .trust .k{margin-bottom:2px;font-size:.68rem}
}
@media (min-width:861px) and (max-height:700px){
  .lux-hero .eyebrow{font-size:.66rem}
  .lux-hero .lede{font-size:1.02rem}
  .lux-hero .btn{padding:13px 22px;min-height:44px}
  .lux-hero .sample-btn .d{width:48px;height:48px}
}
.trust .v{display:block}
/* hero photo: keep a small, even space above the man's head (head top ≈ 109px down the 1920px-wide photo) */
@media (min-width:861px) and (min-aspect-ratio:3/2){
  .lux-hero picture img{object-position:right 0 top calc(28px - 5.68vw)}
}

/* v26 · full-width twilight footer, matching the header */
.site-footer.tw-footer{display:block;max-width:none;margin:0 -16px;padding:0 16px;border-top:0;color:#E9DAD6;
  background:
    radial-gradient(ellipse 40% 90% at 90% 0%,rgba(208,84,124,.20),transparent 70%),
    radial-gradient(ellipse 34% 80% at 6% 100%,rgba(234,145,149,.08),transparent 70%),
    linear-gradient(100deg,#3B262C 0%,#4E3238 50%,#593A41 100%)}
.tw-footer .ft-in{padding:88px calc(clamp(40px,6.5vw,150px) - 16px) 36px}
.tw-footer .ft-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(238,187,188,.16)}
.tw-footer .ft-brand{display:grid;gap:20px;align-content:start;justify-items:start}
.tw-footer .ft-brand img{width:210px;height:auto;background:none!important;padding:0!important}
.tw-footer .ft-tag{margin:0;font-family:var(--serif);font-style:italic;font-size:1.15rem;line-height:1.5;color:#F3E8E3;max-width:28ch}
.tw-footer .ft-cta{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:#F6EEE8;text-decoration:none;border-bottom:1px solid var(--coral);padding-bottom:6px}
.tw-footer .ft-cta:hover{color:#fff;border-color:#fff}
.tw-footer .ft-col{display:grid;gap:14px;align-content:start}
.tw-footer .ft-h{margin:0 0 6px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--coral)}
.tw-footer .ft-col a,.tw-footer .ft-col span{display:inline-flex;align-items:center;gap:10px;color:#EADCD8;text-decoration:none;font-size:.95rem;line-height:1.4}
.tw-footer .ft-col a:hover{color:#fff}
.tw-footer .ft-col a .ic,.tw-footer .ft-col span .ic{margin:0!important;color:var(--coral);width:15px;height:15px}
.tw-footer .ft-col em{font-style:normal;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--coral)}
.tw-footer .ft-note{padding:28px 0;border-bottom:1px solid rgba(238,187,188,.16)}
.tw-footer .ft-note p{margin:0;font-size:.85rem;line-height:1.8;color:#CDB9B8;max-width:90ch}
.tw-footer .ft-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding-top:22px}
.tw-footer .ft-bottom p{margin:0;font-size:.74rem;letter-spacing:.06em;color:#B9A3A4}
@media (max-width:980px){.tw-footer .ft-top{grid-template-columns:1fr 1fr;gap:40px}.tw-footer .ft-brand{grid-column:1/-1}}
@media (max-width:560px){.tw-footer .ft-in{padding:56px 4px 28px}.tw-footer .ft-top{grid-template-columns:1fr;gap:34px}.tw-footer .ft-brand img{width:170px}}
@media print{.tw-footer{display:none!important}}

/* v27 · slimmer footer */
.tw-footer .ft-in{padding:52px calc(clamp(40px,6.5vw,150px) - 16px) 24px}
.tw-footer .ft-top{padding-bottom:32px;gap:40px}
.tw-footer .ft-brand{gap:14px}
.tw-footer .ft-brand img{width:170px}
.tw-footer .ft-tag{font-size:1.02rem}
.tw-footer .ft-col{gap:10px}
.tw-footer .ft-h{margin-bottom:2px}
.tw-footer .ft-col a,.tw-footer .ft-col span{font-size:.9rem}
.tw-footer .ft-note{padding:18px 0}
.tw-footer .ft-note p{font-size:.8rem;line-height:1.7}
.tw-footer .ft-bottom{padding-top:16px}
@media (max-width:560px){.tw-footer .ft-in{padding:40px 4px 22px}.tw-footer .ft-top{gap:26px}}
.tw-footer .ft-tag{max-width:34ch}

/* =========================================================
   v28 · LOG IN / SIGN UP (focused, ivory, calm)
   ========================================================= */
/* focused header on the log-in page */
.auth-mode .site-header.auth-header{background:#FBF7F3!important;border-bottom:1px solid var(--line);color:var(--plum)}
.auth-header .bar{min-height:84px!important;justify-content:space-between}
.auth-header .brand .word{width:150px}
.auth-header .ah-right{display:flex;align-items:center;gap:30px}
.auth-header .lang-btn{color:var(--plum)!important;font-size:.8rem!important;letter-spacing:.06em!important;gap:8px}
.auth-header .lang-btn .globe{color:var(--rose)!important;width:16px!important;height:16px!important}
.auth-header .ah-help{display:inline-flex;align-items:center;gap:8px;color:var(--rose-text);text-decoration:none;font-size:.95rem}
.auth-header .ah-help .ic{width:18px;height:18px;margin:0!important}
.auth-header .ah-help:hover{color:var(--rose)}
.auth-header .t-short,.auth2-back .t-short{display:none}
.auth-mode #site-footer{display:none}
.auth-mode main.wrap{padding-top:22px;padding-bottom:40px}

.auth2{display:grid;gap:18px}
.auth2-back{justify-self:start;display:inline-flex;gap:8px;align-items:center;color:var(--rose-text);text-decoration:none;font-size:.95rem}
.auth2-back:hover{color:var(--rose)}
.auth2-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,72px);align-items:start}
.auth2-art figure{margin:0;aspect-ratio:1/.92;overflow:hidden;border-radius:2px}
.auth2-art img{width:100%;height:100%;object-fit:cover;object-position:62% 30%;display:block;filter:sepia(.05) saturate(1.02)}
.auth2-big{margin:30px 0 8px;font-family:var(--serif);font-size:clamp(2.2rem,3.6vw,3.2rem);line-height:1.08;color:var(--plum)}
.auth2-list{margin:0;color:var(--muted);font-size:1.02rem;letter-spacing:.02em}
.auth2-side{display:grid;gap:22px;padding-top:clamp(0px,3vw,46px);max-width:470px}
.auth2-form{display:grid;gap:18px}
.auth2-form .eyebrow{color:var(--rose-text);letter-spacing:.2em}
.auth2-form h1{font-size:clamp(2.4rem,4vw,3.4rem);line-height:1.05;margin:0}
.auth2-sub{margin:-4px 0 8px;color:var(--muted);font-size:1.08rem;line-height:1.6}
.auth2-form .field label{font-weight:600;color:var(--ink);font-size:.95rem}
.auth2-form .input{min-height:56px;border:1px solid #D9C7C9;background:#FFFDFB;border-radius:4px;padding:12px 16px;font-size:1rem}
.auth2-form .input:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(238,187,188,.45)}
.auth2-form .input::placeholder{color:#A9979A}
.pw{position:relative}
.pw .input{padding-right:52px}
.pw .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:42px;height:42px;display:grid;place-items:center;background:none;border:0;color:var(--plum);cursor:pointer;border-radius:4px}
.pw .eye[aria-pressed="true"]{color:var(--rose)}
.auth2-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.auth2-row a,.auth2-switch a,.auth2-explore a,.auth2-form .check a{color:var(--rose-text);text-underline-offset:3px}
.auth2-form .check{font-size:.92rem}
.auth2-form .check input{width:20px;height:20px;margin-top:.1em}
.auth2-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:60px;border:0;border-radius:4px;background:var(--plum);color:#fff;font-size:1.1rem;letter-spacing:.02em;cursor:pointer;transition:background .2s}
.auth2-btn:hover{background:#4A2F35}
.auth2-btn svg{transition:transform .25s}
.auth2-btn:hover svg{transform:translateX(4px)}
.auth2-switch{text-align:center;margin:2px 0 0;color:var(--ink)}
.auth2-explore{text-align:center;border-top:1px solid var(--line);padding-top:22px;display:grid;gap:4px}
.auth2-explore p{margin:0;color:var(--ink)}
.auth2-explore a{font-size:1rem}
.auth2-side .preview-note{margin:0;border-top:0;padding-top:0;text-align:center;font-size:.76rem}
.auth2-foot{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);padding-top:6px}
.auth2-foot a{color:var(--muted);text-decoration:none}
@media (max-width:900px){
  .auth2-grid{grid-template-columns:1fr;gap:0}
  .auth2-art{display:none}
  .auth2-side{max-width:none;padding-top:28px}
  .auth-header .ah-right{gap:18px}
  .auth-header .t-long,.auth2-back .t-long{display:none}
  .auth-header .t-short,.auth2-back .t-short{display:inline}
  .auth-header .lang-dd{display:none}
  .auth2-foot{justify-content:center;gap:24px}
}
.auth-header .bar{max-width:var(--wrap)!important;margin-inline:auto;padding-left:0!important;padding-right:0!important}
.auth-header .lang-btn .chev{color:var(--muted)!important}
.auth2-form .form-msg:empty{display:none}
@media (max-width:900px){.auth-header .bar{padding-left:0!important;padding-right:0!important}}

/* =========================================================
   v29 · PREMIUM PICTURE EFFECTS (see app.js for which photo gets which)
   ========================================================= */
.fx-unveil,.fx-side{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s cubic-bezier(.77,0,.18,1) var(--fx-delay,0s)}
.fx-side{clip-path:inset(0 100% 0 0)}
.fx-unveil img,.fx-side img{transform:scale(1.16);transition:transform 2s cubic-bezier(.2,.7,.2,1) var(--fx-delay,0s)!important}
.fx-unveil.fx-in,.fx-side.fx-in{clip-path:inset(0 0 0 0)}
.fx-unveil.fx-in img,.fx-side.fx-in img{transform:scale(1)}
.fx-unveil.fx-in.zoom:hover img,.fx-side.fx-in.zoom:hover img,a:hover .fx-unveil.fx-in img{transform:scale(1.03);transition-duration:.6s!important;transition-delay:0s!important}

.fx-soft img{filter:blur(16px) sepia(.07) saturate(.9)!important;transform:scale(1.07);opacity:.55;transition:filter 1.6s ease,transform 1.8s cubic-bezier(.2,.7,.2,1),opacity 1.2s ease!important}
.fx-soft.fx-in img{filter:blur(0) sepia(.07) saturate(1.04) brightness(.97) contrast(1.02)!important;transform:none;opacity:1}

.fx-parallax{overflow:hidden}
.fx-parallax img{height:116%!important;margin-top:-8%;transform:translate3d(0,var(--py,0),0);transition:none!important;will-change:transform}

.fx-frame::after{transition:inset 1.3s cubic-bezier(.2,.7,.2,1) calc(var(--fx-delay,0s) + .5s),opacity 1s ease calc(var(--fx-delay,0s) + .5s);opacity:0}
.fx-frame.fx-unveil{clip-path:none}
.fx-frame.fx-unveil img{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s cubic-bezier(.77,0,.18,1),transform 2s cubic-bezier(.2,.7,.2,1)!important}
.fx-frame.fx-unveil.fx-in img{clip-path:inset(0 0 0 0)}
.ins-photo.fx-frame::after{inset:0}
.ins-photo.fx-frame.fx-in::after{inset:18px -18px -18px 18px;opacity:1}
.ba-photo.fx-frame::after{inset:0}
.ba-photo.fx-frame.fx-in::after{inset:18px -18px -18px 18px;opacity:1}

@media (prefers-reduced-motion:reduce){
  .fx-unveil,.fx-side,.fx-unveil img,.fx-side img,.fx-soft img,.fx-frame::after{transition:none!important;clip-path:none!important;transform:none!important;filter:none!important;opacity:1!important}
}

/* =========================================================
   v30 · TYPE: Korean luxury-minimal
   Headings  : Gowun Batang (a Korean serif with calm, brush-like strokes),
               italic accents in Cormorant Garamond
   Body/labels: Pretendard (the clean sans used across Korean design)
   Hangul    : Nanum Myeongjo (unchanged)
   ========================================================= */
@font-face{font-family:"Taegyo Serif";font-style:normal;font-weight:300 500;font-display:swap;src:url(../fonts/gowun-batang-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Taegyo Serif";font-style:normal;font-weight:600 800;font-display:swap;src:url(../fonts/gowun-batang-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Taegyo Serif";font-style:italic;font-weight:300 500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Taegyo Serif";font-style:italic;font-weight:600 800;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-italic.woff2) format("woff2")}
@font-face{font-family:"Taegyo Sans";font-style:normal;font-weight:100 300;font-display:swap;src:url(../fonts/pretendard-Light.woff2) format("woff2")}
@font-face{font-family:"Taegyo Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/pretendard-Regular.woff2) format("woff2")}
@font-face{font-family:"Taegyo Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/pretendard-Medium.woff2) format("woff2")}
@font-face{font-family:"Taegyo Sans";font-style:normal;font-weight:600 900;font-display:swap;src:url(../fonts/pretendard-SemiBold.woff2) format("woff2")}
:root{
  --serif:"Taegyo Serif","Nanum Myeongjo","Noto Serif KR",Georgia,serif;
  --sans:"Taegyo Sans","Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,-apple-system,"Segoe UI",sans-serif;
}
body{font-family:var(--sans);font-weight:400;letter-spacing:.004em;word-spacing:.02em}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.012em}
h1,h2{line-height:1.16}
h1 em,h2 em,h3 em{font-weight:500;font-size:1.1em;letter-spacing:0;line-height:1}
.lux-hero h1,.page-hero h1{font-weight:400;letter-spacing:-.02em}
.eyebrow{font-family:var(--sans);font-weight:500;letter-spacing:.22em}
.btn,.linkbtn,.nav a,.member-btn,.support-btn,.lang-btn,.ft-h,.ft-cta{font-family:var(--sans);font-weight:500}
b,strong{font-weight:600}
.lede{font-weight:300;letter-spacing:.01em}
html[lang=zh-Hans] body{font-family:"Taegyo Sans","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif}
html[lang=zh-Hans] h1,html[lang=zh-Hans] h2,html[lang=zh-Hans] h3{font-family:"Taegyo Serif","Songti SC","Noto Serif SC","SimSun",serif}
body{word-spacing:0}

/* =========================================================
   v31 · PRE-SIGN-UP (programme page #join)
   ========================================================= */
.join{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-top:96px;padding:96px 0;scroll-margin-top:120px;
  background:radial-gradient(40% 55% at 8% 20%,rgba(238,187,188,.5),transparent 70%),radial-gradient(35% 50% at 92% 80%,rgba(234,145,149,.3),transparent 70%),radial-gradient(30% 40% at 60% 0%,rgba(249,213,186,.4),transparent 70%),linear-gradient(180deg,#FBF6F2,#F6ECE8)}
.join-in{max-width:var(--wrap);margin:0 auto;padding:0 16px;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,88px);align-items:start}
@media (min-width:861px){.join-in{max-width:none;padding:0 clamp(40px,6.5vw,150px)}}
.join-copy{display:grid;gap:18px;position:sticky;top:150px}
.join-copy h2{font-size:clamp(2rem,3.4vw,2.8rem)}
.join-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:14px}
.join-list li{display:flex;align-items:center;gap:14px;font-size:1rem}
.join-list li .ic{width:30px;height:30px;padding:7px;border-radius:50%;background:rgba(255,255,255,.7);box-shadow:0 0 0 1px rgba(238,187,188,.6);margin:0!important;box-sizing:border-box}
.glass-card{background:rgba(255,255,255,.55);backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);border:1px solid rgba(255,255,255,.85);box-shadow:0 24px 60px rgba(89,58,65,.10),inset 0 1px 0 #fff;border-radius:8px;padding:clamp(24px,3.4vw,40px)}
#joinForm{display:grid;gap:18px}
.jf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.jf-grid .field label,.join-card .field label{font-weight:500;font-size:.92rem;color:var(--ink)}
.join-card .input{min-height:52px;border:1px solid #DCCBCD;background:rgba(255,255,255,.8);border-radius:4px;font-size:1rem}
.join-card select.input{appearance:none;-webkit-appearance:none;padding-right:40px;background:rgba(255,255,255,.8) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5l3.5 3.5 3.5-3.5' fill='none' stroke='%23593A41' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center no-repeat}
.join-card .input:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(238,187,188,.45)}
.join-card .input[aria-invalid="true"],.has-error input[type=checkbox]{border-color:#C0395F;box-shadow:0 0 0 3px rgba(192,57,95,.14)}
.jf-chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.jf-chips legend{width:100%;font-weight:500;font-size:.92rem;color:var(--ink);margin-bottom:10px;padding:0}
.jf-chips label{position:relative;cursor:pointer}
.jf-chips input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.jf-chips span{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid #DCCBCD;border-radius:999px;background:rgba(255,255,255,.7);font-size:.92rem;color:var(--plum);transition:all .2s}
.jf-chips input:checked+span{background:var(--plum);border-color:var(--plum);color:#fff}
.jf-chips input:focus-visible+span{outline:2px solid var(--rose);outline-offset:2px}
.jf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.join-card .check a{color:var(--rose-text)}
.join-card .form-msg{margin:0;color:#B0304F;font-size:.92rem}
.join-card .form-msg:empty{display:none}
.jf-fine{margin:-4px 0 0;text-align:center;font-size:.8rem;color:var(--muted)}
.auth2-btn[disabled]{opacity:.7;cursor:progress}
.auth2-btn.is-busy span::after{content:"…"}
.join-done{display:grid;justify-items:center;text-align:center;gap:12px;padding:20px 8px;outline:none}
.join-done img{width:64px;opacity:.9;animation:breathe 6s ease-in-out infinite}
.join-done h3{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.join-done p{max-width:44ch;margin:0 auto;color:var(--ink)}
.join-next{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:8px}
.join-admin{max-width:var(--wrap);margin:28px auto 0;padding:10px 16px;font-size:.8rem;color:var(--muted);text-align:center}
.join-admin .linkbtn{font-size:.8rem;text-transform:none;letter-spacing:0;padding:0;border:0;text-decoration:underline;color:var(--rose-text)}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@media (max-width:900px){.join-in{grid-template-columns:1fr}.join-copy{position:static}.jf-grid{grid-template-columns:1fr}.join{padding:64px 0}}
@media (prefers-reduced-motion:reduce){.join-done img{animation:none}}
