/* Juha Treidaa — obsidian, ruby and machined silver. */
:root {
  --bg: #0b0808; --surface: #111115; --text: #f4f3f6;
  --muted: #b0adb8; --quiet: #92909b; --line: #2b2832;
  --accent: #e94964; --green: #86d9b1;
  --ruby: #a51930; --ruby-light: #ff8196;
  --silver: linear-gradient(166deg,#fff 5%,#f2edee 36%,#9293a2 76%,#eee6e7 100%);
}
::selection { background: #7c1728; color: white; }
/* Refined public navigation and a stronger editorial rhythm. */
.nav-actions>a.button-small { background:linear-gradient(125deg,#762039,#39131f);border-color:#b45d7270;box-shadow:inset 0 1px #f2b9c91a; }
.nav-actions>a.button-small:hover { background:linear-gradient(125deg,#9a2c48,#571c2d);border-color:#d98ca0; }
.chapter-copy { position:relative; }
.chapter-copy::before { content:'';display:block;width:42px;height:2px;background:linear-gradient(90deg,#d87991,#d8799100);margin-bottom:23px; }
.academy-index { counter-reset:lesson-section; }
.course-entry { counter-increment:lesson-section; }
.course-entry summary>span:first-child { position:relative;padding-left:42px; }
.course-entry summary>span:first-child::before { content:'0' counter(lesson-section);position:absolute;left:0;top:5px;color:#bb7f91;font:.75rem var(--font-mono,monospace); }
.access-heading h2 { background:var(--silver);background-clip:text;-webkit-background-clip:text;color:transparent; }
html { scrollbar-color: #4a3438 #0b0a0d; }
:focus-visible { outline-color: #ff9bac !important; }

/* A compact engraved signature, shared by the public and member navigation. */
.jt-wordmark { display: inline-flex; flex-direction: column; gap: 3px; line-height: 1; }
.jt-wordmark b { font: 650 19px/.95 'Archivo Variable',var(--font-sans); letter-spacing: .025em; }
.jt-wordmark small { font: 500 12px/1.2 var(--font-sans); letter-spacing: .16em; color: #c9bdc5; }
.lnav-brand { gap: 12px; }
.lnav-brand svg { filter: drop-shadow(0 0 14px #dc244343); }
body:has(.price-journey) { font-size: 1rem; background: var(--bg); }
.lnav { background: #0a090cdb; border-color: #e7c7cc1c; backdrop-filter: blur(24px); }
.nav-inner { height: 80px; }
.nav-links { gap: 34px; }
.nav-links a { font-size: .875rem; color: #c5bfcb; padding-block: 14px; position: relative; }
.nav-links a::after { content: ''; position: absolute; bottom: 7px; left: 0; width: 100%; height: 1px; background: #ec6d82; transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.nav-links a:hover::after { transform: scaleX(1); }
.nav-actions { gap: 24px; }
.lang { border: 1px solid #38313c; border-radius: 7px; padding: 3px; background: #ffffff03; }
.lang button { min-height: 36px; min-width: 37px; padding: 8px; font-size: .75rem; }
.lang button.on { background: #ffffff0a; border-radius: 4px; text-decoration: none; color: #fff; }
.button { border-radius: 8px; min-height: 50px; padding: 15px 24px; font-size: .9375rem; border-color: #53434f; background: #ffffff04; }
.button-small { min-height: 42px; font-size: .875rem; padding: 10px 18px; }
.button.primary { position: relative; overflow: hidden; background: linear-gradient(120deg,#ac1932,#7e1224); border-color: #e8657b5e; box-shadow: inset 0 1px 0 #ffa9b745,0 12px 36px -14px #b21f3899; }
.button.primary::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(112deg,transparent 20%,#ffffff19 48%,transparent 72%); transform: translateX(-120%); transition: transform .6s; }
.button.primary:hover { background: linear-gradient(120deg,#c5223d,#99192e); border-color: #ff9dad6e; box-shadow: inset 0 1px 0 #ffc6d055,0 16px 45px -13px #b21f38aa; transform: translateY(-2px); }
.button.primary:hover::before { transform: translateX(120%); }
.button.primary>span { position: relative; }
.text-link { font-size: .875rem; color: #ddd4de; }
.nav-progress { height: 2px; background: linear-gradient(90deg,#6e1423,#ff8297); box-shadow: 0 0 15px #d6385250; }

/* Keep the original interactive sculpture and native scroll choreography. */
.price-journey { --nav-height: 81px; background: #0b0808; }
.journey-sticky { background: radial-gradient(ellipse at 73% 61%,#6e15242e,transparent 57%),#0b0808; }
.journey-stage.wave-mount { filter: hue-rotate(-12deg) saturate(.85); }
.journey-stage>.wave-poster { opacity: .9; }
.journey-kicker { display: flex; align-items: center; gap: 12px; color: #c6b7c2; font-size: .75rem; letter-spacing: .12em; margin-bottom: 26px; }
.journey-kicker::before { width: 28px; height: 1px; flex-shrink: 0; margin: 0; border-radius: 0; background: #f4758a; box-shadow: 0 0 15px #ee4c6755; }
.journey-beat { width: min(555px,43vw); }
.journey-beat h1 { font-weight: 620; font-size: clamp(68px,7.2vw,112px); line-height: .99; letter-spacing: -.055em; max-width: 570px; }
.journey-beat h2 { font-weight: 570; letter-spacing: -.045em; line-height: 1.05; }
.journey-beat h1 .titanium-text { display: block; background: var(--silver); background-clip: text; -webkit-background-clip: text; color: transparent; }
.journey-beat h1 .ruby-text { display: block; font-style: normal; background: linear-gradient(130deg,#ffb4c1 2%,#ec687e 35%,#a01d33 98%); background-clip: text; -webkit-background-clip: text; color: transparent; }
.journey-enhanced .journey-beat h1 { text-shadow: none; }
.journey-body { color: #bdb7c5; font-size: 1.0625rem; line-height: 1.7; max-width: 370px; margin-top: 26px; }
.journey-beat .button { font-size: .9375rem; margin-top: 30px; }
.journey-enhanced .journey-beat[data-story-beat="0"] { top: 12%; }
.journey-footer { font-size: .75rem; color: #a89ca9; border-top: 1px solid #ffffff14; padding-top: 20px; bottom: 24px; }
.journey-meter { color: #dfd6e0; }
.journey-meter i { background: #493135; }
.journey-meter b { background: #fb91a3; }
.journey-sticky::after { background: radial-gradient(ellipse 58% 68% at 6% 32%,#0b0808f5 0%,#0b0808e0 32%,#0b080885 58%,#0b080800 83%); }
.price-journey[data-beat="3"] .journey-sticky::after { background: radial-gradient(ellipse 58% 70% at 96% 40%,#0b0808f5 0%,#0b0808e8 44%,#0b080895 67%,#0b080800 90%); }
html:not(.journey-enhanced) .journey-beat { background: linear-gradient(90deg,#0b0808f2,#0b080870); }

/* Numbered product index and deep, tactile interactive surfaces. */
.product-index { counter-reset: product; border-color: #3d282c; gap: 0; padding-inline: 22px; border-radius: 12px; background: linear-gradient(135deg,#201214,#111015 45%,#101014); box-shadow: 0 20px 70px #0003; }
.product-index a { position: relative; counter-increment: product; gap: 14px; padding: 24px 18px; font-size: .875rem; color: #d7ccd8; border-right: 1px solid #ffffff0c; }
.product-index a:last-child { border-right: 0; }
.product-index a::before { content: '0' counter(product); font: .75rem var(--font-mono); color: #cb7a87; }
.product-index a>span:first-child { margin-right: auto; }
.product-index a:hover { background: #b63e5210; }
.product-story { grid-template-columns: minmax(220px,26%) minmax(0,1fr); gap: 9%; padding-top: 130px; }
.rail-title { font-size: 1rem; color: #b1a7b6; }
.rail-mark { background: linear-gradient(90deg,#ee7b8e,#6f1726); width: 48px; height: 2px; }
.story-rail nav a { padding-block: 24px; border-color: #2f2530; font-size: clamp(23px,2.2vw,32px); }
.story-rail nav a.is-active>span:last-child { color: #f6899b; }
.chapter-copy h2 { font-size: clamp(36px,3.7vw,54px); font-weight: 550; letter-spacing: -.04em; }
.chapter-copy p { color: #b8b0c0; font-size: 1rem; line-height: 1.8; }
.chapter-caption { font-size: .8125rem; color: #a99eae; }
.chapter-caption>span:last-child { font-size: .75rem; }
.journal-preview,.session-panel,.discipline-panel,.risk-preview { border: 1px solid #55404e; border-radius: 18px; background: radial-gradient(ellipse at 4% 0%,#53162030,transparent 64%),linear-gradient(145deg,#1e1617,#101015 70%); box-shadow: inset 0 1px 0 #edd5d90e,0 24px 70px -22px #0009; transition: border-color .3s,box-shadow .3s; }
.journal-preview { padding: 32px; }
.journal-preview:hover,.session-panel:hover,.discipline-panel:hover,.risk-preview:hover { border-color: #956069; box-shadow: inset 0 1px 0 #edd5d913,0 28px 80px -22px #000b; }
.preview-name,.calendar-heading,.discipline-heading,.risk-header { font-size: 1rem; font-weight: 500; }
.sample-label { font-size: .75rem; color: #b3a2b7; }
.segmented { border-color: #4f3e4d; border-radius: 8px; }
.segmented button { font-size: .875rem; min-height: 38px; border-radius: 5px; }
.segmented button[aria-selected=true] { background: #58232c; color: #fff; }
.preview-metrics { gap: 20px; margin-top: 34px; }
.preview-metrics span { font-size: .8125rem; color: #b9aebf; }
.preview-metrics strong { font-size: clamp(23px,2vw,30px); color: #eee4e6; }
.preview-metrics>div:first-child strong { color: #97dfb9; }
#equity-line { stroke: #da6b7d; }
#equity-dot { fill: #ffadbb; }
#chart-fill stop { stop-color: #c44459; }
.chart-axis,.chart-dates { font-size: .75rem; color: #a899ad; }
.preview-bottom { border-color: #3a2b39; font-size: .8125rem; color: #b7a9bb; }
.import-formats,.import-formats>span { font-size: .75rem; color: #beaabd; }
.calendar-weekdays { font-size: .75rem; color: #baacc0; }
.calendar-grid button { font-size: .875rem; border-radius: 7px; }
.calendar-grid button[aria-pressed=true] { border-color: #e57c8e; background: #79344040; color: #ffe7eb; box-shadow: 0 0 0 2px #d54c6315; }
.session-result { border-color: #3e2b2e; font-size: .875rem; }
.habit-emblem { height: 70px; }
.habit-emblem span:first-child { background: #e55870; }
.habit-emblem span:nth-child(2) { background: #d5c5c8; }
.rule-list label { font-size: 1rem; border-color: #3c2c2f; }
.rule-list input:checked~i { background: #922436; border-color: #d87586; }
.rule-list input:checked+span { color: #b4a2b7; }
.discipline-heading>span:last-child,.discipline-footer { font-size: .75rem; color: #b9a6bc; }
.discipline-footer { border-color: #3a2c39; }

/* The academy becomes the visual second act: oversized silver type, ruby light. */
.academy-section { background: #110b0c; border-color: #412328; padding-block: 110px; }
.academy-section::before { background: radial-gradient(ellipse 800px 650px at 17% 57%,#891c2e2e,transparent 72%); }
.eyebrow { font-size: .75rem; color: #e49ba7; }
.academy-heading h2 { font-weight: 570; font-size: clamp(48px,6.5vw,92px); max-width: 860px; }
.academy-heading p:not(.eyebrow) { font-size: 1rem; color: #bfb3c4; }
.lesson-count strong { background: var(--silver); background-clip: text; -webkit-background-clip: text; color: transparent; font-weight: 500; }
.lesson-count span { font-size: .75rem; color: #c8acb1; max-width: 170px; text-align: right; }
.academy-art { border-radius: 18px; border: 1px solid #71444c45; box-shadow: inset 0 1px 0 #ffffff08; }
.academy-art figcaption { font-size: .875rem; color: #e3cdd1; }
.academy-index,.course-entry { border-color: #573339; }
.course-entry summary { padding: 29px 4px; min-height: 110px; }
.course-entry summary small { font-size: .75rem; color: #c0979e; }
.course-entry summary strong { font-weight: 520; }
.course-entry summary:hover strong { color: #f8b4bf; }
.course-detail { padding-inline: 4px; }
.course-detail img { border-radius: 7px; border-color: #65373f; }
.course-detail p { color: #c1b0c4; font-size: 1rem; }
.expand-mark::before,.expand-mark::after { background: #db8e9b; }
.tools-heading h2 { font-weight: 560; }
.tools-heading p { font-size: 1rem; color: #b7adbe; }
.risk-principle p { font-size: .875rem; color: #aea0b6; }
.risk-preview { padding: 36px; }
.risk-balance,.risk-slider-label,.risk-result span { color: #cfb8bc; font-size: .875rem; }
.number-input { background: #100a0b; border-color: #544152; border-radius: 8px; }
.number-input input { font-size: 1.125rem; }
.risk-slider-label output { color: #f1c1c9; }
body:has(.price-journey) input[type=range] { height: 4px; background: linear-gradient(to right,#d85b70 0%,#d85b70 var(--risk-fill,27.27%),#443033 var(--risk-fill,27.27%),#443033 100%); }
body:has(.price-journey) input[type=range]::-webkit-slider-thumb { background: #a12b3f; border-color: #f2b2bd; width: 22px; height: 22px; box-shadow: 0 0 22px #d9425b50; }
body:has(.price-journey) input[type=range]::-moz-range-thumb { background: #a12b3f; border-color: #f2b2bd; }
.risk-result { border-color: #50353a; }
.risk-result output { color: #f4d6db; }
.risk-note { color: #b19db6; font-size: .8125rem; line-height: 1.7; }
.access-section { gap: 10%; }
.access-heading p,.access-steps p { color: #b9abbe; font-size: 1rem; }
.access-steps { counter-reset: access; }
.access-steps article { position: relative; padding-left: 58px; counter-increment: access; border-color: #392b38; }
.access-steps article::before { content: '0' counter(access); position: absolute; left: 0; top: 3px; font: .875rem var(--font-mono); color: #d48995; }
.access-steps h3 { font-size: 1.375rem; }
.closing { border-color: #54232b; background: radial-gradient(ellipse at 80% 50%,#67132144,transparent 75%),#120b0c; padding-top: 85px; }
.closing h2 { font-weight: 560; }
.foot { padding-top: 42px; }
.footer-links { font-size: .875rem; color: #b6a7bd; }
.foot>p { font-size: .75rem; line-height: 1.8; color: #a99aac; }
.footer-wordmark { margin-top: 54px; font-size: clamp(48px,11.1vw,160px); font-weight: 650; line-height: 1.05; letter-spacing: -.07em; background: linear-gradient(180deg,#aa848a,#503035 90%); background-clip: text; -webkit-background-clip: text; color: transparent; }
.footer-wordmark span { color: #a64555; }

/* Member workspace: a legible data surface with a distinct visual frame. */
body:has(#app),body:has(.card-auth) {
  --bg: #0d090a; --bg-2: #120c0d; --panel: #181112; --panel-2: #1f1517; --panel-3: #281b1d;
  --border: #433243; --border-soft: #302532; --text: #f5eeef; --text-2: #cfbec1; --text-3: #a698ae;
  --brand: #c53a51; --brand-2: #f08496; --brand-dim: #8e2738; --brand-glow: #b22a4122;
  --green: #82d6ab; --red: #f28fa0; --sidebar-w: 258px; --topbar-h: 80px;
  font-size: 1rem;
}
#app .main { background: radial-gradient(ellipse 1000px 700px at 98% 0%,#6e14232b,transparent 70%),var(--bg); }
#app .sidebar { background: radial-gradient(ellipse 300px 580px at 0 0,#72162524,transparent 80%),#110b0c; border-right-color: #3d272b; }
#app .sidebar-head { padding: 28px 24px; border-bottom: 1px solid #ffffff07; margin-bottom: 8px; }
#app .brand-lockup { gap: 13px; }
#app .brand-word { font: 650 18px/1.1 'Archivo Variable',var(--font-sans); letter-spacing: .035em; max-width: 155px; }
#app .logo svg { width: 34px; height: 34px; flex-shrink: 0; }
#app .nav { padding: 0 12px 24px; }
#app .nav-section-label { font-size: .75rem; color: #ad92ac; letter-spacing: .075em; }
#app .nav-item { min-height: 44px; font-size: .875rem; color: #c1b4c7; border-radius: 9px; padding: 11px 13px; }
#app .nav-item:hover { background: #241719; color: #fff; }
#app .nav-item.active { background: linear-gradient(100deg,#7c24334f,#32191d55); color: #ffe9ed; box-shadow: inset 0 0 0 1px #dc798a26; }
#app .nav-item.active::after { left: 0; right: auto; height: 18px; width: 2px; border-radius: 3px; box-shadow: 0 0 14px #f2687faa; background: #f88497; }
#app .nav-ic { color: #a38ba9; width: 18px; height: 18px; flex-basis: 18px; }
#app .nav-item.active .nav-ic { color: #f491a2; }
#app .nav-item.soon { color: #b2a2b9; opacity: .75; }
#app .soon-tag { font-size: .75rem; letter-spacing: 0; color: #bfa6aa; padding: 2px 5px; }
#app .sidebar-user { background: #130c0d; padding: 20px; border-color: #372326; }
#app .sidebar-user .name { font-size: .875rem; }
#app .sidebar-user .email { font-size: .75rem; color: #baa0a4; }
#app .topbar { background: #120b0cef; border-bottom-color: #3c292c; box-shadow: 0 8px 40px -25px #7e1a2b55; }
#app .acct-select,#app .account .acct-select,#app #langSel,#app #periodSel { font-size: .875rem; color: #e0d1d3; min-height: 40px; }
#app #periodSel { background: #201315; border-color: #4d3337; }
#app .account-badge { background: #392024; color: #f2c6cd; font-size: .75rem; width: 32px; height: 32px; }
#app .synced,#app .pill { font-size: .75rem; }
#app .pill { background: #25181a; color: #ccb2b6; border-color: #503237; padding: 4px 6px; }
#app .profile-menu { background: #1f1214; border-color: #57383d; border-radius: 13px; }
#app .profile-item { font-size: .875rem; min-height: 44px; }
#app .view { padding-top: 32px; }
#app .page-title { font: 570 clamp(30px,3vw,44px)/1.12 'Archivo Variable',var(--font-sans); letter-spacing: -.045em; }
#app .page-sub { font-size: 1rem; color: #bea6aa; }
#app .section-title { font-size: 1.125rem; font-weight: 550; }
#app .breadcrumb { font-size: .8125rem; color: #be9ea3; }
#app .card,#app .skel-card { background: linear-gradient(135deg,#201416 0%,#171011 75%); border-color: #402a2e; border-radius: 16px; box-shadow: inset 0 1px 0 #ffffff05,0 12px 40px -28px #0009; }
#app .kpi { position: relative; overflow: hidden; padding: 24px; }
#app .kpi::before { content: ''; position: absolute; top: 24px; left: 0; width: 2px; height: 22px; border-radius: 2px; background: linear-gradient(#d77787,#5c242d); }
#app .kpi .kpi-label { color: #cbaeb3; font-size: .875rem; }
#app .kpi .kpi-value { font-size: clamp(26px,2.1vw,36px); }
#app .kpi .kpi-tags,#app .result-label { font-size: .8125rem; color: #bc9fa4; }
#app .result-value { color: #efc3ca; }
#app .table { font-size: .875rem; }
#app .table th { font-size: .75rem; color: #c3a4a9; border-color: #4d3035; }
#app .table td { color: #ddcdd0; border-color: #322124; padding-block: 17px; }
#app .table tr:hover td { background: #b8617010; }
#app .table td.pos,#app .pos { color: var(--green); }
#app .table td.neg,#app .neg { color: var(--red); }
#app .table td.muted { color: #bba0a4; }
#app svg text { fill: #c1a0a6; font-size: 12px; }
#app svg .grid-line { stroke: #372326; }
#app .btn,#app .icon-btn { background: #2c191c; color: #e9d5d8; border-color: #5c3a40; border-radius: 9px; min-height: 44px; font-size: .875rem; }
#app .btn { padding: 11px 17px; }
#app .btn:hover,#app .icon-btn:hover { background: #3f2328; border-color: #99666e; color: white; }
#app .btn.primary,#app .btn.blue { background: linear-gradient(125deg,#a32b3f,#7a1a2a); border-color: #d8687b4f; color: #fff; box-shadow: inset 0 1px 0 #ffc7d026,0 6px 24px -10px #92223566; }
#app .btn.primary:hover,#app .btn.blue:hover { background: linear-gradient(125deg,#bb3a50,#982437); border-color: #f295a474; }
#app .btn.ghost { background: transparent; }
#app .icon-btn { width: 44px; height: 44px; }
#app .inp,#app .journal-box { background: #120b0c; border-color: #51383c; font-size: 1rem; border-radius: 9px; color: #f2e2e5; }
#app .inp { min-height: 48px; }
#app .inp:focus,#app .journal-box:focus { border-color: #d78593; box-shadow: 0 0 0 3px #b3425522; }
#app .inp::placeholder,#app .journal-box::placeholder { color: #ab8b90; }
#app .lbl,#app .lbl2,#app .field-label { font-size: .875rem; color: #cfafb4; }
#app .field-value { font-size: .875rem; color: #f298a7; }
#app .field-hint { font-size: .8125rem; color: #c0a0a5; }
#app .toggle-group { background: #160c0e; border-color: #55343a; }
#app .toggle-group button { font-size: .875rem; min-height: 40px; }
#app .toggle-group button.active { background: #442228; color: #f9d1d8; }
#app .tab { font-size: .875rem; min-height: 46px; }
#app .tab.active { color: #f5c4cc; }
#app .chip { font-size: .75rem; }
#app .promo { border-radius: 17px; border-color: #553339; height: clamp(260px,22vw,330px); }
#app .hero-shade { background: linear-gradient(180deg,#0b070800 0%,#12070955 25%,#12090af2 100%),linear-gradient(90deg,#14070988,transparent 80%); }
#app .hero-copy { padding: 30px; }
#app .hero-copy h3 { font: 580 clamp(28px,2.8vw,44px)/1.06 'Archivo Variable',var(--font-sans); letter-spacing: -.045em; }
#app .hero-copy p { font-size: .875rem; max-width: 440px; color: #dcc7ca; }
#app #ffaab8tPromo .feat-label { color: #f898a8; font-size: .75rem; letter-spacing: .07em; }
#app #ffaab8tPromo .feat-title { font-size: 26px; }
#app #ffaab8tPromo .feat-cap { background: linear-gradient(transparent,#170b0ded 80%); }
#app .lesson-card { flex-basis: 258px; }
#app .lesson-thumb { border-radius: 12px; border-color: #54373c; overflow: hidden; }
#app .lesson-card:hover .lesson-thumb { border-color: #d87989; }
#app .lesson-card-title { font-size: 1rem; font-weight: 500; color: #ebd6da; }
#app .lesson-dur { font-size: .75rem; }
#app .course-trader-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; min-width: 0; }
#app .course-trader-heading .section-title { width: auto; margin: 0; }
#app .course-telegram { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 13px; border: 1px solid #955266; border-radius: 8px; color: #ffe8f0; background: #482030; font-size: .875rem; font-weight: 500; line-height: 1.4; text-decoration: none; }
#app .course-telegram:hover { background: #632c42; border-color: #d38aa1; }
#app .course-telegram:focus-visible { outline: 2px solid #f1b8cd; outline-offset: 3px; }
#app .course-group-status { color: #e1b3c2; font-size: .875rem; line-height: 1.6; }
#app .onboarding-hero { background: #1a1012; border: 1px solid #543439; border-radius: 18px; box-shadow: 0 20px 65px -38px #b3374c60; }
#app .onboarding-copy { padding: clamp(28px,3.5vw,48px); background: radial-gradient(ellipse at 0 0,#882c3b36,transparent 74%); }
#app .onboarding-copy h1 { font: 570 clamp(34px,3.5vw,50px)/1.08 'Archivo Variable',var(--font-sans); letter-spacing: -.04em; }
#app .onboarding-eyebrow { font-size: .75rem; color: #deb1b8; }
#app .onboarding-intro { font-size: 1rem; color: #cbb4b8; }
#app .onboarding-note { font-size: .8125rem; color: #bfa0a5; }
#app .onboarding-steps h2 { font-size: 1rem; }
#app .onboarding-steps p { font-size: .875rem; color: #bda3a7; }
#app .onboarding-number { color: #cb818d; font-size: .875rem; }
#app .onboarding-link { color: #e4c6cb; font-size: .875rem; min-height: 44px; }

/* The same signature on entry, application and legal pages. */
body[data-auth-page] .bg { background: radial-gradient(ellipse at 5% 12%,#7c192a48,transparent 50%),radial-gradient(ellipse at 96% 80%,#61152238,transparent 53%),#0b0708; }
body[data-auth-page] .bg .orb { opacity: .08; }
body[data-auth-page] .brand-title { display: block; font: 650 30px/1.1 'Archivo Variable',var(--font-sans); letter-spacing: .03em; color: #f0e7e9; margin: 16px 0 10px; }
body[data-auth-page] .brand-tag { font-size: .75rem; color: #bfa7ab; letter-spacing: .16em; }
body:has(.card-auth) .card-auth { background: linear-gradient(135deg,#211315,#170d0f 70%); border-color: #6b3d45; border-radius: 18px; box-shadow: inset 0 1px 0 #fff5f70c,0 25px 80px #0005; padding: 36px; }
body:has(.card-auth) .card-title { font-weight: 550; }
body:has(.card-auth) .fld input { font-size: 1rem; background: #11090a; border-color: #57393e; border-radius: 8px; }
body:has(.card-auth) .go { min-height: 52px; background: linear-gradient(115deg,#a8263c,#791324); border-color: #d2697b6e; border-radius: 8px; font-size: 1rem; }
body:has(.card-auth) .go:hover { background: linear-gradient(115deg,#c4364e,#951f33); border-color: #f38a9c81; }
body:has(.card-auth) .lbl2 { font-size: .875rem; color: #d2b7bb; }
body:has(.card-auth) .hint,body:has(.card-auth) .consent { font-size: .875rem; line-height: 1.7; color: #c1a6aa; }
body:has(.card-auth) .foot { font-size: .75rem; color: #b29ab4; }
body[data-auth-page] .auth-home,body[data-auth-page] .auth-language button { font-size: .875rem; min-height: 40px; }
.registration-contact { margin: 0 0 24px; padding: 25px 28px; border: 1px solid #61414c; border-radius: 16px; background: linear-gradient(135deg,#29161e,#171015); }
.registration-contact h2 { margin: 0 0 12px; color: #f4e6ee; font: 550 1.375rem/1.3 'Archivo Variable',var(--font-sans); letter-spacing: -.025em; }
.registration-contact p { margin: 0 0 20px; font-size: 1rem; line-height: 1.65; color: #c7aeba; }
.registration-contact a { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 12px 16px; border: 1px solid #ddbecf; border-radius: 8px; background: linear-gradient(120deg,#f1e0e9,#c8acbd); color: #27141f; text-decoration: none; font-size: .9375rem; font-weight: 600; text-align: center; }
.registration-contact a:hover { background: #f7e7f0; }
.registration-contact a:focus-visible { outline: 2px solid #ffb8ce; outline-offset: 4px; }
@media(max-width:420px) { .registration-contact { padding: 22px; } }
body:has(> .lhead) { font-size: 1rem; background: #100809; }
body:has(> .lhead) .lhead { background: #160b0de8; border-color: #442228; }
body:has(> .lhead) .brand { display: inline-flex; align-items: center; gap: 12px; }
body:has(> .lhead) .tabs a.on { background: #8e2234; border-color: #be6070; }
body:has(> .lhead) section.blk p { color: #cbb1b5; }

@media (max-width:1100px) {
  .nav-inner { gap: 20px; }
  .nav-links { gap: 22px; }
  .product-index { padding-inline: 9px; }
  .product-index a { padding-inline: 12px; gap: 9px; }
  .preview-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
  .preview-metrics strong,.preview-metrics>div:first-child strong { font-size: 30px; }
  #app .synced { display: none; }
}
@media (max-width:1023px) {
  .product-story { display: block; padding-top: 90px; }
  .journey-beat h1 { font-size: clamp(64px,8vw,86px); }
  .journey-beat { width: 45vw; }
  .journey-body { font-size: 1rem; }
  .journey-kicker { font-size: .75rem; }
  .journey-enhanced .journey-beat.beat-right { margin-left: 56%; width: 39vw; }
  .journey-beat[data-story-beat="1"] .journey-body { font-size: 1rem; }
}
@media (max-width:767px) {
  .nav-inner { height: 72px; gap: 10px; }
  .price-journey { --nav-height: 73px; }
  .nav-actions { gap: 10px; }
  .lnav-brand { gap: 8px; }
  .lnav-brand svg { width: 28px; height: 28px; }
  .jt-wordmark b { font-size: 17px; }
  .jt-wordmark small { font-size: 12px; }
  .button-small { font-size: .875rem; padding: 9px 12px; }
  .lang button { min-width: 31px; padding: 7px; }
  .product-index { border-radius: 10px; gap: 0; padding-inline: 5px; }
  .product-index a { min-width: 150px; padding: 22px 14px; font-size: .875rem; }
  .chapter-copy h2 { font-size: clamp(34px,8.3vw,46px); }
  .chapter-copy p { font-size: 1rem; }
  .chapter-caption { font-size: .75rem; }
  .journal-preview { padding: 24px 20px; }
  .preview-top { flex-wrap: wrap; gap: 15px; }
  .preview-metrics { gap: 26px 12px; }
  .preview-metrics span { font-size: .8125rem; }
  .preview-metrics strong,.preview-metrics>div:first-child strong { font-size: 28px; }
  .chart-wrap,.chart-dates { padding-right: 56px; }
  .chart-axis,.chart-dates { font-size: .75rem; }
  .session-panel,.discipline-panel { padding: 25px 20px; }
  .calendar-heading { flex-wrap: wrap; font-size: 1rem; }
  .calendar-weekdays,.calendar-grid { gap: 4px; }
  .calendar-grid button { font-size: .875rem; min-height: 34px; }
  .calendar-grid button.has-trade::after { bottom: 4px; }
  .session-result { font-size: .875rem; gap: 12px; }
  .session-result strong { font-size: 25px; }
  .rule-list label { font-size: 1rem; line-height: 1.5; }
  .discipline-footer { flex-direction: column; gap: 6px; }
  .academy-section { padding-block: 76px; }
  .academy-heading { flex-wrap: wrap; gap: 28px; align-items: flex-end; }
  .academy-heading>div:first-child { flex: 1 1 240px; }
  .academy-heading h2 { font-size: clamp(39px,10vw,62px); max-width: none; }
  .lesson-count { padding: 0; align-items: flex-start; flex-direction: row; gap: 20px; min-width: 0; }
  .lesson-count strong { font-size: 86px; }
  .lesson-count span { align-self: center; text-align: left; max-width: 150px; margin: 0; }
  .academy-art { aspect-ratio: 1.2; }
  .academy-art figcaption { font-size: .875rem; }
  .course-detail { grid-template-columns: 95px minmax(0,1fr); gap: 16px; }
  .course-detail p { font-size: .9375rem; }
  .course-entry summary strong { font-size: 32px; }
  .tools-heading h2 { font-size: clamp(40px,10vw,60px); }
  .tools-heading p { font-size: 1rem; }
  .risk-preview { padding: 28px 24px; }
  .risk-principle p { font-size: .875rem; }
  .risk-result output { font-size: 46px; letter-spacing: -.05em; }
  .risk-note { font-size: .8125rem; }
  .access-steps p,.access-heading p { font-size: 1rem; }
  .access-steps article { padding-left: 43px; }
  .closing { padding-top: 64px; }
  .closing .button { font-size: .9375rem; }
  .footer-links { font-size: .875rem; gap: 16px 24px; }
  .footer-wordmark { margin-top: 35px; font-size: 10.8vw; }
  .foot>p { font-size: .75rem; }
  #app .hero-copy { padding: 26px; }
  #app .hero-copy p { font-size: .875rem; }
  #app .lesson-card { flex-basis: 238px; }
}
@media (max-width:600px) {
  .journey-enhanced .price-journey { height: 560svh; }
  .journey-enhanced .journey-beat,.journey-enhanced .journey-beat.beat-right { margin-left: 22px; width: calc(100% - 44px); top: 5%; }
  .journey-enhanced .journey-beat[data-story-beat="0"] { top: 5%; }
  .journey-kicker { font-size: .75rem; letter-spacing: .06em; margin-bottom: 18px; gap: 10px; }
  .journey-kicker::before { width: 21px; }
  .journey-beat h1 { font-size: clamp(48px,13vw,74px); max-width: 410px; line-height: 1.02; }
  .journey-beat h2 { font-size: clamp(35px,9.5vw,48px); max-width: 440px; line-height: 1.07; }
  .journey-body,.journey-beat[data-story-beat="1"] .journey-body { font-size: 1rem; line-height: 1.6; margin-top: 18px; max-width: 345px; }
  .journey-beat .button { font-size: .875rem; padding: 13px 20px; margin-top: 22px; min-height: 46px; }
  .journey-footer { left: 22px; right: 22px; font-size: .75rem; bottom: 18px; padding-top: 14px; }
  .journey-footer>span { max-width: 180px; line-height: 1.5; }
  .journey-meter { gap: 8px; }
  .journey-meter i { width: 40px; }
  .journey-stage.wave-mount { top: 25%; height: 75%; }
  .journey-sticky::after,.price-journey[data-beat="3"] .journey-sticky::after { background: linear-gradient(180deg,#0b0808 0%,#0b0808f5 26%,#0b080800 61%); }
}
@media (max-width:640px) {
  body:has(#app) { --topbar-h: 116px; }
  #app .topbar { height: 116px; padding: 10px 16px; grid-template-columns: 44px minmax(0,1fr); grid-template-rows: 44px 44px; gap: 6px 10px; }
  #app .topbar-right { gap: 10px; }
  #app .topbar .acct-select { font-size: .875rem; max-width: 220px; }
  #app #periodSel { max-width: 160px; }
  #app .view { padding: 24px 16px 64px; }
  #app .card { padding: 21px; }
  #app .kpi { padding: 22px; }
  #app .kpi .kpi-value { font-size: 28px; }
  #app .card:has(>.table),#app .card:has(>div>.table) { padding-inline: 16px; }
  #app .page-title { font-size: 32px; }
  #app .page-sub { font-size: 1rem; }
  #app .promo { height: 280px; }
  #app .hero-copy h3 { font-size: 32px; }
  #app .onboarding-copy { padding: 30px 24px; }
  #app .onboarding-copy h1 { font-size: 37px; }
  #app .onboarding-intro { font-size: 1rem; }
  #app .onboarding-visual { min-height: 190px; }
  #app .onboarding-note { font-size: .8125rem; }
  body:has(.card-auth) .card-auth { padding: 28px 24px; }
}
@media (max-width:380px) {
  .nav-inner { gap: 6px; }
  .nav-actions { gap: 6px; }
  .lnav-brand { gap: 6px; }
  .lnav-brand svg { width: 24px; height: 24px; }
  .jt-wordmark b { font-size: 15px; }
  .jt-wordmark small { font-size: 12px; letter-spacing: .1em; }
  .lang { padding: 2px; }
  .lang button { min-width: 28px; padding: 6px; }
  .button-small { padding-inline: 9px; font-size: .8125rem; }
  .journey-footer>span { max-width: 160px; }
  .course-detail { grid-template-columns: 1fr; }
  .course-detail img { display: none; }
}
/* Prefer a readable native document whenever height or text enlargement needs it. */
@media (max-height:640px) {
  .journey-footer { display: none; }
  .journey-beat { padding: 60px 0; }
  .journey-body { font-size: 1rem; }
  html.journey-enhanced .price-journey { height: auto; }
  html.journey-enhanced .journey-sticky { position: relative; top: auto; height: auto; min-height: 0; overflow: clip; }
  html.journey-enhanced .journey-text { position: relative; inset: auto; }
  html.journey-enhanced .journey-beat,html.journey-enhanced .journey-beat.beat-right { position: relative; top: auto; margin-left: max(22px,calc((100vw - 1320px)/2)); width: calc(100% - 44px); max-width: 650px; padding: 60px 0; opacity: 1!important; visibility: visible!important; transform: none!important; }
  html.journey-enhanced .journey-beat h1 { font-size: clamp(44px,8vw,80px); }
  html.journey-enhanced .journey-beat h2 { font-size: clamp(34px,6vw,56px); }
  html.journey-enhanced .journey-body { font-size: 1rem; }
  html.journey-enhanced .journey-stage.wave-mount { top: 0; height: 600px; opacity: .45; }
  html.journey-enhanced .journey-footer { display: none; }
}
@media (prefers-reduced-motion:reduce) {
  .journey-beat { background: linear-gradient(90deg,#0b0808f2,#0b080890); }
  .journey-stage.wave-mount { filter: none; }
  .button.primary::before { display: none; }
  .button.primary:hover { transform: none; }
}
@media (prefers-contrast:more) {
  .jt-wordmark small,.journey-body,.chapter-copy p,.sample-label,.foot>p { color: #eee; }
  .journey-beat h1 .titanium-text,.journey-beat h1 .ruby-text,.lesson-count strong,.footer-wordmark { background: none; color: white; }
}

#app .ib-portal-link { display:flex; justify-content:space-between; gap:12px; margin:4px 18px 12px; padding:11px 12px; border:1px solid #713443; border-radius:8px; font-size:14px; color:#edb9c4; background:#74273c20; }
#app .ib-portal-link:hover { background:#74273c40; }
