:root {
  --page-bg:#ffffff; --surface:#ffffff; --paper:#f4f7f6; --ink:#182a2c; --muted:#5b7072;
  --line:#c8d7d5; --accent:#076d70; --accent-fill:#086d70; --accent-ink:#ffffff; --accent-hover:#055b5f;
  --tint:#e6f1ee; --tint-line:#c8dfda; --tint-ink:#246568; --header-bg:rgba(247,250,249,.93);
  --lesson-teal:#08787b; --lesson-teal-secondary:#4d9f9b; --graph-axis:#819d9d;
  --card-edge:#142e3008; --soft-shadow:#102a2d0c; --dialog-shadow:#08272930; --veil:#071c2099;
  --success:#076d70; --success-ink:#ffffff; --hover-surface:#e7efed; --page:1120px; color-scheme:light;
}
:root[data-theme="dark"] {
  --page-bg:#0c1415; --surface:#182628; --paper:#101c1e; --ink:#edf5f3; --muted:#a7bcbb;
  --line:#354c4d; --accent:#85e0d5; --accent-fill:#7bd6ca; --accent-ink:#082c2e; --accent-hover:#9be8df;
  --tint:#152e30; --tint-line:#2c5051; --tint-ink:#a0ded6; --header-bg:rgba(12,20,21,.94);
  --lesson-teal:#7bddce; --lesson-teal-secondary:#419b91; --graph-axis:#5b797b;
  --card-edge:#c1efea08; --soft-shadow:#00000030; --dialog-shadow:#00000066; --veil:#000000a6;
  --success:#85e0d5; --success-ink:#082c2e; --hover-surface:#233a3d; color-scheme:dark;
}
@media (prefers-color-scheme:dark) { :root:not([data-theme]) {
  --page-bg:#0c1415; --surface:#182628; --paper:#101c1e; --ink:#edf5f3; --muted:#a7bcbb;
  --line:#354c4d; --accent:#85e0d5; --accent-fill:#7bd6ca; --accent-ink:#082c2e; --accent-hover:#9be8df;
  --tint:#152e30; --tint-line:#2c5051; --tint-ink:#a0ded6; --header-bg:rgba(12,20,21,.94);
  --lesson-teal:#7bddce; --lesson-teal-secondary:#419b91; --graph-axis:#5b797b;
  --card-edge:#c1efea08; --soft-shadow:#00000030; --dialog-shadow:#00000066; --veil:#000000a6;
  --success:#85e0d5; --success-ink:#082c2e; --hover-surface:#233a3d; color-scheme:dark;
} }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:86px; }
body { margin:0; background:var(--page-bg); color:var(--ink); font:17px/1.55 -apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif; -webkit-font-smoothing:antialiased; }
button,input,select { font:inherit; }
button,a,select,summary { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button,select { cursor:pointer; }
a { color:var(--accent); text-underline-offset:3px; }
img { display:block; max-width:100%; height:auto; }
svg { display:block; }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { line-height:1.08; font-weight:650; letter-spacing:-.045em; }
h1 { font-size:clamp(64px,6.5vw,80px); }
h2 { font-size:clamp(34px,4.5vw,56px); }
h3 { font-size:28px; letter-spacing:-.03em; }
a,button,select,summary { outline-offset:4px; }
:focus-visible { outline:3px solid var(--accent-fill); }
[hidden] { display:none !important; }
.wrap { width:min(var(--page),calc(100% - 80px)); margin-inline:auto; }
.section { padding-block:108px; }
.eyebrow { color:var(--muted); font-size:14px; line-height:1.5; font-weight:600; letter-spacing:.035em; }
.section-heading { max-width:780px; }
.section-heading .eyebrow { margin-bottom:14px; }
.section-intro { max-width:640px; margin-top:22px; font-size:20px; line-height:1.5; color:var(--muted); letter-spacing:-.015em; }
.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; }
.skip-link { position:fixed; top:8px; left:8px; z-index:99; padding:12px 18px; border-radius:12px; background:var(--ink); color:var(--surface); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.site-header { position:sticky; top:0; z-index:20; padding-top:env(safe-area-inset-top); background:var(--header-bg); border-bottom:1px solid var(--card-edge); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); }
.header-row { display:flex; align-items:center; gap:32px; min-height:64px; }
#abdu-logo { display:flex; align-items:center; gap:6px; flex-shrink:0; min-height:44px; padding:0; border:0; border-radius:8px; color:var(--ink); background:transparent; text-align:left; font-size:23px; font-weight:700; letter-spacing:-.07em; }
#abdu-logo svg { width:28px; height:28px; }
.site-nav { display:flex; align-items:center; justify-content:center; gap:26px; margin-inline:auto; }
.site-nav a { display:flex; align-items:center; min-height:44px; color:var(--ink); text-decoration:none; font-size:12px; font-weight:450; white-space:nowrap; transition:color .2s; }
.site-nav a:hover { color:var(--accent); }
.language-control { display:flex; align-items:center; margin-left:auto; }
.language-control label { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.language-control select { color:var(--ink); background:transparent; border:0; border-radius:8px; min-height:44px; width:109px; padding:6px 4px; font-size:13px; }
.menu-toggle { display:none; align-items:center; justify-content:center; width:44px; min-height:44px; padding:10px; border:0; border-radius:8px; color:var(--ink); background:transparent; }
.menu-toggle svg { width:24px; height:24px; }
.hero { position:relative; overflow:hidden; padding-top:42px; text-align:center; background:var(--paper); }
.hero-copy { position:relative; z-index:1; }
.hero .eyebrow { color:var(--muted); font-size:14px; font-weight:550; letter-spacing:.065em; }
.hero h1 { margin-top:12px; }
.hero-subtitle { font-size:clamp(28px,3.2vw,36px); font-weight:600; line-height:1.14; letter-spacing:-.04em; margin-top:6px; color:var(--accent); }
.hero-intro { max-width:640px; margin:18px auto 0; color:var(--muted); font-size:18px; line-height:1.5; letter-spacing:-.01em; }
.hero-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px; margin-top:22px; }
.button { display:inline-flex; align-items:center; justify-content:center; text-align:center; min-height:44px; padding:10px 20px; border:1px solid transparent; border-radius:999px; text-decoration:none; font-size:15px; font-weight:450; line-height:1.45; transition:background-color .2s,color .2s,box-shadow .2s; }
.button-primary { background:var(--accent-fill); color:var(--accent-ink); }
.button-primary:hover { background:var(--accent-hover); }
.button-outline { color:var(--accent); border-color:var(--accent-fill); }
.button-outline:hover { background:var(--accent-fill); color:var(--accent-ink); }
.hero-art { position:relative; width:min(660px,100%); margin:0 auto 0; }
.hero-art img { width:100%; aspect-ratio:1000 / 480; }
.formula-note { position:absolute; color:var(--accent); opacity:.85; font:italic 29px/1 Georgia,serif; }
.formula-left { left:calc(16.0558% - 11.555568px); top:calc(56.25% - 3.235559px); transform-origin:100% 100%; transform:translate(-100%,-100%) rotate(-8deg); }
.formula-right { right:calc(15.158636% - 11.277521px); top:calc(41.666667% - 4.100917px); font-size:43px; transform-origin:0 100%; transform:translate(100%,-100%) rotate(8deg); }
.lessons-section { background:var(--page-bg); }
.lesson-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:46px; }
.lesson-card { min-width:0; display:flex; flex-direction:column; border:1px solid var(--card-edge); border-radius:28px; overflow:hidden; background:var(--paper); transition:transform .3s,box-shadow .3s; }
.lesson-card:hover { transform:translateY(-4px); box-shadow:0 14px 40px var(--soft-shadow); }
.lesson-art { color:var(--lesson-teal); background:linear-gradient(145deg,var(--tint),var(--paper)); padding:16px 8px 0; }
.lesson-art svg { width:100%; height:auto; }
.graph-axis { stroke:var(--graph-axis); stroke-width:1; opacity:.48; }
.graph-line { stroke:currentColor; stroke-width:3.5; stroke-linecap:round; }
.graph-secondary { stroke:currentColor; stroke-width:3.5; stroke-linecap:round; opacity:.48; }
.graph-guide { stroke:currentColor; stroke-width:1.2; stroke-dasharray:4 5; opacity:.4; }
.lesson-body { display:flex; flex:1; flex-direction:column; padding:25px 28px 30px; }
.lesson-number { color:var(--muted); font-size:12px; line-height:1; font-weight:650; letter-spacing:.12em; margin-bottom:14px; }
.lesson-card h3 { font-size:28px; }
.lesson-card p { margin-top:14px; margin-bottom:28px; color:var(--muted); font-size:16px; line-height:1.5; }
.lesson-links { display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin-top:auto; }
.lesson-links .button:first-child { color:var(--accent-ink); background:var(--accent-fill); }
.lesson-links .button:first-child:hover { background:var(--accent-hover); }
.lesson-links .button:not(:first-child) { padding:8px 0; border:0; border-radius:6px; color:var(--accent); justify-content:flex-start; }
.lesson-links .button:not(:first-child)::after { content:'›'; margin-left:7px; font-size:20px; line-height:1; }
.lesson-links .button:not(:first-child):hover { text-decoration:underline; }
.lesson-links .unavailable { display:flex; flex-wrap:wrap; align-items:center; min-height:44px; font-size:13px; color:var(--muted); padding-block:8px; }
.pdf-note { margin-top:24px; font-size:13px; color:var(--muted); }
.materials-section { background:var(--paper); }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:44px; }
.resource-card { padding:34px 30px 28px; border-radius:26px; background:var(--surface); display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.resource-icon,.resource-symbol { width:46px; height:46px; margin-bottom:32px; color:var(--ink); }
.resource-symbol { display:flex; align-items:center; justify-content:center; border:1.8px solid; border-radius:50%; font-size:29px; font-weight:400; width:35px; height:35px; margin:6px 0 37px 4px; }
.resource-card h3 { font-size:25px; }
.resource-card p { margin:18px 0 24px; color:var(--muted); font-size:16px; }
.resource-card .button { margin-top:auto; padding:6px 0; border:0; border-radius:6px; text-align:left; justify-content:flex-start; }
.resource-card .button::after { content:'›'; margin-left:7px; font-size:20px; }
.resource-card .button:hover { text-decoration:underline; }
.password { display:inline-block; margin-top:16px; color:var(--ink); font-size:13px; font-weight:500; font-variant-numeric:tabular-nums; border-radius:8px; background:var(--paper); padding:6px 10px; }
.contact-section { background:var(--page-bg); }
.contact-layout { display:grid; grid-template-columns:.83fr 1.17fr; gap:26px; margin-top:44px; align-items:stretch; }
.profile { background:var(--paper); border-radius:28px; padding:28px 25px 32px; text-align:center; }
.profile > img { width:160px; height:160px; object-fit:cover; object-position:center 12%; border-radius:50%; margin:0 auto 28px; }
.profile h3 { font-size:25px; letter-spacing:-.025em; }
.profile p { margin:9px 0 5px; color:var(--muted); font-size:15px; }
.profile a[href^='mailto:'] { overflow-wrap:anywhere; text-decoration:none; font-size:15px; }
.profile a[href^='mailto:']:hover { text-decoration:underline; }
.social-links { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:22px; }
.social-links a { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--surface); transition:transform .2s; }
.social-links a:hover { transform:translateY(-2px); }
.social-links img { width:20px; height:20px; object-fit:contain; margin:0;  }
.schedule-stack { display:grid; gap:24px; }
.schedule-card { border-radius:28px; padding:32px; background:var(--paper); }
.schedule-card h3 { font-size:25px; }
.schedule-card p { margin-top:15px; color:var(--muted); font-size:16px; }
.schedule-card .room { display:inline-flex; color:var(--ink); font-weight:600; font-size:16px; margin-top:17px; }
.study-center { background:var(--tint); }
.study-dates { margin-top:24px; border-top:1px solid var(--tint-line); padding-top:20px; }
.study-dates h4 { font-size:13px; line-height:1.5; color:var(--muted); letter-spacing:0; font-weight:500; }
.study-dates ul { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:10px; margin:13px 0 0; }
.study-dates li { background:var(--surface); border:1px solid var(--tint-line); border-radius:10px; padding:10px 14px; font-size:14px; line-height:1.4; font-weight:600; color:var(--tint-ink); }
.archive-section { background:var(--paper); color:var(--ink); }
.archive-section .eyebrow { color:var(--muted); }
.archive-section .section-heading { max-width:850px; }
.archive-section h2 { font-size:clamp(32px,4.1vw,52px); }
.archive-section .section-intro { color:var(--muted); max-width:760px; font-size:18px; }
.semester-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:44px; }
.semester-card { min-width:0; padding:28px; border:1px solid var(--card-edge); background:var(--surface); border-radius:24px; }
.semester-card h3 { display:flex; align-items:baseline; gap:12px; font-size:15px; letter-spacing:0; font-weight:400; }
.semester-card .semester-number { font-size:32px; font-weight:600; letter-spacing:-.04em; color:var(--accent); }
.semester-card a { text-decoration:none; }
.semester-card a:hover { color:var(--accent-hover); text-decoration:underline; }
.semester-card ul { margin:19px 0 0; padding:0; list-style:none; font-size:15px; line-height:1.65; color:var(--muted); }
.semester-card li { margin-top:7px; word-break:normal; overflow-wrap:normal; -webkit-hyphens:none; hyphens:none; }
.site-footer { background:var(--paper); color:var(--muted); padding:0 0 calc(20px + env(safe-area-inset-bottom)); }
.footer-row { border-top:1px solid var(--line); display:flex; align-items:center; gap:28px; padding-top:21px; }
.site-footer p { font-size:12px; }
.site-footer a { color:var(--ink); text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.footer-note { margin-left:auto; max-width:520px; }
@media (min-width:801px) and (max-width:1100px) {
  .lesson-grid,.semester-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1000px) {
  .wrap { width:calc(100% - 56px); }
  .header-row { gap:20px; }
  .site-nav { gap:17px; }
  .site-nav a { font-size:11px; }
  .lesson-grid,.resource-grid { gap:18px; }
  .lesson-body { padding:22px 22px 25px; }
  .resource-card { padding:30px 24px; }
  .hero { padding-top:48px; }
  .section { padding-block:84px; }
}
@media (max-width:800px) {
  .header-row { min-height:60px; gap:8px; }
  .site-header .language-control { margin-left:auto; }
  .language-control select { font-size:16px; width:117px; }
  .menu-toggle { display:flex; flex-shrink:0; }
  .site-nav { position:absolute; top:100%; left:0; right:0; display:grid; margin:0; padding:16px 28px 24px; gap:0; background:var(--page-bg); border-bottom:1px solid var(--line); box-shadow:0 14px 20px var(--soft-shadow); max-height:calc(100vh - 70px); max-height:calc(100dvh - 70px); overflow:auto; }
  .site-nav a { font-size:20px; min-height:52px; font-weight:550; letter-spacing:-.025em; white-space:normal; }
  .js .site-nav:not(.is-open) { display:none; }
  html:not(.js) .site-header { position:relative; }
  html:not(.js) .site-nav { position:static; grid-column:1/-1; width:100%; box-shadow:none; }
  html:not(.js) .header-row { flex-wrap:wrap; }
  html:not(.js) .site-nav { order:5; }
  .lesson-grid { grid-template-columns:1fr; }
  .lesson-card { display:grid; grid-template-columns:.7fr 1fr; }
  .lesson-art { display:flex; align-items:center; padding:20px; }
  .lesson-body { padding:30px; }
  .lesson-card p { margin-bottom:22px; }
  .lesson-links { gap:8px; }
  .resource-grid { grid-template-columns:1fr; gap:16px; }
  .resource-card { padding:30px; }
  .resource-icon,.resource-symbol { margin-bottom:25px; }
  .resource-card p { max-width:500px; margin:14px 0; }
  .contact-layout { grid-template-columns:.8fr 1fr; gap:18px; }
  .schedule-card { padding:26px; }
  .profile { padding:28px 18px; }
  .profile > img { width:130px; height:130px; }
  .profile h3 { font-size:22px; }
  .semester-grid { grid-template-columns:1fr 1fr; gap:16px; }
  .semester-card { padding:26px; }
}
@media (max-width:600px) {
  html { scroll-padding-top:80px; }
  .wrap { width:calc(100% - 40px); }
  .section { padding-block:68px; }
  .section-heading { padding-inline:4px; }
  .section-intro { font-size:17px; margin-top:17px; }
  .hero { padding-top:48px; }
  .hero h1 { font-size:64px; letter-spacing:-.055em; }
  .hero-subtitle { font-size:30px; margin-top:9px; }
  .hero-intro { font-size:17px; margin-top:20px; max-width:360px; }
  .hero .eyebrow { font-size:12px; }
  .hero-actions { gap:12px; margin-top:24px; }
  .hero .button { padding:10px 17px; font-size:14px; }
  .hero-art { width:134%; max-width:none; margin-left:-17%; margin-top:42px; padding-top:0; }
  /* Anchor each label to the ribbon silhouette, with a 12px outward gap. */
  .formula-left { font-size:21px; left:calc(24.275714% - 5.605452px); top:calc(16.666667% - 10.610321px); transform:translate(-100%,-100%); }
  .formula-right { font-size:30px; right:calc(21.982778% - 6.830520px); top:calc(25% - 9.866306px); transform:translate(100%,-100%); }
  .lesson-grid { gap:20px; margin-top:30px; }
  .lesson-card { display:flex; }
  .lesson-art { display:block; padding:10px 25px 0; }
  .lesson-body { padding:20px 28px 26px; }
  .lesson-number { margin-bottom:13px; }
  .lesson-card h3 { font-size:27px; }
  .lesson-card p { font-size:16px; }
  .lesson-links { align-items:flex-start; }
  .resource-grid { margin-top:32px; }
  .contact-layout { grid-template-columns:1fr; gap:20px; margin-top:32px; }
  .profile { padding:26px 20px; }
  .profile > img { width:130px; height:130px; margin-bottom:22px; }
  .schedule-stack { gap:20px; }
  .schedule-card { padding:28px; }
  .schedule-card h3 { font-size:24px; }
  .semester-grid { grid-template-columns:1fr; margin-top:32px; gap:14px; }
  .semester-card { padding:25px 28px; }
  .semester-card ul { columns:1; font-size:15px; line-height:1.65; }
  .semester-card li { break-inside:avoid; }
  .archive-section .section-intro { font-size:17px; }
  .footer-row { flex-wrap:wrap; gap:12px; padding-top:20px; }
  .footer-note { order:3; width:100%; margin:0; padding-bottom:8px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-delay:0ms !important; transition-duration:.01ms !important; }
  .lesson-card:hover,.social-links a:hover { transform:none; }
}
.archive-open { display:inline-flex; align-items:center; min-height:44px; margin-top:16px; color:var(--accent); font-size:13px; text-decoration:none; }
.archive-open::after { content:'›'; margin-left:7px; font-size:18px; }
.archive-open:hover { text-decoration:underline; }
/* A single stroke, tile and alignment system for resource and contact icons. */
.icon-tile { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:48px; height:48px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--accent); }
.ui-icon { display:block; width:24px; height:24px; flex:none; }
.resource-card > .icon-tile { margin:0 0 28px; }
.social-links { gap:12px; }
.social-links a.icon-tile { width:48px; height:48px; padding:0; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--accent); }
.social-links a.icon-tile:hover { background:var(--tint); }
.theme-control { position:relative; flex-shrink:0; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:10px; color:var(--ink); }
.theme-control:hover { background:var(--hover-surface); }
.theme-glyph { width:21px; height:21px; pointer-events:none; }
.theme-control select { position:absolute; inset:0; width:100%; height:100%; font-size:16px; opacity:0; cursor:pointer; }
.theme-control:focus-within { outline:3px solid var(--accent); outline-offset:2px; }
.theme-moon { display:none; }
:root[data-theme="dark"] .theme-sun { display:none; }
:root[data-theme="dark"] .theme-moon { display:block; }
:root[data-theme="dark"] .hero-art img { filter:brightness(1.07) saturate(1.05); }
:root[data-theme="dark"] .hero-art { background:radial-gradient(ellipse at center,#08787b10,transparent 65%); }
:root[data-theme="dark"] .formula-note { opacity:.85; }
@media (min-width:801px) { .header-row { gap:20px; } }
@media (max-width:800px) { .language-control select { width:112px; } }
@media (max-width:380px) { .header-row { gap:5px; } #abdu-logo { font-size:21px; } #abdu-logo svg { width:24px; } .language-control select { width:105px; } }

/* Short metadata groups may wrap as a whole, never after their separator. */
.text-group { display:inline-block; white-space:nowrap; }
.site-nav a[data-inline-groups] { column-gap:.28em; }
.lesson-links .unavailable { gap:.3em; }
