:root {
    --ink: #06120b;
    --ink-2: #0b2013;
    --green: #12c95a;
    --green-bright: #23ec72;
    --lime: #dcff37;
    --lime-soft: #edff9b;
    --paper: #f7f8f4;
    --white: #fff;
    --muted: #667069;
    --line: #dde3de;
    --danger: #e14e4e;
    --blue: #55cce8;
    --yellow: #ffd950;
    --shadow: 0 18px 55px rgba(5, 25, 13, .12);
    --radius: 20px;
    --font: Inter, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font); color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img { max-width: 100%; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: 112px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 34px; min-height: 54px; padding: 0 24px; border: 1px solid transparent; border-radius: 4px; font-weight: 800; transition: .25s ease; cursor: pointer; }
.button span { font-size: 19px; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.button-primary { background: var(--lime); color: var(--ink); }
.button-dark { background: var(--ink); color: white; }
.button-small { min-height: 44px; padding: 0 18px; gap: 15px; font-size: 13px; }
.button-full { width: 100%; }
.button-outline-light { color: white; border-color: rgba(255,255,255,.5); background: transparent; }
.button-outline-light:hover { background: white; color: var(--ink); }

.brand { display: inline-flex; align-items: center; gap: 10px; flex: none; }
.brand-mark { width: 49px; height: 49px; display: grid; place-items: center; border: 2px solid var(--green-bright); background: #020604; color: var(--lime); clip-path: polygon(50% 0, 93% 14%, 87% 74%, 50% 100%, 13% 74%, 7% 14%); }
.brand-crown { font-size: 26px; font-weight: 1000; font-style: italic; }
.brand-copy { display: flex; flex-direction: column; line-height: .82; letter-spacing: .08em; }
.brand-copy strong { font-size: 11px; }
.brand-copy b { color: #128b3c; font-size: 23px; font-weight: 1000; letter-spacing: -.03em; }

.announcement { height: 35px; background: var(--ink); color: white; font-size: 11px; letter-spacing: .02em; }
.announcement-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.announcement b { color: var(--lime); text-transform: uppercase; }
.announcement a { font-weight: 800; color: var(--lime); }
.site-header { height: 78px; position: relative; z-index: 50; background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(0,0,0,.08); }
.site-header.scrolled { position: fixed; top: 0; left: 0; width: 100%; box-shadow: 0 10px 25px rgba(4,26,11,.08); }
.header-inner { height: 100%; display: flex; align-items: center; gap: 42px; }
.brand-header { margin-right: auto; }
.main-nav { display: flex; align-items: center; gap: 28px; }
.main-nav a, .text-link { font-size: 13px; font-weight: 750; }
.main-nav a { position: relative; }
.main-nav a::after { content: ""; position: absolute; left: 0; bottom: -8px; width: 0; height: 2px; background: var(--green); transition: width .2s; }
.main-nav a:hover::after { width: 100%; }
.header-actions { display: flex; align-items: center; gap: 20px; }
.nav-toggle { display: none; background: none; border: 0; width: 42px; height: 42px; }
.nav-toggle span:not(.sr-only) { display: block; width: 23px; height: 2px; margin: 5px auto; background: var(--ink); }

.hero { min-height: 700px; position: relative; overflow: hidden; color: white; background: radial-gradient(circle at 71% 30%, #164d28 0, #0c2817 30%, #06120b 62%, #020704 100%); }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(112deg, transparent 50%, rgba(64,245,122,.07) 50.1%, transparent 74%); }
.hero-grid { position: absolute; inset: 0; opacity: .09; background-image: linear-gradient(rgba(255,255,255,.3) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.3) 1px, transparent 1px); background-size: 65px 65px; mask-image: linear-gradient(90deg, transparent, black 60%, transparent); }
.hero-inner { height: 620px; display: grid; grid-template-columns: .93fr 1.07fr; align-items: center; position: relative; z-index: 2; }
.hero-copy { padding-bottom: 8px; }
.eyebrow, .kicker { display: inline-flex; align-items: center; gap: 9px; color: #168e3f; text-transform: uppercase; letter-spacing: .14em; font-size: 11px; font-weight: 900; }
.eyebrow { color: var(--lime); }
.eyebrow span { width: 20px; height: 2px; background: var(--lime); }
.hero h1 { margin: 18px 0 22px; max-width: 650px; font-size: clamp(55px, 6.2vw, 89px); line-height: .89; letter-spacing: -.075em; text-transform: uppercase; }
.hero h1 em, .section-heading h2 em, .method h2 em, .contact h2 em, .login-brand-copy h1 em { color: var(--lime); font-family: Georgia, serif; font-weight: 500; text-transform: none; letter-spacing: -.06em; }
.hero-copy > p { max-width: 540px; color: #b8c6bd; font-size: 17px; line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 31px; margin-top: 31px; }
.play-link { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 800; }
.play-icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; font-size: 11px; }
.hero-trust { display: flex; align-items: center; gap: 14px; margin-top: 40px; }
.avatar-stack { display: flex; padding-left: 8px; }
.avatar-stack span { width: 34px; height: 34px; display: grid; place-items: center; margin-left: -8px; border: 2px solid var(--ink); border-radius: 50%; color: var(--ink); background: var(--lime); font-size: 9px; font-weight: 900; }
.avatar-stack span:nth-child(2) { background: #65df99; }.avatar-stack span:nth-child(3) { background: #d8e5dc; }.avatar-stack span:last-child { background: white; }
.hero-trust p { margin: 0; color: #8fa096; font-size: 11px; line-height: 1.45; }
.hero-trust strong { color: white; }
.hero-visual { height: 100%; position: relative; }
.anniversary-orbit { position: absolute; top: 62px; right: 40px; width: 245px; height: 245px; border: 1px solid rgba(220,255,55,.38); border-radius: 50%; animation: glow 4s ease-in-out infinite; }
.anniversary-orbit::before, .anniversary-orbit::after { content: ""; position: absolute; inset: 20px; border: 1px solid rgba(220,255,55,.18); border-radius: 50%; }
.anniversary-orbit::after { inset: -13px; border-style: dashed; }
.orbit-copy { display: none; }
.anniversary-core { position: absolute; inset: 48px; z-index: 2; border-radius: 50%; display: flex; align-items: center; justify-content: center; gap: 7px; color: var(--ink); background: var(--lime); box-shadow: 0 0 70px rgba(220,255,55,.2); transform: rotate(7deg); }
.anniversary-core strong { font: 1000 77px/.8 var(--font); letter-spacing: -.1em; }
.anniversary-core span { font-size: 13px; line-height: .95; font-weight: 1000; }
.student-silhouette { position: absolute; bottom: 0; left: 19%; width: 330px; height: 495px; filter: drop-shadow(0 0 45px rgba(29,255,106,.15)); }
.student-head { position: absolute; left: 104px; top: 8px; width: 119px; height: 137px; border-radius: 48% 49% 46% 50%; background: linear-gradient(135deg, #a67a5c 0 55%, #794d37); box-shadow: inset 5px 14px 0 #15110e; }
.student-head::before { content: ""; position: absolute; width: 105px; height: 48px; top: -9px; left: 5px; border-radius: 55% 50% 20% 5%; background: #10130f; transform: rotate(-8deg); }
.student-body { position: absolute; left: 22px; bottom: -16px; width: 290px; height: 370px; border-radius: 100px 100px 0 0; background: linear-gradient(112deg, #0d351d, #10b951 40%, #0a762f); transform: perspective(400px) rotateY(-3deg); box-shadow: inset 0 0 0 4px rgba(255,255,255,.05); }
.student-body::before { content: ""; position: absolute; inset: 62px 45px; border-left: 4px solid rgba(220,255,55,.25); transform: skew(-8deg); }
.shirt-mark { position: absolute; left: 50%; top: 60px; transform: translateX(-50%); width: 76px; height: 76px; display: grid; place-items: center; border: 2px solid var(--lime); color: var(--lime); clip-path: polygon(50% 0,95% 16%,85% 76%,50% 100%,15% 76%,5% 16%); background: #07150d; font-size: 37px; font-weight: 1000; }
.floating-card { position: absolute; z-index: 4; display: flex; align-items: center; gap: 12px; padding: 13px 15px; color: var(--ink); background: rgba(255,255,255,.93); box-shadow: var(--shadow); backdrop-filter: blur(8px); transform: rotate(-2deg); }
.floating-card div { display: flex; flex-direction: column; }
.floating-card strong { font-size: 11px; }.floating-card small { color: var(--muted); font-size: 9px; margin-top: 3px; }
.mini-icon { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 50%; background: var(--lime); font-weight: 900; }
.card-results { left: 0; top: 152px; }
.card-live { right: 10px; bottom: 150px; transform: rotate(2deg); }
.card-live i { width: 9px; height: 9px; background: #f44; border-radius: 50%; box-shadow: 0 0 0 6px #ffeaea; }
.hero-sticker { position: absolute; right: 40px; top: 335px; color: rgba(255,255,255,.35); font: 800 15px/1 var(--font); transform: rotate(-5deg); }
.hero-sticker b { color: var(--lime); font-size: 20px; }
.hero-bottom { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; height: 80px; border-top: 1px solid rgba(255,255,255,.15); color: #8ba092; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; }
.hero-bottom > a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: white; }
.hero-bottom b { color: var(--lime); }
@keyframes glow { 50% { box-shadow: 0 0 80px rgba(220,255,55,.12); transform: scale(1.02); } }

.section-heading h2, .method h2, .contact h2 { margin: 12px 0 0; font-size: clamp(42px, 5vw, 68px); line-height: .96; letter-spacing: -.055em; text-transform: uppercase; }
.section-heading h2 em, .method h2 em, .contact h2 em { color: #128e3d; }
.split-heading { display: grid; grid-template-columns: 1fr 420px; align-items: end; gap: 40px; margin-bottom: 55px; }
.split-heading > p { margin: 0; color: var(--muted); line-height: 1.7; font-size: 15px; }
.program-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.program-card { position: relative; min-height: 395px; padding: 28px; border: 1px solid var(--line); background: white; overflow: hidden; transition: .25s ease; }
.program-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.program-card::after { content:""; position:absolute; width: 150px; height: 150px; right:-85px; bottom:-85px; border-radius:50%; background: var(--lime); opacity:.4; }
.program-featured { background: var(--lime); border-color: var(--lime); }
.program-featured::after { background: white; opacity:.42; }
.program-dark { color: white; background: var(--ink); border-color: var(--ink); }
.program-number { font-size: 10px; font-weight: 900; color: #8a958d; }
.program-icon { margin: 43px 0 30px; color: #0aa148; font-size: 42px; font-weight: 800; }
.program-featured .program-icon { color: var(--ink); }.program-dark .program-icon { color: var(--lime); }
.program-tag { position: absolute; right: 18px; top: 20px; padding: 6px 9px; background: var(--ink); color: white; text-transform: uppercase; letter-spacing:.1em; font-size: 8px; font-weight:900; }
.program-dark .program-tag { color: var(--ink); background: var(--lime); }
.program-card h3 { margin: 0 0 13px; font-size: 21px; letter-spacing: -.035em; }
.program-card p { min-height: 66px; margin: 0; color: #667069; font-size: 13px; line-height: 1.6; }
.program-dark p { color: #aab8ae; }
.program-card ul { margin: 18px 0; padding: 0; list-style: none; font-size: 10px; line-height: 1.9; font-weight: 700; }
.program-card li::before { content:"✓"; margin-right:7px; }
.program-card > a { position: absolute; bottom: 26px; left: 28px; z-index: 2; font-size: 12px; font-weight: 900; }
.program-card > a span { color:#0aaa49; margin-left:8px; }

.method { color: white; background: var(--ink); overflow: hidden; }
.method-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.method-visual { position: relative; min-height: 560px; }
.method-visual::before { content:""; position:absolute; inset:-80px -30px; background: radial-gradient(circle, rgba(30,232,102,.16), transparent 65%); }
.method-board { position: absolute; inset: 22px 40px 50px 0; padding: 55px; border: 1px solid rgba(220,255,55,.4); background: linear-gradient(135deg, #153821, #08150e); transform: rotate(-3deg); box-shadow: 0 40px 70px rgba(0,0,0,.25); }
.method-board::before { content:""; position:absolute; inset:15px; border:1px dashed rgba(255,255,255,.12); }
.board-label { position: relative; display:inline-block; padding:8px 11px; color:var(--ink); background:var(--lime); font-size:10px; font-weight:1000; letter-spacing:.1em; }
.formula { position:relative; margin-top:65px; font: italic 48px/1.22 Georgia, serif; color:white; }
.formula i { color:var(--lime); }
.board-result { position:relative; display:block; margin-top:40px; font-size:24px; font-weight:1000; color:var(--lime); }
.method-note { position:absolute; right:0; bottom:0; padding:22px; color:var(--ink); background:white; transform:rotate(3deg); font: italic 15px/1.4 Georgia,serif; box-shadow:var(--shadow); }
.method h2 em { color: var(--lime); }
.kicker-light { color: var(--lime); }
.method-copy > p, .contact-copy > p { color:#9bad9f; line-height:1.75; font-size:15px; }
.method-list { margin: 35px 0; border-top:1px solid rgba(255,255,255,.12); }
.method-list > div { display:grid; grid-template-columns:42px 1fr; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.method-list span { color:var(--lime); font-size:11px; font-weight:900; }
.method-list p { margin:0; color:#829489; font-size:12px; line-height:1.45; }
.method-list strong { display:block; color:white; font-size:14px; margin-bottom:3px; }

.centered-heading { text-align:center; }
.numbers-grid { display:grid; grid-template-columns:repeat(4,1fr); margin:70px 0; border-block:1px solid var(--line); }
.numbers-grid div { display:flex; align-items:center; justify-content:center; gap:16px; min-height:135px; border-right:1px solid var(--line); }
.numbers-grid div:last-child { border:0; }
.numbers-grid strong { font-size:45px; letter-spacing:-.07em; color:#0b9944; }
.numbers-grid span { color:var(--muted); font-size:11px; line-height:1.4; }
.numbers blockquote { max-width:780px; margin:0 auto; text-align:center; }
.numbers blockquote > p { margin:0 0 25px; font:italic 25px/1.5 Georgia,serif; color:#2c3930; }
.numbers blockquote footer { display:flex; align-items:center; justify-content:center; gap:12px; }
.numbers blockquote footer > span { width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--lime);font-size:10px;font-weight:900; }
.numbers blockquote footer div { text-align:left; display:flex; flex-direction:column; }
.numbers blockquote footer strong { font-size:12px; }.numbers blockquote footer small { color:var(--muted);font-size:10px;margin-top:3px; }

.news { background:#eef1ec; }
.news-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:45px; }
.news-heading > a { font-size:12px;font-weight:900;border-bottom:1px solid;padding-bottom:5px; }
.news-grid { display:grid;grid-template-columns:1.45fr .8fr .8fr;gap:16px; }
.news-card { min-width:0;background:white; }
.news-art { height:235px;position:relative;display:grid;place-items:center;overflow:hidden;background:var(--ink);color:var(--lime); }
.news-art::before { content:"";position:absolute;inset:0;background-image:linear-gradient(135deg,transparent 45%,rgba(255,255,255,.07) 45% 55%,transparent 55%);background-size:40px 40px; }
.news-art span,.news-art b { position:relative;z-index:1; }
.art-five { grid-template-columns:1fr 1fr;background:linear-gradient(135deg,#06120b,#0b6c31); }
.art-five span { font-size:150px;font-weight:1000;line-height:1;letter-spacing:-.12em; }
.art-five b { font-size:30px;line-height:.9;transform:rotate(-5deg); }
.art-dragon span { font:1000 37px/1 var(--font);transform:skew(-7deg); }.art-dragon b{position:absolute;bottom:25px;font-size:18px;text-align:center;}
.art-team { background:linear-gradient(135deg,#d9ff37,#1cd666);color:var(--ink); }.art-team span{font-size:110px;font-weight:1000}.art-team b{position:absolute;bottom:20px;right:25px;font-size:18px;}
.news-content { padding:24px; }
.news-content > span { color:#0c9a44;text-transform:uppercase;font-size:9px;font-weight:1000;letter-spacing:.12em; }
.news-content h3 { margin:10px 0;font-size:20px;line-height:1.17;letter-spacing:-.035em; }
.news-main .news-content h3 { font-size:25px; }
.news-content p { margin:0;color:var(--muted);font-size:12px;line-height:1.55; }
.news-content a { display:inline-block;margin-top:18px;font-size:11px;font-weight:900; }

.contact { color:white;background:linear-gradient(120deg,#06120b 0 48%,#0d341c 100%); }
.contact-wrap { display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center; }
.contact h2 em { color:var(--lime); }
.contact-points { margin-top:30px;display:grid;gap:12px;color:#cad5ce;font-size:12px;font-weight:700; }
.contact-points span { display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;background:var(--lime);color:var(--ink); }
.contact-form { padding:36px;background:white;color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.3); }
.contact-form label,.login-form label { display:block;margin-bottom:17px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900; }
.contact-form label small { color:var(--muted);text-transform:none;letter-spacing:0; }
.contact-form input,.contact-form select,.contact-form textarea,.login-form input { display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #d8ded9;background:#fafbf9;outline:none;transition:.2s; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,.login-form input:focus { border-color:#0cb74d;box-shadow:0 0 0 3px rgba(12,183,77,.1); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.privacy-note { display:block;margin-top:12px;color:#88928b;text-align:center;font-size:9px;line-height:1.5; }
.alert { padding:12px 14px;margin-bottom:17px;border:1px solid;font-size:12px;line-height:1.45; }
.alert-success { color:#075b29;background:#e6fbed;border-color:#9debb9; }
.alert-error { color:#802828;background:#fff0f0;border-color:#f1b6b6; }

.site-footer { padding:65px 0 25px;color:white;background:#020604; }
.footer-grid { display:grid;grid-template-columns:1.4fr .7fr .9fr .8fr;gap:65px; }
.brand-footer .brand-copy strong { color:white; }
.footer-brand p { max-width:310px;color:#7f9185;font-size:12px;line-height:1.7; }
.social-link { color:var(--lime);font-size:11px;font-weight:900; }
.footer-grid h3 { margin:0 0 18px;color:var(--lime);font-size:10px;text-transform:uppercase;letter-spacing:.13em; }
.footer-grid > div:not(:first-child) a,.footer-grid > div:not(:first-child) p { display:block;margin:0 0 11px;color:#a1afa6;font-size:11px;line-height:1.5; }
.footer-grid > div:not(:first-child) a:hover { color:var(--lime); }
.footer-bottom { display:flex;justify-content:space-between;margin-top:50px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);color:#66776c;font-size:9px; }
.whatsapp-float { position:fixed;right:22px;bottom:22px;z-index:40;display:flex;align-items:center;gap:10px;padding:7px 7px 7px 17px;border-radius:30px;background:#20d366;color:#07150d;font-size:11px;font-weight:900;box-shadow:0 12px 34px rgba(0,0,0,.23); }
.whatsapp-float b { display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:white; }

/* Login */
.auth-shell { min-height:100vh; }
.login-page { min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:white; }
.login-brand-panel { position:relative;min-height:680px;padding:44px 60px;color:white;overflow:hidden;background:radial-gradient(circle at 75% 35%,#176730 0,#0c2c19 30%,#06120b 70%); }
.login-panel-grid { position:absolute;inset:0;opacity:.08;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:65px 65px; }
.login-brand-panel::before { content:"E";position:absolute;right:-75px;bottom:-130px;color:rgba(220,255,55,.06);font-size:620px;line-height:1;font-weight:1000;font-style:italic; }
.login-brand-top { position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center; }
.brand-login .brand-copy strong { color:white; }.brand-login .brand-copy b { color:var(--lime); }
.login-brand-top > a { color:#c4d1c8;font-size:11px;font-weight:800; }
.login-brand-copy { position:relative;z-index:2;max-width:620px;margin-top:18vh; }
.login-kicker { color:var(--lime);text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:900; }
.login-brand-copy h1 { margin:16px 0;font-size:clamp(52px,5vw,76px);line-height:.94;letter-spacing:-.065em;text-transform:uppercase; }
.login-brand-copy p { max-width:470px;color:#9fb0a4;line-height:1.7;font-size:14px; }
.login-quote { display:flex;gap:14px;margin-top:50px;max-width:420px; }
.login-quote span { color:var(--lime);font:60px/.6 Georgia,serif; }.login-quote p{margin:0;color:white;font:italic 14px/1.6 Georgia,serif;}
.login-anniversary { position:absolute;right:45px;bottom:35px;z-index:2;display:flex;align-items:center;gap:8px;color:var(--lime);transform:rotate(-4deg); }
.login-anniversary b { font-size:70px;line-height:.8;letter-spacing:-.1em; }.login-anniversary span{font-size:9px;font-weight:1000;line-height:1.05;}
.login-form-panel { display:grid;place-items:center;padding:45px; }
.login-form-wrap { width:min(410px,100%); }
.mobile-brand { display:none; }
.login-heading > span { color:#0b9843;text-transform:uppercase;letter-spacing:.13em;font-size:9px;font-weight:1000; }
.login-heading h2 { margin:8px 0 6px;font-size:34px;letter-spacing:-.04em; }
.login-heading p { margin:0;color:var(--muted);font-size:13px; }
.role-tabs { display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0 25px;padding:4px;background:#eef2ee;border-radius:6px; }
.role-tabs a { padding:10px 4px;text-align:center;border-radius:4px;color:#6f7a72;font-size:11px;font-weight:800; }
.role-tabs a.active { color:var(--ink);background:white;box-shadow:0 3px 12px rgba(0,0,0,.08); }
.input-with-icon { position:relative;display:block; }
.input-with-icon i { position:absolute;left:14px;top:20px;color:#839087;font-style:normal; }
.input-with-icon input { padding-left:39px; }
.input-with-icon button { position:absolute;right:7px;top:11px;width:38px;height:38px;border:0;background:none;color:#839087;cursor:pointer; }
.login-options { display:flex;justify-content:space-between;align-items:center;margin:-4px 0 20px;font-size:10px; }
.login-options label { display:flex;align-items:center;gap:6px;margin:0;text-transform:none;letter-spacing:0;color:var(--muted);font-weight:600; }
.login-options input { width:auto;margin:0; }.login-options a{color:#087f37;font-weight:800;}
.demo-box { margin-top:22px;padding-top:20px;border-top:1px solid var(--line); }
.demo-box > span { display:block;margin-bottom:8px;text-align:center;color:#8a948d;font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900; }
.demo-box button { width:100%;padding:11px 15px;border:1px dashed #b8c3bb;background:#f7f9f6;cursor:pointer;display:flex;align-items:center;justify-content:space-between; }
.demo-box button b { font-size:10px; }.demo-box button small{color:#6e796f;font-size:9px;}
.login-help { margin-top:25px;text-align:center;color:#7c877f;font-size:10px; }.login-help a{color:#07813a;font-weight:800;}

/* Portal shell */
.layout-portal { background:#f2f4f1; }
.portal-shell { min-height:100vh;display:grid;grid-template-columns:250px 1fr; }
.portal-sidebar { position:fixed;inset:0 auto 0 0;width:250px;z-index:70;display:flex;flex-direction:column;color:#d9e4dc;background:#07150d; }
.portal-brand-wrap { height:80px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.09); }
.brand-portal .brand-copy strong { color:white; }.brand-portal .brand-copy b{color:var(--lime);}
.brand-portal .brand-mark { width:42px;height:42px; }
.sidebar-close { display:none;margin-left:auto;border:0;background:none;color:white;font-size:25px; }
.profile-mini { display:flex;align-items:center;gap:11px;margin:22px 17px;padding:14px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07); }
.avatar,.topbar-avatar { display:grid;place-items:center;flex:none;border-radius:50%;font-size:10px;font-weight:1000;background:var(--lime);color:var(--ink); }
.avatar { width:38px;height:38px; }
.profile-mini > span:last-child { min-width:0;display:flex;flex-direction:column; }
.profile-mini strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px; }.profile-mini small{margin-top:4px;color:#819087;font-size:9px;}
.portal-nav { padding:0 12px; }
.nav-label { display:block;padding:8px 13px;color:#546359;text-transform:uppercase;letter-spacing:.14em;font-size:8px;font-weight:900; }
.nav-label-spaced { margin-top:18px; }
.portal-nav a,.logout-form button { display:flex;align-items:center;gap:12px;width:100%;min-height:43px;padding:0 13px;border:0;border-radius:4px;color:#9cac9f;background:none;font-size:11px;font-weight:700;cursor:pointer; }
.portal-nav a i,.logout-form i { width:19px;text-align:center;color:#718177;font-size:15px;font-style:normal; }
.portal-nav a:hover,.portal-nav a.active { color:var(--ink);background:var(--lime); }
.portal-nav a.active i { color:var(--ink); }
.logout-form { margin:auto 12px 20px; }
.logout-form button:hover { color:white;background:rgba(255,255,255,.08); }
.portal-page { min-width:0;grid-column:2; }
.portal-topbar { height:80px;position:sticky;top:0;z-index:40;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px); }
.portal-context { display:flex;flex-direction:column; }
.portal-context span { color:#839087;font-size:8px;text-transform:uppercase;letter-spacing:.1em; }.portal-context strong{margin-top:2px;font-size:12px;}
.topbar-actions { margin-left:auto;display:flex;align-items:center;gap:9px; }
.icon-button { position:relative;width:37px;height:37px;border:1px solid var(--line);border-radius:50%;background:white;cursor:pointer; }
.notification-button span { position:absolute;right:6px;top:5px;width:6px;height:6px;border-radius:50%;background:#e24545; }
.topbar-avatar { width:38px;height:38px;margin-left:5px; }
.sidebar-open { display:none;margin-right:14px;border:0;background:none;font-size:20px; }
.portal-content { width:min(1440px,100%);min-height:calc(100vh - 80px);padding:32px 34px 50px; }
.dashboard-hero { display:flex;align-items:center;justify-content:space-between;margin-bottom:25px; }
.dashboard-date { color:#159b45;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:900; }
.dashboard-hero h1,.classroom-heading h1 { margin:6px 0;font-size:31px;letter-spacing:-.045em; }
.dashboard-hero h1 span { font-size:23px; }.dashboard-hero p,.classroom-heading p{margin:0;color:var(--muted);font-size:12px;}
.streak-card { display:flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid #dbe5d8;background:white; }
.streak-card > span { font-size:21px; }.streak-card div{display:flex;flex-direction:column}.streak-card strong{font-size:12px}.streak-card small{color:var(--muted);font-size:9px;margin-top:2px;}
.portal-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:14px; }
.portal-stats article { min-width:0;display:flex;align-items:center;gap:12px;padding:18px;background:white;border:1px solid #e0e5e1; }
.stat-icon { width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:9px;font-weight:900; }
.stat-lime{background:#f0ffc0}.stat-green{background:#d9f9e4;color:#09883a}.stat-blue{background:#dbf5fb;color:#198aa1}.stat-yellow{background:#fff5cd;color:#ac7b00}
.portal-stats article > div { min-width:0;display:grid;grid-template-columns:1fr auto;align-items:end; }
.portal-stats small { grid-column:1/-1;color:#78847c;font-size:9px; }
.portal-stats strong { margin-top:5px;font-size:24px;letter-spacing:-.05em; }.portal-stats strong i{color:#77827a;font-size:10px;font-style:normal;letter-spacing:0}
.portal-stats em { color:#159a45;font-size:8px;font-style:normal;text-align:right; }
.dashboard-grid { display:grid;grid-template-columns:1.6fr .85fr;gap:14px; }
.panel { background:white;border:1px solid #e0e5e1; }
.panel-heading { min-height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #edf0ed; }
.panel-heading h2 { margin:2px 0 0;font-size:16px;letter-spacing:-.025em; }
.panel-heading a { color:#168e42;font-size:9px;font-weight:900; }
.panel-kicker { color:#8b968f;text-transform:uppercase;letter-spacing:.12em;font-size:7px;font-weight:900; }
.next-class-card { display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:20px;padding:24px 22px; }
.class-time { display:flex;flex-direction:column;align-items:center; }
.class-time strong { font-size:23px; }.class-time span{font-size:9px;color:var(--muted)}.class-time i{width:1px;height:20px;margin:5px;background:#b8c2bb}.class-time small{font-size:8px;color:var(--muted)}
.course-chip { display:inline-block;padding:4px 6px;color:#096d31;background:#e7f8ed;font-size:7px;font-weight:900;letter-spacing:.07em; }
.class-info h3 { margin:8px 0 3px;font-size:15px; }.class-info p{margin:0;color:var(--muted);font-size:9px}
.class-topic { margin-top:14px;padding:9px;background:#f4f6f3;font-size:9px;font-weight:700; }.class-topic span{margin-right:8px;color:#138d40;text-transform:uppercase;font-size:7px}
.task-count { display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#7f2a2a;background:#ffe5e5;font-size:8px;font-weight:900; }
.task-list a { display:flex;align-items:center;gap:11px;padding:14px 18px;border-bottom:1px solid #edf0ed; }.task-list a:last-child{border:0}
.task-status { width:9px;height:9px;flex:none;border:2px solid #8f9a92;border-radius:50%; }.task-status.urgent{border-color:#e84f4f;box-shadow:0 0 0 4px #fff0f0}
.task-list div { display:flex;flex-direction:column;min-width:0; }.task-list strong{font-size:10px}.task-list small{margin-top:4px;color:#879188;font-size:8px}.task-list b{margin-left:auto;color:#91a097}
.courses-panel { grid-row:2; }
.course-row-list > a { display:grid;grid-template-columns:40px 1fr 53px 10px;gap:13px;align-items:center;padding:13px 20px;border-bottom:1px solid #edf0ed; }
.course-row-list > a:last-child{border:0}.course-row-list > a:hover{background:#fafcfa}
.course-color { width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:var(--course-color);font-size:13px;font-weight:1000; }
.course-row-info { display:grid;grid-template-columns:1fr auto;gap:2px 8px;min-width:0; }.course-row-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.course-row-info small{color:var(--muted);font-size:8px}.course-row-info > span{grid-column:1/-1;height:3px;margin-top:6px;background:#e9ede9}.course-row-info > span i{display:block;height:100%;background:#159b46}
.course-grade { display:flex;flex-direction:column;text-align:right; }.course-grade small{color:var(--muted);font-size:7px}.course-grade strong{font-size:14px}
.calendar-panel { grid-row:2; }
.panel-heading button { border:0;background:none;color:#75827a; }
.mini-calendar { display:grid;grid-template-columns:repeat(7,1fr);gap:7px;padding:17px;text-align:center; }
.mini-calendar > span { position:relative;display:grid;place-items:center;height:21px;font-size:8px; }.mini-calendar .day-name{color:#859088;font-weight:900}.mini-calendar .today{border-radius:50%;color:var(--ink);background:var(--lime);font-weight:900}.mini-calendar .has-event::after{content:"";position:absolute;bottom:0;width:3px;height:3px;border-radius:50%;background:#15a347}
.calendar-event { display:flex;align-items:center;gap:10px;margin:0 17px 17px;padding:10px;background:#f4f7f3; }.calendar-event i{width:3px;height:29px;background:#19aa4a}.calendar-event div{display:flex;flex-direction:column}.calendar-event strong{font-size:9px}.calendar-event small{margin-top:3px;color:var(--muted);font-size:8px}

/* Teacher */
.teacher-grid { grid-template-columns:1.55fr .8fr; }
.schedule-list article { display:grid;grid-template-columns:47px 3px 1fr auto;gap:14px;align-items:center;padding:18px 22px;border-bottom:1px solid #edf0ed; }
.schedule-list article.current { background:#fbfff0; }
.schedule-time { display:flex;flex-direction:column; }.schedule-time strong{font-size:14px}.schedule-time small{color:var(--muted);font-size:8px}.schedule-line{width:3px;height:48px;background:#cbd4cd}.current .schedule-line{background:var(--lime)}
.schedule-list h3{margin:6px 0 3px;font-size:11px}.schedule-list p{margin:0;color:var(--muted);font-size:8px}.schedule-list article>a{color:#108b3e;font-size:8px;font-weight:900}
.review-chart { display:flex;align-items:center;gap:18px;padding:20px; }
.review-chart > div { position:relative;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) 0 72%,#e9eeea 72%); }
.review-chart > div::before { content:"";position:absolute;inset:7px;border-radius:50%;background:white; }.review-chart b{position:relative;font-size:14px}.review-chart p{margin:0;display:flex;flex-direction:column}.review-chart p strong{font-size:11px}.review-chart p small{margin-top:4px;color:var(--muted);font-size:8px}
.review-items a,.risk-students a { display:flex;align-items:center;gap:10px;padding:12px 17px;border-top:1px solid #edf0ed; }
.review-items a>span { width:29px;height:29px;display:grid;place-items:center;border-radius:6px;background:var(--course-color);font-size:9px;font-weight:900; }
.review-items div,.risk-students div{display:flex;flex-direction:column}.review-items strong,.risk-students strong{font-size:9px}.review-items small,.risk-students small{margin-top:3px;color:var(--muted);font-size:8px}.review-items b,.risk-students i{margin-left:auto}
.teacher-course-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px; }
.teacher-course-grid>a { position:relative;padding:17px;border-top:4px solid var(--course-color);background:#f7f9f7; }
.teacher-course-code { color:#159143;font-size:7px;font-weight:1000;letter-spacing:.08em}.teacher-course-grid h3{min-height:34px;margin:9px 0 4px;font-size:11px}.teacher-course-grid p{margin:0 0 17px;color:var(--muted);font-size:8px}.teacher-course-grid>a>div{display:flex;justify-content:space-between;font-size:8px}.teacher-course-grid>a>i{display:block;height:3px;margin-top:6px;background:#dfe6e0}.teacher-course-grid>a>i em{display:block;height:100%;background:var(--course-color)}
.risk-students>a>span { width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#e8eee9;font-size:8px;font-weight:900; }.risk-students i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#a23434;background:#ffe9e9;font-size:8px}

/* Classroom */
.classroom-heading { display:flex;align-items:end;justify-content:space-between;margin-bottom:25px; }
.classroom-tools { display:flex;gap:7px; }
.classroom-tools label { position:relative; }.classroom-tools label span{position:absolute;left:11px;top:9px;color:#7e8a81}.classroom-tools input{width:220px;height:38px;padding:0 12px 0 34px;border:1px solid var(--line);background:white;outline:none;font-size:10px}
.classroom-tools button { width:38px;height:38px;border:1px solid var(--line);background:white; }.classroom-tools button.active{color:white;background:var(--ink)}
.classroom-banner { position:relative;display:flex;align-items:center;justify-content:space-between;min-height:148px;padding:30px 40px;margin-bottom:30px;overflow:hidden;color:white;background:linear-gradient(105deg,#07150d,#105029); }
.banner-kicker{color:var(--lime);text-transform:uppercase;letter-spacing:.12em;font-size:8px;font-weight:1000}.classroom-banner h2{margin:7px 0;font-size:22px}.classroom-banner p{margin:0;color:#9eafa4;font-size:10px}
.banner-progress { position:relative;z-index:2;display:grid;grid-template-columns:180px 40px;gap:6px 10px;align-items:center; }.banner-progress>div{height:6px;background:rgba(255,255,255,.15)}.banner-progress>div span{display:block;height:100%;background:var(--lime)}.banner-progress b{font-size:13px}.banner-progress small{grid-column:1/-1;color:#9eafa4;font-size:8px}
.banner-shape { position:absolute;right:70px;top:-45px;color:rgba(220,255,55,.06);font-size:210px;font-weight:1000;font-style:italic; }
.classroom-section>.panel-heading { padding:0;border-bottom:0; }
.classroom-section select { padding:8px 30px 8px 10px;border:1px solid var(--line);background:white;font-size:9px; }
.classroom-course-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px; }
.classroom-course-card { min-width:0;border:1px solid #dfe5e0;background:white;transition:.2s; }.classroom-course-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.course-cover { position:relative;height:133px;padding:18px;overflow:hidden;color:var(--ink);background:linear-gradient(135deg,var(--course-color),color-mix(in srgb,var(--course-color) 45%,#092013)); }
.course-cover>span{padding:4px 6px;background:rgba(255,255,255,.6);font-size:7px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.course-cover>b{position:absolute;bottom:16px;left:18px;font-size:10px}.cover-symbol{position:absolute;right:16px;bottom:-20px;font-size:100px;line-height:1;opacity:.23;font-weight:1000}.course-cover button{position:absolute;right:10px;top:10px;border:0;background:none;font-size:15px}
.course-card-body { padding:17px; }.course-status{color:#228b48;font-size:7px;font-weight:800}.course-status i{display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:#22be5a}.course-card-body h3{min-height:36px;margin:8px 0 4px;font-size:13px;line-height:1.25}.course-card-body>p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;color:var(--muted);font-size:8px}.course-meta{display:flex;gap:10px;margin:14px 0;color:#78847b;font-size:7px}.course-progress-label{display:flex;justify-content:space-between;font-size:7px}.course-progress{height:4px;margin:5px 0 14px;background:#e9eeea}.course-progress span{display:block;height:100%;background:var(--course-color)}.course-card-body>a{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid #edf0ed;font-size:9px;font-weight:900}
.classroom-bottom-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px; }
.upcoming-list article { display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:14px 20px;border-top:1px solid #edf0ed; }.date-box{display:flex;flex-direction:column;align-items:center;padding:7px;background:#f0f3f0}.date-box.urgent{color:#9c2929;background:#ffeded}.date-box strong{font-size:14px}.date-box span{font-size:7px;font-weight:900}.upcoming-list article>div:nth-child(2)>span{color:#158f41;font-size:7px}.upcoming-list h3{margin:3px 0;font-size:10px}.upcoming-list p{margin:0;color:var(--muted);font-size:8px}
.announcement-panel>article { display:grid;grid-template-columns:34px 1fr;gap:12px;padding:17px 20px;border-top:1px solid #edf0ed; }.announcement-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--lime);font-size:11px}.announcement-icon.secondary{background:#daf5e3;color:#138a3f}.announcement-panel article small{color:#839087;font-size:7px}.announcement-panel article h3{margin:5px 0;font-size:10px}.announcement-panel article p{margin:0;color:var(--muted);font-size:8px;line-height:1.5}

/* Course detail */
.back-link { display:inline-block;margin-bottom:17px;color:#168d40;font-size:9px;font-weight:900; }
.course-detail-hero { position:relative;min-height:188px;display:flex;align-items:center;justify-content:space-between;padding:35px 40px;overflow:hidden;background:linear-gradient(110deg,var(--course-color),color-mix(in srgb,var(--course-color) 30%,#06120b)); }
.course-detail-hero>div:first-child{position:relative;z-index:2}.course-detail-hero>div:first-child>span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.course-detail-hero h1{margin:10px 0 8px;font-size:30px;letter-spacing:-.04em}.course-detail-hero p{margin:0;font-size:10px}
.course-detail-progress { position:relative;z-index:2;display:flex;flex-direction:column;text-align:right; }.course-detail-progress strong{font-size:34px;letter-spacing:-.06em}.course-detail-progress span{font-size:8px;font-weight:800}.course-hero-symbol{position:absolute;right:130px;bottom:-70px;font-size:230px;line-height:1;opacity:.12;font-weight:1000}
.course-tabs { display:flex;gap:30px;padding:0 25px;margin-bottom:20px;border:1px solid #dfe4e0;border-top:0;background:white; }.course-tabs a{padding:16px 0;border-bottom:2px solid transparent;color:#68736b;font-size:9px;font-weight:800}.course-tabs a.active{color:var(--ink);border-color:#12a047}
.course-detail-grid { display:grid;grid-template-columns:1fr 285px;gap:16px; }
.course-content-heading { display:flex;align-items:center;justify-content:space-between;margin-bottom:10px; }.course-content-heading h2{margin:4px 0;font-size:20px}.course-content-heading button{width:37px;height:37px;border:1px solid var(--line);background:white}
.module-card { margin-bottom:10px;border:1px solid #dfe4e0;background:white; }
.module-toggle { width:100%;display:grid;grid-template-columns:35px 1fr auto 15px;gap:12px;align-items:center;padding:18px;border:0;background:white;text-align:left;cursor:pointer; }
.module-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;color:#087b35;background:#e1f8e9;font-size:10px;font-weight:1000}.module-toggle div small{color:#159344;text-transform:uppercase;letter-spacing:.1em;font-size:7px;font-weight:900}.module-toggle h3{margin:4px 0 2px;font-size:12px}.module-toggle p{margin:0;color:var(--muted);font-size:8px}.module-count{color:#77827a;font-size:8px}.module-toggle>b{color:#7e8a82}
.module-resources { display:none;padding:0 18px 12px 65px; }.module-card.open .module-resources{display:block}.module-resources a{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:10px;border-top:1px solid #edf0ed}.module-resources a>span{width:26px;height:26px;display:grid;place-items:center;border-radius:5px;background:#f0f4f0;font-size:9px}.module-resources div{display:flex;flex-direction:column}.module-resources strong{font-size:9px}.module-resources small{margin-top:3px;color:var(--muted);font-size:7px}
.course-sidebar { display:grid;align-content:start;gap:12px; }.teacher-card{padding:20px;text-align:center}.avatar-large{width:55px;height:55px;margin:0 auto 12px}.teacher-card small{color:#159344;text-transform:uppercase;font-size:7px;font-weight:900}.teacher-card h3{margin:5px 0;font-size:12px}.teacher-card p{margin:0;color:var(--muted);font-size:8px}.teacher-card button{width:100%;margin-top:15px;padding:9px;border:1px solid var(--line);background:white;font-size:8px;font-weight:900}
.detail-actions h3{margin:0;padding:17px;font-size:12px}.detail-actions a{display:grid;grid-template-columns:24px 1fr auto;gap:9px;align-items:center;padding:12px 16px;border-top:1px solid #edf0ed}.detail-actions a>span{font-size:14px}.detail-actions div{display:flex;flex-direction:column}.detail-actions strong{font-size:9px}.detail-actions small{margin-top:3px;color:var(--muted);font-size:7px}
.course-next-task { padding:18px;border-left:4px solid #ef5b5b;display:flex;flex-direction:column}.course-next-task>span{color:#b43b3b;text-transform:uppercase;font-size:7px;font-weight:900}.course-next-task strong{margin-top:8px;font-size:11px}.course-next-task small{margin-top:4px;color:var(--muted);font-size:8px}.course-next-task a{margin-top:15px;color:#148a3e;font-size:8px;font-weight:900}
.error-page { min-height:65vh;display:grid;place-items:center;align-content:center;text-align:center;padding:50px; }.error-page>span{color:#13a249;font-size:75px;font-weight:1000}.error-page h1{margin:10px;font-size:30px}.error-page p{margin:0 0 25px;color:var(--muted)}

@media (max-width: 1100px) {
    .main-nav { gap:16px; }.main-nav a{font-size:11px}.text-link{display:none}
    .hero-inner{grid-template-columns:1fr 1fr}.student-silhouette{left:10%;transform:scale(.9);transform-origin:bottom}.anniversary-orbit{right:0}
    .program-grid{grid-template-columns:repeat(2,1fr)}.program-card{min-height:370px}
    .classroom-course-grid{grid-template-columns:repeat(2,1fr)}
    .portal-stats{grid-template-columns:repeat(2,1fr)}
}

@media (max-width: 820px) {
    .section{padding:78px 0}.announcement{display:none}.site-header{height:68px}
    .header-actions,.main-nav{display:none}.nav-toggle{display:block}
    .main-nav.open{display:flex;position:absolute;top:68px;left:0;width:100%;padding:25px 20px;flex-direction:column;align-items:flex-start;background:white;box-shadow:0 20px 30px rgba(0,0,0,.1)}
    .hero{min-height:auto}.hero-inner{height:auto;grid-template-columns:1fr;padding-top:75px}.hero-copy{position:relative;z-index:5}.hero h1{font-size:58px}.hero-visual{height:480px}.student-silhouette{left:50%;transform:translateX(-50%) scale(.85)}.anniversary-orbit{top:25px;right:5%;transform:scale(.8)}.card-results{left:5%;top:120px}.card-live{right:4%;bottom:60px}.hero-bottom{height:64px}
    .split-heading,.method-grid,.contact-wrap{grid-template-columns:1fr;gap:45px}.split-heading>p{max-width:600px}.method-visual{min-height:500px}.numbers-grid{grid-template-columns:repeat(2,1fr)}.numbers-grid div:nth-child(2){border-right:0}.news-grid{grid-template-columns:1fr 1fr}.news-main{grid-column:1/-1}.footer-grid{grid-template-columns:1fr 1fr}
    .login-page{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh}.mobile-brand{display:block;margin-bottom:40px}.brand-mobile-login .brand-copy strong{color:var(--ink)}
    .portal-shell{display:block}.portal-sidebar{transform:translateX(-100%);transition:.25s}.portal-sidebar.open{transform:translateX(0);box-shadow:30px 0 60px rgba(0,0,0,.25)}.sidebar-close,.sidebar-open{display:block}.portal-page{width:100%}.portal-content{padding:25px 20px}.portal-topbar{padding:0 20px}.dashboard-grid,.teacher-grid{grid-template-columns:1fr}.courses-panel,.calendar-panel{grid-row:auto}.classroom-bottom-grid,.course-detail-grid{grid-template-columns:1fr}.course-sidebar{grid-template-columns:repeat(3,1fr)}.classroom-heading{align-items:start;gap:20px;flex-direction:column}.classroom-tools{width:100%}.classroom-tools label{flex:1}.classroom-tools input{width:100%}
}

@media (max-width: 560px) {
    .container{width:min(100% - 28px,1180px)}.section{padding:65px 0}
    .brand-copy b{font-size:20px}.brand-mark{width:43px;height:43px}
    .hero-inner{padding-top:55px}.hero h1{font-size:45px}.hero-copy>p{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-trust{margin-top:28px}.hero-visual{height:420px}.student-silhouette{transform:translateX(-50%) scale(.72)}.anniversary-orbit{right:-25px;top:5px;transform:scale(.65)}.floating-card{padding:10px}.card-results{left:0}.hero-sticker{display:none}.hero-bottom>span{display:none}
    .section-heading h2,.method h2,.contact h2{font-size:40px}.program-grid,.news-grid{grid-template-columns:1fr}.news-main{grid-column:auto}.method-visual{min-height:430px}.method-board{inset:15px 0 40px;padding:35px}.formula{font-size:39px}.numbers-grid{grid-template-columns:1fr 1fr}.numbers-grid div{min-height:110px;flex-direction:column;gap:5px;text-align:center}.numbers-grid strong{font-size:36px}.news-heading{align-items:start;gap:25px;flex-direction:column}.contact-form{padding:24px}.form-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{gap:15px;flex-direction:column}.whatsapp-float span{display:none}.whatsapp-float{padding:7px}
    .login-form-panel{padding:25px}.login-heading h2{font-size:30px}.demo-box button{align-items:flex-start;gap:5px;flex-direction:column}.role-tabs a{font-size:10px}
    .portal-context span{display:none}.portal-topbar{height:65px}.portal-content{padding:20px 14px}.dashboard-hero{align-items:flex-start;gap:18px;flex-direction:column}.dashboard-hero h1,.classroom-heading h1{font-size:25px}.portal-stats{grid-template-columns:1fr 1fr;gap:8px}.portal-stats article{padding:12px;gap:8px}.stat-icon{width:31px;height:31px}.portal-stats strong{font-size:19px}.portal-stats em{display:none}.next-class-card{grid-template-columns:55px 1fr}.next-class-card>.button{grid-column:1/-1}.course-row-list>a{grid-template-columns:36px 1fr 36px}.course-row-list>a>b{display:none}.calendar-panel{display:none}
    .classroom-banner{align-items:flex-start;gap:20px;padding:25px;flex-direction:column}.banner-progress{width:100%;grid-template-columns:1fr 35px}.classroom-course-grid{grid-template-columns:1fr}.classroom-bottom-grid{grid-template-columns:1fr}.course-tabs{gap:18px;overflow:auto}.course-tabs a{white-space:nowrap}.course-detail-hero{align-items:flex-start;gap:20px;padding:25px;flex-direction:column}.course-detail-progress{text-align:left}.course-detail-hero h1{font-size:24px}.course-sidebar{grid-template-columns:1fr}.module-toggle{grid-template-columns:33px 1fr 14px}.module-count{display:none}.module-resources{padding-left:18px}
    .teacher-course-grid{grid-template-columns:1fr}.schedule-list article{grid-template-columns:40px 3px 1fr}.schedule-list article>.button,.schedule-list article>a{grid-column:3}.classroom-tools button{display:none}
}
