@font-face{font-family:Plex;src:url('assets/plex-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Plex;src:url('assets/plex-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Plex;src:url('assets/plex-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Plex;src:url('assets/plex-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--ink:#10263c;--navy:#0c2a4a;--blue:#168ac9;--paper:#f4f5f4;--line:#d2d9de;--muted:#5f6a74;--pale:#ebf5fc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:68px}body{margin:0;color:var(--ink);font-family:Plex,'IBM Plex Sans',Arial,sans-serif;font-size:16px;line-height:1.6;background-color:var(--paper);background-image:linear-gradient(#10263c04 1px,transparent 1px),linear-gradient(90deg,#10263c04 1px,transparent 1px);background-size:32px 32px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}button{color:inherit}.skip{position:fixed;top:-80px;left:20px;background:white;padding:12px;z-index:1000}.skip:focus{top:8px}.main-header{height:124px;background:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(2rem,calc((100vw - 1120px)/2));gap:4rem}.wordmark{display:flex;flex-direction:column;line-height:1.02;letter-spacing:.06em;font-weight:700;font-size:23px;flex-shrink:0}.wordmark span:last-child{font-size:17px;letter-spacing:.06em;color:var(--blue);margin-top:4px}.main-header nav{display:flex;align-items:center;gap:36px;font-size:18px;font-weight:700;white-space:nowrap}.main-header nav a:hover,.main-header nav .current{color:var(--blue)}.menu-toggle{display:none}.hero{position:relative;display:flex;align-items:flex-end;min-height:100svh;padding:112px max(2rem,calc((100vw - 1120px)/2)) 80px;color:white;background:#203b51 url('assets/tunnel.webp') center 53%/cover no-repeat}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,24,40,.77),rgba(5,22,38,.13)),linear-gradient(0deg,rgba(5,17,29,.88),rgba(5,17,29,.08) 85%)}.hero-content{position:relative;max-width:1120px}.hero-badge{font-size:11px;letter-spacing:.15em;font-weight:700;border:1px solid #ffffff70;padding:6px 10px;display:inline-block;margin-bottom:24px}.hero h1{font-size:clamp(64px,8.3vw,128px);line-height:.9;letter-spacing:-.055em;font-weight:700;margin:0 0 36px}.hero p{max-width:680px;font-size:22px;line-height:1.6;margin:0}.hero-caption{position:absolute;right:32px;bottom:20px;font-size:10px;letter-spacing:.08em;color:#ffffff9c}.sticky-nav{position:sticky;top:0;z-index:50;background:#0d2338f7;border-top:3px solid var(--blue);border-bottom:1px solid #264258;color:#e1ebf1}.sticky-nav>div{max-width:1120px;padding:0 32px;margin:auto;display:flex;overflow-x:auto;scrollbar-width:none}.sticky-nav a{padding:17px 13px 16px;display:block;white-space:nowrap;font-size:11px;letter-spacing:.08em;border-bottom:3px solid transparent;transition:color .2s}.sticky-nav a:hover,.sticky-nav a.active{color:white;border-bottom-color:var(--blue)}.section{max-width:1120px;padding:104px 32px;margin:auto;scroll-margin-top:0}.section+.section{border-top:1px solid var(--line)}.section-heading{max-width:816px;margin:0 0 48px}h2{font-size:clamp(32px,4.5vw,53.6px);font-weight:700;line-height:1.04;letter-spacing:-.035em;margin:0 0 20px}.section-heading p{color:var(--muted);margin:0;font-size:16px;line-height:1.65}.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-left:1px solid var(--line)}.metrics article{background:#ffffffb8;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 21px;min-height:216px;transition:background .2s}.metrics article:hover{background:white}.metrics article>span,.eyebrow{color:#266a9e;font-size:10px;letter-spacing:.12em;font-weight:700}.metrics strong{display:block;font-size:34px;letter-spacing:-.04em;line-height:1.15;margin:8px 0}.metrics em{font-style:normal;font-size:22px}.metrics p{font-size:14px;color:var(--muted);margin:8px 0}.metrics small{display:block;font-size:12px;color:#687581;line-height:1.5}.blueprint{margin:0;border:1px solid var(--line);background:white}.blueprint>figcaption{padding:13px 21px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.blueprint-image{position:relative;max-width:760px;margin:auto}.blueprint-image>img{display:block;width:100%;max-height:680px;object-fit:contain}.pin{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);border:1px solid white;border-radius:50%;background:var(--navy);color:white;font-weight:700;width:33px;height:33px;box-shadow:0 0 0 5px #168ac930;font-size:12px;line-height:1}.pin.selected,.pin:hover{background:var(--blue);box-shadow:0 0 0 7px #168ac945}.caption{font-size:12px;line-height:1.5;color:var(--muted);padding:15px 20px;margin:0;border-top:1px solid var(--line)}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 22px}.tabs button{background:transparent;border:1px solid #bdc8cf;border-radius:2px;padding:10px 16px;font-size:12px;font-weight:600}.tabs button.selected{color:white;background:var(--navy);border-color:var(--navy)}.tabs button:hover{border-color:var(--blue)}.detail-card{border:1px solid var(--line);background:white;display:grid;grid-template-columns:1.15fr 1fr;min-height:360px}.detail-copy{padding:32px}.detail-copy h3{font-size:26px;letter-spacing:-.025em;line-height:1.2;margin:10px 0 24px}.detail-copy p{font-size:14px;color:var(--muted);margin:22px 0 0}.detail-copy table{width:100%;border-collapse:collapse;font-size:13px}.detail-copy td{vertical-align:top;padding:10px 0;border-bottom:1px solid #e1e6e9}.detail-copy td:first-child{color:var(--muted);width:44%;padding-right:16px}.detail-copy td:last-child{font-weight:600}.detail-card figure{margin:0;border-left:1px solid var(--line);background:#eef2f5;display:flex;flex-direction:column;justify-content:center}.detail-card figure img{width:100%;aspect-ratio:1;object-fit:contain;max-height:460px}.detail-card figcaption{font-size:11px;line-height:1.5;padding:14px 20px;color:var(--muted);border-top:1px solid var(--line);background:#fafcfd}.test-list{display:grid;gap:12px}.test-list details{border:1px solid var(--line);background:white}.test-list details[open]{border-top:2px solid var(--blue)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px 25px;cursor:pointer}summary::-webkit-details-marker{display:none}summary>span:first-child{display:flex;flex-direction:column}summary small{font-size:10px;letter-spacing:.12em;color:#266a9e;font-weight:600}summary strong{font-size:21px;letter-spacing:-.02em;margin-top:6px;line-height:1.3}.summary-status{font-size:11px;white-space:nowrap;color:var(--muted)}.summary-status:after{content:'+';font-size:20px;margin-left:25px;color:var(--ink)}details[open] .summary-status:after{content:'−'}.test-body{display:grid;grid-template-columns:1fr 1.1fr;border-top:1px solid var(--line)}.test-body img{width:100%;height:330px;object-fit:contain;background:#f0f3f6}.test-body>div{padding:32px}.test-body h3{font-size:26px;margin:8px 0 16px;line-height:1.2}.test-body p,.test-text{font-size:14px;color:var(--muted)}.test-text{padding:8px 28px 25px;max-width:820px}.note{border-top:1px solid var(--line);padding-top:18px;font-size:12px!important}.risk-register{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.4fr);gap:32px}.risk-index,.risk-detail{border:1px solid var(--line);background:white}.risk-index h3{font-size:11px;margin:0;padding:17px 20px;border-bottom:1px solid var(--line);letter-spacing:.09em}.risk-index button{width:100%;border:0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:white;padding:17px 20px;font-size:14px;font-weight:600}.risk-index button:last-child{border-bottom:0}.risk-index small{font-size:10px;color:var(--muted);letter-spacing:.07em;margin-bottom:6px}.risk-index button.selected{border-left:4px solid var(--blue);padding-left:16px;background:var(--pale)}.risk-index button:hover{background:#f4f8fa}.risk-detail{padding:28px}.risk-detail h3{font-size:24px;line-height:1.2;margin:12px 0 24px}.risk-block{border-left:3px solid var(--line);padding:12px 17px;background:#f5f7f9;margin:12px 0}.risk-block:nth-last-child(1){border-color:var(--blue);background:var(--pale)}.risk-block strong{font-size:10px;letter-spacing:.1em}.risk-block p{font-size:14px;margin:7px 0 0;color:#4b5b68}.table-wrap{overflow:auto}.strategy{width:100%;border-collapse:collapse;text-align:left;background:white;font-size:14px}.strategy th{background:var(--navy);color:white;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:17px 20px;font-weight:600}.strategy td{padding:22px 20px;border-bottom:1px solid var(--line)}.strategy td:first-child{font-weight:600;min-width:215px}.strategy td:nth-child(2){color:#266a9e;white-space:nowrap}.strategy td:last-child{color:var(--muted)}.strategy td span{font-size:11px;color:var(--blue);margin-right:14px}.source-note{font-size:12px;color:var(--muted);margin:23px 0 0}.cad-card{border:1px solid var(--line);background:white}.cad-viewport{position:relative;width:100%;height:500px;background:radial-gradient(circle at center,#294257 0%,#0a1723 72%)}model-viewer{width:100%;height:100%;--progress-bar-color:var(--blue)}.model-progress{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:white;font-size:13px;pointer-events:none}model-viewer.loaded .model-progress{display:none}.model-top{position:absolute;top:20px;left:22px;right:22px;display:flex;justify-content:space-between;pointer-events:none;font-size:10px;letter-spacing:.12em;color:#c6d7e4}.model-controls{position:absolute;bottom:18px;left:20px;display:flex;gap:8px}.model-controls button{font-size:11px;color:#e4edf5;border:1px solid #ffffff35;background:#0c2039b0;padding:8px 12px;border-radius:2px}.model-controls button:hover{background:var(--navy)}.model-error{position:absolute;top:45%;left:10%;right:10%;background:var(--navy);padding:20px;color:white;text-align:center}.cad-disclaimer{font-size:13px;color:var(--muted);line-height:1.65;padding:19px 23px;border-left:3px solid var(--blue)}.cad-disclaimer strong{color:var(--navy)}footer{background:white;border-top:1px solid var(--line);padding:68px 32px}.footer-inner{max-width:1056px;margin:auto;display:grid;grid-template-columns:2fr 1fr;gap:60px}footer h3{font-size:18px;margin:0 0 18px}footer p,footer a,footer span{font-size:13px;line-height:1.7;color:var(--muted)}footer a{display:block;margin-bottom:7px}footer a:hover{color:var(--blue)}footer span{font-size:11px}.footer-inner section:first-child p{max-width:420px}
@media(min-width:1550px){.main-header nav{gap:42px}.hero{background-position:center 50%}}
@media(max-width:1100px){.main-header{gap:2rem;padding:0 32px}.main-header nav{gap:22px;font-size:15px}.risk-register{grid-template-columns:1fr}.risk-index>div{display:grid;grid-template-columns:1fr 1fr}.risk-index button{border-bottom:1px solid var(--line)}.hero h1{font-size:9vw}}
@media(max-width:720px){html{scroll-padding-top:60px}.main-header{height:88px;padding:0 20px}.wordmark{font-size:20px}.wordmark span:last-child{font-size:14px}.menu-toggle{display:flex;align-items:center;gap:14px;border:0;background:transparent;font-size:13px}.menu-toggle span{font-size:20px}.main-header nav{display:none;position:absolute;top:88px;left:0;right:0;z-index:70;background:white;padding:22px;gap:0;border-bottom:1px solid var(--line);box-shadow:0 20px 30px #0c2a4a20}.main-header nav.open{display:grid;grid-template-columns:1fr 1fr}.main-header nav a{padding:12px}.hero{min-height:100svh;padding:96px 20px 58px;background-position:58% center}.hero h1{font-size:clamp(58px,15vw,96px);line-height:.95;max-width:650px;margin-bottom:28px}.hero p{font-size:18px;max-width:490px}.hero-badge{font-size:9px;margin-bottom:24px}.hero-caption{font-size:8px;right:20px;bottom:15px}.sticky-nav>div{padding:0 8px}.sticky-nav a{padding:16px 11px 14px;font-size:10px}.section{padding:72px 20px}.section-heading{margin-bottom:32px}h2{font-size:36px}.section-heading p{font-size:15px}.metrics{grid-template-columns:1fr 1fr}.metrics article{padding:18px 14px;min-height:218px}.metrics strong{font-size:26px}.metrics em{font-size:18px}.metrics article>span{font-size:8px}.metrics p{font-size:12px}.metrics small{font-size:11px}.detail-card{grid-template-columns:1fr}.detail-copy{padding:24px}.detail-card figure{border-left:0;border-top:1px solid var(--line)}.detail-card figure img{max-height:360px}.tabs{gap:7px}.tabs button{font-size:11px;padding:9px 12px}.test-body{grid-template-columns:1fr}.test-body img{height:290px}.test-body>div{padding:24px}summary{padding:21px 18px;gap:12px}summary strong{font-size:18px}.summary-status{font-size:9px}.summary-status:after{margin-left:12px}.risk-index>div{grid-template-columns:1fr}.risk-index button{font-size:13px}.risk-detail{padding:22px}.strategy{font-size:12px}.strategy td{padding:17px 15px}.strategy th{padding:15px;font-size:10px}.cad-viewport{height:380px}.model-top{font-size:8px;left:14px;right:14px}.model-controls{left:12px;gap:6px;bottom:12px}.model-controls button{font-size:9px;padding:7px 9px}.cad-disclaimer{font-size:12px;padding:16px}.footer-inner{grid-template-columns:1fr 1fr;gap:32px}.footer-inner section:first-child{grid-column:1/-1}footer{padding:48px 20px}footer h3{font-size:16px}.caption{font-size:10px;padding:13px}.blueprint>figcaption{font-size:9px;padding:12px 15px}.pin{width:29px;height:29px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

[hidden]{display:none!important}.wordmark img{max-width:160px;max-height:65px;object-fit:contain}.model-fallback{position:absolute;inset:45px 0 60px;width:100%;height:calc(100% - 105px);object-fit:contain}.cad-viewport model-viewer{position:relative}.model-progress{background:#0c2a4a90}.model-error{top:auto;bottom:60px;left:20px;right:20px;font-size:11px;padding:9px;margin:0;background:#0c2a4ade}.model-controls button:disabled{opacity:.45;cursor:default}

/* Empty media slots remain ready for current project assets. */
.media-placeholder{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px;text-align:center;background:linear-gradient(135deg,#eef2f5,#f8fafb);color:var(--muted)}
.media-placeholder strong{font-size:15px;font-weight:500;color:var(--ink)}.media-placeholder span{font-size:12px}.blueprint-image .media-placeholder{min-height:420px}.test-media{background:#f0f3f6}.test-media img{display:block}.test-media .media-placeholder{min-height:330px}.model-fallback.media-placeholder{background:none;min-height:0;color:#c6d7e4}.model-fallback.media-placeholder strong{color:white}
@media(max-width:720px){.blueprint-image .media-placeholder{min-height:280px}.media-placeholder{min-height:260px}.test-media .media-placeholder{min-height:290px}}

/* Current supplied project media. */
.wordmark img{width:168px;height:105px;max-width:168px;max-height:105px;object-fit:contain}.detail-images{display:grid;place-items:center}.detail-images-pair{grid-template-columns:1fr 1fr;gap:2px}.detail-images-pair img{aspect-ratio:4/5;max-height:340px}.test-media{margin:0;padding:0;display:flex;flex-direction:column;justify-content:center}.test-media figcaption{font-size:11px;color:var(--muted);padding:10px 16px;border-top:1px solid var(--line)}
@media(max-width:720px){.wordmark img{width:118px;height:74px;max-height:74px}.detail-images-pair img{max-height:280px}.model-top span:first-child{max-width:65%}}

.history-source{display:inline-block;font-size:12px;color:var(--blue);text-decoration:underline;text-underline-offset:3px}

/* Team profiles use the same layout in the grid and enlarged view. */
.team-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  justify-items: center;
}
.team-card { margin: 0; width: 100%; max-width: 220px; }
.team-card-open {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: zoom-in;
  font: 13px Arial, sans-serif;
  color: var(--ink);
}
.team-card-open:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.team-card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  background: white;
  border: .43em solid var(--team-accent);
  text-align: center;
  line-height: 1.25;
  padding: 0 .7em .9em;
}
.team-portrait { display: block; width: 72%; height: auto; }
.team-name { font-size: 1.16em; margin: .9em 0 .6em; }
.team-role { font-weight: 700; color: #175b92; }
.team-email {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .4em;
  width: 100%;
  border-top: 1px solid #c8ddeb;
  margin-top: .35em;
  padding-top: .45em;
  font-size: .91em;
  overflow-wrap: anywhere;
}
.team-email svg { flex: 0 0 1.6em; width: 1.6em; fill: none; stroke: #175b92; }
.team-duties { display: block; width: 100%; font-size: .85em; margin-top: .85em; }
.team-duties strong {
  display: block;
  text-transform: uppercase;
  color: #175b92;
  border-bottom: 1px solid #c8ddeb;
  margin-bottom: .35em;
  padding-bottom: .2em;
}
@media (max-width: 1080px) { .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .team-grid { grid-template-columns: 1fr; } }

.team-card-dialog {
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  max-width: calc(100vw - 32px);
  max-height: calc(100svh - 32px);
  overflow: auto;
  box-shadow: none;
}
.team-card-dialog::backdrop { background: rgba(5, 17, 29, .9); }
.team-card-full {
  width: min(430px, calc(100vw - 32px), 60svh);
  font: clamp(13px, 2.75vmin, 23px) Arial, sans-serif;
}
body.team-card-zoom-open { overflow: hidden; }


/* Two confirmed second-place awards, drawn as crisp silver medals. */
.prizes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.prize-card{border:1px solid var(--line);background:#fff;overflow:hidden}.prize-art{display:grid;place-items:center;padding:22px;background:radial-gradient(ellipse at 50% 10%,#245575,var(--navy) 78%)}.prize-medal{width:min(100%,300px);height:240px;display:block}.prize-copy{padding:30px 32px 32px}.prize-copy .eyebrow{display:block;text-transform:uppercase}.prize-copy h3{font-size:38px;line-height:1.1;letter-spacing:-.035em;margin:12px 0 15px}.prize-name{font-size:21px;font-weight:600;line-height:1.3;margin:0 0 5px}.prize-category{font-size:14px;color:var(--muted);margin:0 0 22px}.prize-copy .history-source{font-size:12px}
@media(max-width:640px){.prizes-grid{grid-template-columns:1fr;gap:22px}.prize-art{padding:16px}.prize-medal{height:220px}.prize-copy{padding:24px}.prize-copy h3{font-size:34px}.prize-name{font-size:19px}}

.prize-placeholder{border-style:dashed}.prize-placeholder .prize-art{background:#edf2f5;color:#8a9eae}.prize-placeholder .prize-copy h3{color:#61778b}.prize-placeholder .prize-name{color:#7b8d9b;font-weight:400;font-size:18px}

.prize-pending .prize-copy h3{font-size:28px}.prize-pending .prize-name{font-weight:600;color:var(--ink)}

/* Original competition photographs, displayed in full without cropping. */
.prize-art.prize-photo {
  --award-photo-height: 284px;
  padding: 0;
  background: #e9eef3;
}
.prize-photo img {
  display: block;
  width: 100%;
  height: var(--award-photo-height);
  object-fit: contain;
}
@media (max-width: 640px) {
  .prize-art.prize-photo { --award-photo-height: 252px; }
}

/* Mask the original 271 × 168 image to its rectangle and circular badge. */
.prize-photo-vbs { height: var(--award-photo-height); }
.prize-photo-vbs img {
  width: min(100%, calc(var(--award-photo-height) * 271 / 168));
  height: auto;
  mask-image: linear-gradient(#000, #000), radial-gradient(ellipse closest-side, #000 98%, transparent 100%);
  mask-size: 79.70% 67.26%, 25.46% 41.07%;
  mask-position: 21.82% 81.82%, 95.54% 11.11%;
  mask-repeat: no-repeat;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  max-width: 1056px;
  margin: 24px auto 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.footer-legal a { display: inline-block; font-size: 13px; }
.disclosure-page { max-width: 850px; margin: 0 auto; padding: 56px clamp(20px, 4vw, 32px) 72px; min-height: 75svh; }
.disclosure-page h1 { font-size: clamp(38px, 6vw, 58px); margin: 32px 0 0; line-height: 1.1; }
.disclosure-page a { color: var(--blue); }
.disclosure-page dl { padding: 20px; border: 1px solid var(--line); background: white; }
.disclosure-page dt { font-weight: 600; }
.disclosure-page dd { margin: 0 0 12px; overflow-wrap: anywhere; }
.disclosure-page dd:last-child { margin: 0; }

/* Keep view controls reachable on touchscreens and in the enlarged view. */
.cad-viewport:fullscreen {
  width: 100%;
  height: 100%;
}
.cad-viewport.is-expanded {
  height: max(380px, 82svh);
}
.cad-viewport .model-controls button {
  min-width: 44px;
  min-height: 44px;
  font-size: 14px;
  cursor: pointer;
}
.cad-viewport .model-controls button[data-model-zoom] {
  font-size: 20px;
  line-height: 1;
}
.cad-viewport .model-controls button:focus-visible {
  outline: 2px solid white;
  outline-offset: 2px;
}
.cad-viewport .model-error { bottom: 70px; }
