:root{color-scheme:dark;--base:#080d1c;--surface:#121c31;--accent-secondary:#aa9bff;--gradient:linear-gradient(115deg,#87cfff 0%,#88aaff 50%,#ac9aff 100%);--ink:#edf3ff;--paper:#0b1122;--muted:#a5b5d0;--accent:#8ecaff;--line:#2a3956;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,'Helvetica Neue','PingFang SC','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8ecaff;outline-offset:5px}button{color:inherit}h1,h2,h3,h4,p{margin:0}svg{display:block}.wrap{max-width:1256px;padding:0 40px;margin:0 auto}.mono{font:11px/1.5 var(--mono);letter-spacing:1px}.skip{color:#0b1530;position:fixed;left:20px;top:-100px;z-index:200;background:var(--accent);padding:12px}.skip:focus{top:10px}.header{height:78px;background:var(--base);border-bottom:1px solid #2a3956;display:flex;align-items:center;justify-content:space-between;padding:0 max(40px,calc((100vw - 1176px)/2));color:#edf3ff;position:sticky;top:0;z-index:20}.brand{display:flex;gap:10px;align-items:center;font-size:24px;font-weight:800;letter-spacing:-1px}.brand svg{width:26px;height:30px;color:var(--accent)}.brand-dot{font-size:11px;align-self:flex-start;line-height:28px;letter-spacing:0}.header nav{display:flex;gap:36px;font-size:13px;color:#b5c2da}.header a:hover{color:var(--accent)}.header-contact{font-size:13px;display:flex;gap:25px}.hero{background:radial-gradient(ellipse at 85% 15%,#485ab024,transparent 60%),var(--base);color:#edf3ff;position:relative;overflow:hidden}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#8ecaff08 1px,transparent 1px),linear-gradient(90deg,#8ecaff08 1px,transparent 1px);background-size:72px 72px;pointer-events:none}.hero-inner{position:relative;padding-top:32px}.hero-kicker{font:10px var(--mono);letter-spacing:1.3px;color:#b5c2da;display:flex;align-items:center;gap:9px}.status-dot{height:6px;width:6px;background:var(--accent);border-radius:50%}.edition{margin-left:auto;color:#a5b5d0}.hero-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:36px;align-items:center;padding:44px 0 47px}.eyebrow{font:11px/1.5 var(--mono);color:var(--muted);letter-spacing:1.1px;margin-bottom:22px}.eyebrow.light{color:#b5c2da}.hero-copy h1{font-size:clamp(42px,4.5vw,65px);line-height:1.23;letter-spacing:-2.8px;font-weight:800}.accent{color:var(--accent)}.hero-description{margin-top:24px;color:#b5c2da;font-size:14px;line-height:1.9}.hero-actions{display:flex;gap:30px;align-items:center;margin-top:28px}.button{display:inline-flex;align-items:center;gap:35px;justify-content:space-between;padding:15px 21px;border:0;font-size:13px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--gradient);color:#0b1530}.primary:hover{background:linear-gradient(115deg,#b5e2ff,#bcb0ff)}.text-link{font-size:13px;display:inline-flex;gap:20px;align-items:center}.text-link.light{color:#edf3ff}.hero-tags{display:flex;gap:21px;font-size:11px;color:#b5c2da;margin-top:27px}.hero-tags span:before{content:'+';margin-right:7px;color:var(--accent)}.hero-art{position:relative;align-self:stretch;display:flex;align-items:center}.hero-art svg{width:100%;max-height:380px}.art-note{position:absolute;right:0;bottom:3px;font-size:10px;color:#a5b5d0}.hero-proofs{display:grid;grid-template-columns:1.13fr 1fr 1fr;border-top:1px solid #2a3956;padding:23px 0 29px}.proof{display:flex;flex-direction:column;gap:10px;padding:0 25px;border-left:1px solid #2a3956}.proof:first-child{border-left:0;padding-left:0}.proof:last-child{padding-right:0}.proof-index{font-size:9px;color:#b5ccff;letter-spacing:1px}.proof strong{font-size:22px;font-weight:600;line-height:1.4;display:flex;align-items:center;gap:8px}.proof strong>span{margin-left:auto;font-size:16px;color:var(--accent)}.proof strong small{font-size:16px;font-weight:400}.proof>span:last-child{font-size:11px;color:#b5c2da}.proof:hover strong{color:var(--accent)}.intro-strip{border-bottom:1px solid var(--line);background:#10192d}.intro-strip .wrap{display:flex;gap:30px;align-items:center;justify-content:space-between;min-height:76px}.intro-strip .mono{font-size:9px;color:#a5b5d0}.intro-strip p{font-size:11px;color:#a5b5d0}.intro-strip b{color:#b5ccff;font-weight:500;margin-left:10px}.section{padding-top:87px;padding-bottom:83px}.section-heading{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:38px}.section-heading .eyebrow{margin-bottom:15px}.section-heading h2{font-size:34px;font-weight:700;line-height:1.4;letter-spacing:-1.3px}.section-heading>p{font-size:12px;line-height:1.9;color:var(--muted);padding-bottom:5px}.featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project{border:1px solid var(--line);background:var(--surface)}.project-visual{height:320px;position:relative;overflow:hidden}.pcb-visual{background:#111d36;color:#edf3ff}.visual-top{display:flex;justify-content:space-between;padding:24px 25px;position:absolute;top:0;right:0;left:0;z-index:2;font-size:9px}.pcb-visual>svg{height:285px;width:100%;margin-top:35px;transition:transform .5s}.project:hover .pcb-visual>svg{transform:translateY(-5px)}.visual-caption{position:absolute;bottom:15px;left:25px;color:#b5ccff;font-size:9px;letter-spacing:.5px}.battery-visual{background:#10192d;color:#a5b5d0}.thickness{font-size:108px;letter-spacing:-7px;line-height:1;position:absolute;left:38px;top:67px;font-weight:500;color:#c5d9ff}.thickness>span{font:19px var(--mono);letter-spacing:-.5px;margin-left:9px}.battery-visual svg{position:absolute;bottom:29px;left:0;width:100%;height:130px}.battery-spec{position:absolute;top:116px;right:37px;display:flex;flex-direction:column;gap:10px;font-size:11px;letter-spacing:.5px}.battery-visual .visual-caption{color:#a5b5d0}.project-body{padding:29px 30px 22px}.project-meta{display:flex;align-items:center;gap:16px;color:var(--muted);margin-bottom:21px}.project-meta .mono{font-size:9px;letter-spacing:.5px}.pill{font-size:10px;border:1px solid #425a87;color:#b5ccff;padding:4px 7px}.project h3{font-size:25px;letter-spacing:-.7px;margin-bottom:10px}.project-lead{font-size:14px;font-weight:600;margin-bottom:13px}.project-body>p:not(.project-lead){font-size:12px;line-height:1.9;color:var(--muted);min-height:69px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.tags span{font-size:10px;line-height:1.5;color:#a5b5d0;background:#1b2944;padding:4px 7px}.detail-link{background:none;border:0;border-top:1px solid var(--line);width:100%;margin-top:25px;padding:17px 0 0;display:flex;justify-content:space-between;font-size:12px;font-weight:600;text-align:left}.detail-link:hover{color:#8ecaff}.cpvc-project{display:grid;grid-template-columns:1fr 1fr;margin-top:24px;background:#10192d;border:1px solid #2a3956}.cpvc-story{padding:37px 37px 28px}.cpvc-story h3{font-size:32px;line-height:1.35;letter-spacing:-1px;margin-bottom:17px}.cpvc-story>p{color:#a5b5d0;font-size:12px;line-height:1.9;max-width:440px}.cpvc-story .tags span{background:#1b2944}.cpvc-actions{display:flex;gap:30px;align-items:center;margin-top:22px;border-top:1px solid #2a3956;padding-top:16px}.cpvc-actions .detail-link{border:0;margin:0;padding:0;width:auto;gap:30px}.cpvc-actions .text-link{font-size:12px}.media-diagram{padding:35px 45px;background:#10192d;border-left:1px solid #2a3956;display:flex;flex-direction:column;align-items:center;justify-content:center}.diagram-label{align-self:flex-start;font-size:9px;color:#a5b5d0;margin-bottom:29px}.media-input{display:flex;gap:8px;justify-content:center;width:100%}.media-input span{padding:10px 16px;background:#1b2944;border:1px solid #2a3956;font:10px var(--mono);color:#b5ccff}.connector-line{height:26px;border-left:1px dashed #425a87;position:relative}.connector-line:after{content:'';position:absolute;bottom:0;left:-3px;width:5px;height:5px;background:#8ecaff}.converter{background:#111d36;color:#edf3ff;padding:19px 25px;width:100%;max-width:323px;display:flex;flex-direction:column;gap:14px}.converter>.mono{color:#b5ccff;font-size:8px}.converter strong{font-size:33px;font-weight:500;letter-spacing:-1.5px;display:flex;justify-content:space-between}.converter strong span{font-size:23px;color:var(--accent)}.converter>span:last-child{font-size:10px;color:#b5c2da}.media-output{display:flex;gap:12px;font-size:11px}.media-output span{border:1px solid #425a87;padding:9px 15px}.diagram-caption{color:#a5b5d0;font-size:9px;margin-top:28px;letter-spacing:.3px}.index-heading{display:flex;align-items:center;justify-content:space-between;margin-top:57px;margin-bottom:20px}.index-heading h3{font-size:19px;font-weight:600}.filters{display:flex;gap:4px}.filters button{border:0;padding:7px 13px;background:transparent;color:#a5b5d0;font-size:11px}.filters button.active{background:var(--gradient);color:#0b1530}.project-index{display:grid;grid-template-columns:1fr 1fr;column-gap:32px}.index-item{background:transparent;border:0;border-top:1px solid var(--line);padding:22px 0;display:flex;align-items:center;gap:15px;width:100%;text-align:left}.index-item[hidden]{display:none}.index-icon{width:42px;height:42px;border:1px solid var(--line);background:#10192d;display:flex;align-items:center;justify-content:center;font:13px var(--mono);flex-shrink:0}.index-copy{display:flex;flex-direction:column;gap:8px;min-width:0}.index-copy strong{font-size:14px;font-weight:600}.index-copy>span{font-size:10px;color:var(--muted);line-height:1.6}.index-category{font-size:9px;color:var(--muted);margin-left:auto;white-space:nowrap}.index-arrow{font-size:19px;margin-left:8px}.index-item:hover .index-arrow{transform:translate(2px,-2px)}.index-item:hover .index-copy strong{color:#8ecaff}.source-note{margin-top:20px;font-size:10px;color:#a5b5d0;line-height:1.9;display:flex;justify-content:space-between;gap:20px}.source-note a{color:#b5ccff}.practice{border-block:1px solid var(--line);background:#10192d}.practice-grid{display:grid;grid-template-columns:.9fr 1.3fr;gap:100px;margin-top:48px}.large-mark{font-size:110px;line-height:1;color:#8ecaff;margin-bottom:20px}.practice-intro h3{font-size:24px;line-height:1.5;margin-bottom:20px}.practice-intro p{font-size:12px;line-height:2;color:var(--muted)}.secondary{background:none;border:1px solid #425a87;margin-top:27px;color:#b5ccff;padding:12px 17px;font-size:11px}.capability{display:flex;gap:28px;border-bottom:1px solid #2a3956;padding:0 0 23px;margin-bottom:25px}.capability>.mono{padding-top:4px;color:#b5ccff}.capability h4{font-size:16px;margin-bottom:10px;font-weight:600}.capability p{font-size:11px;line-height:1.9;color:var(--muted)}.capability .tags{margin-top:12px}.capability .tags span{background:#1b2944}.capability:last-child{margin-bottom:0;border:0;padding-bottom:0}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.research-grid details{border-top:2px solid #8ecaff;border-bottom:1px solid var(--line);padding:24px 0}.research-grid summary{cursor:pointer;list-style:none}.research-grid summary::-webkit-details-marker{display:none}.research-grid .mono{font-size:9px;color:#a5b5d0}.research-grid h3{font-size:22px;line-height:1.6;margin:25px 0 21px;font-weight:600;letter-spacing:-.5px}.research-state{display:flex;justify-content:space-between;color:#a5b5d0;font-size:11px}.research-state>span{font-size:17px}.research-grid details[open] .research-state>span{transform:rotate(45deg)}.research-grid details>p{font-size:11px;line-height:1.9;color:var(--muted);padding-top:21px}.cpu-note{margin-top:31px;display:grid;grid-template-columns:1fr 2fr;gap:20px;align-items:start;padding-top:22px;border-top:1px solid var(--line)}.cpu-note .mono{font-size:9px;color:#a5b5d0;padding-top:5px}.cpu-note p{font-size:11px;color:var(--muted);line-height:1.9}.contact{background:radial-gradient(ellipse at 90% 20%,#7253bc24,transparent 65%),var(--base);color:#edf3ff;padding:72px 0 0}.contact .eyebrow{font-size:10px}.contact-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.contact h2{font-size:57px;line-height:1.35;letter-spacing:-2px}.contact h2 span{color:var(--accent)}.contact-copy{padding-bottom:7px}.contact-copy p{font-size:13px;color:#b5c2da;line-height:1.9;margin-bottom:23px}.socials{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:47px 0 30px}.socials a{border-top:1px solid #2a3956;padding-top:18px;display:flex;justify-content:space-between;font-size:13px}.socials a:hover{color:var(--accent)}footer{border-top:1px solid #2a3956;padding:23px 0;display:flex;gap:25px;align-items:center;justify-content:space-between;font-size:10px;color:#a5b5d0}footer .mono{font-size:9px}dialog{max-width:650px;width:calc(100% - 32px);border:1px solid #2a3956;background:var(--paper);padding:32px 36px;color:var(--ink);max-height:85vh;overflow:auto}dialog::backdrop{background:#040817cc;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);margin-bottom:22px}.dialog-top .mono{font-size:10px}.dialog-top button{font-size:30px;background:transparent;border:0;line-height:1;padding:5px}dialog h2{font-size:29px;line-height:1.4;letter-spacing:-1px}.dialog-intro{font-size:14px;line-height:1.9;color:#b5ccff;margin-top:16px;padding-bottom:24px;border-bottom:1px solid var(--line)}.dialog-section{margin-top:22px}.dialog-section h3{font-size:13px;margin-bottom:9px}.dialog-section p,.dialog-section li{font-size:12px;line-height:1.9;color:var(--muted)}.dialog-section ul{padding-left:18px;margin:0}#dialog-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:27px}#dialog-links .button{font-size:11px;padding:12px 16px;gap:15px}.noscript-note{padding:20px}
@media(min-width:1500px){.hero-layout{padding-top:57px;padding-bottom:57px}.hero-copy h1{font-size:67px}}
@media(max-width:1000px){.hero-copy h1{font-size:46px}.hero-layout{gap:14px}.proof strong{font-size:18px}.proof>span:last-child{font-size:10px}.proof{padding-inline:15px}.practice-grid{gap:55px}.thickness{font-size:87px;left:27px;top:80px}.battery-spec{right:25px;top:103px;font-size:10px}.intro-strip .wrap{flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;padding-block:17px}.project-body{padding:26px}.cpvc-story{padding:31px}.media-diagram{padding:30px}.media-input span{padding:9px 12px}.index-category{display:none}}
@media(max-width:700px){html{scroll-padding-top:80px}.wrap{padding-left:22px;padding-right:22px}.header{height:65px;padding:0 22px}.brand{font-size:21px}.brand svg{width:22px}.header nav{gap:18px;font-size:11px}.header nav a:last-child{display:none}.header-contact{font-size:11px;gap:9px}.hero-inner{padding-top:24px}.hero-kicker{font-size:8px;letter-spacing:.65px}.edition{display:none}.hero-layout{grid-template-columns:1fr;padding:37px 0 29px}.hero-copy h1{font-size:clamp(35px,7.5vw,50px);letter-spacing:-1.5px;line-height:1.3}.hero-copy .eyebrow{font-size:10px;margin-bottom:19px}.hero-description{font-size:12px;margin-top:21px}.hero-actions{margin-top:24px;gap:25px}.button{font-size:12px;padding:14px 17px;gap:24px}.hero-tags{gap:15px;font-size:10px;margin-top:23px}.hero-art{display:none}.hero-proofs{grid-template-columns:1fr;padding:0 0 19px;border-top:0}.proof{padding:16px 0!important;border:0;border-top:1px solid #2a3956;gap:6px}.proof strong{font-size:19px}.proof-index{font-size:8px}.proof>span:last-child{font-size:10px}.intro-strip .mono{font-size:8px}.intro-strip p{font-size:10px;line-height:1.9}.intro-strip b{margin-left:0;display:block;word-spacing:2px}.section{padding-top:53px;padding-bottom:50px}.section-heading{flex-direction:column;align-items:flex-start;gap:13px;margin-bottom:27px}.section-heading h2{font-size:28px;letter-spacing:-1px}.section-heading>p{font-size:11px}.section-heading>p br{display:none}.eyebrow{font-size:9px}.featured-grid{grid-template-columns:1fr;gap:20px}.project-visual{height:280px}.pcb-visual>svg{height:246px;margin-top:29px}.visual-top{padding:20px 22px;font-size:8px}.visual-caption{font-size:8px;left:22px}.thickness{font-size:95px;top:68px;left:28px}.battery-spec{right:28px;top:103px}.battery-visual svg{bottom:17px}.project-body{padding:25px 23px 21px}.project h3{font-size:23px}.project-body>p:not(.project-lead){min-height:0}.cpvc-project{grid-template-columns:1fr;margin-top:20px}.cpvc-story{padding:27px 24px}.cpvc-story h3{font-size:28px}.media-diagram{border-left:0;border-top:1px solid #2a3956;padding:26px 24px}.diagram-label{margin-bottom:22px}.converter{max-width:300px}.index-heading{margin-top:39px;flex-direction:column;align-items:flex-start;gap:18px}.index-heading h3{font-size:18px}.filters{width:100%}.filters button{font-size:11px;padding:7px 16px}.project-index{grid-template-columns:1fr}.index-item{padding:18px 0;gap:13px}.index-copy>span{font-size:10px}.source-note{display:block;font-size:9px}.source-note a{display:block;margin-top:12px}.practice-grid{grid-template-columns:1fr;gap:37px;margin-top:28px}.large-mark{display:none}.practice-intro h3{font-size:23px;margin-bottom:15px}.practice-intro h3 br{display:none}.practice-intro p{font-size:12px}.capability{gap:20px;padding-bottom:19px;margin-bottom:21px}.capability h4{font-size:15px}.capability p{font-size:11px}.research-grid{grid-template-columns:1fr;gap:17px}.research-grid details{padding:21px 0}.research-grid h3{font-size:23px;margin:17px 0 19px}.research-grid h3 br{display:none}.cpu-note{grid-template-columns:1fr;gap:12px;margin-top:25px}.contact{padding-top:48px}.contact-top{flex-direction:column;align-items:flex-start;gap:25px}.contact h2{font-size:43px;letter-spacing:-1.5px}.contact-copy p{font-size:12px}.socials{gap:18px;margin:34px 0 27px}.socials a{font-size:11px;padding-top:14px}.socials a:last-child{font-size:10px}footer{flex-wrap:wrap;gap:14px;font-size:9px}footer .mono{display:none}dialog{padding:24px;max-height:90vh}dialog h2{font-size:25px}.dialog-intro{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{html{scroll-behavior:auto}body{font-size:11pt;background:#fff;color:#111}.header,.hero-art,.hero-grid,.hero-actions,.filters,.project-visual,.media-diagram,.detail-link,.button,.socials,.skip,dialog,footer a{display:none!important}.wrap{padding-inline:0;max-width:none}.hero,.contact{background:#fff!important;color:#111!important}.hero-inner{padding-top:0}.hero-kicker,.hero-description,.hero-tags,.proof>span,.contact-copy p{color:#333!important}.hero-layout{display:block;padding:18px 0}.hero-copy h1{font-size:30pt;color:#111}.accent,.contact h2 span{color:#111}.hero-proofs{padding:15px 0;border-color:#bbb}.proof{border-color:#bbb}.proof strong{font-size:13pt}.proof strong>span{display:none}.intro-strip{background:#fff}.section{padding-top:28px;padding-bottom:20px}.section-heading{margin-bottom:20px}.section-heading h2{font-size:21pt}.featured-grid{gap:15px}.project,.cpvc-project{break-inside:avoid;background:#fff}.project-body,.cpvc-story{padding:18px}.cpvc-project{display:block}.project-index{gap:20px}.index-item{break-inside:avoid}.index-item[hidden]{display:flex!important}.practice{background:#fff}.practice-grid{gap:35px}.large-mark{display:none}.capability{break-inside:avoid}.research-grid{gap:18px}.research-grid h3{font-size:13pt;margin:14px 0}.contact{padding-top:20px}.contact h2{font-size:24pt}.contact-top{align-items:flex-start}.contact-copy{font-size:10pt}footer{color:#333;padding:16px 0}@page{margin:14mm}}

/* Stable two-line headline; the cursor tracks the current glyph. */
.type-line{display:block;min-height:1.3em;white-space:nowrap;letter-spacing:-.04em;font-size:.92em;line-height:1.3}
.typing-cursor{display:inline-block;width:.045em;height:.88em;min-width:2px;background:var(--accent);margin-left:.1em;vertical-align:-.02em;animation:typing-blink 1s steps(1,end) infinite}
.typing-cursor.is-typing{animation:none;opacity:1}
.typing-toggle{padding:0;border:0;background:transparent;color:#b5ccff;font-size:10px;line-height:1.5;margin-left:auto;white-space:nowrap}
.typing-toggle:hover{color:var(--accent)}
.typing-toggle[hidden]{display:none}
@keyframes typing-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@media(max-width:700px){.type-line{font-size:.82em}.hero-tags{flex-wrap:wrap;gap:12px}.typing-toggle{font-size:9px}}
@media(prefers-reduced-motion:reduce){.typing-cursor{animation:none}}
@media print{.typing-cursor,.typing-toggle{display:none!important}#hero-typed{font-size:0}#hero-typed:after{content:'从立项到交付。';font-size:27pt}.type-line{color:#111}}

/* Supplied artwork retains its full composition at every viewport size. */
.image-visual{background:#080d1c;height:auto;aspect-ratio:16/9}
.image-visual img{display:block;width:100%;height:100%;object-fit:contain}
.video-visual{position:relative;display:block;background:#080d1c;overflow:hidden;min-width:0}
.video-visual>img{display:block;width:100%;height:100%;object-fit:contain}
.cpvc-project>.video-visual{align-self:center;margin:24px;border:1px solid #2a3956;aspect-ratio:16/9}
.video-play{position:absolute;inset:0;margin:auto;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#080d1cd9;color:var(--accent);font-size:20px;padding-left:3px;border:1px solid #9ba8ff88;transition:transform .2s}
.video-visual:hover .video-play{transform:scale(1.1)}
.video-caption{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;display:flex;justify-content:space-between;color:#fff;font-size:11px;background:linear-gradient(transparent,#080d1cf0)}
.project-index{gap:24px}
.media-card{border:1px solid var(--line);background:var(--surface);min-width:0;display:flex;flex-direction:column}
.media-card[hidden]{display:none}
.card-visual{display:block;width:100%;border:0;padding:0;background:#080d1c;aspect-ratio:16/9;overflow:hidden;text-align:inherit}
.card-visual>img{display:block;width:100%;height:100%;object-fit:contain}
.esp32-card .card-visual{background:#111d36}
.media-card-body{padding:25px 27px 22px;display:flex;flex-direction:column;flex:1}
.media-card-body>.mono{color:var(--muted);font-size:9px;letter-spacing:.6px;margin-bottom:12px}
.media-card h3{font-size:23px;line-height:1.4;letter-spacing:-.5px;margin-bottom:10px}
.media-card-body>p{font-size:12px;line-height:1.9;color:var(--muted)}
.media-card-body>.media-note{font-size:11px;margin-top:9px;color:#b5ccff}
.media-card-body .detail-link{margin-top:auto;padding-top:15px}
.media-card-body>.media-note+.detail-link{margin-top:18px}
.media-card-body>p+.detail-link{margin-top:18px}
.protolife-card{grid-column:1/-1}
.protolife-card .card-visual{aspect-ratio:8/3;background:var(--surface)}
.dialog-media{margin:24px 0 0}
.dialog-media img{display:block;width:100%;height:auto;background:#080d1c}
.dialog-media a{display:block;cursor:zoom-in}
.dialog-media figcaption{font-size:10px;line-height:1.7;color:var(--muted);margin-top:8px}
@media(max-width:1000px){.media-card h3{font-size:20px}.media-card-body{padding:22px}}
@media(max-width:700px){.cpvc-project>.video-visual{margin:0;border:0;border-top:1px solid #2a3956}.project-index{gap:20px}.media-card h3{font-size:21px}.protolife-card{grid-column:auto}.video-play{width:46px;height:46px;font-size:17px}}
@media print{.card-visual,.video-visual,.dialog-media{display:none!important}.media-card{break-inside:avoid}.media-card-body{padding:16px}.media-card h3{font-size:14pt}.media-card[hidden]{display:flex!important}}

.brand{display:block;flex-shrink:0}
.brand img{display:block;width:126px;height:42px;object-fit:contain}
.image-visual{display:block;width:100%;border:0;padding:0;text-align:inherit}
@media(max-width:700px){.brand img{width:96px;height:32px}.header nav{gap:15px}}

/* Blue, violet and pale-blue accents across dark surfaces. */
.hero-copy .accent{background:var(--gradient);background-clip:text;-webkit-background-clip:text;color:transparent}
.typing-cursor{background:#9acfff}
.research-grid details:nth-child(2){border-top-color:var(--accent-secondary)}
.research-grid details:nth-child(3){border-top-color:#8ca8ff}
.secondary:hover,.filters button:not(.active):hover{background:#1b2944;color:#c8ddff}
.project:hover,.media-card:hover{border-color:#536b9b}
::selection{background:#586cb8;color:#fff}
@media print{:root{color-scheme:light;--ink:#111;--paper:#fff;--muted:#444;--line:#bbb;--surface:#fff}.hero-copy .accent{background:none;color:#111}.media-card,.intro-strip,.practice{background:#fff}.tags span,.capability .tags span{background:#eee;color:#333}.project-meta,.pill,.dialog-intro,.cpvc-story>p,.media-card-body>p,.research-state,.source-note,.index-copy>span{color:#333}}
