:root { --bg:#000; --bar:#2d2d2d; --text:#f4f4f4; --muted:#bdbdbd; --panel:#090909; --line:#242424; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; }
body { font-family:Arial, Helvetica, sans-serif; background:var(--bg); color:var(--text); font-size:16px; }
.site-header { height:34px; background:var(--bar); display:flex; align-items:center; padding:0 24px; gap:46px; }
.brand { color:var(--text); text-decoration:none; font-weight:700; font-size:22px; line-height:1; white-space:nowrap; }
.main-menu { display:flex; gap:32px; align-items:center; overflow-x:auto; white-space:nowrap; scrollbar-width:none; }
.main-menu::-webkit-scrollbar { display:none; }
.main-menu a { color:var(--text); text-decoration:none; font-weight:700; font-size:16px; line-height:34px; }
.main-menu a.active,.main-menu a:hover { color:#fff; }
.page { width:min(92vw,1320px); margin:160px auto 90px; }
.curriculum-page { min-height:calc(100vh - 34px); margin:0 auto; padding:0 16px 8vh; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.page-topline { display:flex; justify-content:space-between; align-items:end; gap:22px; margin:0 0 22px; }
h1 { margin:0; font-size:26px; line-height:1.1; font-weight:700; text-transform:lowercase; }
.language-menu { display:flex; gap:8px; font-size:14px; text-transform:lowercase; }
.language-menu a { color:var(--muted); text-decoration:none; border:1px solid var(--line); padding:5px 8px; }
.language-menu a.active,.language-menu a:hover { color:#fff; border-color:#777; }
.curriculum-accordion { max-width:1100px; }
.curriculum-accordion {
  font: 82% / 1.4em "Trebuchet MS", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.liteAccordion {
  width: 100%;
  min-height: 525px;
  background: var(--panel);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}

.liteAccordion > ol {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 525px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.liteAccordion .slide {
  display: flex;
  flex: 0 0 52px;
  min-width: 52px;
  height: 100%;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background: #050505;
  transition: flex-basis .28s ease, background-color .28s ease;
}

.liteAccordion .slide.active {
  flex: 1 1 auto;
  background: var(--panel);
}

.liteAccordion h2 {
  flex: 0 0 52px;
  width: 52px;
  margin: 0;
  font-size: 17px;
  line-height: 1;
}

.liteAccordion h2 button {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 52px;
  height: 100%;
  border: 0;
  border-right: 1px solid var(--line);
  padding: 18px 8px 28px 0;
  background: #101010;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  text-transform: lowercase;
}

.liteAccordion h2 span {
  display: block;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.liteAccordion .slide.active h2 button,
.liteAccordion h2 button:hover,
.liteAccordion h2 button:focus-visible {
  color: #fff;
  background: #171717;
}

.liteAccordion h2 button:focus-visible {
  outline: 1px solid #888;
  outline-offset: -3px;
}

.liteAccordion .accordion-content {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  background: #fff;
  color: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease .08s;
}

.liteAccordion .slide.active .accordion-content {
  opacity: 1;
  pointer-events: auto;
}
.curriculum-shell { display:grid; grid-template-columns:260px minmax(0,1fr); min-height:525px; max-width:1100px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--panel); }
.curriculum-tabs { border-right:1px solid var(--line); background:#050505; }
.curriculum-tab { width:100%; min-height:48px; display:block; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--muted); text-align:left; padding:0 18px; cursor:pointer; font:inherit; font-weight:700; text-transform:lowercase; }
.curriculum-tab.is-active,.curriculum-tab:hover { color:#fff; background:#111; }
.curriculum-panels { position:relative; min-width:0; }
.curriculum-panel { display:none; height:525px; position:relative; }
.curriculum-panel.is-active { display:block; }
.panel-scroll { height:100%; overflow:auto; padding:12px 16px; background:#fff; color:#000; scrollbar-color:#aaa #fff; }
.panel-scroll figure,.tinybox-content figure { margin:0; }
.panel-scroll h2,.tinybox-content h2 { margin:0 0 20px; font-size:22px; line-height:1.18; text-transform:lowercase; }
.panel-scroll h3,.tinybox-content h3 { margin:0; padding:0; font-size:1.6em; line-height:1.18; text-transform:lowercase; }
.panel-scroll p,.tinybox-content p { margin:0 0 10px; color:#000; line-height:1.42; }
.panel-scroll em,.tinybox-content em,.panel-scroll strong,.tinybox-content strong { color:#000; }
.open-tinybox { position:absolute; right:18px; bottom:16px; border:1px solid #555; background:rgba(0,0,0,.78); color:#fff; padding:7px 12px; font:inherit; font-size:13px; cursor:pointer; text-transform:lowercase; }
.open-tinybox:hover { border-color:#aaa; }
.tinybox[hidden] { display:none; }
.tinybox { position:fixed; inset:0; z-index:20; display:grid; place-items:center; }
.tinybox-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.78); }
.tinybox-dialog { position:relative; width:min(92vw,980px); height:min(86vh,760px); background:#080808; border:1px solid #333; box-shadow:0 18px 70px rgba(0,0,0,.75); padding:54px 58px 46px; overflow:auto; }
.tinybox-close { position:sticky; top:0; float:right; margin:-36px -36px 16px 16px; border:1px solid #555; background:#000; color:#fff; padding:7px 12px; cursor:pointer; font:inherit; font-size:13px; text-transform:lowercase; }
.site-footer { position:fixed; right:30px; bottom:22px; display:flex; gap:16px; align-items:center; color:var(--muted); font-size:14px; font-style:italic; }
.language-switcher { display:flex; gap:8px; font-style:normal; font-weight:700; }
.language-switcher a { color:var(--muted); text-decoration:none; }
.language-switcher a.active,.language-switcher a:hover { color:#fff; }
@media (max-width:900px) { .site-header{gap:24px;padding:0 16px}.main-menu{gap:20px}.page{margin-top:90px;width:calc(100vw - 32px)}.curriculum-shell{grid-template-columns:1fr}.curriculum-tabs{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.curriculum-tab{min-width:190px;border-right:1px solid var(--line);border-bottom:0}.panel-scroll{padding:28px 24px 70px}.site-footer{position:static;padding:34px 16px 22px;text-align:right} }
@media (max-width:760px) {
  .liteAccordion,
  .liteAccordion > ol {
    height: auto;
    min-height: 0;
  }

  .liteAccordion > ol {
    display: block;
  }

  .liteAccordion .slide {
    display: block;
    height: auto;
    min-width: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .liteAccordion h2,
  .liteAccordion h2 button {
    width: 100%;
    height: 46px;
  }

  .liteAccordion h2 {
    flex-basis: auto;
  }

  .liteAccordion h2 button {
    align-items: center;
    justify-content: flex-start;
    border-right: 0;
    padding: 0 18px;
  }

  .liteAccordion h2 span {
    writing-mode: horizontal-tb;
    transform: none;
  }

  .liteAccordion .accordion-content {
    display: none;
    height: 66vh;
  }

  .liteAccordion .slide.active .accordion-content {
    display: block;
  }
}
@media (max-width:520px) { .site-header{height:auto;min-height:44px;align-items:flex-start;flex-direction:column;gap:8px;padding:10px 16px}.main-menu{width:100%}.main-menu a{line-height:24px;font-size:14px}.page-topline{align-items:flex-start;flex-direction:column}.curriculum-panel{height:66vh}.tinybox-dialog{width:94vw;height:88vh;padding:44px 24px 34px} }
