.institution-brand{display:flex;align-items:center;gap:17px;min-width:0;text-align:left;font-family:Microsoft YaHei,PingFang SC,sans-serif}.institution-emblem{display:block;width:64px;height:64px;object-fit:contain;flex:0 0 auto;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #b9d9ed40,0 0 24px #77c9e311}.institution-copy{min-width:0}.institution-line{display:flex;align-items:center;flex-wrap:wrap;row-gap:6px;color:#e3f0f8;font-size:17px;line-height:1.5;font-weight:500;letter-spacing:1px}.institution-line>span{white-space:nowrap}.institution-separator{display:inline-block;color:#638da7;font-size:.9em;font-weight:400;margin:0 12px}.institution-platform{display:flex;align-items:center;gap:17px;flex-wrap:wrap;row-gap:5px;color:#94b8cd;font-size:11px;letter-spacing:2px;line-height:1.6;margin-top:7px;font-weight:400}.institution-platform>span{font-size:8px;letter-spacing:2.7px;color:#648fa9}.landing .landing-brand:has(.institution-brand){font-size:inherit;letter-spacing:normal;gap:0;flex-shrink:1}.app .topbar.topbar--institution{align-items:center;padding:15px 26px;gap:22px;flex-shrink:0}.topbar--institution .institution-emblem{width:56px;height:56px}.topbar--institution .institution-line{font-size:15px;letter-spacing:.6px}.topbar--institution .institution-platform{font-size:11px;margin-top:5px}@media (min-width:2000px){.landing .institution-emblem{width:76px;height:76px}.landing .institution-line{font-size:21px;letter-spacing:1.5px}.landing .institution-platform{font-size:13px}.landing .institution-platform>span{font-size:9px}}@media (max-width:1250px){.institution-line{font-size:14px;letter-spacing:.5px}.institution-separator{margin:0 8px}.institution-emblem{width:57px;height:57px}.institution-brand{gap:13px}.landing .landing-navigation{gap:20px;white-space:nowrap}.landing .landing-online{display:none}.topbar--institution .institution-line{font-size:14px}}@media (max-width:760px){.landing .landing-header:has(.institution-brand){min-height:0;padding:17px 0 12px;flex-wrap:wrap;gap:12px}.landing .landing-brand:has(.institution-brand){width:100%}.landing .landing-navigation{margin-left:auto}.institution-brand{gap:12px}.institution-emblem{width:54px;height:54px}.institution-line{display:block;font-size:11px;line-height:1.6;letter-spacing:.4px}.institution-school{display:block;font-size:16px;font-weight:600;margin-bottom:3px;letter-spacing:1px}.institution-college .institution-separator{display:none}.institution-separator{margin:0 7px}.institution-platform{font-size:9px;letter-spacing:1.2px;gap:0;margin-top:5px}.institution-platform>span{display:none}.app .topbar.topbar--institution{padding:12px;gap:12px}.topbar--institution .institution-emblem{width:48px;height:48px}.topbar--institution .institution-line{font-size:10px;letter-spacing:0}.topbar--institution .institution-school{font-size:14px;letter-spacing:.6px}.topbar--institution .institution-platform{font-size:9px;letter-spacing:1px}.topbar--institution .lab-home-link{order:2;margin-left:auto;font-size:10px;padding:6px 7px}}@media (max-width:420px){.topbar--institution .institution-brand{gap:8px}.topbar--institution .institution-emblem{width:40px;height:40px}.topbar--institution .institution-school{font-size:14px}.topbar--institution .institution-line{font-size:10px}.topbar--institution .institution-separator{margin:0 5px}.app .topbar.topbar--institution{gap:6px}.topbar--institution .institution-platform{font-size:9px}.institution-team{display:inline-block}}.visit-counter{display:flex;align-items:center;gap:9px;flex-shrink:0;padding:10px 11px 10px 13px;border:1px solid #71c8dc29;border-radius:7px;background:#1432463d;white-space:nowrap;color:#95bbcd;font-family:Microsoft YaHei,PingFang SC,sans-serif;letter-spacing:0}.visit-counter-icon{width:20px;height:20px;color:#6cdbc9;flex-shrink:0}.visit-counter-label{font-size:11px;letter-spacing:.5px}.visit-counter-reading{display:flex;gap:5px;align-items:baseline;min-width:56px}.visit-counter-reading strong{font-size:20px;font-weight:600;color:#a0eddf;font-variant-numeric:tabular-nums;line-height:1.2}.visit-counter-reading small{font-size:10px;color:#91afc0}.visit-counter .visit-counter-refresh{display:grid;place-items:center;background:none;border:0;border-radius:4px;padding:4px;color:#83a6b9;cursor:pointer}.visit-counter-refresh svg{width:14px;height:14px}.visit-counter-refresh:hover{color:#bcf5ec;background:#78d4dc18}.visit-counter-refresh:focus-visible{outline:2px solid #7ce4d6;outline-offset:2px}.visit-counter-refresh:disabled{opacity:.4;cursor:wait}.visit-counter .visit-counter-refresh.has-error{color:#efbd78}.topbar--institution>.visit-counter{margin-left:auto}.landing .landing-header{flex-wrap:wrap}.landing .landing-header>.visit-counter{margin-left:auto}@media (max-width:1100px){.app .topbar.topbar--institution{flex-wrap:wrap;gap:12px 18px}.topbar--institution>.visit-counter{padding:6px 10px}.visit-counter-reading strong{font-size:18px}.landing .landing-header{gap:15px;padding-bottom:16px}.landing .landing-header>.visit-counter{padding:7px 10px}}@media (max-width:760px){.app .topbar.topbar--institution{gap:10px 6px}.topbar--institution>.visit-counter{order:3;flex-basis:100%;justify-content:center;margin-left:0;padding:6px 9px}.visit-counter-label{font-size:10px}.visit-counter-reading strong{font-size:17px}.visit-counter-icon{width:17px;height:17px}.landing .landing-header>.visit-counter{order:1;margin-left:0;gap:7px;padding:6px 8px}.landing .landing-header>.landing-navigation{order:2}.visit-counter-reading{min-width:50px}}.landing{--ice:#9aeeff;--muted:#7e9cb5;position:relative;isolation:isolate;height:100%;overflow:auto;overflow-x:hidden;color:#e4f3ff;background:radial-gradient(ellipse at 81% 32%,#16355488 0,transparent 43%),radial-gradient(ellipse at 77% 0,#33295c40,transparent 45%),linear-gradient(120deg,#061421,#071727 57%,#09192a);font-family:Microsoft YaHei,PingFang SC,sans-serif;padding:0 clamp(24px,5.6vw,100px);display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:#285067 #071727}.landing a{color:inherit;text-decoration:none}.landing button{font:inherit}.landing a:focus-visible,.landing button:focus-visible{outline:2px solid #a4efff;outline-offset:6px}.landing-grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.16;background-image:linear-gradient(#638eab24 1px,transparent 1px),linear-gradient(90deg,#638eab24 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(90deg,#000,transparent 85%);mask-image:linear-gradient(90deg,#000,transparent 85%)}.landing-orbit{position:absolute;width:850px;height:850px;border:1px solid #4c9fc00b;border-radius:50%;pointer-events:none;z-index:-1}.orbit-one{left:-580px;top:80px;box-shadow:0 0 0 45px #4b92be04,0 0 0 90px #4b92be03}.orbit-two{right:-390px;top:-300px;width:1200px;height:1200px;border-color:#6481b90c;box-shadow:0 0 0 28px #4b92be04}.landing-header{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #8ad8ed20;flex-shrink:0}.landing-brand{display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:2.8px;font-weight:500}.landing-brand small{display:block;color:#7294ab;font-size:8px;letter-spacing:3.6px;margin-top:8px}.brand-symbol{width:35px;height:39px;border:1px solid #8cdef94d;border-radius:7px;background:#51bfe610;display:grid;place-items:center;box-shadow:inset 0 0 15px #51bfe60b}.brand-symbol svg{width:24px;color:#8bd4eb}.landing-navigation{display:flex;gap:34px;font-size:12px;letter-spacing:1px}.landing-navigation a{padding:12px 0;color:#87a4bc;transition:color .2s}.landing-navigation a:hover,.landing-navigation a[aria-current]{color:#d6f5ff}.landing-navigation span{font-size:9px;color:#568ba5;margin-right:7px}.landing-online{font-size:9px;letter-spacing:2.2px;color:#85a4bd;white-space:nowrap}.landing-online i,.visual-live i{display:inline-block;width:5px;height:5px;background:#83e8e6;border-radius:50%;margin-right:9px;box-shadow:0 0 10px #70e5ff88}.landing-hero{position:relative;display:grid;grid-template-columns:46% 54%;align-items:center;flex:1;min-height:575px;max-height:900px;padding:38px 0 32px}.hero-copy{position:relative;z-index:2;padding:15px 0 20px;pointer-events:none}.hero-copy a{pointer-events:auto}.hero-eyebrow{font-size:11px;color:#77c6e0;letter-spacing:5px;display:flex;align-items:center;gap:13px;margin-bottom:28px}.hero-eyebrow>span{width:20px;height:1px;background:#67d7ec;box-shadow:0 0 8px #67d7ec}.hero-copy h1{font-size:clamp(43px,4.65vw,76px);font-weight:800;line-height:1.32;letter-spacing:2px;white-space:nowrap;color:#e0f8ff}.hero-copy h1>span{background:linear-gradient(95deg,#def8ff 0,#91e8fb 57%,#57cde9);background-clip:text;-webkit-background-clip:text;color:transparent}.hero-rule{display:flex;align-items:center;gap:15px;margin:24px 0}.hero-rule>span{height:1px;width:117px;background:linear-gradient(90deg,#5ad8f0,#98f0ff);position:relative;box-shadow:0 0 10px #6adeff6b}.hero-rule>span:after{content:"";width:4px;height:4px;position:absolute;right:0;top:-1.5px;border-radius:50%;background:#c5f9ff;box-shadow:0 0 8px #82e7ff}.hero-rule small{font-size:8px;letter-spacing:2.5px;color:#5b93b2}.hero-description{font-size:19px;letter-spacing:2px;color:#b4d4e5;margin-bottom:13px}.hero-detail{font-size:13px;line-height:2.05;letter-spacing:1px;color:#6e93af}.hero-start{display:flex;align-items:center;gap:19px;width:230px;min-height:68px;margin-top:32px;padding:12px 22px;color:#062031!important;background:linear-gradient(110deg,#b4f4ff,#63d5ed);border:1px solid #c5f5ff;border-radius:3px;box-shadow:0 0 30px #38b5df1b,inset 0 1px #fff8;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden}.hero-start:after{content:"";position:absolute;top:-100%;right:0;bottom:-100%;left:0;background:linear-gradient(115deg,transparent 40%,#fff7 50%,transparent 60%);transform:translate(-100%);animation:cta-sweep 7s ease-in-out infinite}.hero-start:hover{transform:translateY(-3px);box-shadow:0 6px 35px #46d7ff46}.start-play{font-size:12px}.hero-start>span:nth-child(2){font-size:17px;letter-spacing:3px;font-weight:700}.hero-start small{display:block;font-size:7px;letter-spacing:2px;font-weight:500;margin-top:5px;opacity:.6}.hero-start>svg{width:25px;margin-left:auto}.hero-capabilities{display:flex;gap:21px;margin-top:26px;font-size:10px;letter-spacing:1px;color:#719db7}.hero-capabilities>span+span:before{content:"/";color:#36617b;margin-right:21px}.hero-capabilities i{display:inline-block;height:4px;width:4px;border-radius:50%;background:#82d6e8;margin-right:8px}.hero-visual{position:relative;min-width:0;height:100%;min-height:525px;margin-left:-35px;margin-right:-35px;align-self:stretch}.hero-canvas{position:absolute;top:0;right:-2%;bottom:0;left:-4%;z-index:1;touch-action:pan-y}.hero-canvas canvas{width:100%;height:100%;display:block}.visual-halo{position:absolute;top:10%;right:-10%;bottom:10%;left:-10%;background:radial-gradient(ellipse,#3c90cb19,transparent 65%);filter:blur(20px);animation:halo-breathe 8s ease-in-out infinite}.visual-streams{position:absolute;top:-12%;right:-12%;bottom:0;left:-25%;width:137%;height:100%;overflow:visible;opacity:.65;pointer-events:none}.stream-tracer{stroke-dasharray:30 1100;animation:stream-flow 10s linear infinite}.visual-heading{position:absolute;z-index:2;top:10%;left:12%;right:0;display:flex;justify-content:space-between;gap:10px;font-size:8px;color:#628fae;letter-spacing:1.8px;white-space:nowrap}.visual-live{font-size:10px;letter-spacing:1.2px;color:#86bcd4}.visual-live i{height:4px;width:4px}.visual-equation{position:absolute;top:28%;right:1%;color:#85b9d5;opacity:.6;z-index:2;transform:rotate(-2deg)}.visual-equation>span{font-family:Georgia,serif;font-style:italic;font-size:18px;letter-spacing:2px}.visual-equation small{display:block;font-size:6px;letter-spacing:1.4px;margin-top:9px}.visual-bottom{position:absolute;left:11%;right:0;bottom:7%;display:flex;align-items:center;justify-content:space-between;gap:14px;z-index:2}.visual-caption{display:flex;gap:12px;align-items:center;color:#8fb6cb;font-size:11px;letter-spacing:1px}.caption-cross{font-size:23px;color:#528aa5;font-weight:200}.visual-caption small{display:block;font-size:6px;letter-spacing:2px;color:#547f9b;margin-top:7px}.motion-toggle{padding:8px 11px;border:1px solid #81cce526;color:#8bb2c8;background:#0a1e2c77;border-radius:3px;cursor:pointer;display:flex;gap:8px;align-items:center;font-size:13px!important}.motion-toggle span{font-size:9px;letter-spacing:1px}.motion-toggle:hover{border-color:#8be5fc88;color:#c6f3ff}.stress-legend{position:absolute;bottom:0;right:0;display:flex;gap:9px;align-items:center;font-size:8px;color:#70a3bc;letter-spacing:1px;z-index:2}.stress-legend i{width:105px;height:3px;border-radius:5px;background:linear-gradient(90deg,#4cd2f1,#c7efff,#e891cd);box-shadow:0 0 8px #87cfff30}.stress-legend>span:nth-of-type(2){color:#be8eb3}.stress-legend small{font-size:8px;color:#567b91;margin-left:14px}.beam-fallback{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.landing-experiments{position:relative;z-index:2;padding:26px 0 0;flex-shrink:0;border-top:1px solid #73b5d31c}.experiments-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.experiments-heading h2{font-size:12px;font-weight:400;letter-spacing:2px;color:#a1c1d5}.experiments-heading h2 span{font-size:7px;letter-spacing:2px;color:#4f7896;margin-left:20px}.experiments-heading>a{font-size:10px;color:#80aac3;letter-spacing:1px}.experiments-heading>a>span{margin-left:12px;color:#97e0f4}.experiment-links{display:grid;grid-template-columns:repeat(6,1fr);gap:13px}.experiment-link{display:flex;gap:14px;align-items:center;min-height:79px;padding:17px 19px;border:1px solid #6eabcc33;background:linear-gradient(110deg,#18334b40,#15263c38);border-radius:4px;position:relative;transition:background .2s,border-color .2s,transform .2s}.experiment-link:after{content:"";position:absolute;width:5px;height:5px;right:5px;top:5px;border-top:1px solid #78b8df44;border-right:1px solid #78b8df44}.experiment-link:hover{background:#16415a80;border-color:#71dcf58c;transform:translateY(-3px)}.experiment-link>svg{width:26px;height:29px;color:#7cbed7;flex-shrink:0}.experiment-link>div{font-size:12px;letter-spacing:1px;color:#aacbdf;white-space:nowrap}.experiment-link small{display:block;font-size:6px;letter-spacing:1.6px;color:#557f9c;margin-top:8px}.experiment-number{margin-left:auto;align-self:flex-start;font-size:8px;color:#426d8b}.experiment-arrow{display:none;position:absolute;right:14px;color:#88deed}.experiment-link:hover .experiment-number{opacity:0}.experiment-link:hover .experiment-arrow{display:block}.landing-footer{padding:24px 0 25px;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.7px;color:#496c86;gap:20px;flex-shrink:0}.landing-footer>span:nth-child(2){font-size:7px;letter-spacing:2px}.landing-footer b{font-weight:400;margin:0 10px;color:#568da2}.footer-coordinate{font-size:8px}.footer-coordinate i{display:inline-block;height:6px;width:1px;transform:rotate(30deg);background:#426c7f;margin:0 10px}.lab-home-link{color:#8ed8f4;text-decoration:none;white-space:nowrap;font-size:12px;padding:8px 11px;border:1px solid #87c6ff33;border-radius:5px;align-self:center}.lab-home-link:hover{background:#87c6ff14}.lab-loading{height:100%;display:grid;place-items:center;color:#8cdaed;font-size:16px;letter-spacing:3px;background:#071727}@keyframes stream-flow{0%{stroke-dashoffset:1130}to{stroke-dashoffset:0}}@keyframes halo-breathe{50%{opacity:.45;transform:scale(.9)}}@keyframes cta-sweep{0%,65%{transform:translate(-100%)}90%,to{transform:translate(100%)}}.landing-paused *,.landing-paused *:after{animation-play-state:paused!important}@media (min-width:1440px){.landing{padding-left:clamp(48px,4vw,120px);padding-right:clamp(48px,4vw,120px)}.landing-hero{grid-template-columns:34% 66%;max-height:none;min-height:600px}.hero-copy h1{font-size:clamp(64px,4vw,100px)}.hero-visual{margin-left:-20px;margin-right:0}.hero-canvas{top:0;right:-2%;bottom:0;left:-4%}.visual-heading,.visual-bottom{left:7%;right:2%}.stress-legend{right:2%}.hero-description{font-size:clamp(19px,1.1vw,25px)}.hero-detail{font-size:clamp(13px,.7vw,16px)}.experiment-links{gap:18px}.experiment-link{padding:20px 24px;min-height:88px}.experiment-link>div{font-size:14px}}@media (min-width:2200px){.landing-header{min-height:120px}.landing-hero{min-height:720px}.hero-start{width:260px;min-height:76px}.hero-capabilities{font-size:12px}.landing-experiments{padding-top:30px}.experiment-link{min-height:100px}.landing-footer{padding:28px 0 30px}}@media (max-height:850px) and (min-width:1000px){.landing-header{min-height:80px}.landing-hero{min-height:490px;padding:24px 0}.hero-visual{min-height:465px}.hero-eyebrow{margin-bottom:19px}.hero-copy h1{font-size:clamp(43px,4.4vw,68px)}.hero-rule{margin:18px 0}.hero-start{margin-top:23px;min-height:62px}.hero-capabilities{margin-top:20px}.landing-experiments{padding-top:20px}.landing-footer{padding:19px 0}.experiment-link{min-height:68px}}@media (max-width:1100px){.landing{padding:0 34px}.landing-navigation{gap:20px}.landing-online{display:none}.landing-hero{grid-template-columns:47% 53%;min-height:545px}.hero-copy h1{font-size:47px;letter-spacing:1px}.hero-visual{margin-right:-12px;min-height:500px}.hero-description{font-size:17px}.hero-detail{font-size:12px}.hero-capabilities{gap:12px}.hero-capabilities>span+span:before{margin-right:12px}.visual-heading{left:16%;font-size:6px;flex-direction:column;gap:12px}.visual-live{font-size:9px}.experiment-link{padding:14px 12px;gap:10px}.experiment-link>div{font-size:11px}.experiment-number{display:none}.experiment-link>svg{width:22px}.hero-visual .visual-equation{right:-6px}.landing-footer>span:nth-child(2){letter-spacing:1px}}@media (max-width:760px){.landing{padding:0 24px;display:block}.landing-header{min-height:86px;gap:15px}.landing-brand{font-size:8px;letter-spacing:1.7px;gap:10px}.landing-brand small{font-size:6px;letter-spacing:2px}.brand-symbol{width:29px;height:34px}.landing-navigation{gap:12px;font-size:10px}.landing-navigation a:first-child,.landing-navigation span{display:none}.landing-hero{display:flex;flex-direction:column;min-height:0;padding:43px 0 14px;max-height:none;align-items:stretch}.hero-copy{padding:0;pointer-events:auto}.hero-eyebrow{font-size:10px;margin-bottom:19px;letter-spacing:4px}.hero-copy h1{font-size:clamp(34px,7.8vw,56px);line-height:1.35;letter-spacing:2px}.hero-rule{margin:19px 0}.hero-description{font-size:16px}.hero-detail{font-size:12px;line-height:1.9}.hero-detail br{display:none}.hero-start{width:215px;min-height:62px;margin-top:24px}.hero-start>span:nth-child(2){font-size:15px}.hero-capabilities{margin-top:21px;font-size:9px}.hero-visual{height:370px;min-height:0;margin:-8px -9px 0}.hero-canvas{top:0;right:0;bottom:0;left:0}.visual-heading{top:7%;left:4%;font-size:6px;flex-direction:row;right:0}.visual-equation{top:31%;right:0!important;font-size:13px}.visual-equation small{display:none}.visual-bottom{bottom:10%;left:2%;right:1%}.visual-caption{font-size:9px;gap:8px}.visual-caption small{font-size:5px;letter-spacing:1.4px}.stress-legend{bottom:0;font-size:7px}.stress-legend small{font-size:7px}.visual-streams{top:-13%;right:-15%;bottom:0;left:-20%;opacity:.5}.landing-experiments{padding-top:23px}.experiments-heading{margin-bottom:16px}.experiments-heading h2{font-size:11px;letter-spacing:1px}.experiments-heading h2 span{display:none}.experiments-heading>a{font-size:9px}.experiment-links{grid-template-columns:repeat(2,1fr);gap:10px}.experiment-link{min-height:70px;padding:15px;gap:12px}.experiment-link>div{font-size:12px}.experiment-link:last-child{grid-column:1/-1}.experiment-link:last-child .experiment-arrow{display:block}.landing-footer{padding:22px 0 26px;font-size:8px;letter-spacing:1px}.landing-footer>span:nth-child(2){display:none}.motion-toggle span{font-size:8px}.lab-home-link{font-size:11px;padding:6px}}@media (prefers-reduced-motion:reduce){.landing *,.landing *:after{animation:none!important;transition:none!important}}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-0: #04060d;--bg-1: #080c1a;--panel: rgba(16, 23, 46, .55);--panel-border: rgba(120, 160, 255, .16);--panel-border-strong: rgba(135, 175, 255, .38);--text: #d8e3fb;--text-dim: rgba(165, 188, 238, .72);--accent: #5aa2ff;--accent-soft: rgba(90, 162, 255, .35);--cyan: #7ee0c2;--amber: #ffd28a}html,body,#root{height:100%}body{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;background:radial-gradient(1100px 700px at 72% -12%,rgba(58,92,190,.28) 0%,transparent 60%),radial-gradient(900px 650px at -8% 108%,rgba(38,70,150,.2) 0%,transparent 55%),radial-gradient(700px 500px at 105% 85%,rgba(150,95,40,.08) 0%,transparent 60%),linear-gradient(180deg,var(--bg-1) 0%,var(--bg-0) 100%);color:var(--text);overflow:hidden}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:baseline;gap:18px;padding:15px 26px;background:#0a0f208c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(120,165,255,.45),transparent) 1;box-shadow:0 4px 24px #00000080}.logo{font-size:21px;font-weight:800;letter-spacing:2.5px;background:linear-gradient(92deg,#8fc0ff,#d6e6ff 55%,#8fd8ff);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(110,165,255,.35)}.subtitle{font-size:11px;color:#9bb6e88c;letter-spacing:3.5px;text-transform:uppercase}.body{display:flex;flex:1;min-height:0}.sidenav{width:214px;padding:18px 12px;display:flex;flex-direction:column;gap:7px;background:#080c1a8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-right:1px solid rgba(110,150,255,.12)}.nav-item{position:relative;display:flex;align-items:center;gap:10px;padding:12px 14px 12px 18px;border:1px solid transparent;border-radius:10px;background:transparent;color:#aebde6;font-size:14px;letter-spacing:.5px;cursor:pointer;text-align:left;transition:all .2s ease}.nav-item:before{content:"";position:absolute;left:5px;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:60%;border-radius:2px;background:linear-gradient(180deg,#7db4ff,#4f8fff);box-shadow:0 0 10px #6ea5ffe6;transition:transform .22s ease}.nav-item:hover{background:#4669be29;color:#e8f0ff;transform:translate(2px)}.nav-item.active{background:linear-gradient(90deg,#4c78dc61,#4c78dc14);border-color:var(--panel-border-strong);color:#fff;box-shadow:0 0 18px #5082ff47,inset 0 1px #c8dcff1f}.nav-item.active:before{transform:translateY(-50%) scaleY(1)}.nav-icon{font-size:17px;filter:drop-shadow(0 0 6px rgba(120,170,255,.35))}.content{flex:1;min-width:0;padding:16px 20px;display:flex;flex-direction:column}.module-title{font-size:18px;font-weight:700;letter-spacing:1px;margin-bottom:12px;background:linear-gradient(90deg,#eef4ff,#a9c6f8);-webkit-background-clip:text;background-clip:text;color:transparent}.module-shell{display:flex;gap:16px;flex:1;min-height:0}.viewport-wrap{flex:1;min-width:0;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--panel-border-strong);background:radial-gradient(800px 500px at 50% 0%,rgba(50,80,160,.22),transparent 70%),linear-gradient(180deg,#0d1430,#080d20 60%,#05070f);box-shadow:inset 0 0 70px #192d6959,0 10px 40px #00000073,0 0 0 1px #0000004d}.viewport{position:absolute;top:0;right:0;bottom:0;left:0}.viewport canvas{display:block}.viewport-hint{position:absolute;left:12px;bottom:10px;font-size:11px;letter-spacing:.5px;color:#afc8f899;background:#060a1899;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:5px 11px;border-radius:7px;border:1px solid rgba(120,160,255,.14);pointer-events:none}.side-panel{width:400px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:2px}.side-panel::-webkit-scrollbar{width:6px}.side-panel::-webkit-scrollbar-thumb{background:#6e96ff4d;border-radius:3px}.param-box,.teaching,.reading-item{background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);box-shadow:inset 0 1px #c8dcff0f,0 6px 20px #00000047}.btn-row{display:flex;gap:10px}.btn{flex:1;padding:10px 0;border-radius:10px;border:1px solid rgba(120,160,255,.32);background:linear-gradient(180deg,#344c8a80,#22346480);color:#dbe7ff;font-size:14px;letter-spacing:1px;cursor:pointer;transition:all .16s ease;box-shadow:inset 0 1px #c8dcff1a}.btn:hover:not(:disabled){background:linear-gradient(180deg,#4868b49e,#3048849e);box-shadow:0 0 16px #5a8cff66,inset 0 1px #d2e4ff29;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:focus-visible{outline:2px solid rgba(140,185,255,.7);outline-offset:2px}.btn:disabled{opacity:.38;cursor:default}.btn-primary{background:linear-gradient(135deg,#4a7ee8,#2f56b8);border-color:#96beff8c;box-shadow:0 4px 18px #3c6ee659,inset 0 1px #dcebff40}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#5a8cf5,#3a64cc);box-shadow:0 6px 24px #4678f580,inset 0 1px #dcebff4d}.btn-danger{border-color:#ff8c7859}.btn-danger:hover:not(:disabled){background:linear-gradient(180deg,#a544388c,#782e288c);box-shadow:0 0 14px #ff6e5a59}.progress-row{display:flex;align-items:center;gap:10px}.progress-label{font-size:12px;letter-spacing:1px;color:var(--text-dim);white-space:nowrap}.progress-track{flex:1;height:8px;border-radius:5px;background:#18244ad9;border:1px solid rgba(110,150,255,.14);overflow:hidden;box-shadow:inset 0 1px 3px #00000080}.progress-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#3d8bff,#7ee0c2);box-shadow:0 0 12px #5aaaffbf;transition:width .1s linear}.progress-value{font-size:12px;width:38px;text-align:right;color:#9fd8ff;font-variant-numeric:tabular-nums;text-shadow:0 0 8px rgba(120,200,255,.5)}.finish-tag{align-self:flex-start;font-size:12px;letter-spacing:1px;color:#7ee0c2;padding:4px 12px;border-radius:999px;border:1px solid rgba(126,224,194,.4);background:#2e8c7326;box-shadow:0 0 14px #7ee0c240}.param-box{padding:12px 14px;border-radius:12px}.param-title{font-size:12px;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:8px}.param-title+.param-num-group,.radio-group+.param-title,.param-num-group+.param-title{margin-top:12px}.radio-group{display:flex;flex-wrap:wrap;gap:8px}.radio-item{display:flex;align-items:center;gap:6px;font-size:13px;padding:7px 12px;border-radius:8px;border:1px solid rgba(110,150,255,.24);background:#1a285080;cursor:pointer;transition:all .16s ease}.radio-item:hover{border-color:#8cb9ff80;transform:translateY(-1px)}.radio-item input{accent-color:#5aa2ff}.radio-item.active{border-color:#8cb9ffbf;background:linear-gradient(180deg,#507ad680,#3858a280);color:#fff;box-shadow:0 0 12px #5a8cff59,inset 0 1px #d2e4ff26}.param-num-group{display:flex;flex-direction:column;gap:8px}.param-num{display:flex;align-items:center;gap:8px;font-size:13px;color:#c6d5f6}.param-num-label{flex:1;letter-spacing:.5px}.param-num input{width:96px;padding:6px 9px;border-radius:8px;border:1px solid rgba(110,150,255,.3);background:#080d1ebf;color:#eaf2ff;font-size:13px;font-variant-numeric:tabular-nums;text-align:right;transition:all .16s ease;box-shadow:inset 0 1px 4px #00000073}.param-num input:hover{border-color:#8cb9ff80}.param-num input:focus{outline:none;border-color:#8cbeffd9;box-shadow:0 0 12px #5a96ff59,inset 0 1px 4px #00000073}.param-num-unit{width:36px;font-size:12px;color:var(--text-dim)}.readings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reading-item{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border-radius:10px;position:relative;overflow:hidden}.reading-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#6ea5ffb3,#6ea5ff1a)}.reading-label{font-size:11px;letter-spacing:1px;color:var(--text-dim)}.reading-value{font-size:14px;font-weight:700;letter-spacing:.5px;color:#a5dcff;font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(110,190,255,.4)}.chart-box{border-radius:14px;overflow:hidden;border:1px solid var(--panel-border-strong);height:240px;flex-shrink:0;box-shadow:0 8px 26px #00000059,inset 0 1px #c8dcff0f}.chart-canvas{width:100%;height:100%;display:block}.teaching{padding:13px 15px;border-radius:12px;font-size:13px;line-height:1.8;color:#c3d2f2}.teaching h4{font-size:13px;letter-spacing:1.5px;color:#8fb8ff;margin:8px 0 4px;text-shadow:0 0 12px rgba(110,165,255,.35)}.teaching h4:first-child{margin-top:0}.teaching p{margin-bottom:6px}.teaching b{color:var(--amber)}
