/* MCEG / ELEG 4402 — original custom Quarto website theme */
:root {
  --ink: #071422;
  --paper: #dce9f7;
  --muted: #a3b7cb;
  --soft: #8198ae;
  --line: rgba(139, 182, 209, .18);
  --mint: #7ce5cd;
  --blue: #87b5ff;
  --gold: #fac991;
  --round: 23px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  color: var(--paper) !important;
  background: radial-gradient(ellipse 70% 45% at 110% -6%, rgba(44,101,137,.15), transparent 72%), #071321 !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--mint); }
a:hover { color: #b0fff0; }
#quarto-content, #quarto-content.page-columns, .page-layout-full .content, main.content {
  background: transparent;
}
.page-layout-full main.content,
.page-layout-full #quarto-document-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
#quarto-content .page-columns > * { grid-column: screen-start/screen-end; }
#quarto-content .page-columns main { max-width: none; }
body:not(.quarto-dark) .quarto-title-block { display: none; }
#title-block-header { display: none !important; }
.navbar {
  min-height: 76px;
  border-bottom: 1px solid rgba(137,190,215,.16);
  padding: 12px max(26px, calc((100vw - 1300px)/2 + 28px)) !important;
  background: rgba(7,20,34,.94) !important;
  -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px);
  z-index: 100;
}
.navbar .navbar-brand-container { display: flex; align-items: center; }
.navbar-brand {
  display: inline-flex; align-items: center;
  gap: 11px; font-weight: 850; font-size: .98rem !important;
  letter-spacing: .055em; white-space: nowrap; color: #f0f7ff !important;
}
.navbar-brand img { width: 37px !important; max-height: 37px !important; height: 37px !important; }
.navbar .nav-link { white-space: nowrap; color: #aec3d6 !important; font-size: .87rem; font-weight: 630; letter-spacing: .016em; border-radius: 10px; padding: .63em .98em !important; transition: color .2s,background .2s; }
.navbar .nav-link:hover { color: #fff !important; background: rgba(124,229,205,.07); }
.navbar .nav-link.active, .navbar .nav-link[aria-current="page"] { color: var(--mint) !important; background: rgba(124,229,205,.085); }
.navbar-toggler { border-color: rgba(124,229,205,.3); }
#quarto-content { min-height: calc(100vh - 156px); }
.quarto-page-footer, .nav-footer {
  background: #081321 !important;
  border-top: 1px solid var(--line) !important;
  color: var(--soft) !important;
  font-size: .78rem;
  padding: 28px max(28px, calc((100vw - 1200px)/2 + 20px));
}
.quarto-page-footer a { color: var(--soft); }
.portal { margin: 0 auto; max-width: 1280px; padding: 0 28px 90px; }
.portal h1, .portal h2, .portal h3, .portal p { margin-top: 0; }
.portal a { text-decoration: none; }
.topline { font-size: .71rem; font-weight: 850; letter-spacing: .2em; color: var(--mint); text-transform: uppercase; }
.topline:before { content:""; display:inline-block; width: 23px; height:2px; background: var(--mint); vertical-align: middle; margin-right: 10px; }
.hero { padding: 78px 0 54px; display:grid; grid-template-columns: minmax(0, 1.04fr) minmax(370px, .86fr); align-items: center; gap: 6.5%; }
.hero h1 { font-size: 4.6rem; line-height: 1.07; letter-spacing: -.057em; font-weight: 830; color: #f1f8ff; margin: 25px 0; }
.hero h1 em, .page-hero h1 em { font-style: normal; color: #80f1d6; }
@supports (background-clip: text) or (-webkit-background-clip: text) {
  .hero h1 em, .page-hero h1 em { background: linear-gradient(100deg, #80f1d6 6%, #88afff 85%); background-clip: text; -webkit-background-clip: text; color: transparent; }
}
.hero .lede { color: #adc1d5; line-height: 1.83; font-size: 1.06rem; max-width: 545px; }
.hero .cta-row { display: flex; gap: 13px; flex-wrap: wrap; margin-top: 33px; }
.button-primary,.button-outline,.file-button {
  display: inline-flex; justify-content: center; align-items: center; gap: 12px; font-weight: 770;
  border-radius: 12px; padding: 13px 22px; transition: transform .2s, background .2s, box-shadow .2s;
  font-size: .86rem; text-decoration: none !important;
}
.button-primary { color: #092332 !important; background: var(--mint); box-shadow: 0 12px 25px rgba(60,193,170,.12); }
.button-primary:hover { background: #a2ffea; color:#07212b !important; transform: translateY(-2px); }
.button-outline { color: #e2ecf9 !important; border: 1px solid rgba(169,201,222,.23); background: rgba(18,39,59,.38); }
.button-outline:hover { border-color: rgba(139,221,207,.55); background: rgba(29,68,80,.45); transform: translateY(-2px); }
.hero-footnote { margin-top: 29px; display:flex; gap: 14px; align-items: center; flex-wrap:wrap; color: #8096a8; font-size: .79rem; }
.hero-footnote span + span:before { content: '•'; margin-right: 14px; color: var(--mint); }
.blueprint-wrap { padding: 15px; border: 1px solid rgba(147,211,214,.16); border-radius: 27px; background: linear-gradient(130deg,rgba(72,134,142,.09),rgba(78,103,151,.11)); box-shadow: 0 30px 130px rgba(0,0,0,.18); }
.blueprint {
  position:relative; border-radius: 20px; overflow:hidden; min-height: 457px;
  background: linear-gradient(rgba(108,181,196,.057) 1px,transparent 1px), linear-gradient(90deg,rgba(108,181,196,.057) 1px,transparent 1px),radial-gradient(ellipse at 60% 35%,rgba(45,107,135,.28),transparent 60%), #0a2030;
  background-size: 28px 28px,28px 28px,auto,auto;
  padding: 34px;
}
.blueprint::after { content:""; position:absolute; width: 330px; height:330px; border:1px solid rgba(124,229,205,.16); border-radius:50%; top:60px; right:-100px; box-shadow: 0 0 0 53px rgba(124,229,205,.018),0 0 0 106px rgba(124,229,205,.016); pointer-events:none; }
.blueprint .bp-top { display:flex; justify-content:space-between; align-items:center; gap:10px; color:#9cb6c5; font-size:.65rem; font-weight:760; letter-spacing:.14em; text-transform:uppercase; }
.bp-status { display:flex; align-items:center; gap:8px; color:#a6f2df; white-space:nowrap; }
.bp-status::before { content:""; width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 5px rgba(124,229,205,.1); }
.bp-center { position:relative; z-index:2; margin-top: 33px; }
.bp-connector { height: 30px; width:2px; margin-left:30px; background: linear-gradient(var(--mint),transparent); opacity:.58; }
.bp-node { display:flex; align-items:center; gap: 16px; padding: 14px 16px; border:1px solid rgba(154,220,220,.16); border-radius:13px; background: rgba(10,34,50,.85); backdrop-filter:blur(4px); box-shadow:0 9px 25px rgba(0,0,0,.11); }
.bp-number { display:flex; align-items:center;justify-content:center; flex:none; width:39px;height:39px; border-radius:11px; background:rgba(129,210,209,.1);border:1px solid rgba(124,229,205,.18); color:var(--mint);font-size:.73rem;font-weight:810; }
.bp-text strong { display:block; letter-spacing:.03em; color:#e9f4fb; font-size:.82rem; }
.bp-text span { display:block; margin-top:4px; font-size:.7rem; color:#829cab; }
.bp-bottom { position:absolute; bottom:24px;right:30px;left:30px; border-top:1px solid rgba(124,229,205,.17); padding-top:13px; color:#829cae; font-size:.66rem; letter-spacing:.13em; font-weight:700; display:flex; justify-content:space-between; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:28px 0 24px; }
.section-head h2 { font-size: 2.2rem; line-height:1.2; font-weight:790; letter-spacing:-.035em; margin:.55rem 0 0; }
.section-head p { color:var(--muted);font-size:.88rem;max-width:420px;line-height:1.7;margin:0; }
.card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:17px; }
.nav-card { display:flex; flex-direction:column; min-height:238px; padding:26px; border-radius:var(--round); border:1px solid var(--line); background:linear-gradient(130deg,rgba(28,50,69,.7),rgba(13,29,47,.9)); position:relative;overflow:hidden; transition:transform .2s,border-color .2s,box-shadow .2s; }
.nav-card:after { content:""; position:absolute; bottom:-37px; right:-25px; width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(108,185,190,.09),transparent 75%); }
.nav-card:hover { transform:translateY(-5px); border-color:rgba(125,229,205,.43); box-shadow:0 18px 35px rgba(0,0,0,.15); }
.nav-card .num { font-size:.7rem;letter-spacing:.18em;font-weight:830;color:var(--mint); }
.nav-card h3 { color:#edf7ff; font-size:1.27rem;letter-spacing:-.02em;margin:27px 0 7px;font-weight:780; }
.nav-card p { color:#9bb1c3;font-size:.83rem;line-height:1.65;margin-bottom:23px; }
.nav-card .card-arrow { color:#a6f9e2;font-size:1.15rem;font-weight:700;margin-top:auto; }
.nav-card:nth-child(2) .num { color:#a5c2ff; }
.nav-card:nth-child(3) .num { color:var(--gold); }
.panel { border:1px solid var(--line); border-radius:var(--round); background:linear-gradient(118deg,rgba(20,46,62,.75),rgba(11,28,47,.85)); }
.workflow { display:grid; grid-template-columns:.92fr 1.1fr;gap:40px; margin-top:52px; padding:39px 43px;align-items:center; }
.workflow h2 {font-size:1.85rem; letter-spacing:-.035em;margin:12px 0 12px;font-weight:800;}
.workflow p { color:var(--muted);line-height:1.75;font-size:.93rem; }
.workflow-steps { display:grid; gap:12px; }
.workflow-step { display:flex;align-items:center;gap:15px;background:rgba(6,19,32,.45);border:1px solid var(--line);border-radius:13px;padding:15px 17px; }
.workflow-step b { width:30px;height:30px;border:1px solid rgba(124,229,205,.3);border-radius:9px;display:grid;place-items:center;color:var(--mint);font-size:.73rem;flex:none; }
.workflow-step span { font-size:.84rem;font-weight:650;color:#d5e2ef; }
.page-hero { padding:70px 0 36px; border-bottom:1px solid var(--line); margin-bottom:31px; }
.page-hero h1 { color:#f0f7ff; font-size:4.4rem;line-height:1.08;letter-spacing:-.055em;margin:18px 0 18px;font-weight:825; }
.page-hero .subhead { color:#a9bfd0; font-size:1.06rem; line-height:1.8; max-width:750px;margin-bottom:12px; }
.slim-label { font-size:.72rem; font-weight:790; color:#83a0b2;letter-spacing:.13em; text-transform:uppercase;margin-bottom:18px; }
.feature-download { display:grid;grid-template-columns:1.3fr .7fr;gap:22px;align-items:center;padding:35px 38px;position:relative;overflow:hidden; }
.feature-download:after { content: none; }
.feature-download h2 {color:#edf7fc;font-size:1.75rem;line-height:1.22;letter-spacing:-.03em;margin:12px 0 11px;}
.feature-download p {color:#a2b8c8;line-height:1.75;font-size:.93rem;max-width:590px;}
.micro-pill {font-size:.69rem;letter-spacing:.11em;color:#a7eedf;text-transform:uppercase;font-weight:780;}
.feature-actions {display:flex;gap:11px;justify-content:flex-end;flex-wrap:wrap;position:relative;z-index:2;}
.file-button {padding:12px 17px;border:1px solid rgba(124,229,205,.33);background:rgba(124,229,205,.11);color:#aaf4e4 !important;}
.file-button:hover {background:rgba(124,229,205,.2);transform:translateY(-2px);color:#e0fff6 !important;}
.resource-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:23px 0 37px;}
.resource-card {border:1px solid var(--line);border-radius:19px;background:rgba(18,39,57,.72);padding:28px;min-height:218px;display:flex;flex-direction:column;}
.resource-card .tag {font-size:.69rem;letter-spacing:.12em;font-weight:850;text-transform:uppercase;color:var(--mint);}
.resource-card h3 {font-size:1.18rem;color:#e9f4ff;letter-spacing:-.025em;font-weight:780;margin:16px 0 9px;}
.resource-card p {color:#9db4c5;font-size:.86rem;line-height:1.75;margin-bottom:16px;}
.resource-card .resource-link {align-self:flex-start;margin-top:auto;display:inline-flex;align-items:center;gap:9px;color:#94ebd9;font-size:.81rem;font-weight:790;}
.resource-card .resource-link:hover {color:#c7fff0;}
.tag.dim {color:#a6bcce;}
.note-bar {display:flex;gap:15px;align-items:flex-start;padding:19px 23px;border-radius:15px;border:1px solid rgba(133,166,195,.21);background:rgba(33,57,75,.38); color:#9fb8ca;font-size:.83rem;line-height:1.75;}
.note-bar strong {color:#dceaf5;}
.note-icon {color:var(--gold);font-weight:900;}
.resource-intro {display:flex;justify-content:space-between;align-items:end;gap:15px;margin:38px 0 22px;}
.resource-intro h2 {font-size:1.66rem;letter-spacing:-.03em;color:#edf5ff;margin:0;}
.resource-intro p {max-width:490px;font-size:.86rem;line-height:1.7;color:var(--muted);margin:0;}
.link-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:20px 0 35px;}
.link-card {display:flex;align-items:center;gap:18px;border-radius:16px;border:1px solid var(--line);background:rgba(20,41,58,.72);padding:22px 23px;transition:transform .2s,border-color .2s;}
.link-card:hover {transform:translateY(-3px);border-color:rgba(124,229,205,.38);}
.link-symbol {flex:none;display:grid;place-items:center;width:45px;height:45px;border-radius:12px;background:rgba(120,198,207,.105);border:1px solid rgba(120,198,207,.16);color:#b1f9e8;font-size:.94rem;font-weight:840;}
.link-info {flex:1;min-width:0;}
.link-info strong {display:block;font-size:.93rem;color:#e2f1fc;line-height:1.4;}
.link-info span {display:block;color:#92aabc;font-size:.75rem;margin-top:5px;line-height:1.55;}
.link-ext {font-size:1.1rem;color:var(--mint);}
.process-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:20px 0 39px;}
.process-step {padding:25px 26px;border-radius:18px;border:1px solid var(--line);background:rgba(19,41,58,.67);}
.process-step b {font-size:.72rem;color:var(--mint);letter-spacing:.12em;}
.process-step h3 {color:#e6f2ff;font-size:1rem;margin:18px 0 8px;}
.process-step p {color:#99b0bf;font-size:.81rem;line-height:1.7;}
.pill-row {display:flex;gap:9px;flex-wrap:wrap;}
.small-pill {display:inline-flex;border:1px solid var(--line);border-radius:100px;color:#b0c4d4;font-size:.75rem;font-weight:650;padding:7px 12px;background:rgba(20,45,61,.5);}
.bottom-space {height:20px;}
@media(max-width:1040px) {
  .hero {grid-template-columns:1fr; gap:36px;padding-top:54px;}
  .blueprint-wrap {max-width:670px;width:100%;}
  .card-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .navbar {padding:12px 20px !important;}
}
@media(max-width:740px) {
  .portal {padding:0 18px 60px;}
  .hero h1 {font-size:3.1rem;}
  .hero {padding-top:44px;}
  .blueprint {min-height:455px;padding:23px;}
  .workflow, .feature-download {grid-template-columns:1fr;gap:24px;padding:27px;}
  .feature-actions {justify-content:flex-start;}
  .section-head,.resource-intro {display:block;}
  .section-head p,.resource-intro p {margin-top:12px;}
  .resource-grid,.link-list,.process-grid {grid-template-columns:1fr;}
  .page-hero {padding-top:43px;}
  .page-hero h1 {font-size:3.0rem;}
  .navbar .navbar-brand {font-size:.83rem !important;}
  .navbar-brand img {height:32px !important;width:32px !important;}
}
@media(max-width:460px) {
  .card-grid {grid-template-columns:1fr;}
  .nav-card {min-height:205px;}
  .bp-top {font-size:.59rem !important;}
  .hero .cta-row a {width:100%;}
  .blueprint-wrap {padding:9px;}
}
@media(prefers-reduced-motion: reduce) {
 * { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

/* Standalone prebuilt preview uses the same navbar styles as Quarto. */
.navbar--preview a { text-decoration: none; }
