/* Global palette; subject palettes are intentionally independent. */
:root{--pink:#ff85d5;--lavender:#e79eff;--sky:#b8e4ff;--coral:#ff94a2;--butter:#ffe180;--ci-accent:#171719}
body[data-subject=portal]{--paper:#faf7fc;--ink:#29242f;--muted:#756979;--line:#e8dfeb;--green:#6d326b;--mint:#ffe180;--green2:#714b83;padding-bottom:0!important;background:#faf7fc!important;color:#29242f}
body[data-subject=portal] .hero-new{background:linear-gradient(155deg,#ff85d5 0%,#e79eff 45%,#b8e4ff 88%);box-shadow:none;border-radius:0;margin:0;min-height:660px;justify-content:center;text-align:center}
body[data-subject=portal] .hero-new:before{display:none}
body[data-subject=portal] .hero-copy{max-width:1040px;color:#29242f;padding:85px 30px 65px}
body[data-subject=portal] h1{font:750 clamp(58px,9vw,116px)/1.02 Arial,Helvetica,sans-serif;letter-spacing:-.065em;margin:25px 0}
body[data-subject=portal] h1 br{display:none}body[data-subject=portal] h1 em{font-style:normal;color:#6e306e}
body[data-subject=portal] .hero-copy p{margin:0 auto;max-width:620px;color:#514356}
body[data-subject=portal] .hero-copy .kicker{color:#644368}
body[data-subject=portal] .hero-actions{justify-content:center}
body[data-subject=portal] .action{background:#6d326b;color:#fff}
body[data-subject=portal] .action.secondary{background:rgba(255,255,255,.35);border:1px solid #ffffff90;color:#49364f}
body[data-subject=portal] .dm-project{justify-content:center;margin-top:45px}
body[data-subject=portal] .dm-project>img{filter:none}
body[data-subject=portal] .dm-project>div>img{filter:none}
body[data-subject=portal] .dm-project span{color:#615465}
body[data-subject=portal] .section-title h2,body[data-subject=portal] .progress-panel h2{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:-.05em}
body[data-subject=portal] .section-title .kicker{color:#754274!important}
body[data-subject=portal] .subject.ham{background:#1c4e72}.subject.iesc{background:#174b3c}
body[data-subject=portal] .subject .kicker{color:#fff}body[data-subject=portal] .subject .circle-arrow{background:#ffffffdf}
body[data-subject=portal] .progress-panel{background:linear-gradient(130deg,#ff85d54d,#e79eff60 55%,#b8e4ff70)}
body[data-subject=portal] .progress-track{background:#e3cde7}body[data-subject=portal] .progress-track span{background:#a84d9f}
body[data-subject=portal] .content{padding-bottom:0}body[data-subject=portal] .dm-footer{padding-bottom:50px!important}
/* Every view inside a subject inherits its own accent. */
body[data-subject=ham]{--forest:#174f7b;--lime:#d0e8ff;--soft:#eaf2fa;--line:#d9e4ee;--ink:#20364b;--paper:#f5f8fb;--portal-paper:#f5f8fb;--portal-green:#174f7b;--portal-mint:#d0e8ff}
body[data-subject=ham] .hero{background:#174f7b}body[data-subject=ham] .hero:after{background:linear-gradient(90deg,#103d62fa 0%,#174f7be8 35%,#174f7b70 70%,transparent)}
body[data-subject=ham] .courseart,body[data-subject=ham] .result{background:#174f7b}
body[data-subject=ham] .pearlbox{background:#eaf2fa}body[data-subject=ham] .bar span{background:#427caa}
body[data-subject=ham] .qprogress span{background:#174f7b}
body[data-subject=iesc]{--forest:#174b3c;--lime:#dce8b7;--portal-green:#174b3c}
body[data-subject=ci]{--forest:#171719;--lime:#e5e5e7;--soft:#f0f0f2;--portal-green:#171719}
/* A single full-screen, three-line menu replaces the tab bar. */
.dm-header .dm-menu-panel{position:fixed;inset:0!important;height:100dvh!important;width:100%;padding:110px max(30px,calc((100vw - 1120px)/2)) 50px!important;overflow:auto;background:rgba(250,250,252,.98);backdrop-filter:blur(30px);border:0;display:block;z-index:110}
.dm-menu-panel[hidden]{display:none!important}.dm-menu-links{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.dm-header .dm-menu-panel a{font:650 clamp(30px,4vw,48px)/1.25 Arial,Helvetica,sans-serif;color:#323236;letter-spacing:-.04em;margin:0;padding:2px 0;border:0;box-shadow:none}
.dm-header .dm-menu-panel a:hover{color:#7b437a}
.dm-controls .dm-menu{position:relative;z-index:120}
.dm-menu-open{overflow:hidden!important}.dm-menu-open .dm-controls>span,.dm-menu-open .dm-theme,.dm-menu-open .dm-brands{visibility:hidden}
.dm-menu-open main,.dm-menu-open .dm-footer{filter:blur(8px);opacity:.2;transition:opacity .25s,filter .25s}
.dm-menu-links a{animation:menuArrival .3s both}.dm-menu-links a:nth-child(2){animation-delay:.03s}.dm-menu-links a:nth-child(3){animation-delay:.06s}.dm-menu-links a:nth-child(4){animation-delay:.09s}.dm-menu-links a:nth-child(5){animation-delay:.12s}
@keyframes menuArrival{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
main{animation:pageArrival .5s both}@keyframes pageArrival{from{opacity:.15;transform:translateY(8px)}to{opacity:1;transform:none}}
.leaving main{opacity:0;transform:translateY(4px);transition:opacity .16s,transform .16s}
body[data-subject=portal].dm-dark{background:#211b28!important;color:#f3e9f5}body[data-subject=portal].dm-dark .hero-new{background:linear-gradient(145deg,#6e355f,#553c6b,#294658)}body[data-subject=portal].dm-dark .hero-copy,body[data-subject=portal].dm-dark h1 em{color:#fff}body[data-subject=portal].dm-dark .hero-copy p,body[data-subject=portal].dm-dark .hero-copy .kicker{color:#eee0f2}body[data-subject=portal].dm-dark .dm-project img{filter:brightness(0) invert(1)}body[data-subject=portal].dm-dark .dm-project span{color:#e7d6ec}.dm-dark .dm-header .dm-menu-panel{background:rgba(25,25,29,.98)}.dm-dark .dm-header .dm-menu-panel a{color:#eee}
body[data-subject=ham].dm-dark{--forest:#a7d6ff;--ink:#e0edfa;--line:#344e63;--soft:#243a4b;--paper:#15232f;--portal-paper:#15232f;background:#15232f!important}body[data-subject=ham].dm-dark .article,body[data-subject=ham].dm-dark .module,body[data-subject=ham].dm-dark .qcard,body[data-subject=ham].dm-dark .quizsetup,body[data-subject=ham].dm-dark .option,body[data-subject=ham].dm-dark .metric{background:#1b3041;color:#e0edfa}body[data-subject=ham].dm-dark .btn{background:#245c87;color:#fff}
@media(max-width:700px){body[data-subject=portal] .hero-new{min-height:650px}body[data-subject=portal] .hero-copy{padding:65px 25px 45px}.dm-header .dm-menu-panel{padding:92px 34px 40px!important}.dm-menu-links{gap:19px}.dm-header .dm-menu-panel a{font-size:34px}.dm-header-inner{position:relative}.dm-menu-open .dm-menu{position:relative}}
@media(prefers-reduced-motion:reduce){main,.dm-menu-links a{animation:none!important}.leaving main{transition:none!important}}
body[data-subject=ham] .dm-header .dm-menu-panel a:hover{color:#174f7b}body[data-subject=iesc] .dm-header .dm-menu-panel a:hover{color:#174b3c}
/* Refined Lary identity: warm ivory, plum and soft blush. */
body[data-subject=portal]{--paper:#faf8f5;--ink:#302a33;--muted:#837780;--green:#553d59;background:#faf8f5!important;color:#302a33}
body[data-subject=portal] .hero-new{margin:28px auto 0;max-width:1192px;min-height:620px;border-radius:28px;background:#eee5eb;position:relative;overflow:hidden;text-align:left;justify-content:flex-start}
body[data-subject=portal] .hero-new:before{display:block;background:linear-gradient(90deg,#eee5eb 0%,#eee5ebf5 35%,#eee5eb55 70%),url('assets/hero.webp') 75% center/cover;opacity:.8}
body[data-subject=portal] .hero-copy{padding:65px 62px;max-width:770px;position:relative}
body[data-subject=portal] h1{font:500 clamp(60px,7vw,94px)/1.02 Georgia,serif;letter-spacing:-.055em;max-width:600px;margin:22px 0 24px}
body[data-subject=portal] h1 em{font-style:italic;color:#684c69;display:block}
body[data-subject=portal] .hero-copy p{margin:0;max-width:420px;font-size:15px;line-height:1.85;color:#6b5c68}
body[data-subject=portal] .hero-copy .kicker{font-size:9px;letter-spacing:.22em;color:#795e76}
body[data-subject=portal] .hero-actions{justify-content:flex-start;gap:12px;margin-top:28px}
body[data-subject=portal] .action{background:#553d59;border-radius:10px;padding:13px 19px;font-size:12px}
body[data-subject=portal] .action.secondary{background:#ffffff60;border-color:#a68caa40;color:#553d59}
body[data-subject=portal] .dm-project{justify-content:flex-start;align-items:center;margin-top:42px;gap:12px}
.dm-project>img{width:38px!important;height:46px!important;object-fit:contain}.dm-project>div{gap:6px!important;align-items:flex-start}.dm-project>div>img{width:110px!important;height:28px!important;object-fit:contain}.dm-project span{font-size:10px!important;line-height:1!important;letter-spacing:.04em}
body[data-subject=portal] .section-title h2,body[data-subject=portal] .progress-panel h2{font:500 clamp(30px,4vw,43px)/1.12 Georgia,serif;letter-spacing:-.035em}
body[data-subject=portal] .content{padding-top:65px}
body[data-subject=portal] .subject{border-radius:20px;min-height:350px;padding:30px;box-shadow:none}
body[data-subject=portal] .subject.ham{background:#e7eef4;color:#284b66}body[data-subject=portal] .subject.iesc{background:#e4ede6;color:#28503c}
body[data-subject=portal] .subject p{color:inherit;opacity:.75}body[data-subject=portal] .subject .kicker{color:inherit;font-size:9px;letter-spacing:.13em}body[data-subject=portal] .subject .code{font-size:58px}body[data-subject=portal] .subject .circle-arrow{background:#fff9}
body[data-subject=portal] .progress-panel{background:#eee5ec;border:1px solid #e8dce6;border-radius:22px;margin-top:55px}
.dm-header{background:rgba(250,248,245,.92)}.dm-brands{gap:16px}.dm-header .dm-lary img{border-radius:13px}.dm-header .dm-wordmark{width:125px}.dm-header .dm-divider{height:23px;opacity:.7}
body[data-subject=portal].dm-dark .hero-new{background:#302731}body[data-subject=portal].dm-dark .hero-new:before{opacity:.2}body[data-subject=portal].dm-dark .subject.ham{background:#213748;color:#e1edf5}body[data-subject=portal].dm-dark .subject.iesc{background:#253d30;color:#e0eee6}
@media(max-width:700px){body[data-subject=portal] .hero-new{margin:12px;min-height:620px;border-radius:22px}body[data-subject=portal] .hero-copy{padding:40px 27px}body[data-subject=portal] .hero-new:before{background:linear-gradient(0deg,#eee5eb 0%,#eee5ebed 50%,#eee5eb70),url('assets/hero.webp') 64% center/cover}body[data-subject=portal] h1{font-size:64px}body[data-subject=portal] .content{padding-top:40px}.dm-header .dm-wordmark{width:94px}}
/* Airy gradient cover and subtle editorial accents. */
body[data-subject=portal] .hero-new{background:radial-gradient(ellipse at 8% 5%,#f4d9ed,transparent 58%),radial-gradient(ellipse at 95% 90%,#dceaf7,transparent 60%),linear-gradient(135deg,#f4eaf2,#eee5f2 55%,#f6edf0)}
body[data-subject=portal] .hero-new:before{display:none!important}body[data-subject=portal] .hero-copy{width:100%;max-width:100%;padding:74px 65px;text-align:center}body[data-subject=portal] h1{margin:22px auto 25px}body[data-subject=portal] .hero-copy p{margin:0 auto;max-width:500px}body[data-subject=portal] .hero-actions,body[data-subject=portal] .dm-project{justify-content:center}
body[data-subject=portal] h1 em{background:linear-gradient(100deg,#684c69,#9a6b92);background-clip:text;-webkit-background-clip:text;color:transparent;position:relative}
body[data-subject=portal] .hero-copy .kicker{display:inline-block;border:1px solid #ad8ba436;background:#fff5;border-radius:99px;padding:8px 13px}
.section-title .kicker{display:inline-block;border-left:3px solid #c798b8;padding-left:9px}.subject{transition:transform .25s,box-shadow .25s}.subject:hover{transform:translateY(-4px);box-shadow:0 16px 35px #40334312}
.lary-support{display:flex;align-items:center;gap:23px;padding:30px;border:1px solid #dfd4df;border-radius:22px;margin:55px 0 0;background:#ffffff75}.support-symbol{width:58px;height:58px;flex-shrink:0;display:grid;place-items:center;font-size:34px;background:#e6ede7;border-radius:18px;color:#26724d}.lary-support span{font-size:8px;letter-spacing:.15em;color:#8b7489}.lary-support h2{font:500 25px/1.2 Georgia,serif;margin:8px 0;color:#493b4a}.lary-support p{font-size:12px;color:#837780;margin:0}.support-cta{margin-left:auto;display:flex;flex-direction:column;gap:10px;max-width:210px}.support-cta button{border:0;background:#553d59;color:#fff;border-radius:99px;padding:13px 20px;cursor:pointer;font-weight:600}.support-cta small{font-size:9px;color:#837780;text-align:center}
body[data-subject=portal].dm-dark{--muted:#c0afbf;--line:#534355;--ink:#f2e8f2;background:#211b28!important;color:#f2e8f2}body[data-subject=portal].dm-dark .hero-new{background:radial-gradient(ellipse at 5% 0%,#57384f,transparent 65%),radial-gradient(ellipse at 95% 100%,#2c4253,transparent 65%),#302633}body[data-subject=portal].dm-dark h1 em{background:linear-gradient(100deg,#e4bedc,#cadcf3);background-clip:text;-webkit-background-clip:text;color:transparent}body[data-subject=portal].dm-dark .hero-copy .kicker{background:#ffffff08;border-color:#ffffff20;color:#dec9de}body[data-subject=portal].dm-dark .action.secondary{background:#ffffff10;color:#ead9ec;border-color:#ffffff25}body[data-subject=portal].dm-dark .progress-panel{background:#3b2d3d;border-color:#564258}body[data-subject=portal].dm-dark .progress-card{background:#ffffff09;border-color:#ffffff12;color:#f5e9f6}body[data-subject=portal].dm-dark .progress-meta{color:#cab4c7}body[data-subject=portal].dm-dark .progress-track{background:#5a4059}body[data-subject=portal].dm-dark .lary-support{background:#2e2632;border-color:#554359}body[data-subject=portal].dm-dark .lary-support h2{color:#f0e3f1}body[data-subject=portal].dm-dark .lary-support p,body[data-subject=portal].dm-dark .support-cta small{color:#c2afc1}.dm-dark .dm-footer{border-color:#534355;color:#c0afbf}.dm-dark .dm-header{background:rgba(29,25,32,.94)}
@media(max-width:700px){body[data-subject=portal] .hero-copy{padding:55px 25px}.lary-support{flex-wrap:wrap;padding:25px;gap:18px}.support-symbol{display:none}.support-cta{margin:0;max-width:none;width:100%}.lary-support h2{font-size:24px}}
.lary-support{background:#167447!important;border-color:#258259!important;color:#fff}.lary-support span{color:#c8e5d3!important}.lary-support h2{color:#fff!important}.lary-support p,.support-cta small{color:#d6eade!important}.support-symbol{background:#ffffff16;color:#fff}.support-cta button{background:#f3f8f4;color:#175b39;border:1px solid #ffffff80}.catalog-page{min-height:70vh}.catalog-page .content{padding-top:65px!important;padding-bottom:40px!important}.catalog-page .section-title{margin-bottom:35px}.catalog-page .section-title h2{max-width:550px}.catalog-page~.dm-footer{padding:35px 25px!important}.highlights{--feature:#674d6a;background:#eee6f0;border:1px solid #d9cddb;border-radius:22px;padding:34px 35px 0;overflow:hidden;margin-bottom:55px;position:relative}.highlights[data-color=blue]{--feature:#285777;background:#e3edf5;border-color:#cadce9}.highlights[data-color=green]{--feature:#28583f;background:#e4eee7;border-color:#cbddcf}.highlight-slide{display:flex;align-items:center;justify-content:space-between;gap:35px;min-height:180px;animation:pageArrival .4s}.highlight-slide span{font-size:9px;letter-spacing:.16em;color:var(--feature);font-weight:700}.highlight-slide h2{font:500 clamp(29px,4vw,42px)/1.1 Georgia,serif;letter-spacing:-.03em;margin:14px 0;color:var(--feature)}.highlight-slide p{font-size:13px;color:var(--feature);opacity:.8;max-width:590px;margin:0}.highlight-slide>a{flex-shrink:0;border:1px solid currentColor;border-radius:99px;padding:12px 18px;color:var(--feature);font-size:12px}.highlight-controls{display:flex;justify-content:space-between;align-items:center;padding:18px 0}.highlight-dots{display:flex;gap:7px}.highlight-dots button{width:7px;height:7px;border:0;border-radius:99px;background:var(--feature);opacity:.25;cursor:pointer;padding:0}.highlight-dots button[aria-pressed=true]{width:24px;opacity:1}.highlight-pause{border:1px solid #0002;background:transparent;border-radius:50%;height:30px;width:30px;color:var(--feature);cursor:pointer}.highlight-time{height:2px;margin:0 -35px;background:#00000009}.highlight-time span{display:block;width:100%;height:100%;background:var(--feature);transform-origin:left;animation:highlightClock 6.5s linear}.is-paused .highlight-time span{animation-play-state:paused!important}@keyframes highlightClock{from{transform:scaleX(0)}to{transform:scaleX(1)}}.dm-dark .highlights{background:#382b3c;border-color:#58445f;--feature:#e2c5e9}.dm-dark .highlights[data-color=blue]{background:#253b4d;border-color:#3c566b;--feature:#c4e1f6}.dm-dark .highlights[data-color=green]{background:#263d30;border-color:#405c48;--feature:#c3e1cd}@media(max-width:700px){.highlight-slide{flex-direction:column;align-items:flex-start;gap:22px;min-height:235px}.highlights{padding:25px 25px 0}.highlight-time{margin:0 -25px}.highlight-slide>a{margin-bottom:5px}.catalog-page .content{padding-top:40px!important}}@media(prefers-reduced-motion:reduce){.highlight-time span{animation:none}}
.lary-support{padding:38px 36px;gap:28px;background:linear-gradient(110deg,#146a42,#1b7c4e)!important;border-radius:24px;border:1px solid #2e8659!important}.support-symbol{display:none}.lary-support>div:nth-child(2){max-width:580px}.lary-support h2{font:600 27px/1.2 Arial,sans-serif;letter-spacing:-.035em;margin:10px 0}.lary-support p{font-size:13px;line-height:1.7}.support-cta{min-width:180px;max-width:230px}.support-cta button{padding:14px 26px;font-size:13px;box-shadow:0 4px 15px #00351d18}.support-cta small{line-height:1.5}
.progress-page .content{max-width:1192px;padding-top:65px!important}.progress-intro{max-width:700px}.progress-intro .kicker{color:#91647f}.progress-intro h1{font:500 clamp(48px,6vw,72px)/1.1 Georgia,serif!important;letter-spacing:-.045em!important;margin:17px 0!important}.progress-intro p{font-size:14px;color:#837780;line-height:1.8}.global-metrics,.subject-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.global-metrics{margin:32px 0 45px}.global-metrics>div{padding:23px;border:1px solid #e5d8e3;background:#eee5ec;border-radius:16px}.global-metrics strong,.subject-metrics strong{display:block;font:500 35px Georgia,serif}.global-metrics span,.subject-metrics span{display:block;font-size:11px;margin-top:8px;color:#837780}.progress-subject{--accent:#285777;--tint:#e6eff6;background:#fff;border:1px solid #e3e4e7;border-radius:24px;padding:32px;margin:25px 0 35px}.progress-iesc{--accent:#28583f;--tint:#e4eee7}.progress-heading{position:static!important;display:flex!important;height:auto!important;padding:0 0 25px!important;background:none!important;border:0!important;backdrop-filter:none!important;align-items:center;justify-content:space-between}.progress-heading span{font-size:9px;letter-spacing:.15em;color:var(--accent)}.progress-heading h2{font:500 38px Georgia,serif;margin:10px 0 0;color:var(--accent)}.progress-heading>a{font-size:12px;color:var(--accent)}.subject-metrics>div{padding:19px;background:var(--tint);border-radius:13px}.subject-metrics strong{color:var(--accent)}.subject-metrics small{font:15px Arial,sans-serif}.progress-links{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 32px}.progress-links a{font-size:11px;color:var(--accent);border:1px solid #ccd6d6;border-radius:99px;padding:9px 14px}.progress-subject h3{font-size:16px;margin-top:30px}.topic-progress>a{display:grid;grid-template-columns:1.3fr 1fr 45px;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid #e8eaeb}.topic-progress strong{display:block;font-size:12px;font-weight:500}.topic-progress span{display:block;font-size:10px;color:#8a8b8b;margin-top:5px}.topic-progress b{font-size:12px;color:var(--accent);text-align:right}.topic-bar{height:6px;background:var(--tint);border-radius:8px;overflow:hidden}.topic-bar i{display:block;background:var(--accent);height:100%}.session-row{display:flex;justify-content:space-between;border-bottom:1px solid #e8eaeb;padding:14px 0;font-size:11px}.progress-empty{font-size:12px;color:#888;line-height:1.8}.progress-backup{border-top:1px solid #dfd5df;margin-top:45px;padding-top:28px;display:flex;align-items:center;justify-content:space-between;gap:25px}.progress-backup h2{font:500 28px Georgia,serif}.progress-backup p{font-size:12px;color:#837780;max-width:600px}.progress-backup button{background:#553d59;color:#fff;border:0;border-radius:10px;padding:13px 18px;cursor:pointer;white-space:nowrap}.dm-dark .global-metrics>div{background:#3b2d3d;border-color:#554158}.dm-dark .progress-subject{background:#29242d;border-color:#493e4d}.dm-dark .progress-ham{--accent:#bdddf6;--tint:#253b4d}.dm-dark .progress-iesc{--accent:#bdddc7;--tint:#283e30}.dm-dark .subject-metrics span,.dm-dark .global-metrics span,.dm-dark .progress-intro p,.dm-dark .progress-backup p{color:#bdb1bf}.dm-dark .topic-progress>a,.dm-dark .session-row{border-color:#493e4d}@media(max-width:700px){.global-metrics,.subject-metrics{grid-template-columns:1fr 1fr;gap:10px}.progress-subject{padding:23px 20px}.topic-progress>a{grid-template-columns:1fr 45px}.topic-bar{grid-column:1;grid-row:2}.topic-progress b{grid-column:2;grid-row:1 / 3}.progress-backup{align-items:flex-start;flex-direction:column}.lary-support{padding:28px}.lary-support h2{font-size:24px}}
