*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,sans-serif}html{scroll-behavior:smooth}body{color:#fff;scroll-behavior:smooth;background-color:#0b0b0b;font-size:16px;line-height:1.6}nav{z-index:100;background:#000000f2;justify-content:space-between;align-items:center;padding:2rem 10%;display:flex;position:sticky;top:0}.logo{letter-spacing:2px;font-weight:800}.logo span{color:#e63946}nav ul{list-style:none;display:flex}nav ul li{margin-left:30px}nav ul li a{color:#fff;text-transform:uppercase;font-size:.9rem;font-weight:700;text-decoration:none;transition:all .2s ease-in-out}nav ul li a:hover{color:#e63946;text-underline-offset:6px;text-decoration:underline}.hero{background-image:linear-gradient(#0b0b0bd9,#0b0b0bf2);background-position:50%;background-size:cover;border-bottom:1px solid #333;justify-content:space-between;align-items:center;gap:40px;min-height:80vh;padding:4rem 10%;display:flex}.hero-content{flex:1.2;max-width:650px}.hero h1{margin-bottom:15px;font-size:4rem;line-height:1.1}.hero h1 span{color:#e63946}.hero p{color:#bbb;font-size:1.1rem}.hero-headshot{flex:.8;justify-content:center;align-items:center;display:flex}.headshot-img{background-color:#1a1a1a;background-position:50%;background-size:cover;border:4px solid #e63946;border-radius:50%;width:320px;height:320px;box-shadow:0 0 20px #00000080}.btn{color:#fff;background:#e63946;padding:12px 30px;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.btn:hover{color:#000;background:#fff}.project-grid{padding:5rem 10%}.section-title{text-transform:uppercase;border-left:5px solid #e63946;margin-bottom:3rem;padding-left:15px}.container{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;display:grid}.card{cursor:pointer;background:#1a1a1a;border:1px solid #333;padding-bottom:20px;transition:all .3s}.card:hover,.card.is-visible:hover{border-color:#e63946!important;transform:translateY(-5px)!important;box-shadow:0 10px 20px #e639461a!important}.card-img{background-color:#222;background-position:50%;background-size:cover;height:240px;margin-bottom:15px}.card h3,.card p{padding:0 20px}.card p{color:#999;margin-top:10px;font-size:.85rem}.card-img.media-slot.has-image-media,.img-placeholder.media-slot.has-image-media,.gallery-img.media-slot.has-image-media{background:0 0!important}.media-slot[data-fit=contain].has-image-media>img,.published-reference-media.has-image-media>img{filter:none}.portfolio-detail .media-slot.is-zoomable,.portfolio-detail .engineering-visual.is-zoomable{cursor:zoom-in}.portfolio-detail .media-slot.is-zoomable:focus-visible,.portfolio-detail .engineering-visual.is-zoomable:focus-visible{outline-offset:4px;outline:2px solid #e63946}.portfolio-detail .media-slot.is-zoomable:after,.portfolio-detail .engineering-visual.is-zoomable:after{content:"View larger";color:#fff;pointer-events:none;background:#000000c7;border:1px solid #ffffff59;border-radius:4px;padding:6px 10px;font-size:.75rem;font-weight:700;position:absolute;bottom:12px;right:12px}.portfolio-detail .engineering-visual.is-zoomable{position:relative}.media-lightbox{box-sizing:border-box;color:#fff;background:#0b0b0b;border:1px solid #555;border-radius:8px;width:min(96vw,1400px);max-width:96vw;max-height:96dvh;padding:14px;overflow:auto}.media-lightbox::backdrop{background:#000000e6}.media-lightbox-actions{z-index:1;background:#0b0b0b;justify-content:flex-end;gap:8px;padding-bottom:10px;display:flex;position:sticky;top:0}.media-lightbox-actions button{color:#fff;font:inherit;cursor:pointer;background:#1b1b1b;border:1px solid #666;border-radius:4px;padding:7px 12px}.media-lightbox-actions button:hover,.media-lightbox-actions button:focus-visible{border-color:#e63946}.media-lightbox img{object-fit:contain;width:100%;max-height:calc(96dvh - 110px);margin:0 auto;display:block}.media-lightbox.is-diagram img{background:#fff}.media-lightbox.is-zoomed img{width:auto;max-width:none;max-height:none;margin:0}.media-lightbox-caption{color:#bbb;text-align:center;margin:8px 0 0;font-size:.85rem}.header-link{color:#fff;text-decoration:none;transition:color .3s}.header-link:hover{color:#e63946}.contact-icon{color:#fff;background:#1a1a1a;border:1px solid #333;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;font-size:1.3rem;text-decoration:none;transition:all .3s;display:inline-flex}.contact-icon:hover{color:#fff;background:#e63946;border-color:#e63946;transform:translateY(-5px)}.fade-in-up{opacity:0;animation:.8s cubic-bezier(.2,.8,.2,1) forwards fadeInUp;transform:translateY(30px)}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.3s}.delay-3{animation-delay:.5s}.delay-4{animation-delay:.7s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.scroll-fade{opacity:0;transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transform:translateY(40px)}.scroll-fade.is-visible{opacity:1;transform:translateY(0)}.project-hero{background-color:#0b0b0b;border-bottom:1px solid #333;padding:6rem 10% 2rem}.back-link{color:#bbb;text-transform:uppercase;margin-bottom:2rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.back-link:hover{color:#e63946}.detail-return{background:#0b0b0b;border-top:1px solid #222;padding:2rem 10% 3.5rem}.detail-return .back-link{align-items:center;gap:8px;min-height:44px;margin-bottom:0;display:inline-flex}.project-hero h1{margin-bottom:20px;font-size:3.5rem;line-height:1.1}.project-hero h1 span{color:#e63946}.project-meta{color:#999;border-top:1px solid #222;flex-wrap:wrap;gap:30px;margin-top:20px;padding-top:20px;font-size:.95rem;display:flex}.project-meta strong{color:#fff}.project-status-line{color:#ddd;letter-spacing:.03em;align-items:center;gap:9px;margin-top:18px;font-size:.9rem;font-weight:700;display:inline-flex}.project-status-line:before{content:"";background:#e63946;border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 0 4px #e639461f}.project-metrics{background:#333;border:1px solid #333;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0 10%;display:grid}.project-metric{background:#111;min-width:0;padding:22px}.project-metric strong{color:#e63946;font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.1;display:block}.project-metric span{color:#bbb;margin-top:8px;font-size:.82rem;line-height:1.45;display:block}.test-evidence{background:#333;border:1px solid #333;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-top:24px;display:grid;overflow:hidden}.test-evidence-item{background:#151515;min-width:0;padding:20px}.test-evidence-item strong{color:#fff;margin-bottom:7px;font-size:1.35rem;line-height:1.1;display:block}.test-evidence-item span{color:#aaa;font-size:.82rem;line-height:1.45;display:block}.two-column-evidence{grid-template-columns:repeat(2,minmax(0,1fr))}.engineering-visual{color:#161616;background:#fff;border:1px solid #333;border-radius:10px;width:100%;padding:18px}.engineering-visual svg{width:100%;height:auto;display:block}.engineering-visual-note{color:#777;text-align:center;margin-top:12px;font-size:.78rem;line-height:1.5}.engineering-table-wrap{border:1px solid #333;border-radius:10px;margin-top:22px;overflow-x:auto}.engineering-table{border-collapse:collapse;color:#ccc;background:#111;width:100%;min-width:620px;font-size:.86rem}.engineering-table th,.engineering-table td{text-align:left;vertical-align:top;border-bottom:1px solid #292929;padding:13px 15px}.engineering-table th{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#191919;font-size:.75rem}.engineering-table tr:last-child td{border-bottom:0}.engineering-note{color:#bbb;background:#e6394612;border-left:3px solid #e63946;margin-top:16px;padding:14px 16px;font-size:.88rem;line-height:1.6}.media-slot{position:relative;overflow:hidden}.media-slot .media-filename{color:#aaa;text-align:center;overflow-wrap:anywhere;padding:16px;font-size:.8rem;line-height:1.6;display:block}.media-slot.has-media>.media-filename{display:none}.media-slot>img,.media-slot>video{object-fit:contain;width:100%;height:auto;max-height:560px;display:block}.img-placeholder.media-slot.has-media{border-style:solid;padding:0}.architecture-hero .media-slot>img{max-height:720px}.architecture-hero .caption{margin-top:12px;margin-bottom:20px}.media-slot[data-media],.media-slot[data-media].has-media{display:flex!important}.media-slot[data-media]+.caption,.media-slot[data-media].has-media+.caption{display:block!important}.media-slot[data-media].is-loading,.media-slot[data-media].is-missing{background:linear-gradient(135deg,#e639460f,#0000 46%),#171717;border-style:dashed;border-color:#555}.media-slot[data-media].is-missing .media-filename:before{content:"MEDIA PLACEHOLDER  /  ";color:#e63946;font-weight:700}.content-section>.text-block{flex:1.35 520px!important}.content-section>.image-block{max-width:520px;flex:.85 340px!important}.content-section>.image-block:only-child{max-width:none;flex-basis:100%!important}.content-section.media-below>.text-block{max-width:none;flex:100%!important}.content-section.media-below>.image-block{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start;gap:24px;max-width:none;display:grid;flex:100%!important}.content-section.media-below>.image-block figure{min-width:0;margin:0}.content-section.media-below>.image-block figure .caption{text-align:left;margin:10px 0 0}.content-section.full-width-visual-section{display:block}.content-section.full-width-visual-section>.text-block,.content-section.full-width-visual-section>.image-block{width:100%;max-width:none}.content-section.full-width-visual-section>.image-block{max-width:760px;margin:30px auto 0}@media (max-width:1000px){.content-section>.text-block,.content-section>.image-block{max-width:none;flex:100%!important}}.project-brief{border-bottom:1px solid #333;margin:0 10%;padding:28px 0 30px}.project-brief h2{color:#e63946;margin-bottom:10px;font-size:1.25rem}.project-brief p{color:#ccc;max-width:900px}.project-subheading{color:#fff;margin-top:32px;margin-bottom:12px;font-size:1.12rem}.project-content{grid-template-columns:1.5fr 1fr;align-items:start;gap:60px;padding:4rem 10%;display:grid}.project-text h2{color:#e63946;margin-top:2rem;margin-bottom:1rem;font-size:1.8rem}.project-text h2:first-child{margin-top:0}.project-text p{color:#ccc;margin-bottom:1.5rem;font-size:1.05rem;line-height:1.8}.tech-list{color:#ccc;margin-bottom:2rem;line-height:1.8;list-style-position:inside}.tech-list li{margin-bottom:10px}.tech-list strong{color:#fff}.project-gallery{flex-direction:column;gap:30px;display:flex;position:sticky;top:120px}.gallery-img{background-color:#1a1a1a;background-position:50%;background-size:cover;border:1px solid #333;border-radius:4px;align-items:flex-end;height:300px;display:flex;position:relative}.img-caption{color:#bbb;text-align:center;background:#000c;border-top:1px solid #e63946;width:100%;padding:10px;font-size:.8rem}@media (max-width:900px){.project-content{grid-template-columns:1fr}.project-gallery{position:relative;top:0}.project-hero h1{font-size:2.5rem}.project-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--motion-ease:cubic-bezier(.22, 1, .36, 1);--motion-fast:.22s;--motion-medium:.62s}.portfolio-motion-ready .portfolio-reveal{opacity:0;transition:opacity var(--motion-medium) var(--motion-ease) var(--portfolio-reveal-delay,0s), transform var(--motion-medium) var(--motion-ease) var(--portfolio-reveal-delay,0s);will-change:opacity, transform;transform:translateY(24px)}.portfolio-motion-ready .portfolio-reveal.is-revealed{opacity:1;will-change:auto;transform:translateY(0)}.portfolio-motion-ready .portfolio-project-row .scroll-fade{opacity:1;transform:none}.portfolio-motion-ready .project-header.portfolio-reveal>*{opacity:0;transition:opacity .52s var(--motion-ease), transform .52s var(--motion-ease);transform:translateY(12px)}.portfolio-motion-ready .project-header.portfolio-reveal.is-revealed>*{opacity:1;transform:translateY(0)}.portfolio-motion-ready .project-header.portfolio-reveal.is-revealed>:nth-child(2){transition-delay:90ms}.portfolio-motion-ready .project-header.portfolio-reveal.is-revealed>:nth-child(3){transition-delay:.16s}.portfolio-motion-ready .project-header.portfolio-reveal.is-revealed>:nth-child(4){transition-delay:.23s}.portfolio-motion-ready .content-section.portfolio-reveal .text-block,.portfolio-motion-ready .content-section.portfolio-reveal .image-block{opacity:0;transition:opacity .56s var(--motion-ease), transform .68s var(--motion-ease)}.portfolio-motion-ready .content-section.portfolio-reveal .text-block{transform:translate(-18px)}.portfolio-motion-ready .content-section.portfolio-reveal .image-block{transform:translate(18px)}.portfolio-motion-ready .content-section.portfolio-reveal.is-revealed .text-block,.portfolio-motion-ready .content-section.portfolio-reveal.is-revealed .image-block{opacity:1;transform:translate(0)}.portfolio-motion-ready .content-section.portfolio-reveal.is-revealed .image-block{transition-delay:90ms}.text-block h2:after{content:"";transform-origin:0;width:42px;height:2px;transition:transform .54s var(--motion-ease) .18s;background:#e63946;margin-top:10px;display:block;transform:scaleX(0)}.content-section.is-revealed .text-block h2:after{transform:scaleX(1)}.project-hero-media .media-slot,.content-section .media-slot,.gallery-img{transition:border-color var(--motion-fast) ease, box-shadow .36s ease, transform .42s var(--motion-ease);border-color:#3d3d3d}.project-hero-media .media-slot:hover,.content-section .media-slot:hover,.gallery-img:hover{border-color:#e63946bf;transform:translateY(-3px);box-shadow:0 16px 38px #00000042}.project-hero-media .media-slot>img,.content-section .media-slot>img,.gallery-img>img{transition:transform .7s var(--motion-ease), opacity .42s ease}.project-hero-media .media-slot:hover>img,.content-section .media-slot:hover>img,.gallery-img:hover>img{transform:scale(1.018)}.project-hero-media .media-slot.has-media>img,.project-hero-media .media-slot.has-media>video,.content-section .media-slot.has-media>img,.content-section .media-slot.has-media>video{animation:portfolio-media-arrive .52s var(--motion-ease) both}@keyframes portfolio-media-arrive{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.back-link .ui-arrow,.project-action .ui-arrow,.experience-link .ui-arrow,.content-section a .ui-arrow{transition:transform var(--motion-fast) var(--motion-ease)}.back-link:hover .ui-arrow{transform:translate(-4px)}.project-action:hover .ui-arrow,.experience-link:hover .ui-arrow,.content-section a:hover .ui-arrow{transform:translate(4px)}.content-section a:not(.btn),.content-section a:not(.btn):visited{color:#e63946}.content-section a{text-underline-offset:4px;transition:color var(--motion-fast) ease, text-decoration-color var(--motion-fast) ease;text-decoration-color:#0000}.content-section a:hover{text-decoration-color:currentColor}.btn,.card,.experience-card,.contact-icon,.carousel-controls button{transition-duration:.32s;transition-timing-function:var(--motion-ease)}.logo a{transition:color var(--motion-fast) ease, letter-spacing .32s var(--motion-ease)}.logo a:hover{letter-spacing:2.5px;color:#fff!important}main{opacity:1;transition:opacity .24s ease, transform .24s var(--motion-ease)}html.is-page-leaving main{opacity:0;transform:translateY(-6px)}@media (max-width:650px){.project-metrics{grid-template-columns:minmax(0,1fr);margin:0 6%}.project-metric{padding:18px}.project-brief{margin:0 6%}.portfolio-motion-ready .content-section.portfolio-reveal .text-block,.portfolio-motion-ready .content-section.portfolio-reveal .image-block{transform:translateY(18px)}.portfolio-motion-ready .content-section.portfolio-reveal.is-revealed .text-block,.portfolio-motion-ready .content-section.portfolio-reveal.is-revealed .image-block{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.portfolio-reveal,.portfolio-reveal>*,.portfolio-reveal .text-block,.portfolio-reveal .image-block{opacity:1!important;transition:none!important;transform:none!important}.text-block h2:after{transition:none;transform:scaleX(1)}.project-hero-media .media-slot.has-media>img,.project-hero-media .media-slot.has-media>video,.content-section .media-slot.has-media>img,.content-section .media-slot.has-media>video{animation:none}main{transition:none}}
