*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  font-family:"Charter","Iowan Old Style","Source Serif Pro",Georgia,"Times New Roman",serif;
  color:#111418; background:#fff; margin:0; line-height:1.6; font-size:17px;
  hyphens:auto; -webkit-hyphens:auto;
}
p, li, .step li, .timeline .dt, .selfcheck .ans{ text-align:justify; }
.sub, .meta, .eyebrow, .lbl, .wbadge, .secttag, footer, .projmeta, .pager a{ text-align:left; hyphens:none; }
a{ color:#14385c; }
a.term-link{ font-weight:700; text-decoration-thickness:1px; text-underline-offset:2px; }
code,.mono{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  background:#f4f5f7; padding:1px 5px; border-radius:4px; font-size:.92em; }

.topnav{ border-bottom:1px solid #d1d4d8; background:#fff; position:sticky; top:0; z-index:5; }
.topnav .inner{ max-width:900px; margin:0 auto; padding:12px 28px; display:flex; align-items:baseline; gap:18px; }
.topnav .brand{ font-weight:700; color:#111418; text-decoration:none; font-size:1rem; }
.topnav .brand span{ color:#5a626c; font-weight:400; }
.topnav nav{ margin-left:auto; display:flex; gap:18px; font-size:.92rem; }
.topnav nav a{ text-decoration:none; color:#2c3138; }
.topnav nav a:hover{ color:#14385c; }

.wrap{ max-width:900px; margin:0 auto; padding:34px 28px 80px; }

.hero{ border-bottom:2px solid #111418; padding-bottom:18px; margin-bottom:8px; }
.hitlogo{ display:block; height:60px; width:auto; margin:0 0 16px; }
.hero .eyebrow{ font-size:.82rem; }
.hero h1{ font-size:2rem; margin:0 0 8px; font-weight:700; letter-spacing:-.01em; }
.hero .sub{ color:#2c3138; font-style:italic; font-size:1.1rem; margin:0 0 12px; }
.hero .meta{ display:flex; flex-wrap:wrap; gap:8px 18px; font-size:.9rem; color:#2c3138; }
.hero .meta b{ color:#111418; }
.hero .heb{ color:#2c3138; font-size:1.05rem; margin:0 0 12px; direction:rtl; text-align:left; }

.whead{ border-bottom:2px solid #111418; padding-bottom:16px; margin-bottom:6px; }
.eyebrow{ font-variant:small-caps; letter-spacing:.1em; color:#14385c; font-weight:700; font-size:.8rem; margin:0 0 6px; }
.whead h1{ font-size:1.8rem; line-height:1.2; margin:0 0 8px; font-weight:700; letter-spacing:-.01em; }
.whead .sub{ color:#2c3138; font-size:1.02rem; margin:0; }
.wbadge{ display:inline-block; background:#14385c; color:#fff; font-weight:700; font-size:.78rem;
  letter-spacing:.06em; padding:3px 10px; border-radius:4px; font-variant:small-caps; }
.wbadge.presb{ background:#7a5a14; }
.secttag.presi{ background:#7a5a14; }

h2{ font-size:1.22rem; color:#14385c; font-weight:700; margin:32px 0 12px; padding-bottom:6px; border-bottom:1px solid #d1d4d8; }
h2 .ic{ font-size:.9em; margin-right:.4em; }
h3{ color:#111418; }
p{ margin:0 0 12px; }
ul.clean{ margin:6px 0 14px; padding-left:1.2em; }
ul.clean li{ margin:0 0 7px; }

.btnrow{ display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 0; }
.btn{ border:1px solid #14385c; color:#14385c; text-decoration:none; border-radius:6px; padding:7px 14px; font-size:.9rem; font-weight:700; }
.btn:hover{ background:#14385c; color:#fff; }

.secttag{ display:inline-block; font-variant:small-caps; letter-spacing:.06em; color:#fff;
  background:#14385c; padding:2px 11px; border-radius:4px; font-size:.74rem; font-weight:700; }
.secttag.prac{ background:#2f6f4f; }

.timeline{ border-collapse:collapse; width:100%; font-size:.92rem; margin-top:8px; }
.timeline td{ padding:8px 10px; border-top:1px solid #e6e8eb; vertical-align:top; }
.timeline tr:first-child td{ border-top:0; }
.timeline td.tm{ font-family:ui-monospace,Menlo,Consolas,monospace; color:#14385c; white-space:nowrap; width:104px; font-weight:700; font-size:.85rem; }
.timeline td.mn{ color:#5a626c; white-space:nowrap; width:60px; font-size:.82rem; }
.timeline .dt{ display:block; color:#2c3138; font-size:.9rem; margin-top:2px; }
.timeline .dt-list{ margin:5px 0 0; padding-left:1.15em; }
.timeline .dt-list li{ color:#2c3138; font-size:.9rem; margin:2px 0; text-align:left; }

.callout{ background:#f4f5f7; border-left:3px solid #14385c; border-radius:0 5px 5px 0; padding:12px 16px; margin:14px 0 0; font-size:.96rem; color:#2c3138; }
.callout.hint{ border-left-color:#7a5a14; }
.callout.miss{ border-left-color:#9c3b2e; background:#fbf4f2; }
.callout.check{ border-left-color:#1c6b4a; background:#f1f8f4; }
.callout b{ color:#111418; }

.goals{ background:#f7f8fa; border:1px solid #d1d4d8; border-radius:8px; padding:14px 18px; margin:18px 0 0; }
.goals h2{ border:0; margin:0 0 6px; padding:0; font-size:1.02rem; }

.toolchips{ margin:2px 0 0; text-align:left; }
.toolchips .tc{ display:inline-block; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.78rem; background:#fff; border:1px solid #d1d4d8; border-radius:14px;
  padding:2px 10px; margin:2px 6px 2px 0; color:#14385c; white-space:nowrap; }

.reading li{ margin:0 0 8px; }
.reading li a{ font-weight:700; text-decoration:none; }
.reading li a:hover{ text-decoration:underline; }
.reading .rdnote{ color:#2c3138; }

.selfcheck details{ border:1px solid #d1d4d8; border-radius:6px; padding:9px 14px; margin:0 0 8px; background:#fff; }
.selfcheck summary{ cursor:pointer; font-weight:600; color:#111418; }
.selfcheck summary::marker{ color:#14385c; }
.selfcheck details[open]{ background:#f7f8fa; border-color:#c4ccd6; }
.selfcheck .ans{ margin:9px 0 0; color:#2c3138; }

.pager{ display:flex; justify-content:space-between; gap:12px; margin:26px 0 0; font-size:.9rem; }
.pager a{ text-decoration:none; color:#2c3138; border:1px solid #d1d4d8; border-radius:6px; padding:8px 12px; max-width:46%; }
.pager a:hover{ border-color:#14385c; color:#14385c; }
.pager .nx{ text-align:right; margin-left:auto; }
.pager .lbl{ display:block; font-variant:small-caps; letter-spacing:.06em; font-size:.7rem; color:#5a626c; }

.layers{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:8px; margin-top:10px; }
.layer{ border:1px solid #d1d4d8; border-left:4px solid #14385c; border-radius:0 8px 8px 0; padding:10px 14px; background:#fff; }
.layer .nm{ font-weight:700; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.86rem; color:#14385c; display:block; margin-bottom:2px; }
.layer .ds{ color:#2c3138; font-size:.9rem; }
.layer.l1{ border-left-color:#1f6f54; } .layer.l1 .nm{ color:#1f6f54; }
.layer.l2{ border-left-color:#0b6b8a; } .layer.l2 .nm{ color:#0b6b8a; }
.layer.l3{ border-left-color:#7a3e9d; } .layer.l3 .nm{ color:#7a3e9d; }
.layer.l4{ border-left-color:#b5530b; } .layer.l4 .nm{ color:#b5530b; }
.layer.l5{ border-left-color:#9d2b4e; } .layer.l5 .nm{ color:#9d2b4e; }
.layer.l6{ border-left-color:#3a4b9d; } .layer.l6 .nm{ color:#3a4b9d; }

.ocards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:8px; margin-top:10px; }
.ocard{ display:flex; align-items:center; gap:9px; border:1px solid #d1d4d8; border-radius:8px; padding:8px 12px; background:#fff; font-size:.9rem; text-align:left; }
.ocard:hover{ border-color:#14385c; }
.ocard .n{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:#14385c; color:#fff; font-weight:700; font-size:.74rem; display:flex; align-items:center; justify-content:center; font-family:ui-monospace,Menlo,Consolas,monospace; }
.ocard .oi{ flex:0 0 auto; font-size:1.05rem; line-height:1; }
.ocard .ot{ color:#2c3138; }

.steps{ display:grid; gap:14px; margin:8px 0 0; }
.step{ border:1px solid #d1d4d8; border-left:4px solid #14385c; border-radius:0 6px 6px 0; padding:14px 18px; background:#fff; }
.step.a{ border-left-color:#2f6f4f; }
.step.b{ border-left-color:#14385c; }
.step.c{ border-left-color:#7a5a14; }
.step h3{ margin:0 0 8px; font-size:1.02rem; color:#111418; }
.step h3 .tag{ font-variant:small-caps; letter-spacing:.05em; font-size:.7rem; font-weight:700; color:#5a626c; display:block; margin-bottom:2px; }
.step p{ margin:0; }

.weeks{ border-collapse:collapse; width:100%; font-size:.95rem; margin-top:8px; table-layout:auto; }
.weeks th{ text-align:left; font-variant:small-caps; letter-spacing:.05em; color:#5a626c; font-weight:700; font-size:.8rem; border-bottom:1.5px solid #111418; padding:7px 10px; }
.weeks td{ padding:9px 10px; border-top:1px solid #e6e8eb; vertical-align:top; }
.weeks tr.part td{ background:#f7f8fa; color:#14385c; font-variant:small-caps; letter-spacing:.06em; font-weight:700; font-size:.85rem; }
.weeks td.weekcell{ padding:13px 14px 15px; }
.weeks .weektop{ margin:0 0 4px; }
.weeks .weeknum{ display:inline-block; font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; color:#fff; background:#14385c; border-radius:4px; padding:2px 9px; font-size:.78rem; }
.weeks .weektopic{ display:block; }
.weeks .weekrule{ border-top:1px solid #d1d4d8; margin:10px 0; }
.weeks .weeklinks{ display:flex; flex-wrap:wrap; gap:6px 14px; align-items:flex-start; }
.weeks .weeklinks a{ display:inline-block; text-decoration:none; font-weight:700; line-height:1.25; }
.weeks .weekstudy{ color:#2c3138; font-size:.86rem; line-height:1.4; }
.weeks .weekstudy .study-block{ display:block; margin:0 0 7px; }
.weeks .weekstudy .study-block i{ display:block; font-style:normal; font-variant:small-caps; letter-spacing:.05em; font-weight:700; font-size:.76rem; color:#14385c; margin:0 0 1px; }
.weeks .weekstudy a{ text-decoration:none; font-weight:700; }
.weeks .weekstudy a:hover{ text-decoration:underline; }
.weeks .t b{ display:block; }
.weeks .t span{ color:#5a626c; font-size:.86rem; }
.weeks .t .lp{ display:block; margin-top:6px; line-height:1.35; }
.weeks .t .lp i{ display:block; font-style:normal; font-variant:small-caps; letter-spacing:.05em; font-weight:700; font-size:.8rem; color:#14385c; margin:0 0 1px; }
.weeks .t .lp.pr i{ color:#2f6f4f; }
.weeks .t .lp.tl i{ color:#5a626c; }
.weeks .t .lp.tl{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.78rem; }
.weeks .t .pres{ display:inline-block; margin-top:6px; background:#7a5a14; color:#fff; padding:2px 10px; border-radius:4px; font-variant:small-caps; letter-spacing:.05em; font-weight:700; font-size:.78rem; }

.pcard{ border:1px solid #d1d4d8; border-left:4px solid #7a5a14; border-radius:0 6px 6px 0; padding:13px 18px; margin:0 0 14px; background:#fff; }
.pcard h3{ margin:0 0 4px; font-size:1.05rem; color:#111418; }
.pcard h3 .n{ color:#7a5a14; font-family:ui-monospace,Menlo,Consolas,monospace; margin-right:.4em; }
.projmeta{ color:#5a626c; font-size:.9rem; margin:0 0 8px; font-variant:small-caps; letter-spacing:.02em; }
.pcard ul{ margin:6px 0 0; padding-left:1.2em; }
.pcard li{ margin:0 0 5px; font-size:.93rem; color:#2c3138; }

.gtab{ border-collapse:collapse; width:100%; font-size:.95rem; margin-top:8px; }
.gtab th{ text-align:left; font-variant:small-caps; letter-spacing:.05em; color:#5a626c; font-weight:700; font-size:.8rem; border-bottom:1.5px solid #111418; padding:7px 10px; }
.gtab td{ padding:9px 10px; border-top:1px solid #e6e8eb; vertical-align:top; }
.gtab td.pct{ font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; text-align:right; color:#14385c; white-space:nowrap; }
.gtab tr.sum td{ border-top:1.5px solid #111418; font-weight:700; }

.prereqs{ border-collapse:collapse; width:100%; font-size:.95rem; margin-top:8px; }
.prereqs th{ text-align:left; font-variant:small-caps; letter-spacing:.05em; color:#5a626c; font-weight:700; font-size:.8rem; border-bottom:1.5px solid #111418; padding:7px 10px; }
.prereqs td{ padding:9px 10px; border-top:1px solid #e6e8eb; vertical-align:top; }
.prereqs td.subj{ white-space:nowrap; font-weight:700; }
.prereqs td.subj .pi{ margin-right:.4em; }
.prereqs td.top{ color:#2c3138; font-size:.9rem; }
.prereqs td.lk a{ white-space:nowrap; text-decoration:none; font-weight:700; }
.prereqs td.lk a+a{ margin-left:14px; }

.refgrid{ display:grid; gap:12px; margin-top:8px; }
.refcard{ border:1px solid #d1d4d8; border-radius:8px; padding:0; overflow:hidden; display:flex; }
.refcard .kind{ flex:0 0 84px; background:#f7f8fa; border-right:1px solid #d1d4d8; display:flex; align-items:center; justify-content:center; text-align:center; font-variant:small-caps; letter-spacing:.06em; font-weight:700; font-size:.72rem; color:#14385c; padding:6px; }
.refcard .body{ padding:11px 16px; }
.refcard .body a{ font-weight:700; text-decoration:none; }
.refcard .body a:hover{ text-decoration:underline; }
.refcard .by{ color:#5a626c; font-size:.84rem; }
.refcard .note{ color:#2c3138; font-size:.92rem; margin:5px 0 0; }

footer{ margin-top:46px; padding-top:16px; border-top:1px solid #d1d4d8; color:#5a626c; font-size:.84rem; text-align:center; }

@media (max-width:680px){
  body{ font-size:16px; }
  .wrap{ padding:24px 18px 64px; }
  .topnav .inner{ padding:10px 18px; }
  .topnav nav{ gap:12px; }
  .weeks{ font-size:.88rem; }
  .weeks td.weekcell{ padding:12px 10px 14px; }
  .weeks .t .lp{ margin-top:7px; }
  .weeks .weeklinks{ display:block; }
  .weeks .weeklinks a{ display:block; margin:0 0 6px; }
  .refcard{ flex-direction:column; }
  .refcard .kind{ flex-basis:auto; border-right:0; border-bottom:1px solid #d1d4d8; }
}
