:root{--navy:#062b3b;--navy-2:#0a3d50;--teal:#087f8c;--aqua:#5ec8c9;--sky:#eaf7f7;--ink:#16313c;--muted:#58707a;--line:#d7e4e6;--sand:#f6f5ef;--white:#fff;--shadow:0 18px 48px rgba(6,43,59,.11);--radius:20px;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}img{display:block;max-width:100%}a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--navy)}h1,h2,h3{margin:0 0 .65em;color:var(--navy);font-family:Georgia,"Times New Roman",serif;line-height:1.12}h1{font-size:clamp(2.65rem,7vw,5.6rem);letter-spacing:-.045em}h2{font-size:clamp(2rem,4vw,3.35rem);letter-spacing:-.03em}h3{font-size:1.35rem}p{margin:0 0 1.15em}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.skip-link{position:fixed;left:18px;top:-80px;z-index:100;background:#fff;padding:12px 18px;border-radius:8px}.skip-link:focus{top:18px}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(215,228,230,.8);background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand img{width:166px;height:55px;object-fit:contain}.site-nav{display:flex;align-items:center;gap:25px}.site-nav a{color:var(--ink);font-size:.9rem;font-weight:700;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--teal)}.nav-cta{padding:10px 17px;border-radius:999px;background:var(--navy);color:#fff!important}.menu-toggle{display:none;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 12px;font:inherit;font-weight:700}.hero{position:relative;isolation:isolate;min-height:710px;display:grid;align-items:center;overflow:hidden;background:var(--navy)}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,31,43,.96) 0%,rgba(3,31,43,.78) 52%,rgba(3,31,43,.2) 100%),url('../images/1920/22439188/ferry_crossing_optimized_5000-pYo59SFHjRq6TyK6L8KupQ.jpeg') center/cover}.hero-content{max-width:790px;padding:105px 0;color:#fff}.hero h1,.hero h2{color:#fff}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;color:var(--aqua);font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.eyebrow:before{content:"";width:34px;height:2px;background:currentColor}.hero .lead{max-width:700px;font-size:clamp(1.1rem,2vw,1.34rem);color:#d7ebed}.actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 21px;border:1px solid transparent;border-radius:999px;background:var(--teal);color:#fff;font-weight:800;text-decoration:none}.button:hover{background:#0b6975;color:#fff}.button.secondary{border-color:rgba(255,255,255,.55);background:transparent}.button.secondary:hover{background:#fff;color:var(--navy)}.button.light{background:#fff;color:var(--navy)}.stats{position:relative;margin-top:-54px;z-index:2}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.stat{padding:28px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat strong{display:block;color:var(--navy);font:700 1.8rem/1 Georgia,serif}.stat span{color:var(--muted);font-size:.9rem}.section{padding:100px 0}.section.soft{background:var(--sand)}.section.tint{background:var(--sky)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:45px}.section-head>div{max-width:760px}.section-head p{max-width:520px;color:var(--muted)}.grid{display:grid;gap:24px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.card{position:relative;padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 4px 18px rgba(6,43,59,.04)}.card p{color:var(--muted)}.card-link{color:var(--navy);font-weight:800;text-decoration:none}.card-link:after{content:" →";color:var(--teal)}.number{display:grid;place-items:center;width:44px;height:44px;margin-bottom:25px;border-radius:13px;background:var(--sky);color:var(--teal);font-weight:900}.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.feature-media{position:relative}.feature-media img{width:100%;height:520px;object-fit:cover;border-radius:var(--radius)}.feature-media:after{content:"";position:absolute;right:-20px;bottom:-20px;width:45%;height:45%;z-index:-1;border-radius:var(--radius);background:var(--aqua)}.kicker{color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}.list-check{padding:0;list-style:none}.list-check li{position:relative;padding:10px 0 10px 30px;border-bottom:1px solid var(--line)}.list-check li:before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:900}.project-card{overflow:hidden;padding:0}.project-card img{width:100%;height:245px;object-fit:cover}.project-body{padding:30px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.tag{padding:5px 10px;border-radius:999px;background:var(--sky);color:var(--navy);font-size:.75rem;font-weight:800}.band{padding:65px 0;background:var(--navy);color:#fff}.band .container{display:flex;align-items:center;justify-content:space-between;gap:40px}.band h2{max-width:760px;margin:0;color:#fff}.partners{display:flex;align-items:center;justify-content:center;gap:70px;flex-wrap:wrap}.partners img{width:170px;height:90px;object-fit:contain;filter:grayscale(1);opacity:.8}.page-hero{padding:105px 0 80px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff}.page-hero h1{max-width:950px;color:#fff}.page-hero p{max-width:720px;margin:0;color:#d2e7e9;font-size:1.2rem}.breadcrumbs{margin-bottom:22px;color:var(--aqua);font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:75px;align-items:start}.value-card{border-top:4px solid var(--teal)}.profile{overflow:hidden;padding:0}.profile img{width:100%;height:330px;object-fit:cover;object-position:top}.profile-body{padding:24px}.profile .role{min-height:52px;color:var(--teal);font-weight:800}.profile-links{display:flex;gap:12px;flex-wrap:wrap}.profile-links a{font-size:.83rem;font-weight:800}.publication{display:grid;grid-template-columns:130px 1fr;gap:28px;padding:32px 0;border-top:1px solid var(--line)}.pub-year{font:700 2rem Georgia,serif;color:var(--teal)}.publication h2{font-size:1.65rem}.citation{color:var(--muted);font-size:.93rem}.abstract{max-width:880px}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:220px;gap:16px}.gallery figure{position:relative;overflow:hidden;margin:0;border-radius:16px;background:var(--navy)}.gallery figure:nth-child(1),.gallery figure:nth-child(4){grid-column:span 7}.gallery figure:nth-child(2),.gallery figure:nth-child(3),.gallery figure:nth-child(5){grid-column:span 5}.gallery img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery figure:hover img{transform:scale(1.03);opacity:.72}.gallery figcaption{position:absolute;inset:auto 18px 15px;color:#fff;font-weight:800;text-shadow:0 2px 8px #000}.project-detail{display:grid;grid-template-columns:280px 1fr;gap:55px}.project-facts{padding:25px;border-radius:16px;background:var(--sky)}.project-facts dt{margin-top:14px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.project-facts dd{margin:2px 0;color:var(--navy);font-weight:800}.contact-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:65px}.contact-panel{padding:35px;border-radius:var(--radius);background:var(--navy);color:#fff}.contact-panel h2{color:#fff}.contact-panel a{color:var(--aqua)}form{display:grid;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:grid;gap:7px;color:var(--navy);font-weight:800}input,textarea,select{width:100%;padding:13px 14px;border:1px solid #bacdd1;border-radius:10px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:150px;resize:vertical}input:focus,textarea:focus,select:focus{outline:3px solid rgba(94,200,201,.35);border-color:var(--teal)}.notice{padding:16px;border-left:4px solid var(--teal);background:var(--sky);color:var(--muted);font-size:.9rem}.site-footer{padding:70px 0 25px;background:#031f2a;color:#bdd0d5}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:55px}.site-footer h2,.site-footer h3{color:#fff}.site-footer img{width:180px;margin-bottom:20px;filter:brightness(0) invert(1)}.footer-links{display:grid;gap:8px}.footer-links a{color:#d6e5e8;text-decoration:none}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:50px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:.85rem}.legal{max-width:850px}.legal h2{margin-top:2em;font-size:1.8rem}.empty-state{padding:30px;border:1px dashed #a8c1c5;border-radius:15px;background:var(--sky)}
@media(max-width:980px){.site-nav{position:absolute;left:20px;right:20px;top:70px;display:none;align-items:stretch;flex-direction:column;gap:0;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}.site-nav.open{display:flex}.site-nav a{padding:12px}.menu-toggle{display:block}.hero{min-height:650px}.stats-grid,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.feature,.split,.contact-grid{grid-template-columns:1fr}.feature-media{order:-1}.feature-media img{height:390px}.project-detail{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:640px){.container{width:min(calc(100% - 28px),var(--max))}.brand img{width:140px}.hero{min-height:620px}.hero-content{padding:80px 0}.stats{margin-top:0}.stats-grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}.section{padding:70px 0}.section-head,.band .container{align-items:flex-start;flex-direction:column}.feature{gap:40px}.feature-media img{height:300px}.publication{grid-template-columns:1fr;gap:8px}.gallery{display:grid;grid-template-columns:1fr;grid-auto-rows:240px}.gallery figure:nth-child(n){grid-column:auto}.form-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{flex-direction:column}.page-hero{padding:75px 0 60px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.brand img{width:68px;height:68px}.profile h2,.grid .card h2{font-size:1.65rem}.site-footer img{width:118px;border-radius:12px;filter:none}
@media(max-width:640px){.brand img{width:60px;height:60px}}
.page-hero{position:relative;isolation:isolate;overflow:hidden}.page-hero:before,.page-hero:after{content:"";position:absolute;z-index:-1;border-radius:50%;border:1px solid rgba(94,200,201,.22)}.page-hero:before{width:460px;height:460px;right:-90px;top:-260px}.page-hero:after{width:290px;height:290px;right:150px;bottom:-230px}.page-hero .container{position:relative}.page-hero .container:after{content:"";position:absolute;right:0;bottom:-80px;width:180px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--aqua),transparent)}
.error-page{min-height:72vh;display:grid;place-items:center;text-align:center}.error-code{display:block;color:var(--aqua);font:700 clamp(5rem,18vw,12rem)/.8 Georgia,serif;opacity:.28}.error-page p{max-width:600px;margin-inline:auto}
@view-transition{navigation:auto}::view-transition-old(root){animation:site-out .18s ease both}::view-transition-new(root){animation:site-in .32s ease both}@keyframes site-out{to{opacity:0;transform:translateY(-6px)}}@keyframes site-in{from{opacity:0;transform:translateY(10px)}}
.home .hero{min-height:760px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);align-items:center;gap:65px}.hero-grid .hero-content{max-width:none}.hero-proof{display:flex;flex-wrap:wrap;gap:20px;margin-top:34px;color:#bcd8dc;font-size:.82rem;font-weight:700}.hero-proof span{display:flex;align-items:center;gap:8px}.hero-proof i,.project-status i{width:7px;height:7px;border-radius:50%;background:var(--aqua);box-shadow:0 0 0 5px rgba(94,200,201,.12)}
.ocean-console{position:relative;padding:22px;border:1px solid rgba(255,255,255,.2);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.04));box-shadow:0 30px 80px rgba(0,0,0,.25);backdrop-filter:blur(18px);color:#fff}.console-top{display:flex;justify-content:space-between;gap:15px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.14);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.live-dot{color:var(--aqua)}.live-dot:before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--aqua);animation:pulse 2s infinite}.sonar{position:relative;width:min(100%,310px);aspect-ratio:1;margin:20px auto;overflow:hidden;border-radius:50%;background:radial-gradient(circle,rgba(94,200,201,.25),rgba(7,127,140,.06) 45%,transparent 70%)}.sonar:before,.sonar:after{content:"";position:absolute;inset:50% 0 auto;height:1px;background:rgba(94,200,201,.25)}.sonar:after{transform:rotate(90deg)}.sonar-ring{position:absolute;inset:50%;border:1px solid rgba(94,200,201,.35);border-radius:50%;transform:translate(-50%,-50%)}.ring-one{width:34%;height:34%}.ring-two{width:66%;height:66%}.ring-three{width:98%;height:98%}.sonar-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 10deg,rgba(94,200,201,.55),transparent 25%);animation:sweep 5s linear infinite}.sonar b{position:absolute;left:62%;top:36%;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 8px rgba(94,200,201,.16)}.console-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.console-metrics div{padding:13px;border-radius:12px;background:rgba(255,255,255,.07)}.console-metrics span{display:block;color:#9ec6cb;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.console-metrics strong{font-size:.83rem}.signal-strip{overflow:hidden;border-block:1px solid var(--line);background:#fff}.signal-track{display:flex;width:max-content;animation:signal 30s linear infinite}.signal-track span{display:flex;align-items:center;gap:22px;padding:18px 28px;color:var(--navy);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.14em}.signal-track span:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--aqua)}
.research-lab{overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f6fbfb 100%)}.research-console{display:grid;grid-template-columns:310px 1fr;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--shadow)}.research-tabs{display:grid;padding:12px;background:var(--navy)}.research-tabs button{display:grid;grid-template-columns:34px 1fr;align-items:center;text-align:left;gap:12px;border:0;border-bottom:1px solid rgba(255,255,255,.09);border-radius:12px;background:transparent;color:#cde2e5;padding:18px 14px;font:700 .92rem/1.3 inherit;cursor:pointer}.research-tabs button span{color:var(--aqua);font-size:.72rem}.research-tabs button:hover,.research-tabs button[aria-selected=true]{background:rgba(255,255,255,.11);color:#fff}.research-panel{display:grid;grid-template-columns:1fr 280px;align-items:center;gap:45px;min-height:420px;padding:50px}.research-panel h3{font-size:clamp(1.9rem,4vw,3rem)}.panel-label{display:block;margin-bottom:16px;color:var(--teal);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.15em}.data-orbit{position:relative;display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle,var(--sky),#fff 65%)}.data-orbit:before,.data-orbit:after{content:"";position:absolute;border:1px dashed #a8cfd2;border-radius:50%}.data-orbit:before{inset:18%}.data-orbit:after{inset:35%}.data-orbit span{position:absolute;z-index:2;padding:6px 9px;border-radius:999px;background:#fff;box-shadow:0 6px 20px rgba(6,43,59,.1);color:var(--navy);font-size:.66rem;font-weight:900}.data-orbit span:nth-child(1){top:10%;left:35%}.data-orbit span:nth-child(2){right:-4%;top:48%}.data-orbit span:nth-child(3){bottom:7%;left:22%}.data-orbit i{width:32px;height:32px;border:8px solid var(--teal);border-radius:50%;box-shadow:0 0 0 18px rgba(94,200,201,.17)}
.project-showcase{display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow)}.project-image{position:relative;min-height:510px}.project-image img{width:100%;height:100%;object-fit:cover}.project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(6,43,59,.5))}.project-status{position:absolute;left:22px;bottom:20px;z-index:2;display:flex;align-items:center;gap:10px;padding:9px 13px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(6,43,59,.7);backdrop-filter:blur(10px);color:#fff;font-size:.75rem;font-weight:800}.project-content{align-self:center;padding:48px}.project-content h3{font-size:clamp(1.7rem,3vw,2.6rem)}.mini-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:28px 0}.mini-facts div{padding:12px;border-radius:12px;background:var(--sky)}.mini-facts dt{color:var(--muted);font-size:.64rem;font-weight:900;text-transform:uppercase}.mini-facts dd{margin:2px 0;color:var(--navy);font-weight:900}.collab-bento{display:grid;grid-template-columns:1.25fr .75fr;gap:20px}.bento-card{position:relative;min-height:280px;padding:34px;border:1px solid var(--line);border-radius:24px;background:#fff;overflow:hidden}.bento-wide{grid-row:span 2;min-height:580px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,rgba(255,255,255,.35),#fff),url('../images/1920/22439659/portD-hhTHsrBNq-yhR6ifkT19Ew.jpg') center/cover}.bento-card.dark{background:var(--navy);color:#d2e5e8}.bento-card.dark h3,.bento-card.dark .card-link{color:#fff}.bento-card h3{font-size:1.8rem}.spotlight-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(360px circle at var(--x,50%) var(--y,50%),rgba(94,200,201,.18),transparent 45%);opacity:0;transition:.25s}.spotlight-card:hover:before{opacity:1}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@keyframes pulse{50%{opacity:.35;transform:scale(.75)}}@keyframes sweep{to{transform:rotate(360deg)}}@keyframes signal{to{transform:translateX(-50%)}}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:0}.home .hero{min-height:auto}.ocean-console{display:none}.research-console{grid-template-columns:1fr}.research-tabs{grid-template-columns:repeat(2,1fr)}.research-panel{grid-template-columns:1fr 220px}.project-showcase{grid-template-columns:1fr}.project-image{min-height:400px}.collab-bento{grid-template-columns:1fr 1fr}.bento-wide{grid-column:1/-1;grid-row:auto;min-height:420px}}
@media(max-width:640px){.hero-proof{gap:10px 18px}.research-tabs{grid-template-columns:1fr}.research-panel{grid-template-columns:1fr;padding:30px;min-height:auto}.data-orbit{display:none}.project-image{min-height:280px}.project-content{padding:28px}.mini-facts{grid-template-columns:1fr}.collab-bento{grid-template-columns:1fr}.bento-wide{grid-column:auto;min-height:360px}.signal-track{animation-duration:22s}}
@media(prefers-reduced-motion:reduce){.sonar-sweep,.live-dot:before,.signal-track{animation:none}.reveal{opacity:1;transform:none}}
.ocean-console-minimal{display:grid;place-items:center;padding:12px;background:rgba(255,255,255,.035);box-shadow:none}.ocean-console-minimal .sonar{width:min(86%,290px);margin:0;opacity:.78}
.ocean-console-minimal .marine-radar{overflow:visible;border:1px solid rgba(94,200,201,.5);background:radial-gradient(circle,rgba(94,200,201,.2),rgba(3,31,43,.35) 68%,rgba(3,31,43,.12));box-shadow:inset 0 0 35px rgba(94,200,201,.08),0 0 0 8px rgba(255,255,255,.025)}.marine-radar:before,.marine-radar:after{z-index:1}.marine-radar .sonar-ring{z-index:1}.marine-radar .sonar-sweep{z-index:2;opacity:.55}.radar-heading,.radar-bearing{position:absolute;z-index:5;color:#b8e8e5;font:700 .6rem/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.04em}.radar-heading{left:50%;top:-16px;transform:translateX(-50%);color:#fff}.bearing-east{right:-27px;top:50%}.bearing-south{left:50%;bottom:-17px;transform:translateX(-50%)}.bearing-west{left:-27px;top:50%}.radar-heading-line{position:absolute;z-index:1;left:50%;top:4%;width:1px;height:46%;background:linear-gradient(#d9ffff,rgba(94,200,201,.12))}.radar-coast{position:absolute;z-index:1;background:rgba(94,200,201,.22);border:1px solid rgba(165,235,231,.42)}.coast-one{left:0;bottom:8%;width:34%;height:56%;clip-path:polygon(0 0,38% 8%,55% 27%,45% 44%,82% 58%,62% 77%,100% 100%,0 100%)}.coast-two{right:2%;top:7%;width:23%;height:28%;clip-path:polygon(45% 0,100% 0,100% 100%,68% 82%,72% 52%,20% 36%)}.radar-route{position:absolute;z-index:1;left:50%;top:24%;width:1px;height:54%;border-left:1px dashed rgba(215,255,251,.55);transform:rotate(18deg);transform-origin:bottom}.radar-ownship{position:absolute;z-index:5;left:50%;top:50%;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:15px solid #fff;filter:drop-shadow(0 0 5px rgba(255,255,255,.65));transform:translate(-50%,-50%)}.marine-contact{position:absolute;z-index:4;color:#d8fffb;font:600 .48rem/1 ui-monospace,SFMono-Regular,monospace;white-space:nowrap}.marine-contact i{display:block;width:6px;height:10px;border:1px solid #b8fff7;background:rgba(94,200,201,.35);transform:rotate(var(--course,0deg));box-shadow:0 0 8px rgba(94,200,201,.75)}.marine-contact small{position:absolute;left:9px;top:-1px;font:inherit}.marine-contact-one{left:65%;top:28%;--course:38deg}.marine-contact-two{left:30%;top:35%;--course:-18deg}.marine-contact-three{left:70%;top:66%;--course:75deg}.marine-contact:after{content:"";position:absolute;left:2px;top:-12px;width:1px;height:12px;background:rgba(184,255,247,.45);transform:rotate(var(--course,0deg));transform-origin:bottom}
.about-hero{padding-bottom:95px}.about-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end}.about-hero-grid h1{font-size:clamp(3rem,6vw,5.35rem)}.about-coordinates{display:grid;gap:1px;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:rgba(255,255,255,.16);backdrop-filter:blur(14px)}.about-coordinates div{padding:18px 20px;background:rgba(6,43,59,.72)}.about-coordinates span{display:block;color:#9bc9ce;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.about-coordinates strong{color:#fff}.about-intro{overflow:hidden}.manifesto{position:relative;display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.manifesto-mark{display:grid;place-items:center;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle,var(--sky),#fff);color:var(--teal);font:700 7rem/1 Georgia,serif}.manifesto-mark:after{content:"";position:absolute;width:160px;height:160px;border:1px dashed #aad0d3;border-radius:50%;animation:sweep 18s linear infinite}.manifesto-lead{max-width:880px;color:var(--navy);font:1.35rem/1.6 Georgia,serif}.manifesto-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:28px}.purpose-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.purpose-card{position:relative;min-height:500px;padding:42px;overflow:hidden;border:1px solid var(--line);border-radius:28px;background:#fff}.purpose-card h2{max-width:520px;font-size:clamp(2rem,4vw,3.3rem)}.purpose-card p{max-width:550px;color:var(--muted);font-size:1.08rem}.purpose-index{display:block;margin-bottom:90px;color:var(--teal);font-size:.72rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.purpose-orbit{position:absolute;right:-80px;bottom:-90px;width:330px;height:330px;border:1px solid #afd4d6;border-radius:50%}.purpose-orbit:before,.purpose-orbit:after{content:"";position:absolute;border:1px dashed #c1dcde;border-radius:50%}.purpose-orbit:before{inset:18%}.purpose-orbit:after{inset:36%}.purpose-orbit i{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--teal)}.purpose-orbit i:first-child{left:10%;top:26%}.purpose-orbit i:nth-child(2){right:22%;top:5%}.purpose-orbit b{position:absolute;left:42%;top:42%;color:var(--navy);font:700 1rem Georgia,serif}.mission{background:var(--navy);color:#cfe0e4}.mission h2{color:#fff}.mission p{color:#cfe0e4}.mission .purpose-index{color:var(--aqua)}.mission-path{position:absolute;left:42px;right:42px;bottom:38px;display:flex;align-items:center;gap:10px}.mission-path span{padding:7px 10px;border:1px solid rgba(255,255,255,.15);border-radius:999px;color:#fff;font-size:.67rem;font-weight:900;text-transform:uppercase}.mission-path i{flex:1;height:1px;background:linear-gradient(90deg,var(--aqua),rgba(94,200,201,.2))}.operating-section{background:#fff}.operating-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;padding:0;list-style:none;counter-reset:flow}.operating-flow li{position:relative;padding:30px 25px 15px;border-top:1px solid var(--line)}.operating-flow li:before{content:"";position:absolute;left:0;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 7px var(--sky)}.operating-flow li:not(:last-child):after{content:"";position:absolute;right:0;top:0;width:1px;height:85%;background:linear-gradient(var(--line),transparent)}.operating-flow li>span{display:block;margin-bottom:40px;color:var(--aqua);font:700 2.2rem Georgia,serif}.operating-flow p{color:var(--muted)}.role-map{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:18px}.role-node{position:relative;min-height:300px;padding:32px;border:1px solid #bed7d9;border-radius:22px;background:rgba(255,255,255,.8)}.role-node.primary{background:var(--navy);color:#cfe0e4}.role-node.primary h3{color:#fff}.role-node h3{font-size:1.75rem}.role-node p{color:inherit;opacity:.8}.node-label{display:block;margin-bottom:75px;color:var(--teal);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.13em}.primary .node-label{color:var(--aqua)}.governance-line{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:28px;color:var(--navy);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.governance-line i{width:5px;height:5px;border-radius:50%;background:var(--aqua)}.values-modern{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:235px;gap:18px}.value-tile{position:relative;padding:28px;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff}.value-tile.large{grid-row:span 2;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,rgba(6,43,59,.1),rgba(6,43,59,.92)),url('../images/1920/22439659/portD-hhTHsrBNq-yhR6ifkT19Ew.jpg') center/cover;color:#fff}.value-tile.large h3{color:#fff}.value-tile.wide{grid-column:span 2;background:var(--sky)}.value-tile span{display:block;color:var(--teal);font-size:.7rem;font-weight:900}.value-tile h3{margin-top:52px}.value-tile.large h3{margin-top:10px;font-size:2.4rem}.value-tile p{color:inherit;opacity:.76}
@media(max-width:980px){.about-hero-grid{grid-template-columns:1fr}.about-coordinates{grid-template-columns:repeat(3,1fr)}.manifesto{grid-template-columns:130px 1fr}.purpose-grid{grid-template-columns:1fr}.operating-flow{grid-template-columns:repeat(2,1fr)}.role-map{grid-template-columns:1fr 1fr}.role-node.primary{grid-column:1/-1}.values-modern{grid-template-columns:repeat(2,1fr)}.value-tile.wide{grid-column:span 1}.governance-line{flex-wrap:wrap}}
@media(max-width:640px){.about-coordinates{grid-template-columns:1fr}.manifesto{grid-template-columns:1fr;gap:30px}.manifesto-mark{width:110px;font-size:4rem}.manifesto-mark:after{width:80px;height:80px}.purpose-card{min-height:430px;padding:28px}.purpose-index{margin-bottom:55px}.mission-path{left:28px;right:28px;flex-wrap:wrap}.mission-path i{min-width:20px}.operating-flow{grid-template-columns:1fr}.operating-flow li:not(:last-child):after{display:none}.role-map,.values-modern{grid-template-columns:1fr}.role-node.primary{grid-column:auto}.governance-line{align-items:flex-start;flex-direction:column}.governance-line i{display:none}.value-tile.large{grid-row:auto;min-height:340px}}

/* Homepage marine radar refinements */
.ocean-console-minimal .marine-radar{overflow:hidden;border-color:rgba(94,200,201,.62);background:radial-gradient(circle,rgba(94,200,201,.25),rgba(3,31,43,.46) 68%,rgba(3,31,43,.3));box-shadow:inset 0 0 35px rgba(94,200,201,.12),0 0 0 8px rgba(255,255,255,.025)}
.marine-radar .sonar-sweep{opacity:.48}
.marine-radar .radar-heading,.marine-radar .radar-bearing{font-size:.58rem;text-shadow:0 1px 4px #031f2b}
.marine-radar .radar-heading{top:9px}
.marine-radar .bearing-east{right:9px}
.marine-radar .bearing-south{bottom:9px}
.marine-radar .bearing-west{left:9px}
.marine-radar .marine-contact{color:#e2fffc}
.marine-radar .marine-contact small{left:10px;top:-2px;padding:2px 4px;border-radius:3px;background:rgba(3,31,43,.7)}
.marine-radar .marine-contact-one{left:67%;top:25%}
.marine-radar .marine-contact-two{left:23%;top:54%}
.marine-radar .marine-contact-three{left:73%;top:69%}

/* Topic-specific visual used by the four homepage research lenses */
.lens-visual{position:relative;display:grid;grid-template-rows:minmax(165px,1fr) auto;min-width:0;height:245px;padding:16px;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:18px;background:linear-gradient(145deg,#062b3b,#0b5968);box-shadow:0 18px 38px rgba(6,43,59,.16);color:#fff}
.lens-visual:before{content:"";position:absolute;inset:-35%;background:radial-gradient(circle,rgba(94,200,201,.18),transparent 46%)}
.lens-visual .technical-svg{grid-row:1;min-width:0}
.lens-visual .visual-readout{grid-row:2;grid-template-columns:1fr;gap:4px}
.lens-visual .visual-readout span{padding:3px 5px;border:0;background:transparent;color:#b9dadd;font-size:.52rem;text-align:left}
@media(max-width:980px){.lens-visual{height:220px}}
.open-access-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid #a9d5c2;border-radius:999px;background:#effaf5;color:#176c4b;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.open-access-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:#20a66b;box-shadow:0 0 0 5px rgba(32,166,107,.1)}.publication-feature{position:relative;display:grid;grid-template-columns:340px 1fr;overflow:hidden;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow)}.pub-visual{position:relative;display:flex;min-height:560px;padding:34px;flex-direction:column;justify-content:space-between;overflow:hidden;background:linear-gradient(155deg,#082e40,#0b6975);color:#fff}.pub-visual:before{content:"";position:absolute;width:420px;height:420px;left:-190px;bottom:-180px;border:1px solid rgba(94,200,201,.35);border-radius:50%;box-shadow:0 0 0 55px rgba(94,200,201,.08),0 0 0 110px rgba(94,200,201,.05)}.journal-name{position:relative;font:700 2rem/1.05 Georgia,serif}.volume{position:relative;color:#b6dadd;font-size:.73rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.fuel-diagram{position:relative;align-self:center;display:grid;place-items:center;width:190px;height:190px;border:1px dashed rgba(255,255,255,.35);border-radius:50%}.fuel-diagram:before,.fuel-diagram:after{content:"";position:absolute;width:75%;height:1px;background:rgba(255,255,255,.2)}.fuel-diagram:after{transform:rotate(90deg)}.fuel-diagram b{display:grid;place-items:center;width:82px;height:82px;border-radius:50%;background:var(--aqua);color:var(--navy);font:700 1.65rem Georgia,serif;box-shadow:0 0 0 15px rgba(94,200,201,.1)}.fuel-diagram i{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff}.fuel-diagram .diesel{left:13%;top:27%;box-shadow:0 0 0 8px rgba(255,255,255,.1)}.fuel-diagram .ammonia{right:8%;bottom:30%;background:var(--aqua);box-shadow:0 0 0 8px rgba(94,200,201,.12)}.pub-content{align-self:center;padding:48px}.pub-content h2{font-size:clamp(1.85rem,3vw,2.7rem)}.authors{color:var(--navy)}.publication-divider{display:flex;align-items:center;gap:20px;margin-top:75px;color:var(--teal);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.14em}.publication-divider:after{content:"";flex:1;height:1px;background:var(--line)}
@media(max-width:900px){.publication-feature{grid-template-columns:1fr}.pub-visual{min-height:360px}.fuel-diagram{position:absolute;right:30px;bottom:40px;width:180px;height:180px}.pub-content{padding:36px}}
@media(max-width:560px){.pub-visual{min-height:310px}.fuel-diagram{right:-25px;bottom:25px;width:160px;height:160px}.pub-content{padding:27px}.open-access-badge{align-self:flex-start}}
.project-showcase{grid-template-columns:.72fr 1.28fr}.project-visual{position:relative;display:grid;align-content:center;gap:30px;min-height:440px;padding:34px;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(94,200,201,.2),transparent 33%),linear-gradient(145deg,#062b3b,#0b5968);color:#fff}.project-visual:before,.project-visual:after{content:"";position:absolute;border:1px solid rgba(94,200,201,.2);border-radius:50%}.project-visual:before{width:360px;height:360px;left:-190px;top:-160px}.project-visual:after{width:250px;height:250px;right:-140px;bottom:-100px}.engine-core{position:relative;z-index:1;display:grid;grid-template-columns:auto 30px 1fr 30px auto;align-items:center;gap:8px}.engine-core span,.engine-output span{padding:8px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);font-size:.68rem;font-weight:900;text-align:center;text-transform:uppercase}.engine-core i{height:1px;background:var(--aqua)}.engine-core b{padding:22px 10px;border-radius:16px;background:var(--aqua);color:var(--navy);font:700 1.05rem Georgia,serif;text-align:center}.engine-output{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.project-diagram{display:grid;grid-template-columns:auto 45px minmax(150px,1fr) 45px auto;align-items:center;gap:10px;max-width:760px;margin:30px 0;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--sky)}.project-diagram>i{height:1px;background:linear-gradient(90deg,var(--teal),var(--aqua))}.project-diagram>strong{padding:17px;border-radius:12px;background:var(--navy);color:#fff;text-align:center}.diagram-inputs,.diagram-outputs{display:flex;gap:6px;flex-wrap:wrap}.diagram-inputs span,.diagram-outputs span{padding:6px 9px;border-radius:999px;background:#fff;color:var(--navy);font-size:.67rem;font-weight:900}.project-diagram.compact{font-size:.9rem}
@media(max-width:980px){.project-showcase{grid-template-columns:1fr}.project-visual{min-height:310px}.project-diagram{grid-template-columns:1fr;justify-items:start}.project-diagram>i{width:1px;height:24px;margin-left:20px}.diagram-inputs,.diagram-outputs{width:100%}}
@media(max-width:640px){.project-visual{min-height:270px;padding:24px}.engine-core{grid-template-columns:1fr}.engine-core i{width:1px;height:12px;margin:auto}.engine-output{grid-template-columns:1fr}.project-diagram{padding:17px}}
.progress-section{padding-block:78px;background:#fff}.progress-metrics{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:24px;background:var(--navy);box-shadow:var(--shadow)}.progress-metrics div{padding:34px;border-right:1px solid rgba(255,255,255,.13)}.progress-metrics div:last-child{border-right:0}.progress-metrics strong{display:block;color:var(--aqua);font:700 clamp(2.8rem,6vw,4.8rem)/1 Georgia,"Times New Roman",serif}.progress-metrics span{display:block;margin-top:10px;color:#d2e5e8;font-weight:700}.partners img{filter:none;opacity:1}
.signal-track{width:auto;justify-content:center;flex-wrap:wrap;animation:none}.signal-track span{padding-block:14px}
@media(max-width:640px){.progress-metrics{grid-template-columns:1fr}.progress-metrics div{border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}.progress-metrics div:last-child{border-bottom:0}}
.gallery figure[role=button]{cursor:zoom-in}.gallery figure[role=button]:focus-visible{outline:4px solid var(--aqua);outline-offset:4px}.gallery-viewer{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:rgba(2,20,28,.94);color:#fff}.gallery-viewer::backdrop{background:rgba(2,20,28,.94)}.gallery-viewer[open]{display:grid;place-items:center}.gallery-viewer-inner{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;width:min(94vw,1400px);height:94vh}.gallery-viewer figure{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:15px;min-width:0;height:88vh;margin:0;text-align:center}.gallery-viewer img{width:100%;height:100%;min-height:0;object-fit:contain}.gallery-viewer figcaption{color:#e4f0f2;font-weight:700}.gallery-close,.gallery-nav{border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(6,43,59,.72);color:#fff;cursor:pointer}.gallery-close:hover,.gallery-nav:hover{background:var(--teal)}.gallery-close{position:absolute;right:0;top:0;z-index:2;width:48px;height:48px;font-size:2rem;line-height:1}.gallery-nav{width:48px;height:48px;margin:auto;font-size:2.4rem;line-height:.8}.gallery-position{position:absolute;left:50%;top:7px;transform:translateX(-50%);color:#bcd8dc;font-size:.8rem;font-weight:800}.viewer-open{overflow:hidden}
.gallery-group+.gallery-group{margin-top:80px;padding-top:65px;border-top:1px solid var(--line)}.gallery-heading{display:grid;grid-template-columns:55px minmax(180px,1fr) minmax(240px,1fr);align-items:baseline;gap:22px;margin-bottom:25px}.gallery-heading>span{color:var(--teal);font-weight:900}.gallery-heading h3{font-size:1.8rem}.gallery-heading p{color:var(--muted)}
@media(max-width:640px){.gallery-heading{grid-template-columns:35px 1fr}.gallery-heading p{grid-column:2}.gallery-viewer-inner{grid-template-columns:48px minmax(0,1fr) 48px;width:100vw;height:100vh;padding-top:50px}.gallery-viewer figure{height:82vh}.gallery-close{right:12px;top:8px}.gallery-nav{width:40px;height:40px}}
.research-theme-grid{align-items:start}.research-theme-card{overflow:hidden}.theme-visual{position:relative;display:grid;grid-template-rows:minmax(190px,1fr) auto;height:270px;margin:-30px -30px 30px;padding:24px;overflow:hidden;background:linear-gradient(145deg,#062b3b,#0b5968);color:#fff}.theme-visual:before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 50% 50%,rgba(94,200,201,.16),transparent 45%)}.visual-readout{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.visual-readout span{padding:7px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(255,255,255,.07);font-size:.62rem;font-weight:900;text-align:center;text-transform:uppercase;letter-spacing:.06em}
.engine-chamber{position:relative;display:grid;place-items:center;width:180px;height:145px;margin:auto;border:2px solid rgba(255,255,255,.38);border-radius:34px 34px 18px 18px}.engine-chamber b{z-index:2;color:#fff;font:700 .82rem Georgia,serif}.injector{position:absolute;top:-22px;width:12px;height:74px;border-radius:8px;background:var(--aqua);transform-origin:top}.injector-a{left:45px;transform:rotate(-18deg)}.injector-b{right:45px;transform:rotate(18deg);animation:injector-fire 2.2s .45s infinite}.injector-a{animation:injector-fire 2.2s infinite}.combustion-pulse{position:absolute;width:35px;height:35px;border:3px solid var(--aqua);border-radius:50%;animation:combustion 2.2s infinite}
.theme-radar{position:relative;width:180px;height:180px;margin:auto;border:1px solid rgba(255,255,255,.4);border-radius:50%;overflow:hidden}.radar-ring{position:absolute;inset:50%;border:1px solid rgba(94,200,201,.32);border-radius:50%;transform:translate(-50%,-50%)}.ring-a{width:66%;height:66%}.ring-b{width:34%;height:34%}.radar-cross{position:absolute;left:0;top:50%;width:100%;height:1px;background:rgba(94,200,201,.24)}.cross-b{transform:rotate(90deg)}.radar-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgba(94,200,201,.65),transparent 22%);animation:theme-sweep 4.8s linear infinite}.radar-target{position:absolute;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(94,200,201,.15)}.target-a{left:28%;top:31%}.target-b{right:20%;bottom:29%}.radar-ship{position:absolute;left:50%;top:50%;color:var(--aqua);transform:translate(-50%,-50%) rotate(28deg)}
.harbour-map{position:relative;width:min(100%,300px);height:170px;margin:auto;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:linear-gradient(110deg,rgba(94,200,201,.08),transparent)}.berth{position:absolute;right:12px;width:75px;height:10px;border-radius:3px;background:rgba(255,255,255,.25)}.berth-a{top:45px}.berth-b{bottom:45px}.route-line{position:absolute;left:20px;right:50px;top:80px;height:65px;border-top:2px dashed var(--aqua);border-radius:50%;transform:rotate(-14deg)}.route-ship{position:absolute;left:22px;top:105px;color:#fff;transform:rotate(75deg);animation:ship-route 5.5s ease-in-out infinite}.harbour-map em{position:absolute;right:18px;top:75px;color:var(--aqua);font-size:.65rem;font-style:normal;font-weight:900;text-transform:uppercase}
.material-grid{position:relative;display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,52px);gap:5px;margin:auto;transform:skewX(-9deg)}.material-grid i{border:1px solid rgba(255,255,255,.32);background:linear-gradient(135deg,rgba(94,200,201,.25),transparent)}.stress-wave{position:absolute;left:-25%;top:-10%;width:25%;height:120%;background:linear-gradient(90deg,transparent,rgba(94,200,201,.75),transparent);animation:stress-scan 3.5s ease-in-out infinite}.damage-point{position:absolute;left:56%;top:48%;width:10px;height:10px;border-radius:50%;background:#ffc86b;box-shadow:0 0 0 7px rgba(255,200,107,.14);animation:damage-pulse 2s infinite}
@keyframes injector-fire{0%,38%,100%{opacity:.4}45%,60%{opacity:1;box-shadow:0 12px 18px var(--aqua)}}@keyframes combustion{0%,30%{opacity:0;transform:scale(.3)}55%{opacity:1}100%{opacity:0;transform:scale(3.2)}}@keyframes theme-sweep{to{transform:rotate(360deg)}}@keyframes ship-route{0%{left:22px;top:105px;transform:rotate(75deg)}50%{left:48%;top:65px;transform:rotate(93deg)}100%{left:75%;top:65px;transform:rotate(90deg)}}@keyframes stress-scan{0%,100%{left:-25%}50%{left:100%}}@keyframes damage-pulse{50%{transform:scale(.65);opacity:.55}}
@media(prefers-reduced-motion:reduce){.injector,.combustion-pulse,.radar-sweep,.route-ship,.stress-wave,.damage-point{animation:none}}
.theme-visual{grid-template-rows:minmax(92px,1fr) auto;height:158px;margin:-30px -30px 25px;padding:12px 18px;background:linear-gradient(145deg,#0a3545,#0b4d59)}.theme-visual:before{opacity:.45}.theme-visual .engine-chamber,.theme-visual .theme-radar,.theme-visual .harbour-map{transform:scale(.62)}.theme-visual .material-grid{transform:skewX(-9deg) scale(.68)}.visual-readout{gap:5px}.visual-readout span{padding:4px 6px;border-color:rgba(255,255,255,.09);background:rgba(255,255,255,.04);font-size:.54rem;opacity:.72}.injector-a,.injector-b{animation-duration:3.8s}.combustion-pulse{animation-duration:3.8s}.radar-sweep{animation-duration:8s;opacity:.7}.route-ship{animation-duration:8s}.stress-wave{animation-duration:6s;opacity:.65}.damage-point{animation-duration:3.5s}
.cfd-field,.traffic-field,.fea-mesh{position:relative;margin:auto}.cfd-field{width:260px;height:105px;overflow:hidden}.cfd-field i{position:absolute;left:0;width:240px;height:15px;border-top:1px solid rgba(94,200,201,.65);border-radius:50%;animation:cfd-flow 5s ease-in-out infinite}.cfd-field i:nth-child(1){top:12px}.cfd-field i:nth-child(2){top:30px;animation-delay:-.5s}.cfd-field i:nth-child(3){top:48px;animation-delay:-1s}.cfd-field i:nth-child(4){top:66px;animation-delay:-1.5s}.cfd-field i:nth-child(5){top:84px;animation-delay:-2s}.cfd-field b{position:absolute;right:8px;top:9px;color:rgba(255,255,255,.55);font-size:.65rem;letter-spacing:.12em}.cfd-body{position:absolute;left:105px;top:35px;width:52px;height:35px;border-radius:50% 12px 12px 50%;background:var(--aqua);box-shadow:18px 0 24px rgba(94,200,201,.25)}
.traffic-field{width:280px;height:108px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:linear-gradient(90deg,transparent 49%,rgba(94,200,201,.08) 50%,transparent 51%)}.traffic-lane{position:absolute;left:12px;right:12px;height:1px;border-top:1px dashed rgba(94,200,201,.35)}.lane-a{top:34px}.lane-b{bottom:34px}.traffic-vessel{position:absolute;color:var(--aqua);font-size:.72rem}.vessel-a{left:18%;top:21px;transform:rotate(90deg)}.vessel-b{left:52%;bottom:20px;transform:rotate(-90deg)}.vessel-c{right:15%;top:21px;transform:rotate(90deg)}.data-trace{position:absolute;left:10px;right:10px;top:50%;height:24px;border-bottom:1px solid rgba(255,255,255,.38);clip-path:polygon(0 75%,12% 50%,23% 72%,36% 15%,48% 62%,60% 38%,72% 72%,85% 28%,100% 60%,100% 100%,0 100%);background:rgba(94,200,201,.32);animation:data-pulse 5s ease-in-out infinite}
.fea-mesh{display:grid;grid-template-columns:repeat(4,34px);grid-template-rows:repeat(3,25px);gap:2px;transform:skewX(-10deg)}.fea-mesh i{border:1px solid rgba(255,255,255,.28);background:rgba(94,200,201,.08)}.fea-mesh i:nth-child(7),.fea-mesh i:nth-child(8){background:rgba(255,183,92,.48)}.fea-mesh i:nth-child(11){background:rgba(238,101,78,.58)}.fea-mesh b{position:absolute;right:-42px;bottom:0;color:rgba(255,255,255,.55);font-size:.65rem;letter-spacing:.12em}.fea-load{position:absolute;left:58%;top:-30px;color:#ffc86b;font-size:1.3rem;animation:fea-load 3s ease-in-out infinite}
@keyframes cfd-flow{50%{transform:translateX(9px) scaleX(.94);opacity:.5}}@keyframes data-pulse{50%{opacity:.35;transform:scaleY(.7)}}@keyframes fea-load{50%{transform:translateY(7px)}}
@media(prefers-reduced-motion:reduce){.cfd-field i,.data-trace,.fea-load{animation:none}}
.technical-svg{position:relative;z-index:2;width:100%;height:100%;overflow:visible}.technical-svg text{fill:rgba(225,243,245,.55);font:700 7px Inter,sans-serif;letter-spacing:1px}.sim-grid path{fill:none;stroke:rgba(177,222,225,.09);stroke-width:.7}.streamlines path{fill:none;stroke:rgba(94,200,201,.62);stroke-width:1.2;stroke-dasharray:8 7;animation:flow-lines 5s linear infinite}.streamlines path:nth-child(2){animation-delay:-1s}.streamlines path:nth-child(3){animation-delay:-2s}.streamlines path:nth-child(4){animation-delay:-3s}.streamlines path:nth-child(5){animation-delay:-4s}.piston-outline{fill:rgba(6,43,59,.76);stroke:rgba(255,255,255,.55);stroke-width:1.2}.heat-contour{fill:url(#cfd-heat);opacity:.76;animation:heat-cycle 4s ease-in-out infinite}.injector-jet{fill:none;stroke:#ffc86b;stroke-width:2;stroke-dasharray:4 4;animation:jet-cycle 3.2s ease-in-out infinite}.jet-b{animation-delay:-1.2s}.cfd-vectors path{fill:none;stroke:#fff;stroke-width:1;opacity:.55}.traffic-separation,.berthing-envelope{fill:none;stroke:rgba(94,200,201,.7);stroke-width:1.3;stroke-dasharray:7 5;animation:route-dash 7s linear infinite}.traffic-separation.secondary,.berthing-envelope.inner{opacity:.4;animation-direction:reverse}.risk-zone{fill:rgba(239,139,88,.13);stroke:rgba(239,139,88,.65);stroke-width:1;stroke-dasharray:3 3;animation:risk-breathe 4s ease-in-out infinite}.ais-track circle{fill:var(--aqua)}.traffic-ships path{fill:#fff;opacity:.85}.data-plot{fill:none;stroke:#ffc86b;stroke-width:1.2;stroke-linejoin:round;stroke-dasharray:90;animation:data-draw 4.5s ease-in-out infinite}.quay{fill:none;stroke:rgba(255,255,255,.5);stroke-width:1.2}.heading-vectors path,.tug-forces path{fill:none;stroke:#ffc86b;stroke-width:1}.berthing-vessel{fill:var(--aqua);stroke:#fff;stroke-width:.8;offset-path:path('M24 103 C91 104 118 91 159 72 S220 36 279 58');offset-rotate:auto;animation:vessel-berth 9s ease-in-out infinite}.berthing-vessel line{stroke:#fff}.fea-body{fill:rgba(94,200,201,.08);stroke:rgba(255,255,255,.7);stroke-width:1}.fea-lines path{fill:none;stroke:rgba(183,224,226,.38);stroke-width:.65}.fea-contour{fill:url(#fea-stress);opacity:.58;mix-blend-mode:screen;animation:fea-contour 4.5s ease-in-out infinite}.fea-crack{fill:none;stroke:#fff;stroke-width:1.4;stroke-dasharray:5 3}.fea-boundary path,.fea-force{fill:none;stroke:#ffc86b;stroke-width:1.2}.fea-force{animation:load-vector 3s ease-in-out infinite}
@keyframes flow-lines{to{stroke-dashoffset:-30}}@keyframes heat-cycle{50%{opacity:.4;transform:scale(.9);transform-origin:center}}@keyframes jet-cycle{0%,35%,100%{opacity:.18}50%,70%{opacity:1;stroke-dashoffset:-12}}@keyframes route-dash{to{stroke-dashoffset:-48}}@keyframes risk-breathe{50%{opacity:.35}}@keyframes data-draw{0%,15%{stroke-dashoffset:90}55%,100%{stroke-dashoffset:0}}@keyframes vessel-berth{0%,10%{offset-distance:0}85%,100%{offset-distance:100%}}@keyframes fea-contour{50%{opacity:.3;rx:48px;ry:36px}}@keyframes load-vector{50%{transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){.streamlines path,.heat-contour,.injector-jet,.traffic-separation,.berthing-envelope,.risk-zone,.data-plot,.berthing-vessel,.fea-contour,.fea-force{animation:none}}
.cylinder-wall,.cylinder-head{fill:rgba(6,43,59,.72);stroke:rgba(255,255,255,.55);stroke-width:1}.piston-crown{fill:rgba(183,224,226,.18);stroke:#b7dfe2;stroke-width:1}.valve,.central-injector{fill:none;stroke:#fff;stroke-width:1.3}.combustion-zone{fill:url(#engine-flame);opacity:.72;animation:engine-combustion 3.8s ease-in-out infinite}.swirl-field path{fill:none;stroke:rgba(94,200,201,.8);stroke-width:1;stroke-dasharray:5 4;animation:swirl-field 5s linear infinite}.spray-plumes path{fill:none;stroke:#ffc86b;stroke-width:1.3;stroke-dasharray:3 3;animation:spray-cycle 3.8s ease-in-out infinite}.cfd-nodes circle{fill:#fff;animation:cfd-node 2.4s ease-in-out infinite}.cfd-nodes circle:nth-child(even){animation-delay:-1.2s}.pressure-panel rect{fill:rgba(6,43,59,.55);stroke:rgba(255,255,255,.18)}.pressure-panel path{fill:none;stroke:rgba(255,255,255,.25);stroke-width:.7}.pressure-panel polyline{fill:none;stroke:#ffc86b;stroke-width:1.3;stroke-dasharray:90;animation:data-draw 4s ease-in-out infinite}.pressure-legend{fill:url(#pressure-scale)}
.coastline{fill:rgba(185,213,197,.18);stroke:rgba(214,232,218,.55);stroke-width:1}.depth-contour{fill:none;stroke:rgba(94,200,201,.28);stroke-width:.7}.gis-hotspot{fill:url(#gis-risk);animation:gis-hotspot 4.5s ease-in-out infinite}.hotspot-b{animation-delay:-2.2s}.risk-contours ellipse{fill:none;stroke:rgba(255,201,104,.68);stroke-width:.8;stroke-dasharray:3 2;animation:contour-dash 7s linear infinite}.shipping-routes path{fill:none;stroke:rgba(255,255,255,.58);stroke-width:1;stroke-dasharray:7 4;animation:route-dash 6s linear infinite}.gis-vessels path{fill:#fff}.map-points circle{fill:#ffc86b}.north-arrow{fill:var(--aqua)}
.safety-corridor{fill:rgba(94,200,201,.07);stroke:rgba(94,200,201,.2);stroke-width:.7}.hydro-vectors path{fill:none;stroke:rgba(94,200,201,.65);stroke-width:.8}.dof-indicator circle{fill:#ffc86b}.dof-indicator path{fill:none;stroke:#fff;stroke-width:1.15}.dof-indicator .yaw-vector{stroke:#ffc86b}.dof-indicator text{fill:rgba(225,243,245,.78);font-size:6px}.control-panel rect{fill:rgba(6,43,59,.55);stroke:rgba(255,255,255,.18)}.control-panel polyline{fill:none;stroke:#ffc86b;stroke-width:1;stroke-dasharray:45;animation:data-draw 4s ease-in-out infinite}
.sagging-loads path{fill:none;stroke:#ffc86b;stroke-width:1.1;animation:sag-load 3.2s ease-in-out infinite}.ship-deck,.ship-hull{fill:url(#hull-stress);fill-opacity:.48;stroke:rgba(255,255,255,.75);stroke-width:1.1}.ship-superstructure{fill:rgba(183,224,226,.15);stroke:rgba(255,255,255,.62);stroke-width:1}.hull-mesh{fill:none;stroke:rgba(255,255,255,.32);stroke-width:.55}.neutral-axis{fill:none;stroke:#fff;stroke-width:.8;stroke-dasharray:5 4}.stress-point{fill:url(#stress-hot);animation:stress-hotspot 3.6s ease-in-out infinite}.hot-b{animation-delay:-1.2s}.hot-c{animation-delay:-2.4s}.buoyancy-forces path{fill:none;stroke:var(--aqua);stroke-width:1}.sag-curve{fill:none;stroke:#ffc86b;stroke-width:1;stroke-dasharray:5 4;animation:sag-curve 4s ease-in-out infinite}
@keyframes engine-combustion{0%,25%,100%{opacity:.25;transform:scale(.72);transform-origin:180px 69px}55%{opacity:.88;transform:scale(1)}}@keyframes swirl-field{to{stroke-dashoffset:-36}}@keyframes spray-cycle{0%,28%,100%{opacity:.12}40%,62%{opacity:1;stroke-dashoffset:-14}}@keyframes cfd-node{50%{opacity:.25;transform:scale(.6);transform-origin:center}}@keyframes gis-hotspot{50%{opacity:.45;transform:scale(.88);transform-origin:center}}@keyframes contour-dash{to{stroke-dashoffset:-24}}@keyframes sag-load{50%{transform:translateY(5px)}}@keyframes stress-hotspot{50%{opacity:.38;transform:scale(.7);transform-origin:center}}@keyframes sag-curve{50%{d:path('M42 16 Q180 50 318 16')}}
@media(prefers-reduced-motion:reduce){.combustion-zone,.swirl-field path,.spray-plumes path,.cfd-nodes circle,.pressure-panel polyline,.gis-hotspot,.risk-contours ellipse,.shipping-routes path,.control-panel polyline,.sagging-loads path,.stress-point,.sag-curve{animation:none}}
.theme-visual{grid-template-columns:minmax(0,1fr) 116px;grid-template-rows:minmax(92px,1fr) auto;gap:7px 10px}.technical-svg{grid-column:1;grid-row:1}.visual-readout{grid-column:1/-1;grid-row:2}.code-pane{position:relative;grid-column:2;grid-row:1;align-self:stretch;min-width:0;margin:0;padding:9px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(1,20,28,.62);color:#aad6d9;font:500 6.8px/1.75 ui-monospace,SFMono-Regular,Menlo,monospace}.code-pane:after{content:"";position:absolute;left:0;right:0;top:25px;height:17px;background:linear-gradient(90deg,rgba(94,200,201,.02),rgba(94,200,201,.13),rgba(94,200,201,.02));animation:code-run 3.6s steps(3) infinite}.code-pane b{display:block;margin-bottom:8px;color:#7bd9bd;font-size:6px;letter-spacing:.08em}.code-pane b i{display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:#61d29c;box-shadow:0 0 0 3px rgba(97,210,156,.1);animation:code-status 1.6s infinite}.code-pane code,.code-pane span{display:block}.code-pane span{position:relative;z-index:1;white-space:nowrap}.exhaust-flow path{fill:none;stroke:rgba(183,224,226,.75);stroke-width:1.2;stroke-dasharray:5 4;animation:exhaust-cycle 3s linear infinite}.dual-state .mini-hull{stroke:rgba(255,255,255,.78);stroke-width:1}.sag-hull{fill:url(#sag-stress);fill-opacity:.66}.hog-hull{fill:url(#hog-stress);fill-opacity:.66}.dual-state .mini-mesh{fill:none;stroke:rgba(255,255,255,.32);stroke-width:.5}.fea-load-arrows path{fill:none;stroke:#ffc86b;stroke-width:1}.fea-buoyancy-arrows path{fill:none;stroke:var(--aqua);stroke-width:1}.dual-state .neutral-axis{stroke-dasharray:4 3}.dual-state text{font-size:6px}.dual-state .sag-state,.dual-state .hog-state{animation:none}
@keyframes exhaust-cycle{to{stroke-dashoffset:-22}}@keyframes code-run{0%{transform:translateY(0)}100%{transform:translateY(48px)}}@keyframes code-status{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.exhaust-flow path,.code-pane:after,.code-pane b i{animation:none}}
@media(max-width:640px){.theme-visual{grid-template-columns:minmax(0,1fr) 96px}.code-pane{padding:7px;font-size:5.8px}}
.code-pane code{animation:code-scroll 6s linear infinite;will-change:transform}.morph-deck{fill:none;stroke:rgba(255,255,255,.85);stroke-width:1.2}.morph-hull{fill:url(#hull-stress-fixed);fill-opacity:.68;stroke:rgba(255,255,255,.78);stroke-width:1}.morph-neutral{fill:none;stroke:#fff;stroke-width:.8;stroke-dasharray:5 4}.morph-frames{fill:none;stroke:rgba(255,255,255,.28);stroke-width:.55}.morphing-ship .ship-superstructure{fill:rgba(183,224,226,.16);stroke:rgba(255,255,255,.65)}.downward-loads path,.upward-loads path{fill:none;stroke-width:1.1}.downward-loads path{stroke:#ffc86b}.upward-loads path{stroke:var(--aqua)}.downward-loads,.sag-label{animation:sag-state 8s ease-in-out infinite}.upward-loads,.hog-label{animation:hog-state 8s ease-in-out infinite}.state-label{font-size:6px;font-weight:900}.stress-key{fill:url(#hull-stress-fixed)}
@keyframes code-scroll{to{transform:translateY(-50%)}}@keyframes sag-state{0%,38%,100%{opacity:1}48%,88%{opacity:.12}}@keyframes hog-state{0%,38%,100%{opacity:.12}48%,88%{opacity:1}}
@media(prefers-reduced-motion:reduce){.code-pane code,.downward-loads,.upward-loads,.sag-label,.hog-label{animation:none}.hog-label,.upward-loads{display:none}}
.cfrp-deck{fill:rgba(6,43,59,.8);stroke:rgba(255,255,255,.8);stroke-width:1.1}.cfrp-skin{fill:url(#carbon-weave);stroke:#5ec8c9;stroke-width:1}.cfrp-waterline{fill:none;stroke:rgba(94,200,201,.55);stroke-width:.8;stroke-dasharray:6 4}.cfrp-frames,.cfrp-superstructure{fill:none;stroke:rgba(255,255,255,.42);stroke-width:.7}.cfrp-stress-zone{fill:url(#cfrp-stress);opacity:.5;mix-blend-mode:screen;animation:cfrp-stress 4.5s ease-in-out infinite}.damage-front{fill:none;stroke:#ffc86b;stroke-width:1;stroke-dasharray:3 3}.wave-pressure path{fill:none;stroke:var(--aqua);stroke-width:1.1;animation:wave-pressure 3.5s ease-in-out infinite}.laminate-inset>rect:first-of-type{fill:rgba(6,43,59,.72);stroke:rgba(255,255,255,.2)}.laminate-inset .ply{stroke:rgba(255,255,255,.3);stroke-width:.4}.ply-0{fill:rgba(94,200,201,.52)}.ply-p45{fill:rgba(141,208,174,.5)}.ply-m45{fill:rgba(240,208,94,.48)}.ply-90{fill:rgba(239,139,88,.48)}.core-layer{fill:rgba(183,224,226,.12);stroke:rgba(255,255,255,.28)}.cfrp-stress-key{fill:url(#cfrp-stress)}@keyframes cfrp-stress{50%{opacity:.28;transform:scale(.94);transform-origin:168px 79px}}@keyframes wave-pressure{50%{transform:translateY(-5px)}}@media(prefers-reduced-motion:reduce){.cfrp-stress-zone,.wave-pressure path{animation:none}}
.code-pane{scroll-behavior:smooth}.code-pane code{animation:none;will-change:auto}.code-pane code,.code-pane samp{display:block}.terminal-line,.terminal-output{display:block!important;min-height:1.75em}.terminal-line:before{content:"> ";color:#66aeb6}.terminal-line:last-child:after{content:"_";margin-left:2px;color:#7bd9bd;animation:terminal-cursor .8s steps(1) infinite}.terminal-output{color:#78d7ad;font-style:normal}.code-pane samp{padding-top:2px;border-top:1px solid rgba(255,255,255,.06);font:inherit}.code-pane:after{display:none}@keyframes terminal-cursor{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.terminal-line:last-child:after{animation:none}}
.code-pane>b{position:sticky;top:-9px;z-index:3;padding:8px 0 5px;background:#061f2a}
.gallery.slideshow{position:relative;display:block;grid-auto-rows:auto}.gallery.slideshow figure{display:none;width:100%;height:500px}.gallery.slideshow figure.active-slide{display:block}.gallery.slideshow figure:nth-child(n){grid-column:auto}.gallery.slideshow img{width:100%;height:100%;object-fit:cover}.slideshow-controls{position:absolute;left:50%;bottom:18px;z-index:4;display:flex;align-items:center;gap:12px;padding:7px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(6,43,59,.8);backdrop-filter:blur(10px);transform:translateX(-50%)}.slideshow-controls button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:transparent;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}.slideshow-controls button:hover,.slideshow-controls button:focus-visible{background:var(--teal)}.slideshow-controls span{min-width:42px;color:#fff;font-size:.72rem;font-weight:900;text-align:center}@media(max-width:640px){.gallery.slideshow figure{height:330px}}
.gallery-group{display:inline-block;width:calc(50% - 12px);vertical-align:top}.gallery-group+.gallery-group{margin-top:0;margin-left:20px;padding-top:0;padding-left:20px;border-top:0;border-left:1px solid var(--line)}.gallery.slideshow figure{height:340px}@media(max-width:720px){.gallery-group{display:block;width:100%}.gallery-group+.gallery-group{margin-top:55px;margin-left:0;padding-top:45px;padding-left:0;border-top:1px solid var(--line);border-left:0}.gallery.slideshow figure{height:300px}}
.gallery.slideshow figure{background:#062b3b}.gallery.slideshow img{object-fit:contain;object-position:center}
[data-site-header]{position:sticky;top:0;z-index:50}.site-header{position:relative;top:auto}
.theme-outcome{margin:18px 0;padding:12px 14px;border-left:3px solid var(--aqua);background:var(--sky);color:var(--navy);font-size:.92rem;font-weight:700}.form-intro{max-width:650px;color:var(--muted)}.new-window{font-size:.72em;font-weight:600}.home .collab-bento{gap:16px}.home .bento-card{min-height:235px}.home .bento-wide{min-height:500px}.home .progress-section{padding-block:65px}a[target="_blank"]:not(:has(.new-window))::after{content:" ↗";font-size:.78em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
.lattice-hull-stress{fill:url(#von-mises-field);fill-opacity:.58;stroke:rgba(255,255,255,.82);stroke-width:1.1}.lattice-hull-mesh{fill:url(#lattice-grid);stroke:#8dd7dd;stroke-width:.8}.lattice-members{fill:none;stroke:rgba(255,255,255,.55);stroke-width:.65}.lattice-deck,.lattice-superstructure{fill:none;stroke:rgba(255,255,255,.78);stroke-width:1}.von-mises-hotspot{fill:url(#von-mises-field);opacity:.38;mix-blend-mode:screen;animation:von-mises-pulse 4.5s ease-in-out infinite}.fea-wave-load path{fill:none;stroke:var(--aqua);stroke-width:1.1;animation:wave-pressure 3.5s ease-in-out infinite}.fea-constraints path,.fea-constraints{fill:none;stroke:#ffc86b;stroke-width:.9}.lattice-inset>rect{fill:rgba(6,43,59,.72);stroke:rgba(255,255,255,.2)}.lattice-inset path{fill:none;stroke:rgba(255,255,255,.68);stroke-width:1}.lattice-inset circle{fill:#ffc86b}.von-mises-key{fill:url(#von-mises-field)}@keyframes von-mises-pulse{50%{opacity:.2;transform:scale(.95);transform-origin:176px 82px}}@media(prefers-reduced-motion:reduce){.von-mises-hotspot,.fea-wave-load path{animation:none}}
.isogrid-skin{fill:url(#isogrid-vm);fill-opacity:.48}.isogrid-ribs path{fill:none;stroke:rgba(255,255,255,.68);stroke-width:.8}.isogrid-outline{fill:none;stroke:rgba(255,255,255,.9);stroke-width:1.2}.isogrid-vm-hotspot{fill:url(#isogrid-hotspot);mix-blend-mode:screen;animation:isogrid-stress 4.5s ease-in-out infinite}.panel-pressure path{fill:none;stroke:#ffc86b;stroke-width:1.1;animation:isogrid-load 3.4s ease-in-out infinite}.panel-supports path,.panel-supports{fill:none;stroke:var(--aqua);stroke-width:.9}.isogrid-cell-inset>rect{fill:rgba(6,43,59,.72);stroke:rgba(255,255,255,.22)}.isogrid-cell-inset path{fill:none;stroke:rgba(255,255,255,.72);stroke-width:1}.isogrid-cell-inset circle{fill:#ffc86b}.isogrid-vm-key{fill:url(#isogrid-vm)}@keyframes isogrid-stress{50%{opacity:.42;transform:scale(.94);transform-origin:171px 70px}}@keyframes isogrid-load{50%{transform:translateY(5px)}}@media(prefers-reduced-motion:reduce){.isogrid-vm-hotspot,.panel-pressure path{animation:none}}
.compression-platen rect{fill:rgba(183,224,226,.25);stroke:rgba(255,255,255,.72);stroke-width:.7}.compression-platen path{fill:none;stroke:#ffc86b;stroke-width:1;animation:compression-load 3.2s ease-in-out infinite}.fuselage-panel-skin{fill:url(#panel-base);fill-opacity:.52}.regular-isogrid-field{mix-blend-mode:screen}.compression-vm-field{fill:url(#compression-hotspot);mix-blend-mode:screen;animation:compression-stress 4.2s ease-in-out infinite}.fuselage-panel-outline{fill:none;stroke:rgba(255,255,255,.92);stroke-width:1.2}.buckling-contour{fill:none;stroke:#ffc86b;stroke-opacity:.7;stroke-width:.8;stroke-dasharray:4 4;animation:buckling-mode 4.2s ease-in-out infinite}.fea-readout-panel rect{fill:rgba(6,43,59,.72);stroke:rgba(255,255,255,.22)}.fea-readout-panel path{fill:none;stroke:rgba(255,255,255,.35);stroke-width:.7}.fea-readout-panel polyline{fill:none;stroke:#ffc86b;stroke-width:1.2;stroke-dasharray:85;animation:data-draw 4.5s ease-in-out infinite}.fea-readout-panel .critical-load{stroke:#ef8a58;stroke-dasharray:3 2}.compression-vm-key{fill:url(#panel-base)}@keyframes compression-load{50%{transform:translateY(3px)}}@keyframes compression-stress{50%{opacity:.42;transform:scaleX(.88);transform-origin:151px 65px}}@keyframes buckling-mode{50%{transform:scaleX(.96);transform-origin:143px 65px;opacity:.35}}@media(prefers-reduced-motion:reduce){.compression-platen path,.compression-vm-field,.buckling-contour{animation:none}}
.news-preview{padding-block:78px}.news-feature,.news-story{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.news-feature-mark{position:relative;isolation:isolate;display:flex;min-height:320px;flex-direction:column;justify-content:flex-end;padding:34px;overflow:hidden;background:linear-gradient(145deg,#062b3b,#0d5964);color:#fff}.news-feature-mark:before,.news-feature-mark:after{content:"";position:absolute;z-index:-1;border:1px solid rgba(94,200,201,.28);border-radius:50%}.news-feature-mark:before{width:290px;height:290px;right:-95px;top:-90px}.news-feature-mark:after{width:190px;height:190px;right:-45px;top:-40px}.news-feature-mark span{position:absolute;left:34px;top:32px;color:var(--aqua);font-size:.72rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.news-feature-mark strong{color:#fff;font:700 clamp(2.1rem,5vw,3.8rem)/1 Georgia,serif}.news-feature-mark i{width:75px;height:3px;margin:20px 0;background:var(--aqua)}.news-feature-mark small{color:#cce6e8;font-weight:700}.news-feature-copy,.news-story-body{padding:clamp(32px,6vw,64px)}.news-feature-copy{align-self:center}.news-feature-copy h3{font-size:clamp(1.65rem,3vw,2.35rem)}.news-meta{margin-bottom:16px;color:var(--teal)!important;font-size:.78rem!important;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.news-feature .actions,.news-story .actions{align-items:center}.button.outline{border-color:var(--teal);background:transparent;color:var(--navy)}.button.outline:hover{background:var(--sky)}.news-story-body h2{font-size:clamp(2rem,4vw,3.2rem)}.news-story-body>p:not(.news-meta){max-width:820px;color:var(--muted)}.news-follow{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:60px;padding:38px;border-radius:var(--radius);background:var(--sky)}.news-follow h2{margin:.2em 0}.news-follow p{margin:0;color:var(--muted)}@media(max-width:1100px){.site-nav{gap:18px}.site-nav a{font-size:.84rem}}@media(max-width:760px){.news-feature,.news-story{grid-template-columns:1fr}.news-feature-mark{min-height:245px}.news-follow{align-items:flex-start;flex-direction:column}.news-feature-copy,.news-story-body{padding:30px}}
@media(max-width:1120px) and (min-width:981px){.site-nav{gap:12px}.site-nav a{font-size:.78rem}.nav-cta{padding-inline:12px}.brand img{width:145px}}
.updates-archive{margin-top:95px}.updates-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.update-card{display:flex;min-height:310px;flex-direction:column;padding:32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 4px 18px rgba(6,43,59,.04)}.update-card h3{font-size:1.55rem}.update-card>p:not(.news-meta){color:var(--muted)}.update-card>a,.update-card .update-links{margin-top:auto}.update-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.update-links>a:not(.card-link){color:var(--teal);font-size:.86rem;font-weight:800;text-decoration:none}.update-links>a:not(.card-link):after{content:" ↗";font-size:.78em}@media(max-width:720px){.updates-archive{margin-top:70px}.updates-grid{grid-template-columns:1fr}.update-card{min-height:0}}
.news-story.editorial-story.vertical-story{display:block}.story-slideshow{position:relative;border-radius:0;background:#062b3b}.story-slideshow.gallery.slideshow figure{height:430px;border-radius:0}.story-slideshow.gallery.slideshow img{object-fit:contain;object-position:center}.story-slideshow .story-badge{position:absolute;left:20px;top:20px;z-index:5;padding:8px 12px;border-radius:999px;background:#fff;color:var(--teal);font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 5px 18px rgba(3,31,42,.14)}.editorial-story .news-story-body{max-width:900px;padding:38px 44px 44px}.editorial-story .news-story-body h2{font-size:clamp(1.8rem,3vw,2.55rem)}.editorial-story .news-story-body>p:not(.news-meta){font-size:.96rem}.editorial-story .actions{gap:18px}.updates-archive{margin-top:78px}@media(max-width:720px){.story-slideshow.gallery.slideshow figure{height:320px}.editorial-story .news-story-body{padding:30px}.editorial-story .actions{align-items:flex-start;flex-direction:column}.story-slideshow .story-badge{left:12px;top:12px}}
