@font-face { font-family:Montserrat;src:url('assets/Montserrat-BlackItalic.ttf') format('truetype');font-weight:900;font-style:italic;font-display:swap }
:root { --navy:#182f4f;--orange:#ffa400;--blue:#004c97;--white:#fff;--black:#000;--line:rgba(24,47,79,.18);--wash:rgba(24,47,79,.035);--radius:6px }
* { box-sizing:border-box }
html { scroll-behavior:smooth;scroll-padding-top:24px }
body { margin:0;background:var(--white);color:var(--navy);font:16px/1.5 'Segoe UI',Arial,sans-serif }
button,input,select { font:inherit }
button,a,input,select { touch-action:manipulation }
button,a {  -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
a { color:inherit }
img { max-width:100%;display:block }
button:disabled { cursor:default }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid var(--blue);outline-offset:4px }
main:focus { outline:none }
button { color:inherit }
h1,h2,h3,h4,p { margin:0 }
h1,h2,h3 { line-height:1.15 }
p+p { margin-top:12px }
[hidden] { display:none!important }
.skip-link { position:fixed;z-index:100;left:20px;top:-80px;background:var(--orange);padding:12px }
.skip-link:focus { top:12px }
.site-header { border-bottom:1px solid rgba(255,255,255,.14);background:var(--navy);color:var(--white) }
.header-inner { max-width:1320px;margin:auto;min-height:100px;display:flex;align-items:center;padding:0 40px;gap:28px }
.brand { display:block;flex:0 0 136px }
.brand img { width:136px;height:96px;object-fit:contain }
.site-header nav { display:flex;align-items:center;gap:28px;margin-left:auto }
.site-header nav>a,.text-button { font-size:14px;font-weight:600;text-decoration:none }
.site-header nav>a:hover,.text-button:hover { text-decoration:underline;text-underline-offset:5px }
.text-button { border:0;background:none;padding:8px 0 }
.container { max-width:1240px;margin:auto;padding:0 40px }
.eyebrow { display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;line-height:1.4 }
.eyebrow::before { content:'';width:24px;height:2px;background:var(--orange);flex:none }
.display { font-family:Montserrat,'Segoe UI',Arial,sans-serif;font-weight:900;font-style:italic;letter-spacing:-.04em;text-transform:uppercase }
.btn { display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:50px;border:1px solid var(--navy);padding:12px 22px;background:var(--navy);color:var(--white);font-weight:700;text-decoration:none;border-radius:var(--radius);font-size:14px;transition:background .15s,transform .15s }
.btn:hover { background:var(--blue);border-color:var(--blue) }
.btn:active { transform:translateY(1px) }
.btn-orange { background:var(--orange);color:var(--navy);border-color:var(--orange) }
.btn-orange:hover { background:var(--white);border-color:var(--white);color:var(--navy) }
.btn-outline { background:var(--white);color:var(--navy);border-color:var(--line) }
.btn-outline:hover { background:var(--navy);color:var(--white);border-color:var(--navy) }
.btn-small { min-height:40px;padding:8px 14px;font-size:13px;gap:12px }
.btn:disabled { background:var(--wash);border-color:var(--line);color:var(--navy) }
.arrow { font-size:22px;font-weight:400;line-height:1 }
.inline-link { display:inline-flex;gap:16px;align-items:center;font-weight:600;text-decoration:underline;text-underline-offset:5px;font-size:14px }
.site-footer { border-top:1px solid var(--line) }
.footer-inner { max-width:1240px;padding:24px 40px;margin:auto;display:flex;align-items:center;gap:24px;font-size:12px }
.footer-inner>span { font-weight:700;letter-spacing:.1em }
.footer-inner p { padding-left:24px;border-left:1px solid var(--line) }
.footer-inner button { margin-left:auto;font-size:12px }
.page { padding-top:42px;padding-bottom:64px;min-height:calc(100vh - 190px) }
.page-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px }
.page-heading .eyebrow { margin-bottom:14px }
.page-heading h1 { font-size:42px;letter-spacing:-.04em;line-height:1.12 }
.page-heading p { max-width:700px;margin-top:12px }
.page-actions { display:flex;gap:10px;flex-wrap:wrap }
.quiz-shell { display:grid;grid-template-columns:210px minmax(0,1fr);gap:44px }
.journey { border-right:1px solid var(--line);padding-right:28px }
.journey-label { font-size:11px;letter-spacing:.12em;font-weight:700;text-transform:uppercase;margin:0 0 22px }
.step-list { list-style:none;padding:0;margin:0;display:grid;gap:0 }
.step-list li { position:relative;padding-bottom:22px }
.step-list li:not(:last-child)::before { content:'';position:absolute;left:13px;top:28px;bottom:0;width:1px;background:var(--line) }
.step-list button { display:flex;align-items:center;gap:11px;background:none;border:0;padding:0;font-size:12px;text-align:left;font-weight:500;min-height:28px }
.step-list button:disabled { color:var(--navy) }
.step-no { display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;flex:none;font-size:10px;background:var(--white) }
.step-list .current { font-weight:700 }
.step-list .current .step-no { background:var(--orange);border-color:var(--orange) }
.step-list .done .step-no { background:var(--navy);color:var(--white);border-color:var(--navy) }
.journey-note { font-size:12px;line-height:1.65;border-top:1px solid var(--line);padding-top:20px;margin-top:8px }
.question-progress { display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;margin-bottom:10px }
.progress-track { height:3px;background:var(--line);margin-bottom:30px }
.progress-track>div { height:100%;background:var(--orange);transition:width .2s }
.question-title { font-size:32px;letter-spacing:-.03em;line-height:1.2;margin-bottom:12px }
.question-subtitle { font-size:14px;max-width:680px;margin-bottom:24px }
.options-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px }
.skills-grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
.option-wrap { position:relative;display:flex;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);min-width:0;transition:border-color .15s,background .15s }
.option-wrap:hover { border-color:var(--navy) }
.option-wrap.selected { border:2px solid var(--navy);background:var(--wash) }
.option-button { border:0;background:none;display:flex;align-items:flex-start;gap:12px;padding:18px 48px 18px 16px;min-height:100px;width:100%;text-align:left;border-radius:var(--radius) }
.selected .option-button { padding:17px 47px 17px 15px }
.option-label { display:block;font-size:14px;font-weight:700;line-height:1.35;margin-bottom:7px }
.option-blurb { display:block;font-size:12px;line-height:1.55 }
.selection-indicator { width:19px;height:19px;border:1px solid var(--line);flex:0 0 19px;border-radius:50%;margin-top:1px;display:grid;place-items:center;font-size:11px;line-height:1 }
.skills-grid .selection-indicator { border-radius:3px }
.selected .selection-indicator { background:var(--navy);color:var(--white);border-color:var(--navy) }
.option-info { position:absolute;top:12px;right:10px;background:none;border:0;padding:5px;font-size:12px;width:26px;height:26px;display:grid;place-items:center }
.option-info span { display:grid;place-items:center;width:16px;height:16px;border:1px solid var(--navy);border-radius:50%;font-size:10px;font-weight:700 }
.rank-strip { display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);padding:12px 14px;margin:0 0 20px;border-radius:var(--radius) }
.rank-strip>span { font-size:12px;margin-right:auto;font-weight:600 }
.rank-item { display:flex;align-items:center;gap:6px;font-size:11px }
.rank-item>strong { display:grid;place-items:center;width:19px;height:19px;background:var(--orange);border-radius:2px }
.rank-item button { background:none;border:1px solid var(--line);border-radius:3px;min-width:25px;min-height:26px;font-size:12px }
.quiz-nav { display:flex;align-items:center;justify-content:space-between;padding-top:22px;margin-top:24px;border-top:1px solid var(--line);gap:14px }
.validation { font-size:13px;font-weight:600;min-height:20px;margin-top:14px }
.validation:not(:empty) { border-left:3px solid var(--orange);padding-left:10px }
.quiz-topline { display:flex;justify-content:space-between;align-items:center;margin-bottom:24px }
.quiz-topline>p { font-size:12px }
.answer-summary { display:flex;gap:6px;flex-wrap:wrap;margin-top:12px }
.tag { display:inline-block;border:1px solid var(--line);border-radius:3px;padding:5px 9px;font-size:11px;line-height:1.4 }
.tag-orange { background:var(--orange);border-color:var(--orange);color:var(--navy) }
.results-lead { background:var(--navy);color:var(--white);padding:32px;border-radius:var(--radius);display:flex;justify-content:space-between;gap:32px;margin-bottom:24px }
.results-lead .eyebrow { color:var(--orange);margin-bottom:14px }
.results-lead h2 { font-size:28px;margin-bottom:12px }
.results-lead p { font-size:14px;max-width:660px }
.results-lead .strengths { display:flex;gap:8px;flex-wrap:wrap;margin-top:18px }
.results-lead .tag { border-color:rgba(255,255,255,.35) }
.result-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px }
.result-card { border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;min-width:0;position:relative }
.result-card:first-child { border-top:4px solid var(--orange);padding-top:21px }
.result-kicker { display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;align-items:center;margin-bottom:20px }
.result-kicker b { font-size:24px;font-weight:400;letter-spacing:-.04em }
.result-card h2 { font-size:26px;letter-spacing:-.025em;margin-bottom:14px;overflow-wrap:anywhere }
.result-card>p { font-size:14px;margin:16px 0 }
.result-card h3 { font-size:12px;line-height:1.4;margin:10px 0 }
.reason-list { margin:8px 0 18px;padding-left:18px;font-size:12px;line-height:1.7 }
.reason-list li+li { margin-top:8px }
.result-detail { border-top:1px solid var(--line);padding-top:16px;margin-top:auto }
.result-detail p { font-size:12px;margin-bottom:18px }
.result-detail .tags { display:flex;gap:6px;flex-wrap:wrap }
.progression { font-size:11px;font-weight:700;display:inline-block;border-left:3px solid var(--orange);padding-left:8px;margin:4px 0 }
.result-tools { display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin-top:28px }
.next-steps,.share-box { border:1px solid var(--line);border-radius:var(--radius);padding:28px }
.next-steps h2,.share-box h2 { font-size:21px;margin-bottom:14px }
.next-steps p,.share-box p { font-size:13px;line-height:1.6 }
.next-steps ol { padding-left:18px;font-size:13px;line-height:1.7;margin-bottom:0 }
.next-steps li+li { margin-top:8px }
.share-layout { display:flex;gap:20px;align-items:flex-start }
.qr-code { width:130px;height:130px;flex:none }
.share-buttons { display:flex;gap:8px;flex-wrap:wrap;margin-top:16px }
.results-note { font-size:12px;margin-top:24px;max-width:850px }
.share-url { overflow-wrap:anywhere;font-size:11px;display:block;max-height:3em;overflow:hidden }
.shared-label { margin-bottom:20px;border-left:3px solid var(--orange);padding-left:12px;font-size:13px }
.field { display:flex;flex-direction:column;gap:7px;min-width:0;flex:1 }
.field label { font-size:12px;font-weight:600 }
.field input,.field select { border:1px solid var(--line);border-radius:var(--radius);min-height:46px;background:var(--white);color:var(--navy);padding:10px 13px;width:100% }
.field input::placeholder { color:var(--navy) }
.role-count { font-size:12px;margin:18px 0 }
.role-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px }
.empty-state { border:1px solid var(--line);padding:40px;text-align:center;font-size:14px;grid-column:1/-1 }
.empty-state h2 { font-size:21px;margin-bottom:12px }
.empty-state button { margin-top:18px }
.admin-note { border-left:3px solid var(--orange);background:var(--wash);padding:14px 18px;font-size:13px;margin-bottom:24px }
.metrics { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px }
.metric { border:1px solid var(--line);border-radius:var(--radius);padding:20px }
.metric>span { font-size:11px;font-weight:600;display:block;margin-bottom:10px }
.metric strong { font-size:32px;line-height:1.2;display:block;letter-spacing:-.03em }
.metric.role-metric strong { font-size:19px;letter-spacing:-.02em }
.admin-panel { border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-bottom:24px }
.admin-panel h2 { font-size:21px;margin-bottom:8px }
.admin-panel>p { font-size:13px }
.session-form { display:flex;align-items:flex-end;gap:14px;margin-top:20px }
.session-status { font-size:12px;margin-top:14px;min-height:18px }
.table-tools { display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:18px }
.table-tools h2 { margin-bottom:0 }
.table-scroll { overflow:auto }
.data-table { width:100%;border-collapse:collapse;text-align:left;font-size:12px;white-space:nowrap }
.data-table th { font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--navy);padding:12px 14px }
.data-table td { padding:14px;border-bottom:1px solid var(--line) }
.data-table td:first-child,.data-table th:first-child { padding-left:0 }
.data-table tbody tr:last-child td { border-bottom:0 }
.admin-group-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px }
.data-actions { display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:12px }
.data-actions .text-button { font-size:12px }
.undo-box { border:1px solid var(--navy);padding:16px;margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px }
.admin-search { max-width:380px;margin:20px 0 }
.admin-search input { font-size:13px }
dialog { border:1px solid var(--line);padding:38px;max-width:min(620px,calc(100vw - 32px));width:100%;color:var(--navy);border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.2) }
dialog::backdrop { background:rgba(24,47,79,.65) }
dialog h2 { font-size:28px;letter-spacing:-.025em;line-height:1.2;padding-right:26px;margin-bottom:18px }
dialog h3 { font-size:14px;margin:22px 0 10px }
dialog p,dialog li { font-size:14px;line-height:1.7 }
dialog .tags { display:flex;gap:7px;flex-wrap:wrap }
.dialog-close { position:absolute;right:14px;top:12px;min-width:32px;min-height:32px;border:0;background:none;font-size:28px;line-height:1 }
.dialog-actions { display:flex;gap:12px;margin-top:24px;flex-wrap:wrap }
.toast { position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;background:var(--navy);border:1px solid var(--white);color:var(--white);padding:14px 22px;border-radius:var(--radius);font-size:13px;z-index:60;box-shadow:0 5px 30px rgba(0,0,0,.15) }
.noscript { padding:40px;background:var(--orange);position:fixed;inset:100px 0 auto }
@media(max-width:1100px) {
  .header-inner { gap:20px;padding:0 28px }
  .site-header nav { gap:20px }
  .container { padding:0 28px }
  .page { padding-top:34px;padding-bottom:44px }
  .quiz-shell { gap:28px;grid-template-columns:175px minmax(0,1fr) }
  .journey { padding-right:20px }
  .skills-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .result-card { padding:20px }
  .result-card:first-child { padding-top:17px }
  .result-card h2 { font-size:23px }
  .share-layout { flex-wrap:wrap }
  .session-form { flex-wrap:wrap }
  .session-form .field { flex-basis:35% }
}
@media(max-width:800px) {
  .site-header nav { gap:18px }
  .site-header nav>a { font-size:12px }
  .quiz-shell { grid-template-columns:1fr;gap:18px }
  .journey { display:none }
  .quiz-topline { margin-bottom:18px }
  .question-title { font-size:30px }
  .result-grid { grid-template-columns:1fr }
  .result-card { padding:24px }
  .result-card:first-child { padding-top:21px }
  .result-card h2 { font-size:28px }
  .result-card>p { max-width:650px }
  .result-tools { grid-template-columns:1fr }
  .result-detail { margin-top:0 }
  .role-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .page-heading { align-items:flex-start;flex-wrap:wrap }
  .page-heading h1 { font-size:37px }
  .metrics { grid-template-columns:repeat(2,1fr) }
  .admin-group-grid { grid-template-columns:1fr }
  .footer-inner { padding:24px 28px;gap:16px }
  .footer-inner p { padding-left:16px }
  .results-lead { padding:26px }
}
@media(max-width:520px) {
  .header-inner { padding:0 18px;min-height:82px;gap:14px;flex-wrap:wrap }
  .brand { flex-basis:112px }
  .brand img { width:112px;height:79px }
  .site-header nav { margin-left:auto;gap:0 }
  .site-header nav>a { display:none }
  .container { padding-left:22px;padding-right:22px }
  .footer-inner { padding:22px;flex-wrap:wrap;gap:10px }
  .footer-inner>span { font-size:10px }
  .footer-inner p { border:0;padding:0;flex:1 1 100%;font-size:11px;order:3 }
  .footer-inner button { font-size:11px }
  .page { padding-top:28px;padding-bottom:36px }
  .page-heading { gap:18px;margin-bottom:24px }
  .page-heading h1 { font-size:33px }
  .page-heading p { font-size:14px }
  .page-actions .btn { padding:10px 14px;min-height:44px;font-size:12px }
  .quiz-topline>p { font-size:11px }
  .question-progress { font-size:10px }
  .question-title { font-size:28px }
  .question-subtitle { font-size:13px;margin-bottom:22px }
  .skills-grid { gap:9px }
  .option-button { padding:15px 29px 15px 12px;gap:9px;min-height:126px }
  .selected .option-button { padding:14px 28px 14px 11px }
  .option-info { right:4px;top:6px;padding:4px;width:24px }
  .option-label { font-size:12px;margin-bottom:7px }
  .option-blurb { font-size:11px;line-height:1.5 }
  .selection-indicator { width:16px;height:16px;flex-basis:16px;font-size:9px;margin-top:0 }
  .options-grid:not(.skills-grid) { grid-template-columns:1fr }
  .options-grid:not(.skills-grid) .option-button { min-height:88px;padding-right:44px }
  .rank-strip { padding:10px;gap:9px }
  .rank-strip>span { width:100%;font-size:11px }
  .rank-item { font-size:10px }
  .quiz-nav { margin-top:22px }
  .quiz-nav .btn { font-size:12px;gap:14px;padding:12px 16px }
  .results-lead { padding:22px;margin-bottom:18px }
  .results-lead h2 { font-size:24px }
  .result-card { padding:22px }
  .result-card:first-child { padding-top:19px }
  .result-tools { gap:18px }
  .next-steps,.share-box { padding:22px }
  .share-layout { flex-direction:column;gap:16px }
  .field input,.field select { font-size:14px }
  .role-grid { grid-template-columns:1fr }
  .metrics { gap:12px }
  .metric { padding:16px }
  .metric>span { font-size:10px }
  .metric strong { font-size:28px }
  .metric.role-metric strong { font-size:16px }
  .admin-panel { padding:20px }
  .session-form { flex-direction:column;align-items:stretch }
  .session-form .field { flex-basis:auto }
  .table-tools .page-actions { width:100% }
  .table-tools .btn { font-size:11px }
  .admin-note { font-size:12px }
  .admin-group-grid { gap:0 }
  dialog { padding:28px 24px }
  dialog h2 { font-size:24px }
  dialog p,dialog li { font-size:13px }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { transition:none!important;animation:none!important }
}
.site-footer { background:var(--navy);color:var(--white);border-color:rgba(255,255,255,.2) }
.footer-inner { padding-top:24px;padding-bottom:24px }
.footer-inner>.team-mark { width:200px;height:auto;margin-right:18px }
.footer-inner>span { font-size:11px;font-weight:400;letter-spacing:0 }
.footer-inner .text-button { color:var(--white) }
@media(max-width:800px) {
  .footer-inner>.team-mark { width:180px;margin-right:12px }
}
@media(max-width:600px) {
  .footer-inner>.team-mark { width:165px;margin-right:0 }
  .footer-inner>span { display:none }
}
@media print {
  .site-header nav,.site-footer,.page-actions,.result-tools,.quiz-topline,.toast,.skip-link,.dialog-close { display:none!important }
  .site-header { border:0 }
  .header-inner { padding:0;min-height:70px }
  .brand img { width:110px;height:78px }
  .brand { flex-basis:110px }
  .container { padding:0;max-width:none }
  .page { padding-top:14px }
  .page-heading h1 { font-size:28px }
  .results-lead { background:white;color:var(--navy);border:1px solid var(--navy);padding:18px;break-inside:avoid }
  .results-lead .eyebrow { color:var(--navy) }
  .result-grid { display:block }
  .result-card { break-inside:avoid;margin-bottom:16px;padding:18px }
  .result-card h2 { font-size:23px }
  .reason-list { margin-bottom:12px }
  .result-detail p { margin-bottom:6px }
  .result-kicker { margin-bottom:8px }
  .result-card>p { margin:10px 0 }
  .results-note { font-size:11px }
  body { font-size:12px }
  @page { margin:15mm }
}
.site-header .header-inner { min-height:78px; padding:0 38px; }
.site-header .brand { flex-basis:110px; }
.site-header .brand img { width:110px; height:77px; }
.site-header nav { gap:14px; }
.site-header nav>a { display:inline-flex; align-items:center; min-height:48px; padding:10px 18px; font-size:15px; font-weight:600; }
.site-header nav>a:hover { background:rgba(255,255,255,.08); color:var(--orange); border-radius:5px; text-decoration:none; }
.site-header a:focus-visible { outline-color:var(--orange); }
body[data-view="roles"] .site-header [data-nav="roles"],body[data-view="academy"] .site-header [data-nav="academy"] { color:var(--orange); }
.site-footer .footer-inner { min-height:66px; padding-top:17px; padding-bottom:17px; }
.site-footer .team-mark { width:174px; margin:0; }
.site-footer .text-button { padding:7px 10px; min-height:40px; }
body[data-view="quiz"] .site-header nav { visibility:hidden; }
.student-hero { color:var(--white); background:var(--navy); }
.student-hero-inner { max-width:1320px; min-height:calc(100svh - 144px); margin:auto; padding:34px 42px; display:grid; grid-template-columns:.82fr 1.18fr; gap:46px; align-items:center; }
.student-hero h1 { font-size:clamp(54px,6.3vw,88px); line-height:1.01; letter-spacing:-.055em; margin:0 0 24px; }
.student-hero h1 span { display:block; color:var(--orange); }
.student-hero-copy>p { font-size:19px; line-height:1.55; max-width:320px; }
.student-hero .start-match { margin-top:30px; min-height:64px; min-width:242px; justify-content:space-between; padding:16px 26px; font-size:18px; }
.student-hero .btn:focus-visible { outline-color:var(--white); }
.home-intro-points { display:grid; gap:18px; margin-top:30px; padding-top:26px; border-top:1px solid rgba(255,255,255,.2); max-width:360px; }
.home-intro-point { display:flex; align-items:center; gap:14px; }
.home-intro-point>span { color:var(--orange); width:28px; height:28px; flex:none; }
.home-intro-point svg { display:block; width:100%; height:100%; }
.home-intro-point h2 { font-size:15px; margin-bottom:3px; }
.home-intro-point p { font-size:13px; line-height:1.5; color:rgba(255,255,255,.82); }
.student-collage { display:grid; gap:12px; min-width:0; }
.student-collage img { display:block; width:100%; height:100%; object-fit:cover; border-radius:5px; }
.student-group-photo { aspect-ratio:1.85; max-height:370px; object-position:50% 55%; }
.student-portraits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.student-portraits img { aspect-ratio:1.25; max-height:182px; object-position:55% 42%; }
.student-portraits .charli-photo { object-position:50% 18%; }
.student-portraits img:last-child { object-position:65% 42%; }
.career-search { max-width:560px; margin-bottom:28px; }
.career-search input { min-height:54px; font-size:16px; padding:14px 16px; }
.career-search label { font-size:14px; }
.career-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.career-category-card { padding:0; background:var(--white); border:1px solid var(--line); border-radius:8px; overflow:hidden; text-align:left; display:flex; flex-direction:column; transition:transform .15s,border-color .15s; }
.career-category-card:hover { border-color:var(--navy); transform:translateY(-3px); }
.career-category-card>img { width:100%; height:166px; object-fit:cover; }
.career-category-caption { display:flex; align-items:flex-start; gap:12px; padding:22px 18px; border-top:4px solid var(--orange); flex:1; }
.career-category-caption .category-icon { flex:0 0 34px; width:34px; height:34px; }
.career-category-caption>span:nth-child(2) { flex:1; }
.career-category-caption strong { font-size:21px; line-height:1.15; letter-spacing:-.03em; display:block; margin-bottom:10px; }
.career-category-caption>span>span { font-size:13px; line-height:1.6; display:block; }
.career-category-caption>.arrow { font-size:21px; align-self:flex-end; }
.category-icon { display:grid; place-items:center; width:48px; height:48px; flex:none; }
.category-icon svg { display:block; width:100%; height:100%; }
.career-tabs { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 32px; }
.career-tab { border:1px solid var(--line); background:var(--white); color:var(--navy); border-radius:6px; display:inline-flex; align-items:center; gap:10px; padding:11px 16px; min-height:50px; font-weight:600; font-size:14px; }
.career-tab svg { width:25px; height:25px; }
.career-tab:hover { border-color:var(--navy); }
.career-tab.active { background:var(--navy); color:var(--white); border-color:var(--navy); box-shadow:inset 0 -3px var(--orange); }
.career-tabs>.text-button { padding:10px 12px 10px 0; min-height:48px; }
.career-results-group+.career-results-group { margin-top:44px; }
.career-group-heading { display:flex; align-items:center; gap:18px; padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.career-group-heading .category-icon { width:48px; height:48px; padding:8px; background:var(--orange); border-radius:6px; }
.career-group-heading h2 { font-size:29px; letter-spacing:-.03em; margin-bottom:6px; }
.career-group-heading p { font-size:14px; }
.career-job-card { border:1px solid var(--line); border-top:4px solid var(--navy); border-radius:8px; padding:24px; display:flex; flex-direction:column; min-width:0; transition:border-color .15s,transform .15s; }
.career-job-card:hover { border-color:var(--navy); border-top-color:var(--orange); transform:translateY(-2px); }
.career-job-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.career-job-icon { width:48px; height:48px; display:grid; place-items:center; color:var(--navy); background:var(--orange); border-radius:8px; padding:10px; flex:none; }
.career-job-icon svg { width:100%; height:100%; display:block; }
.career-job-top .tag { font-size:11px; text-align:right; max-width:155px; }
.career-job-card h3 { font-size:25px; font-weight:700; letter-spacing:-.035em; line-height:1.14; margin:0 0 16px; }
.career-job-card>p { font-size:15px; line-height:1.65; margin-bottom:24px; }
.career-job-link { display:flex; align-items:center; justify-content:space-between; gap:18px; text-align:left; font-size:13px; font-weight:600; background:none; border:0; border-top:1px solid var(--line); padding:17px 0 0; width:100%; margin-top:auto; min-height:46px; }
.career-job-link:hover { color:var(--blue); }
.career-progression { font-size:11px; border-left:3px solid var(--orange); padding-left:9px; margin-bottom:17px; }
.academy-page { padding-top:42px; padding-bottom:56px; background:var(--navy); color:var(--white); }
.academy-page h1 span { color:var(--orange); }
.academy-page p { color:rgba(255,255,255,.88); }
.academy-page .btn:focus-visible { outline-color:var(--orange); }
.academy-page .btn-outline { background:transparent; color:var(--white); border-color:rgba(255,255,255,.5); }
.academy-page .btn-outline:hover { background:var(--white); color:var(--navy); border-color:var(--white); }
.student-hero,.academy-page { background-image:linear-gradient(90deg,rgba(24,47,79,.84),rgba(24,47,79,.45)),url('assets/blueprint.webp'); background-size:auto,auto 760px; background-position:center,center top; background-repeat:no-repeat,repeat; }
.academy-page-hero { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:56px; }
.academy-page-logo { width:100px; height:100px; padding:6px; background:var(--navy); border-radius:50%; margin-bottom:24px; }
.academy-page h1 { font-size:clamp(48px,5.2vw,72px); line-height:1; margin:0 0 24px; }
.academy-page-hero>div>p { font-size:18px; line-height:1.65; max-width:390px; margin-bottom:26px; }
.academy-page-main-photo { width:100%; height:440px; object-fit:cover; object-position:34% 50%; border-radius:8px; }
.academy-opportunities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin-top:48px; padding-top:38px; border-top:1px solid rgba(255,255,255,.2); }
.academy-opportunities article { padding-right:20px; }
.academy-opportunity-icon { width:42px; height:42px; display:block; color:var(--orange); margin-bottom:20px; }
.academy-opportunity-icon svg { width:100%; height:100%; }
.academy-opportunities h2 { font-size:24px; margin-bottom:14px; letter-spacing:-.03em; }
.academy-opportunities p { font-size:15px; line-height:1.75; }
.academy-experience { display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; margin-top:46px; }
.academy-experience>img { width:100%; height:320px; object-fit:cover; border-radius:8px; }
.academy-experience h2 { font-size:30px; letter-spacing:-.03em; margin-bottom:20px; }
.academy-experience p { font-size:15px; line-height:1.75; }
.academy-experience .btn { margin-top:22px; }
.student-result-card .result-kicker { margin-bottom:22px; }
.student-result-card .result-detail { margin-top:auto; }
.results-lead h2 { font-size:19px; margin-bottom:0; }
.results-lead { padding:22px 26px; }
.results-lead .strengths { margin-top:12px; }
.next-steps .inline-link { margin-top:18px; }
.quiz-topline { justify-content:flex-end; }
.journey-label { font-size:12px; letter-spacing:0; text-transform:none; }
.option-label { font-size:16px; }
.option-blurb { font-size:13px; }
.option-button { min-height:112px; }
@media(min-width:700px) {
  .skills-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .skills-grid .option-button { min-height:102px; }
}
@media(min-width:1450px) {
  .student-group-photo { max-height:400px; }
  .student-portraits img { max-height:205px; }
}
@media(max-width:1100px) {
  .student-hero-inner { gap:28px; padding:28px; }
  .student-hero h1 { font-size:64px; }
  .student-hero-copy>p { font-size:17px; }
  .student-group-photo { aspect-ratio:1.75; }
  .student-portraits img { aspect-ratio:1.1; }
  .career-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .career-category-card { display:grid; grid-template-columns:.75fr 1fr; min-height:190px; }
  .career-category-card>img { height:100%; min-height:190px; }
  .career-category-caption { border-top:0; border-left:4px solid var(--orange); flex-wrap:wrap; gap:10px; padding:20px; }
  .career-category-caption>.category-icon { width:28px; height:28px; flex-basis:28px; }
  .career-category-caption>.arrow { display:none; }
  .career-category-caption strong { font-size:23px; }
  .academy-page-hero { gap:36px; }
  .academy-page-main-photo { height:420px; }
}
@media(max-width:800px) {
  .student-hero-inner { grid-template-columns:1fr; min-height:calc(100svh - 144px); padding:30px; gap:28px; }
  .student-hero-copy { display:grid; grid-template-columns:1fr auto; column-gap:30px; align-items:center; }
  .student-hero h1 { font-size:60px; margin-bottom:16px; grid-column:1; }
  .student-hero-copy>p { grid-column:1; max-width:300px; }
  .student-hero .start-match { grid-column:2; grid-row:1/3; min-width:205px; min-height:66px; padding:16px 22px; font-size:17px; margin:0; }
  .home-intro-points { grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; gap:18px; margin-top:22px; padding-top:20px; }
  .home-intro-point { align-items:flex-start; gap:10px; }
  .home-intro-point>span { width:24px; height:24px; }
  .home-intro-point h2 { font-size:14px; }
  .home-intro-point p { font-size:12px; }
  .student-group-photo { aspect-ratio:2.2; max-height:320px; }
  .student-portraits img { aspect-ratio:1.6; max-height:156px; }
  .career-category-card { display:flex; min-height:0; }
  .career-category-card>img { height:160px; min-height:0; }
  .career-category-caption { flex-wrap:nowrap; border-left:0; border-top:4px solid var(--orange); padding:20px; gap:14px; }
  .career-category-caption strong { font-size:24px; }
  .career-category-caption>.arrow { display:block; }
  .career-tab { font-size:12px; padding:10px 12px; gap:8px; }
  .career-tab svg { width:22px; height:22px; }
  .career-job-card { padding:22px; }
  .career-job-card h3 { font-size:25px; }
  .career-job-card>p { font-size:14px; }
  .academy-page-hero { grid-template-columns:1fr 1.05fr; gap:28px; }
  .academy-page-logo { width:80px; height:80px; margin-bottom:20px; }
  .academy-page h1 { font-size:52px; }
  .academy-page-hero>div>p { font-size:15px; }
  .academy-page-main-photo { height:390px; }
  .academy-opportunities { gap:22px; }
  .academy-opportunities article { padding:0; }
  .academy-opportunities h2 { font-size:22px; }
  .academy-opportunities p { font-size:14px; }
  .academy-experience { gap:28px; }
  .academy-experience>img { height:370px; }
  .academy-experience h2 { font-size:27px; }
  .academy-experience p { font-size:14px; }
}
@media(max-width:600px) {
  .site-header .header-inner { padding:0 20px; min-height:72px; gap:10px; flex-wrap:nowrap; }
  .site-header .brand { flex-basis:100px; }
  .site-header .brand img { width:100px; height:71px; }
  .site-header nav { gap:4px; }
  .site-header nav>a { display:inline-flex; font-size:12px; padding:8px 10px; min-height:44px; }
  .site-footer .footer-inner { padding:14px 22px; min-height:60px; }
  .site-footer .team-mark { width:156px; }
  .site-footer .text-button { min-height:40px; font-size:11px; }
  .student-hero-inner { padding:28px 22px; min-height:calc(100svh - 132px); gap:28px; }
  .student-hero-copy { display:block; }
  .student-hero h1 { font-size:64px; margin-bottom:18px; }
  .student-hero-copy>p { font-size:17px; max-width:280px; }
  .student-hero .start-match { margin-top:22px; min-height:62px; font-size:17px; min-width:235px; }
  .home-intro-points { grid-template-columns:1fr; gap:16px; margin-top:26px; padding-top:22px; }
  .home-intro-point { align-items:center; gap:14px; }
  .home-intro-point>span { width:27px; height:27px; }
  .home-intro-point h2 { font-size:15px; }
  .home-intro-point p { font-size:13px; }
  .student-collage { gap:9px; }
  .student-group-photo { aspect-ratio:1.65; }
  .student-portraits { gap:9px; }
  .student-portraits img { aspect-ratio:1; }
  .student-portraits .charli-photo { object-position:50% 18%; }
  .careers-page .page-heading { margin-bottom:22px; }
  .careers-page .page-heading h1 { font-size:36px; }
  .careers-page .page-heading>button { min-height:46px; }
  .career-search { margin-bottom:24px; }
  .career-search input { font-size:14px; }
  .career-category-grid { gap:12px; }
  .career-category-card>img { height:116px; }
  .career-category-caption { display:block; padding:15px; }
  .career-category-caption>.category-icon { display:block; width:26px; height:26px; margin-bottom:12px; }
  .career-category-caption strong { font-size:21px; min-height:48px; margin-bottom:9px; }
  .career-category-caption>span>span { font-size:12px; line-height:1.6; }
  .career-category-caption>.arrow { display:none; }
  .career-tabs { gap:8px; margin-bottom:24px; }
  .career-tabs>.text-button { width:100%; text-align:left; padding:5px 0; min-height:36px; }
  .career-tab { flex:1 1 calc(50% - 8px); justify-content:flex-start; font-size:12px; padding:11px 12px; }
  .career-group-heading { gap:14px; }
  .career-group-heading h2 { font-size:27px; }
  .career-group-heading p { font-size:13px; }
  .career-job-card { padding:22px; }
  .career-job-card h3 { font-size:28px; }
  .career-job-card>p { font-size:15px; }
  .career-job-link { min-height:48px; font-size:14px; }
  .academy-page { padding-top:28px; padding-bottom:36px; }
  .academy-page-hero { grid-template-columns:1fr; gap:28px; }
  .academy-page-logo { width:82px; height:82px; }
  .academy-page h1 { font-size:58px; }
  .academy-page-hero>div>p { font-size:16px; }
  .academy-page-main-photo { height:250px; }
  .academy-opportunities { grid-template-columns:1fr; gap:28px; margin-top:28px; padding-top:28px; }
  .academy-opportunities article { display:grid; grid-template-columns:36px 1fr; column-gap:18px; }
  .academy-opportunity-icon { grid-column:1; grid-row:1/3; width:36px; height:36px; margin:0; }
  .academy-opportunities h2 { grid-column:2; margin-bottom:10px; }
  .academy-opportunities p { grid-column:2; }
  .academy-experience { grid-template-columns:1fr; gap:26px; margin-top:32px; }
  .academy-experience>img { height:230px; }
  .academy-experience h2 { font-size:30px; }
  .academy-experience p { font-size:15px; }
  .option-label { font-size:14px; }
  .option-blurb { font-size:12px; }
  .option-button { min-height:124px; }
}
@media print {
  .student-result-card .career-job-icon { background:var(--white); border:1px solid var(--navy); }
}
body { display:flex; flex-direction:column; min-height:100svh; }
.site-header,.site-footer { flex:none; }
main { flex:1; }
body[data-view="home"] main { display:flex; }
.student-hero { flex:1; }
.student-hero-inner { width:100%; min-height:0; }
.page { min-height:0; }
@media(min-width:801px) and (max-height:800px) {
  .student-hero-inner { padding-top:28px; padding-bottom:28px; }
  .student-hero h1 { font-size:64px; margin-bottom:18px; }
  .student-hero .start-match { margin-top:22px; min-height:58px; }
  .home-intro-points { margin-top:22px; padding-top:20px; gap:14px; }
  .student-group-photo { max-height:300px; }
  .student-portraits img { max-height:145px; }
}
@media print {
  body { display:block; }
  .site-header { background:var(--white); color:var(--navy); }
}

