:root{--green:#087355;--deep:#07503e;--mint:#eaf5ee;--ink:#202f2c;--muted:#74817c;--line:#e5ebe7;--bg:#f6f8f7}*{box-sizing:border-box}body{margin:0;font-family:'Noto Sans SC',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button,a,input,textarea,select{outline-offset:4px}a{color:var(--green);text-decoration:none}button{border:0;background:transparent;color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:27px;font-weight:600;letter-spacing:1px;margin-bottom:10px}h2{font-size:18px;font-weight:600}h3{font-size:16px}p{line-height:1.8}small,.small{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.app{display:flex;min-height:100vh}.sidebar{position:fixed;width:238px;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 26px}.brand img{width:42px;height:46px;object-fit:contain}.brand strong{font-size:22px;letter-spacing:3px}.brand small{display:block;font-size:10px;letter-spacing:1px;margin-top:3px}.newchat,.primary{background:var(--green);color:#fff;border-radius:8px;padding:11px 18px;font-weight:500;display:inline-flex;gap:8px;align-items:center;justify-content:center}.newchat{width:100%;margin-bottom:22px}.nav-label{font-size:11px;color:#929b96;padding:14px 12px 8px;letter-spacing:1px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 14px;text-align:left;margin:3px 0;border-radius:7px;color:#606e66}.nav-item.active{color:var(--green);background:var(--mint);font-weight:600}.nav-item:hover{background:#f0f5f2}.nav-item svg{width:18px;height:18px}.nav-item .pill{margin-left:auto;font-size:10px}.sidebar-bottom{margin-top:auto;padding-top:30px}.lab{background:#f5f8f6;padding:14px 12px;border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.8}.lab strong{font-size:12px;display:block}.lab span{color:var(--muted);font-size:11px}.main{margin-left:238px;width:calc(100% - 238px)}header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:15px}header .institution{font-size:13px;color:#4a5a51}header .institution span{color:#a1aaa5;padding:0 12px}.header-right{display:flex;align-items:center;gap:21px}.avatar{background:#e5eee9;color:var(--green);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-weight:600}.iconbtn{padding:5px;display:inline-flex;align-items:center;gap:6px}.icon{width:20px;height:20px;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.content{max-width:1510px;margin:auto;padding:32px 38px 20px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--green);margin-bottom:12px}.heading p{color:var(--muted);margin:0;font-size:14px}.badge,.pill{display:inline-block;font-size:12px;padding:4px 9px;background:#edf5ee;border-radius:5px;color:var(--green)}.badge.orange{color:#ac6b27;background:#fff3df}.badge.blue{color:#3f6c9f;background:#eef3fb}.badge.red{color:#b14f41;background:#fceee9}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:22px}.assistant-panel{padding:28px 28px 20px;background:linear-gradient(115deg,#edf7f0 0%,#f4faf7 45%,#f0f6f6 100%);border-color:#dceae0;position:relative}.assistant-title{display:flex;align-items:center;gap:12px}.spark-box{width:40px;height:40px;border-radius:11px;background:var(--green);color:white;display:grid;place-items:center;box-shadow:0 4px 9px #08735524}.assistant-title h2{margin:0 0 3px;font-size:21px}.assistant-title p{margin:0;font-size:13px;color:#738478}.composer{background:white;border:1px solid #cfdfd4;border-radius:10px;padding:16px;margin-top:22px;box-shadow:0 4px 12px #264f3810}.composer textarea{width:100%;height:72px;resize:vertical;border:0;background:none;outline:none;font-size:15px;line-height:1.8}.composer textarea::placeholder{color:#96a29a}.composer-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.softbtn,.outline{background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:7px;display:inline-flex;align-items:center;gap:7px}.softbtn{background:#f7f9f7;font-size:12px}.send{border-radius:7px;width:34px;height:34px;background:var(--green);color:white;display:grid;place-items:center}.suggestions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.suggestions button{font-size:12px;color:#5d7565;padding:5px 8px;border:1px solid #dce8df;border-radius:5px;background:#ffffff80}.section-title{display:flex;align-items:center;justify-content:space-between;margin:25px 0 15px}.section-title h2{margin:0}.textbtn{color:var(--muted);font-size:12px}.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tool-card{background:white;border:1px solid var(--line);border-radius:10px;padding:20px;text-align:left;transition:.2s}.tool-card:hover{border-color:#85b29a;transform:translateY(-2px);box-shadow:0 6px 20px #1b583410}.tool-icon{width:39px;height:39px;display:grid;place-items:center;background:#eaf3ef;color:#168268;border-radius:9px;margin-bottom:15px}.tool-card:nth-child(2) .tool-icon{background:#edf1fd;color:#637bd1}.tool-card:nth-child(3) .tool-icon{background:#fff2e3;color:#c88f40}.tool-card:nth-child(4) .tool-icon{background:#edf5f9;color:#4083a7}.tool-card:nth-child(5) .tool-icon{background:#f2edf9;color:#936fc3}.tool-card h3{margin-bottom:7px}.tool-card p{font-size:12px;line-height:1.75;color:var(--muted);margin:0}.tool-card .arrow{float:right;color:#9faea4}.progress-list{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid #f0f3f0}.progress-list:last-child{border:0;padding-bottom:0}.progress-list .tool-icon{width:35px;height:35px;flex-shrink:0;margin:0}.progress-list strong{font-size:13px;font-weight:500}.progress-list p{font-size:11px;color:var(--muted);margin:5px 0}.progressbar{height:4px;background:#e9eeea;border-radius:5px;margin:8px 0}.progressbar span{display:block;height:100%;background:#4b9a77;border-radius:5px}.aside-panel{padding:20px}.aside-panel h2{font-size:15px}.date-card{display:flex;justify-content:space-between;align-items:center;margin:0 0 20px;color:#7c8881;font-size:12px}.date-card b{font-size:22px;font-weight:500;color:var(--ink)}.topic{background:#0c624d;color:white;padding:23px;border:0;overflow:hidden}.topic .eyebrow{color:#b2d8c3;font-size:10px}.topic h2{font-size:21px;line-height:1.7;font-weight:500}.topic p{font-size:12px;color:#b9d5c8}.topic button{color:white;border:1px solid #568d79;background:#ffffff0b;padding:8px 14px;border-radius:5px;font-size:12px}.topic-tags{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.topic-tags span{font-size:11px;padding:4px 7px;background:#ffffff14;border-radius:4px;color:#d2e6db}.resources-row{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.resources-row:last-child{border:0}.docicon{font-size:11px;border-radius:5px;background:#eef2f9;color:#5b79a7;padding:12px 8px}.resources-row h3{font-size:13px;margin:0 0 7px;font-weight:500}.resources-row p{font-size:11px;color:var(--muted);margin:0}.resource-main{flex:1}.bottomline{text-align:center;padding:24px 0 0;color:#95a199;font-size:11px}.two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.four{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stats{display:flex;justify-content:space-between;gap:14px}.stat{padding:20px;background:white;border:1px solid var(--line);border-radius:10px}.stat b{font-size:27px;display:block;margin:9px 0}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.search{border:1px solid var(--line);padding:11px 14px;border-radius:8px;background:white;min-width:240px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filters button{padding:8px 13px;border-radius:6px;color:var(--muted)}.filters .selected{color:var(--green);background:#e3f0e8}.course{border:1px solid var(--line);border-radius:11px;background:white;overflow:hidden}.course-cover{padding:24px;background:#e8f1ec;min-height:120px;position:relative}.course-cover .icon{width:35px;height:35px;margin-bottom:10px}.course-cover h2{font-size:20px;margin:0}.course-body{padding:20px}.course-body p{font-size:13px;color:var(--muted)}.course-body button{margin-top:12px;width:100%}.course:nth-child(3n+2) .course-cover{background:#edf0f7;color:#56718a}.course:nth-child(3n) .course-cover{background:#f5efe3;color:#89754f}label{display:block;margin:16px 0 7px;font-weight:500}input:not([type=checkbox]):not([type=radio]),select,textarea.field{width:100%;border:1px solid #dbe3dd;border-radius:7px;background:#fff;padding:11px 12px;color:var(--ink)}textarea.field{min-height:100px;resize:vertical}.full{width:100%}.empty{padding:50px;text-align:center;color:var(--muted)}.upload{border:1.5px dashed #b7cdbd;border-radius:10px;text-align:center;padding:40px 20px;background:#f5faf6;cursor:pointer}.upload .icon{height:35px;width:35px;color:#75977f}.upload p{margin:12px 0 0}.upload input{margin-top:20px}.result{line-height:1.9}.result h3{color:var(--green);margin:22px 0 7px}.result ul{padding-left:22px}.result p{font-size:14px}.notice{border-left:3px solid #ba984f;background:#faf5e9;padding:13px 16px;font-size:13px;line-height:1.8;margin:16px 0}.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:23px}.chat-thread{min-height:220px}.message{padding:20px 23px;margin:14px 0;background:white;border:1px solid var(--line);border-radius:11px}.message.user{background:#edf4ef;margin-left:60px;border:0}.message .message-label{font-size:12px;color:var(--green);margin-bottom:12px}.message .actions{display:flex;gap:10px;margin-top:20px}.chat-side button{display:block;text-align:left;padding:13px 0;width:100%;border-bottom:1px solid var(--line);line-height:1.8}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;background:#f6f8f6;font-weight:500;color:var(--muted)}th,td{padding:15px 14px;border-bottom:1px solid var(--line)}.table-wrap{overflow:auto}.number{font-variant-numeric:tabular-nums}.tabbar{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:24px}.tabbar button{padding:13px 2px;color:var(--muted);border-bottom:2px solid transparent}.tabbar button.selected{color:var(--green);border-color:var(--green)}.item-card{padding:21px;background:white;border:1px solid var(--line);border-radius:10px}.item-card h3{line-height:1.8;margin:12px 0}.item-card p{color:var(--muted);font-size:13px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.file-preview{max-height:170px;max-width:100%;object-fit:contain;border-radius:6px}.chart{width:100%;height:210px}.chart text{font-size:11px;fill:#89968e}.chart line{stroke:#e8ede9}.chart polyline{fill:none;stroke:var(--green);stroke-width:3}.chart circle{fill:var(--green)}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;max-width:700px;width:calc(100% - 32px);max-height:85vh;box-shadow:0 24px 80px #122a3340;color:var(--ink)}dialog::backdrop{background:#142a2355;backdrop-filter:blur(3px)}dialog .close{float:right;font-size:23px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#173e30;color:white;padding:12px 22px;border-radius:8px;z-index:100;display:none;box-shadow:0 5px 30px #173e3030}.mobile-menu{display:none}.answer-source{display:block;padding:9px 12px;border:1px solid var(--line);background:#f8faf8;border-radius:6px;font-size:12px;margin:8px 0}.inline-input{display:flex;gap:10px}.workspace-document{white-space:pre-wrap;line-height:2;background:#fff;padding:32px;border:1px solid var(--line);border-radius:10px;min-height:260px}.check-option{display:block;padding:13px;border:1px solid var(--line);border-radius:7px;margin:9px 0;font-weight:400}.check-option input{margin-right:10px}.hidden{display:none!important}@media(min-width:1550px){.content{padding-top:40px}.tools-grid{gap:18px}.tool-card{padding:24px}}@media(max-width:1200px){.sidebar{width:205px;padding:24px 13px}.main{margin-left:205px;width:calc(100% - 205px)}header{padding:0 25px}.content{padding:27px 25px}.dashboard-grid{grid-template-columns:1fr 250px;gap:20px}.tools-grid{grid-template-columns:repeat(2,1fr)}.institution span{display:none}.three,.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.dashboard-grid,.chat-layout{grid-template-columns:1fr}.dashboard-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-aside .panel{margin:0}.header-right{gap:10px}.header-right .username{display:none}.two{grid-template-columns:1fr}.chat-side{display:none}}@media(max-width:650px){.sidebar{transform:translateX(-100%);width:230px;box-shadow:10px 0 30px #243b2320}.sidebar.open{transform:translateX(0)}.main{margin:0;width:100%}.mobile-menu{display:inline-block}header{height:63px;padding:0 17px}.institution{font-size:11px!important}.institution span{display:none}.content{padding:24px 16px}.heading{align-items:flex-start}h1{font-size:24px}.heading .badge{display:none}.assistant-panel{padding:20px 16px}.assistant-title h2{font-size:18px}.composer{padding:12px}.composer-bottom .softbtn{font-size:10px;padding:7px}.tools-grid{gap:10px}.tool-card{padding:17px}.dashboard-aside,.three,.four{grid-template-columns:1fr}.panel{padding:20px}.two{gap:0}.toolbar .search{min-width:0;width:100%}.row-between{flex-wrap:wrap}.stats{flex-wrap:wrap}.stat{flex:1;min-width:130px}.message.user{margin-left:25px}.bottomline{line-height:1.8}.heading p{font-size:12px}.header-right .help{display:none}}
@media(max-width:900px){.two[style]{grid-template-columns:1fr!important}}.sidebar{overflow-y:auto}.tool-card p,.resources-row p,.progress-list p,.topic p{font-size:13px}.nav-label{font-size:12px}.assistant-title p{font-size:14px}.brand small{font-size:10px}.result p,.result li,.workspace-document{font-size:16px}.course-body p{font-size:14px}

.brand small{letter-spacing:.35px;white-space:nowrap}@media(max-width:650px){.sidebar{visibility:hidden}.sidebar.open{visibility:visible}}
.sim-choice{text-align:left;cursor:pointer}.chosen{border-color:var(--green)!important;background:#eaf5ee!important;color:var(--deep)}.sim-stages,.sim-path{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}.sim-path{align-items:center;background:#f1f6f3;padding:24px 12px;border-radius:9px}.sim-path span{background:white;padding:12px;border:1px solid var(--line);border-radius:7px}.sim-observation{padding:25px;background:#edf4f0;border-radius:10px;min-height:215px}.sim-observation h3{margin-top:13px}.sim-result{border-left:3px solid var(--green);padding:15px;background:#f0f7f2;margin:20px 0}.sim-result p{margin:12px 0 0;line-height:1.9}.check-option{text-align:left}
.portal{background:#fff}.portal-nav{max-width:1320px;margin:auto;padding:22px 42px;display:flex;justify-content:space-between;align-items:center;gap:22px}.portal-brand{display:flex;gap:13px;align-items:center;color:#214b37}.portal-brand img{width:47px;height:54px;object-fit:contain}.portal-brand b{font-size:24px;letter-spacing:4px}.portal-brand small{display:block;margin-top:5px;font-size:12px;letter-spacing:.5px}.portal-nav-actions,.portal-cta{display:flex;gap:28px;align-items:center}.portal-text{color:#285e45;padding:12px 0;display:inline-flex;align-items:center;gap:10px}.portal-hero{max-width:1320px;margin:auto;padding:80px 42px 78px;display:grid;grid-template-columns:1.25fr 1fr;gap:60px;align-items:center}.portal-kicker{color:#526f5a;font-size:16px;margin:22px 0}.portal h1{font-size:clamp(40px,4.6vw,66px);line-height:1.32;letter-spacing:3px;font-weight:600;margin:0 0 25px}.portal h1 span{color:#178257}.portal-hero-copy>p{font-size:17px;line-height:2;color:#6f7f74}.portal-cta{margin:32px 0}.portal-cta .primary{padding:16px 25px;font-size:16px}.portal-disciplines{display:flex;flex-wrap:wrap;gap:18px;color:#778a7c;font-size:12px;padding-top:18px;border-top:1px solid #e1e9e3}.portal-visual{min-height:420px;background:radial-gradient(ellipse at 50% 52%,#e6f1e4 0%,#f1f7ee 35%,rgba(246,250,245,.65) 53%,rgba(255,255,255,0) 72%);border-radius:0;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:45px 25px 30px}.portal-seal{display:flex;flex-direction:column;align-items:center}.portal-seal img{width:185px;height:210px;object-fit:contain;filter:drop-shadow(0 15px 22px #3d684717)}.portal-seal span{font-size:11px;letter-spacing:3px;color:#60806c;margin:22px 0 12px}.portal-seal strong{letter-spacing:7px;color:#426450;font-weight:500}.portal-caption{margin-top:30px;font-size:12px;text-align:center;color:#6f8978;line-height:1.8}.portal-strip{background:#f2f6f3;display:grid;grid-template-columns:repeat(4,1fr);padding:30px max(42px,calc((100vw - 1236px)/2));gap:25px;border-block:1px solid #e2ebe5}.portal-strip div{border-right:1px solid #dce5dd;padding-right:20px}.portal-strip div:last-child{border:0}.portal-strip b{display:block;font-size:22px;font-weight:500;color:#275b40}.portal-strip span{display:block;font-size:12px;margin-top:10px;color:#819085}.portal-section{max-width:1320px;padding:80px 42px;margin:auto;scroll-margin-top:25px}.portal h2{font-size:30px;font-weight:500;line-height:1.5}.portal-section .row-between>p{font-size:14px;color:#7b887f}.portal-card{border-top:2px solid #609279;background:#f7f9f7;padding:30px;border-radius:0 0 10px 10px}.portal-card h3{font-size:20px;font-weight:500}.portal-card p{font-size:15px;color:#78877d;line-height:1.9;min-height:86px}.portal-card .tool-icon{width:44px;height:44px}.portal-biosafety{max-width:1236px;margin:0 auto;padding:50px 58px;display:grid;grid-template-columns:1fr 1fr;gap:65px;background:#0c503d;color:#fff;border-radius:14px}.portal-biosafety .eyebrow{color:#9cbfaf}.portal-biosafety p{color:#b2cebf;font-size:15px}.portal-biosafety .outline{color:#e6f2eb;background:transparent;border-color:#4b7c68;margin-top:13px}.portal-species{display:grid;grid-template-columns:1fr 1fr;gap:28px}.portal-species div{border-bottom:1px solid #487563;padding:0 0 20px}.portal-species span{display:block;color:#7da18e;font-size:12px;margin-bottom:15px}.portal-species strong{font-weight:500;font-size:20px}.portal-species i{display:block;font-size:12px;color:#a9c5b6;margin-top:12px}.portal-end{text-align:center;padding:80px 20px}.portal-end p{color:#7d8b81}.portal-end .primary{margin-top:15px;padding:14px 27px}.portal-footer{background:#f5f7f5;padding:28px max(42px,calc((100vw - 1236px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px;color:#7d8b81;font-size:12px}.portal-footer b{color:#375e44;font-size:18px;letter-spacing:3px}.portal-footer p{margin:8px 0 0}@media(max-width:900px){.portal-hero{gap:30px;padding-top:45px}.portal-visual{min-height:370px}.portal-seal img{width:150px;height:170px}.portal-biosafety{margin:0 25px;padding:35px;gap:25px}.portal-hero .eyebrow{font-size:10px;letter-spacing:1px}.portal-strip{grid-template-columns:1fr 1fr}.portal-section .three{grid-template-columns:1fr}.portal-card p{min-height:0}}@media(max-width:600px){.portal-nav{padding:18px 20px}.portal-brand b{font-size:20px}.portal-brand small{font-size:10px}.portal-brand img{width:35px;height:42px}.portal-nav-actions .portal-text{display:none}.portal-nav-actions .primary{font-size:12px;padding:10px}.portal-hero{grid-template-columns:1fr;padding:35px 24px 40px;gap:35px}.portal h1{font-size:43px}.portal-hero-copy>p{font-size:15px}.portal-visual{min-height:300px;border-radius:0}.portal-caption{display:none}.portal-seal img{width:140px;height:155px}.portal-cta{gap:18px}.portal-strip{padding:25px}.portal-strip b{font-size:18px}.portal-strip div:nth-child(2){border:0}.portal-section{padding:50px 24px}.portal h2{font-size:25px}.portal-biosafety{grid-template-columns:1fr;margin:0 18px;padding:30px 24px}.portal-footer{padding:25px;flex-direction:column;align-items:flex-start}.portal-end{padding:55px 24px}.portal-section .row-between{display:block}}

.syllabus-content{line-height:1.85}.syllabus-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:#f4f7f4;padding:20px;border-radius:12px}.syllabus-meta p{margin:4px 0;overflow-wrap:anywhere}.syllabus-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px}.chapter-nav{display:flex;flex-direction:column;gap:6px;max-height:650px;overflow:auto}.chapter-nav button{text-align:left;padding:12px;border-radius:8px;color:#52665a}.chapter-nav .selected{background:#e4f0e8;color:#246545;font-weight:600}.syllabus-content textarea{display:block;width:100%;min-height:145px;margin:12px 0}.syllabus-actions{display:flex;gap:10px;flex-wrap:wrap}.syllabus-content details{border-top:1px solid #e0e8e2;padding:18px 0}.syllabus-content summary{cursor:pointer;font-weight:600}.syllabus-source{margin-top:20px;line-height:1.7}.lab-entry p{overflow-wrap:anywhere}@media(max-width:760px){.syllabus-meta{grid-template-columns:1fr}.syllabus-layout{grid-template-columns:1fr}.chapter-nav{max-height:220px}.tabbar{overflow:auto}.tabbar button{flex-shrink:0}.heading .badge{white-space:normal}}
.syllabus-content textarea{border:1px solid #d8e2db;border-radius:10px;padding:14px;background:#fcfdfc;font:inherit;line-height:1.7}.syllabus-content textarea:focus{outline:2px solid #b5d4c1;outline-offset:1px}.syllabus-content h2{margin-top:24px}

.portal-brand img{height:47px;border-radius:50%}.portal-university-logo{display:block;width:min(100%,346px);height:auto;object-fit:contain;margin:0 0 42px;mix-blend-mode:multiply}.portal-visual{padding:28px 25px 30px;min-height:480px}.portal-seal img{mix-blend-mode:multiply}.portal-caption{margin-top:24px}@media(max-width:600px){.portal-brand img{height:35px}.portal-university-logo{width:min(100%,290px);margin-bottom:30px}.portal-visual{min-height:350px;padding:20px 10px}}

.portal-hero{padding-top:48px;padding-bottom:52px}.portal-cta{gap:16px;flex-wrap:wrap}.portal-cta>.outline{padding:16px 25px;font-size:16px;display:inline-flex;align-items:center;gap:10px}.portal-end-actions{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px}.portal-end-actions .primary{margin-top:0}.portal-end-actions .outline{padding:14px 27px}@media(max-width:600px){.portal-hero{padding-top:24px;padding-bottom:36px}.portal-cta .portal-text{flex-basis:100%;padding-top:0}.portal-end-actions{flex-wrap:wrap}}

@keyframes portal-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes portal-glow{0%,100%{opacity:.55;transform:scale(.96)}50%{opacity:.95;transform:scale(1.04)}}
.portal-hero-copy>*{animation:portal-enter .7s ease-out both}
.portal-hero-copy>.portal-kicker{animation-delay:.08s}.portal-hero-copy>h1{animation-delay:.16s}.portal-hero-copy>p{animation-delay:.24s}.portal-hero-copy>.portal-cta{animation-delay:.32s}.portal-hero-copy>.portal-disciplines{animation-delay:.4s}
.portal-visual{background:none;isolation:isolate}.portal-visual::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 52%,#e6f1e4 0%,#f1f7ee 35%,rgba(246,250,245,.65) 53%,transparent 72%);animation:portal-glow 9s ease-in-out infinite}
.portal-university-logo{animation:portal-enter .85s .12s ease-out both}.portal-seal{animation:portal-enter .85s .28s ease-out both}.portal-caption{animation:portal-enter .85s .44s ease-out both}
.portal button,.portal-card{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}.portal button:focus-visible{outline:3px solid #81b59a;outline-offset:4px}
@media(hover:hover){.portal .primary:hover,.portal .outline:hover{transform:translateY(-2px);box-shadow:0 7px 18px #174b3820}.portal-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #174b3810}}
.portal button:active{transform:translateY(0)}.portal-reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.portal-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.portal *,.portal *::before{animation:none!important;transition:none!important}.portal-reveal{opacity:1;transform:none}.portal button:hover,.portal-card:hover{transform:none}}

.portal-hero{position:relative;isolation:isolate}.portal-ambient{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.ambient-wash{position:absolute;display:block;border-radius:50%;will-change:transform;background:radial-gradient(ellipse,rgba(119,182,142,.18),rgba(175,208,167,.07) 46%,transparent 72%)}.wash-one{width:70%;height:85%;left:-16%;top:-20%;animation:ambient-drift-one 19s ease-in-out infinite alternate}.wash-two{width:68%;height:95%;right:-12%;bottom:-24%;background:radial-gradient(ellipse,rgba(168,195,100,.17),rgba(163,204,172,.07) 45%,transparent 72%);animation:ambient-drift-two 24s ease-in-out infinite alternate}.wash-three{width:45%;height:65%;left:28%;top:20%;opacity:.65;animation:ambient-drift-one 28s -12s ease-in-out infinite alternate}.ambient-dot{position:absolute;width:5px;height:5px;border-radius:50%;background:#8cba94;box-shadow:0 0 12px 4px #a5cd9c28;animation:ambient-float 13s ease-in-out infinite;opacity:.3}.dot-1{left:6%;top:22%;animation-delay:-3s}.dot-2{left:47%;top:13%;animation-delay:-8s;width:4px;height:4px}.dot-3{left:56%;top:72%;animation-delay:-5s}.dot-4{left:92%;top:35%;animation-delay:-10s}.dot-5{left:35%;top:88%;animation-delay:-1s;width:3px;height:3px}.dot-6{left:80%;top:86%;animation-delay:-7s;width:4px;height:4px}
@keyframes ambient-drift-one{from{transform:translate(-3%,-4%) scale(.92)}to{transform:translate(22%,16%) scale(1.12)}}
@keyframes ambient-drift-two{from{transform:translate(7%,6%) scale(1.05)}to{transform:translate(-22%,-14%) scale(.9)}}
@keyframes ambient-float{0%,100%{transform:translate(0,12px);opacity:.16}50%{transform:translate(18px,-24px);opacity:.55}}
@media(max-width:600px){.wash-one{width:110%;height:60%}.wash-two{width:110%;height:65%}.dot-2,.dot-5{display:none}}
@media(prefers-reduced-motion:reduce){.portal-ambient *{animation:none!important;will-change:auto}.ambient-dot{opacity:.18}}

.portal{position:relative;isolation:isolate;background:transparent}.portal>.portal-ambient{position:fixed;inset:0;z-index:-1;background:#fff}.portal-strip{background:rgba(242,246,243,.65)}.portal-card{background:rgba(247,249,247,.72)}.portal-footer{background:rgba(245,247,245,.65)}.portal-biosafety{background:rgba(12,80,61,.95)}

.botanical-leaf{position:absolute;display:block;width:72px;height:115px;opacity:.24;animation:leaf-sway 18s ease-in-out infinite;transform-origin:50% 85%}.botanical-leaf svg{width:100%;height:100%}.leaf-blade{fill:#aac997;fill-opacity:.2;stroke:#548963;stroke-width:1.3}.leaf-vein{stroke:#548963;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.leaf-1{left:-75px;top:12%;width:145px;height:232px;--leaf-angle:-28deg;animation-delay:-4s}.leaf-2{right:1%;top:17%;--leaf-angle:24deg;animation-delay:-11s}.leaf-3{right:-24px;bottom:3%;width:165px;height:264px;--leaf-angle:-32deg;animation-duration:24s;animation-delay:-8s}.leaf-4{left:4%;bottom:8%;width:54px;height:87px;--leaf-angle:38deg;animation-delay:-14s}.leaf-5{left:48%;top:5%;width:35px;height:56px;--leaf-angle:56deg;animation-duration:22s;animation-delay:-6s}.ambient-dot{background:#b0b16b;box-shadow:0 0 9px 3px #c3c68d24;width:3px;height:3px}
@keyframes leaf-sway{0%,100%{transform:translate(0,8px) rotate(var(--leaf-angle));opacity:.2}50%{transform:translate(16px,-18px) rotate(calc(var(--leaf-angle) + 12deg));opacity:.34}}
@media(max-width:600px){.leaf-1{left:-45px;width:110px;height:176px}.leaf-3{right:-50px;width:125px;height:200px}.leaf-2,.leaf-5{display:none}.leaf-4{left:2%;opacity:.2}}
@media(prefers-reduced-motion:reduce){.botanical-leaf{animation:none;transform:rotate(var(--leaf-angle));opacity:.22}}

.discipline-motif{position:absolute;display:block;width:88px;height:88px;color:#5c8b73;opacity:.16;animation:discipline-drift 23s ease-in-out infinite;--tilt:0deg}.discipline-motif svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.motif-pathology{left:17%;top:4%;width:64px;height:64px;--tilt:-18deg;animation-delay:-8s}.motif-insect{right:2%;top:49%;width:64px;height:64px;--tilt:24deg;animation-delay:-15s}.motif-chemistry{left:1%;top:53%;width:74px;height:74px;--tilt:-12deg;animation-delay:-3s}.motif-smart{left:43%;bottom:2%;width:110px;height:110px;animation-delay:-18s}.motif-biosafety{right:20%;top:5%;width:62px;height:62px;--tilt:12deg;animation-delay:-10s}
@keyframes discipline-drift{0%,100%{transform:translateY(8px) rotate(var(--tilt));opacity:.13}50%{transform:translateY(-14px) rotate(calc(var(--tilt) + 7deg));opacity:.25}}
@media(max-width:600px){.discipline-motif{width:48px;height:48px}.motif-pathology{left:8%;top:8%}.motif-biosafety{right:6%;top:18%}.motif-insect{right:0;top:48%}.motif-chemistry{left:-8px;top:65%}.motif-smart{left:40%;bottom:3%;width:70px;height:70px}}
@media(prefers-reduced-motion:reduce){.discipline-motif{animation:none;transform:rotate(var(--tilt));opacity:.16}}

.portal .motif-insect{position:absolute;left:0;top:0;right:auto;width:48px;height:48px;opacity:.2;animation:insect-roam 70s linear infinite;will-change:transform}.motif-insect svg{transform-origin:center}
@keyframes insect-roam{
0%{transform:translate(8vw,84vh) rotate(35deg)}
14%{transform:translate(24vw,58vh) rotate(35deg)}
16%{transform:translate(26vw,55vh) rotate(95deg)}
33%{transform:translate(66vw,59vh) rotate(95deg)}
35%{transform:translate(69vw,58vh) rotate(25deg)}
49%{transform:translate(81vw,25vh) rotate(25deg)}
51%{transform:translate(80vw,22vh) rotate(-80deg)}
68%{transform:translate(35vw,14vh) rotate(-80deg)}
70%{transform:translate(32vw,16vh) rotate(-145deg)}
85%{transform:translate(8vw,49vh) rotate(-145deg)}
87%{transform:translate(6vw,52vh) rotate(-185deg)}
98%{transform:translate(8vw,84vh) rotate(-185deg)}
100%{transform:translate(8vw,84vh) rotate(-325deg)}
}

@media(max-width:600px){.portal .motif-insect{width:34px;height:34px;opacity:.16}}
@media(prefers-reduced-motion:reduce){.portal .motif-insect{animation:none;transform:none;left:auto;right:2%;top:49%;will-change:auto}.motif-insect svg{animation:none}}

.motif-insect .insect-leg{animation:insect-leg-stride .72s ease-in-out infinite;--stride:17deg}.motif-insect .leg-1{transform-origin:36px 43px}.motif-insect .leg-2{transform-origin:35px 57px;animation-delay:-.36s}.motif-insect .leg-3{transform-origin:37px 72px}.motif-insect .leg-4{transform-origin:64px 43px;--stride:-17deg;animation-delay:-.36s}.motif-insect .leg-5{transform-origin:65px 57px;--stride:-17deg}.motif-insect .leg-6{transform-origin:63px 72px;--stride:-17deg;animation-delay:-.36s}
.portal .motif-insect svg{animation:insect-body-step .36s ease-in-out infinite alternate}
@keyframes insect-leg-stride{0%,100%{transform:rotate(calc(0deg - var(--stride)))}50%{transform:rotate(var(--stride))}}
@keyframes insect-body-step{from{transform:translateY(-.5px) rotate(-.7deg)}to{transform:translateY(.5px) rotate(.7deg)}}
@media(prefers-reduced-motion:reduce){.portal .motif-insect svg,.motif-insect .insect-leg{animation:none!important}}

.cursor-flies{position:fixed;inset:0;z-index:5;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .35s ease}.cursor-flies.is-active{opacity:.65}.cursor-fly{position:absolute;left:0;top:0;width:30px;height:30px;will-change:transform}.cursor-fly svg{width:100%;height:100%}.fly-1{width:24px;height:24px}.fly-2{width:20px;height:20px}.fly-wing{fill:#d7e8bb;fill-opacity:.8;stroke:#719b75;stroke-width:.7;transform-box:fill-box;transform-origin:center;animation:fly-flutter .09s ease-in-out infinite alternate}.wing-right{animation-delay:-.09s}
@keyframes fly-flutter{from{transform:scaleY(.3) rotate(-12deg)}to{transform:scaleY(1) rotate(12deg)}}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.cursor-flies{display:none}.fly-wing{animation:none}}

.fly-3,.fly-6{width:22px;height:22px}.fly-4,.fly-7{width:18px;height:18px}.fly-5{width:26px;height:26px}
