*{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:"Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", "HarmonyOS Sans SC", "HarmonyOS_Regular", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-cjk:"Noto Sans SC", "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", "Hiragino Sans GB", "HarmonyOS Sans SC", "HarmonyOS_Regular", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--page-bg:#f7fafc;--page-text:#2d3748;--nav-bg:#1a365d;--nav-text:#cbd5e0;--nav-active:#4299e1;--panel-bg:#fff;--panel-soft:#f8fbff;--panel-line:#dbe6f2;--heading:#1a365d;--muted-text:#718096;--body-text:#4a5568;--brand-blue:#5a9de5;--shadow-soft:#1a365d1a}html[data-theme=dark]{--page-bg:#08111f;--page-text:#d8e3f0;--nav-bg:#06101ef5;--nav-text:#b8c7dc;--nav-active:#73b7ff;--panel-bg:#111d2f;--panel-soft:#0d1828;--panel-line:#7ea5d43d;--heading:#edf6ff;--muted-text:#93a8c1;--body-text:#c1cedf;--brand-blue:#73b7ff;--shadow-soft:#0000005c}html{scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:80px;overflow-y:scroll}body{font-family:var(--font-sans);color:var(--page-text);background-color:var(--page-bg);font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:0 20px}.navbar{z-index:1000;backface-visibility:hidden;background-color:#1a365d;width:100%;position:fixed;top:0;transform:translateZ(0);box-shadow:0 2px 10px #0000001a}.nav-container{justify-content:space-between;align-items:center;max-width:1200px;height:70px;margin:0 auto;padding:0 20px;display:flex}.nav-logo{color:#fff;text-decoration:none;transition:color .2s}.nav-logo h2{color:#fff;letter-spacing:.06em;text-transform:uppercase;font-size:1.5rem;font-weight:600}.nav-logo:hover h2,.nav-logo:focus-visible h2{color:#4299e1}.nav-logo:focus-visible{outline-offset:6px;outline:2px solid #4299e1b3}.nav-menu{align-items:center;gap:30px;list-style:none;display:flex}.nav-actions{align-items:center;gap:12px;margin-left:20px;display:flex}.nav-item.nav-release-item,.nav-item.nav-theme-item{display:none}.nav-item{align-items:center;display:flex;position:relative}.nav-link{color:#cbd5e0;letter-spacing:.06em;text-transform:uppercase;justify-content:center;align-items:center;padding:10px 0;font-weight:500;text-decoration:none;transition:color .3s;display:inline-flex}.nav-dropdown-toggle{font-family:inherit;font-size:inherit;font-weight:500;line-height:inherit;cursor:pointer;background:0 0;border:0}.nav-dropdown-toggle:after{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-top:-4px;margin-left:8px;transition:transform .2s;display:inline-block;transform:rotate(45deg)}.nav-dropdown-item.open .nav-dropdown-toggle:after{transform:translateY(4px)rotate(225deg)}.nav-link:hover,.nav-link.active{color:#4299e1}.nav-dropdown-menu{opacity:0;visibility:hidden;pointer-events:none;background:#1a365dfa;border:1px solid #cbd5e02e;border-radius:8px;min-width:320px;padding:8px;transition:opacity .18s,transform .18s,visibility .18s;display:grid;position:absolute;top:calc(100% + 16px);right:0;transform:translateY(-6px);box-shadow:0 18px 42px #0f172a47}.nav-dropdown-item.open .nav-dropdown-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.nav-dropdown-link{color:#edf2f7;text-align:left;border-radius:7px;gap:2px;padding:10px 12px;text-decoration:none;transition:background .18s,color .18s;display:grid}.nav-dropdown-link span{letter-spacing:.05em;text-transform:uppercase;font-size:.9rem;font-weight:800;line-height:1.25}.nav-dropdown-link small{color:#a0aec0;letter-spacing:.02em;font-size:.72rem;font-weight:700}.nav-dropdown-link:hover,.nav-dropdown-link:focus-visible{color:#fff;background:#4299e124;outline:none}.nav-dropdown-link:hover small,.nav-dropdown-link:focus-visible small{color:#cbd5e0}.release-badge{color:#edf6ff;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:#4299e124;border:1px solid #73b7ff8c;border-radius:999px;justify-content:center;align-items:center;min-height:30px;padding:5px 10px;font-size:.68rem;font-weight:900;line-height:1;display:inline-flex;box-shadow:0 0 0 1px #4299e114,0 10px 24px #00000024}.theme-toggle{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #cbd5e047;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;display:inline-flex;position:relative}.theme-toggle:hover,.theme-toggle:focus-visible{background:#73b7ff24;border-color:#73b7ffbd;outline:none;transform:translateY(-1px);box-shadow:0 0 0 3px #73b7ff24}.theme-toggle-glyph{background:currentColor;border-radius:999px;width:17px;height:17px;transition:background .2s,box-shadow .2s,transform .2s;position:relative;box-shadow:0 0}.theme-toggle.light .theme-toggle-glyph{background:0 0;transform:rotate(-18deg);box-shadow:inset -5px -3px 0 1px}.theme-toggle.dark .theme-toggle-glyph{background:currentColor;box-shadow:0 -9px 0 -6px,0 9px 0 -6px,9px 0 0 -6px,-9px 0 0 -6px,6px 6px 0 -6px,-6px -6px 0 -6px,6px -6px 0 -6px,-6px 6px 0 -6px}.nav-toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;padding:0;display:none}.bar{background-color:#fff;width:25px;height:3px;margin:3px 0;transition:all .3s}.main-content{min-height:calc(100vh - 140px);margin-top:70px}.hero-section{color:#fff;background:linear-gradient(135deg,#173a66 0%,#285a8d 54%,#1f4b7a 100%);padding:80px 0;position:relative;overflow:hidden}.hero-network-canvas{pointer-events:none;opacity:.94;z-index:0;-webkit-mask-composite:source-in;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000008a 0%,#000 14% 86%,#0000009e 100%),linear-gradient(#0000007a 0%,#000 12% 78%,#0000006b 100%);mask-image:linear-gradient(90deg,#0000008a 0%,#000 14% 86%,#0000009e 100%),linear-gradient(#0000007a 0%,#000 12% 78%,#0000006b 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero-section:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#173a668a 0%,#173a6642 34%,#173a6629 100%),linear-gradient(#0c223e14,#0c223e38);position:absolute;inset:0}.hero-section .container{z-index:1;position:relative}.hero-content{align-items:center;gap:50px;display:flex}.hero-image{flex:0 0 200px}.profile-img{object-fit:cover;border:5px solid #fff3;border-radius:50%;width:200px;height:200px}.hero-text h1{margin-bottom:10px;font-size:3rem;font-weight:700}.subtitle{opacity:.9;margin-bottom:15px;font-size:1.3rem}.description{opacity:.8;max-width:600px;margin-bottom:30px;font-size:1.1rem}.hero-buttons{gap:15px;display:flex}.btn{cursor:pointer;border:none;border-radius:5px;padding:12px 30px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-block}.btn-primary{color:#fff;background-color:#4299e1}.btn-primary:hover{background-color:#3182ce;transform:translateY(-2px)}.btn-secondary{color:#fff;background-color:#0000;border:2px solid #fff}.btn-secondary:hover{color:#1a365d;background-color:#fff}.section-title{text-align:center;color:#1a365d;margin-bottom:50px;font-size:2.5rem;font-weight:700}.about-section,.education-section,.research-section,.contact-section{padding:80px 0}.about-section{background:0 0;position:relative;overflow:hidden}.about-section>.container{z-index:1;position:relative}.home-body-background{background:linear-gradient(#fff 0%,#fbfdff 34%,#f8fbff 68%,#fff 100%);position:relative;overflow:hidden}.home-body-background:before,.home-body-background:after{content:"";z-index:0;pointer-events:none;display:block;position:absolute;inset:0}.home-body-background>section{z-index:1;background:0 0;position:relative}.education-section,.research-section,.contact-section{background:0 0}.timeline{gap:16px;max-width:1040px;margin:0 auto;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(#5a9de52e,#5a9de575,#5a9de51f);width:1px;position:absolute;top:18px;bottom:18px;left:164px}.timeline-item{grid-template-columns:148px minmax(0,1fr);align-items:stretch;gap:34px;display:grid;position:relative}.timeline-item:before{content:"";z-index:1;background:#5a9de5;border:3px solid #f7fafc;border-radius:50%;width:15px;height:15px;position:absolute;top:32px;left:157px;box-shadow:0 0 0 5px #5a9de529}.timeline-date{color:#fff;text-align:center;letter-spacing:.02em;background:linear-gradient(135deg,#5a9de5f2,#4299e1db),#4299e1;border:1px solid #5a9de557;border-radius:8px;justify-content:center;align-self:start;align-items:center;min-height:64px;padding:12px 14px;font-size:.98rem;font-weight:800;line-height:1.35;display:flex;box-shadow:0 10px 24px #4299e12e}.timeline-content{background:#fff;border:1px solid #dbe6f2;border-radius:8px;min-height:138px;padding:22px 24px;box-shadow:0 12px 32px #1a365d14}.timeline-content-header{justify-content:space-between;align-items:center;gap:18px;margin-bottom:10px;display:flex}.timeline-degree{color:#2c5282;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:900}.timeline-meta{color:#718096;text-align:right;font-size:.82rem;font-weight:800}.timeline-content h3{color:#1a365d;margin-bottom:10px;font-size:1.28rem;line-height:1.28}.timeline-content p{color:#4a5568;line-height:1.68}.timeline-tags{flex-wrap:wrap;gap:7px;margin-top:16px;display:flex}.timeline-tags span{color:#4a5568;background:#f8fbff;border:1px solid #dbe6f2;border-radius:999px;align-items:center;min-height:26px;padding:5px 9px;font-size:.74rem;font-weight:800;display:inline-flex}.institution{color:#4299e1;margin-bottom:10px;font-weight:600;display:block}.research-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:1000px;margin:0 auto;display:grid}.research-card{background:#fff;border-radius:10px;padding:30px;transition:transform .3s,box-shadow .3s;box-shadow:0 5px 15px #0000001a}.research-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #00000026}.research-card h3{color:#1a365d;margin-bottom:15px;font-size:1.4rem}.contact-info{max-width:600px;margin:0 auto}.contact-item{align-items:center;margin-bottom:15px;display:flex}.contact-label{color:#1a365d;min-width:80px;font-weight:600}.research-hero{color:#fff;text-align:center;background:linear-gradient(135deg,#1a365d 0%,#2c5282 100%);padding:100px 0 60px}.research-hero h1{margin-bottom:20px;font-size:3rem}.research-hero p{opacity:.9;font-size:1.2rem}.tab-nav{border-bottom:2px solid #e2e8f0;justify-content:center;margin-bottom:40px;display:flex}.tab-btn{color:#718096;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:15px 30px;font-size:1.1rem;font-weight:600;transition:all .3s}.tab-btn.active{color:#4299e1;border-bottom-color:#4299e1}.tab-btn:hover{color:#4299e1}.tab-content{display:none}.tab-content.active{display:block}.research-list,.project-list,.patent-list{max-width:900px;margin:0 auto}.research-item,.project-item,.patent-item{background:#fff;border-radius:10px;margin-bottom:25px;padding:30px;box-shadow:0 3px 10px #0000001a}.research-figure{background-color:#f8fafc;border-left:4px solid #4299e1;border-radius:8px;margin:20px 0;padding:20px}.research-figure h4{color:#1a365d;margin-bottom:15px;font-size:1.1rem;font-weight:600}.figure-img{object-fit:contain;border-radius:6px;max-width:100%;height:auto;margin:0 auto;transition:transform .3s,box-shadow .3s;display:block;box-shadow:0 2px 8px #0000001a}.figure-img:hover{transform:scale(1.02);box-shadow:0 4px 12px #00000026}.figure-caption{text-align:center;color:#718096;margin-top:10px;font-size:.9rem;font-style:italic}.research-item h3,.project-item h3,.patent-item h3{color:#1a365d;margin-bottom:15px;font-size:1.3rem}.research-meta,.project-meta,.patent-meta{flex-wrap:wrap;gap:20px;margin-bottom:15px;display:flex}.journal,.project-id,.patent-number{color:#4299e1;font-weight:600}.year,.duration,.date{color:#718096}.authors,.role,.status{color:#4a5568}.research-abstract,.project-desc,.patent-desc{margin-bottom:15px;line-height:1.6}.research-link{color:#4299e1;font-weight:600;text-decoration:none}.project-outcomes{margin-top:10px;margin-left:20px}.stats-section{background:#fff;padding:60px 0}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px;max-width:800px;margin:0 auto;display:grid}.stat-item{text-align:center;padding:30px}.stat-number{color:#4299e1;margin-bottom:10px;font-size:3rem;font-weight:700}.stat-label{color:#4a5568;font-size:1.1rem;font-weight:600}.research-page{background:#f6f9fc}.page-pixel-hero{isolation:isolate;color:#fff;background:linear-gradient(135deg,#173a66 0%,#285a8d 54%,#1f4b7a 100%);position:relative;overflow:hidden}.page-pixel-hero:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#173a668a 0%,#173a6647 36%,#173a6629 100%),linear-gradient(#0c223e14,#0c223e3d);position:absolute;inset:0}.page-pixel-hero .container{z-index:1;position:relative}.page-pixel-hero .hero-network-canvas{opacity:.9}.page-pixel-hero .hero-network-canvas-base{opacity:.74}.page-pixel-hero .hero-network-canvas-motion{opacity:.92}.research-page .research-hero{text-align:left;padding:56px 0 44px}.research-page .research-hero:before{background:linear-gradient(90deg,#173a6694 0%,#173a664d 38%,#173a662e 100%),linear-gradient(#0c223e14,#0c223e38)}.research-hero-layout{grid-template-columns:minmax(0,1fr) 480px;align-items:end;gap:40px;display:grid}.research-kicker,.research-section-eyebrow{color:#90cdf4;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.76rem;font-weight:800;display:inline-flex}.research-section-eyebrow{color:#5a9de5}.research-kicker:before,.research-section-eyebrow:before{content:"";background:currentColor;border-radius:999px;width:24px;height:2px}.research-page .research-hero h1{margin:10px 0 12px;font-size:2.7rem;line-height:1.1}.research-page .research-hero p{color:#dbeafe;max-width:680px;font-size:1.04rem}.research-dashboard{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.research-dashboard-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:8px;min-height:78px;padding:14px}.research-dashboard-card strong{color:#fff;font-size:1.48rem;line-height:1;display:block}.research-dashboard-card span{color:#cfe4fb;margin-top:8px;font-size:.78rem;font-weight:700;display:block}.research-tabs{padding:26px 0 70px}.research-tab-nav{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f9fceb;margin-bottom:34px;position:sticky;top:70px}.research-section-header{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:22px;display:flex}.research-section-header h2{color:#1a365d;margin-top:8px;font-size:2.15rem;line-height:1.1}.research-section-header p{color:#718096;max-width:420px;font-weight:600}.research-topic-filter{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.research-topic-chip{color:#4a5568;cursor:pointer;font:inherit;background:#fff;border:1px solid #d7e3f2;border-radius:999px;padding:8px 13px;font-size:.86rem;font-weight:700;transition:transform .2s,color .2s,border-color .2s,box-shadow .2s}.research-topic-chip:hover,.research-topic-chip.active{color:#1a365d;border-color:#5a9de5;transform:translateY(-1px);box-shadow:0 8px 18px #1a365d1a}.research-topic-chip.active{background:#eaf4ff}.research-featured-card,.research-publication-card,.research-patent-card,.research-empty{background:#fff;border:1px solid #dbe6f2;border-radius:8px;box-shadow:0 12px 32px #1a365d14}.research-featured-card{gap:24px;margin-bottom:30px;padding:24px;display:grid}.research-featured-card.with-figure{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)}.research-featured-card.without-figure{grid-template-columns:minmax(0,1fr)}.research-featured-card.has-carousel{border-color:#5a9de53d;box-shadow:0 14px 36px #1a365d17}.research-featured-copy{min-width:0}.research-featured-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.research-featured-header .research-card-topline{margin-bottom:0}.research-card-topline{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.research-card-topline span{color:#2c5282;background:#edf6ff;border-radius:999px;align-items:center;min-height:24px;padding:4px 8px;font-size:.74rem;font-weight:800;display:inline-flex}.research-featured-nav{flex:none;align-items:center;gap:8px;padding:0;display:inline-flex}.research-featured-nav-button{color:#2c5282;cursor:pointer;background:#fff;border:1px solid #dbe6f2;border-radius:999px;width:36px;height:36px;transition:transform .2s,border-color .2s,background .2s,color .2s;position:relative;box-shadow:0 4px 12px #1a365d0f}.research-featured-nav-button:before{content:"";border-top:2px solid;border-right:2px solid;width:10px;height:10px;position:absolute;top:50%;left:50%}.research-featured-nav-button.previous:before{transform:translate(-35%,-50%)rotate(-135deg)}.research-featured-nav-button.next:before{transform:translate(-65%,-50%)rotate(45deg)}.research-featured-nav-button span{clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.research-featured-nav-button:hover,.research-featured-nav-button:focus-visible{color:#1a365d;background:#edf6ff;border-color:#5a9de5;outline:none;transform:translateY(-1px)}.research-featured-nav-status{color:#4a5568;text-align:center;white-space:nowrap;min-width:42px;padding:0;font-size:.82rem;font-weight:800}.research-featured-nav-status strong{color:#1a365d}.research-featured-card h3,.research-publication-card h3,.research-patent-card h3{color:#1a365d;margin-bottom:12px;font-size:1.28rem;line-height:1.38}.research-featured-card h3{font-size:1.48rem}.research-meta.compact{color:#4a5568;margin-bottom:12px;display:block}.research-meta.compact .journal{margin-bottom:4px;display:block}.research-topic-list{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.research-topic-list span{color:#4a5568;background:#f8fbff;border:1px solid #dbe6f2;border-radius:999px;padding:4px 8px;font-size:.74rem;font-weight:700}.research-abstract.compact{color:#334155;text-align:justify;text-align-last:left;text-justify:inter-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:14px;line-height:1.68;display:-webkit-box;overflow:hidden}.research-abstract.compact.expanded{-webkit-line-clamp:unset;display:block;overflow:visible}.research-card-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.research-text-button,.research-action-link{min-height:38px;font:inherit;cursor:pointer;border-radius:6px;font-size:.88rem;font-weight:800;text-decoration:none;transition:transform .2s,background .2s,border-color .2s,color .2s}.research-text-button{color:#2c5282;background:0 0;border:0;padding:0}.research-action-link{color:#fff;background:#5a9de5;border:1px solid #5a9de5;justify-content:center;align-items:center;padding:8px 13px;display:inline-flex}.research-action-link.button{appearance:none}.research-text-button:hover,.research-action-link:hover{transform:translateY(-1px)}.research-action-link:hover{color:#fff;background:#2c5282;border-color:#2c5282}.research-featured-figure,.research-card-figure{cursor:pointer;text-align:left;background:#f6f9fc;border:0;border-radius:8px;overflow:hidden}.research-featured-figure{border:1px solid #dbe6f2;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:14px;display:grid}.research-featured-figure span{color:#1a365d;font-weight:800}.research-featured-figure img,.research-card-figure img{object-fit:contain;background:#fff;border-radius:6px;width:100%;height:100%;transition:transform .25s;display:block}.research-featured-figure small{color:#718096;font-size:.78rem;font-style:italic;line-height:1.45}.research-featured-figure:hover img,.research-card-figure:hover img{transform:scale(1.015)}.research-timeline-browser{grid-template-columns:138px minmax(0,1fr);gap:24px;display:grid}.research-year-rail{align-self:start;gap:8px;display:grid;position:sticky;top:138px}.research-year-rail a{color:#1a365d;background:#fff;border:1px solid #dbe6f2;border-radius:8px;justify-content:space-between;align-items:center;padding:9px 10px;font-weight:800;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.research-year-rail a:hover{border-color:#5a9de5;transform:translate(2px)}.research-year-rail small{color:#718096}.research-year-groups{gap:26px;display:grid}.research-year-group{gap:14px;display:grid}.research-year-heading{color:#1a365d;align-items:center;gap:12px;font-weight:800;display:flex;position:relative}.research-year-heading:before{content:"";background:#5a9de5;border:3px solid #dbeafe;border-radius:999px;width:12px;height:12px;box-shadow:0 0 0 4px #5a9de524}.research-year-heading span{font-size:1.2rem}.research-year-heading small{color:#718096}.research-publication-card{grid-template-columns:minmax(0,1fr) 190px;gap:18px;padding:22px;display:grid}.research-card-figure{border:1px solid #dbe6f2;min-height:148px;padding:10px}.research-empty{color:#4a5568;padding:28px}.research-empty h3{color:#1a365d;margin-bottom:8px}.research-patent-grid{gap:14px;display:grid}.research-patent-card{grid-template-columns:116px minmax(0,1fr);gap:18px;padding:20px 22px;display:grid}.research-patent-date{color:#2c5282;font-weight:900}.research-patent-content .patent-desc{color:#334155;line-height:1.65}.research-reveal{opacity:1;transform:none}.research-reveal.animate-in{animation:.55s both researchFadeInUp}.research-figure-modal{z-index:2200;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.research-figure-backdrop{cursor:pointer;background:#081220d1;border:0;position:absolute;inset:0}.research-figure-dialog{z-index:1;background:#fff;border-radius:8px;width:min(1080px,100%);max-height:calc(100vh - 56px);padding:24px;position:relative;overflow:auto;box-shadow:0 24px 80px #0000004d}.research-figure-dialog h2{color:#1a365d;max-width:calc(100% - 90px);margin-bottom:16px;font-size:1.35rem}.research-figure-dialog img{object-fit:contain;background:#fff;border:1px solid #dbe6f2;border-radius:8px;width:100%;max-height:68vh;display:block}.research-figure-dialog p{color:#718096;text-align:center;margin-top:12px;font-style:italic}.research-figure-close{color:#1a365d;cursor:pointer;min-height:34px;font:inherit;background:#f8fbff;border:1px solid #dbe6f2;border-radius:6px;padding:6px 12px;font-weight:800;position:absolute;top:18px;right:18px}@keyframes researchFadeInUp{0%{opacity:.88;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.home-body-background:before,.home-body-background:after{opacity:.34;animation:none}.research-reveal.animate-in{animation:none}.research-topic-chip,.research-text-button,.research-action-link,.research-featured-nav-button,.research-featured-figure img,.research-card-figure img,.research-year-rail a{transition:none}}.gallery-quick-upload-page{background:linear-gradient(#f4f8fd 0%,#edf4fc 100%);min-height:calc(100vh - 72px);padding:42px 0 72px}.gallery-quick-upload-shell{width:min(760px,100% - 32px);margin:0 auto}.gallery-quick-upload-topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.gallery-quick-upload-card{background:#fff;border:1px solid #d8e5f4;border-radius:20px;padding:clamp(24px,6vw,46px);box-shadow:0 22px 50px #1a365d1a}.gallery-quick-upload-card h1{color:#102a43;margin:8px 0 10px;font-size:clamp(1.8rem,6vw,2.5rem)}.gallery-quick-upload-card>p{color:#486581;max-width:620px;margin-bottom:24px;line-height:1.7}.gallery-quick-upload-input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.gallery-quick-upload-picker{color:#1f4f7f;cursor:pointer;background:linear-gradient(145deg,#f8fbff,#edf6ff);border:2px dashed #8eb5df;border-radius:16px;align-content:center;place-items:center;gap:9px;width:100%;min-height:178px;display:grid}.gallery-quick-upload-picker:hover,.gallery-quick-upload-picker:focus-visible{background:#eaf4ff;border-color:#4b91d5;box-shadow:0 0 0 4px #4b91d524}.gallery-quick-upload-picker:disabled{cursor:wait;opacity:.68}.gallery-quick-upload-picker>span:nth-child(2){font-size:1.05rem;font-weight:900}.gallery-quick-upload-picker small{color:#5b7690;font-size:.78rem;font-weight:700}.gallery-quick-upload-plus{color:#fff;background:#2f80c7;border-radius:50%;place-items:center;width:50px;height:50px;font-size:2.25rem;font-weight:400;line-height:1;display:inline-grid}.gallery-quick-upload-notice{color:#1d6a4c;margin:18px 0 0;font-weight:750;line-height:1.55}.gallery-quick-upload-queue{border-top:1px solid #e3edf7;margin-top:26px;padding-top:18px}.gallery-quick-upload-queue header,.gallery-quick-upload-entry,.gallery-quick-upload-entry-status{align-items:center;gap:12px;display:flex}.gallery-quick-upload-queue header{color:#284b70;justify-content:space-between}.gallery-quick-upload-queue header span{color:#67809a;font-size:.82rem;font-weight:750}.gallery-quick-upload-queue ul{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.gallery-quick-upload-entry{background:#f9fbfe;border:1px solid #dfeaf5;border-radius:10px;justify-content:space-between;padding:12px 14px}.gallery-quick-upload-entry>div:first-child{min-width:0}.gallery-quick-upload-entry strong,.gallery-quick-upload-entry span{display:block}.gallery-quick-upload-entry strong{color:#1f4265;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.gallery-quick-upload-entry>div:first-child span{color:#718096;margin-top:3px;font-size:.76rem;font-weight:700}.gallery-quick-upload-entry-status{color:#55708c;flex:none;justify-content:flex-end;font-size:.78rem;font-weight:850}.gallery-quick-upload-entry.uploaded .gallery-quick-upload-entry-status{color:#19734f}.gallery-quick-upload-entry.error{background:#fff8f8;border-color:#be3d3d47}.gallery-quick-upload-entry.error .gallery-quick-upload-entry-status{color:#a63c3c}.gallery-quick-upload-entry-status button{color:#1f6fb2;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.admin-media-publication-status{border-radius:999px;align-items:center;min-height:24px;margin:3px 0 8px;padding:3px 8px;font-size:.7rem;font-weight:900;line-height:1.2;display:inline-flex}.admin-media-publication-status.inbox{color:#875800;background:#fff3cf}.admin-media-publication-status.published{color:#176b49;background:#e4f7ee}.gallery-quick-upload-fab{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));z-index:30;color:#fff;background:#1d6fb7;border-radius:999px;align-items:center;gap:8px;min-height:52px;padding:9px 15px 9px 12px;font-size:.84rem;text-decoration:none;display:none;position:fixed;box-shadow:0 12px 30px #13497852}.gallery-quick-upload-fab>span{font-size:1.7rem;font-weight:300;line-height:1}.gallery-quick-upload-fab:hover,.gallery-quick-upload-fab:focus-visible{color:#fff;background:#155b98;transform:translateY(-1px)}html[data-theme=dark] .gallery-quick-upload-page{background:linear-gradient(#071321,#0c1a2a)}html[data-theme=dark] .gallery-quick-upload-card{background:#0e1c2d;border-color:#7ea5d447;box-shadow:0 22px 50px #0000004d}html[data-theme=dark] .gallery-quick-upload-card h1,html[data-theme=dark] .gallery-quick-upload-entry strong{color:#e4f0ff}html[data-theme=dark] .gallery-quick-upload-card>p,html[data-theme=dark] .gallery-quick-upload-picker small,html[data-theme=dark] .gallery-quick-upload-queue header span,html[data-theme=dark] .gallery-quick-upload-entry>div:first-child span{color:#9bb2ca}html[data-theme=dark] .gallery-quick-upload-picker,html[data-theme=dark] .gallery-quick-upload-entry{background:#12253a;border-color:#7ea5d447}html[data-theme=dark] .gallery-quick-upload-queue{border-color:#7ea5d438}@media screen and (width<=768px){.gallery-quick-upload-page{padding:22px 0 calc(90px + env(safe-area-inset-bottom))}.gallery-quick-upload-shell{width:min(100% - 24px,760px)}.gallery-quick-upload-card{border-radius:16px}.gallery-quick-upload-entry,.gallery-quick-upload-entry-status{align-items:flex-start}.gallery-quick-upload-entry{gap:10px}.gallery-quick-upload-entry-status{text-align:right;flex-wrap:wrap;max-width:42%}.gallery-quick-upload-fab{display:inline-flex}}.footer{color:#fff;text-align:center;background-color:#1a365d;margin-top:auto;padding:30px 0}.academic-links{text-align:center;margin-top:40px}.academic-links h3{color:#1a365d;margin-bottom:25px;font-size:1.5rem;font-weight:600}.link-buttons{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.btn-outline{color:#4299e1;background-color:#0000;border:2px solid #4299e1;border-radius:8px;align-items:center;gap:8px;padding:12px 25px;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.btn-outline:hover{color:#fff;background-color:#4299e1;transform:translateY(-2px);box-shadow:0 4px 12px #4299e14d}.link-icon{font-size:1.2rem}.academic-profiles-section{background:0 0;padding:78px 0}.profiles-section-intro{color:#64748b;text-align:center;max-width:680px;margin:-20px auto 34px;font-size:1.05rem;line-height:1.65}.profiles-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1200px;margin:0 auto;display:grid}.profile-card{text-align:left;background:#fff;border:1px solid #dbe7f4;border-radius:8px;flex-direction:column;min-height:430px;padding:28px;transition:transform .3s,box-shadow .3s;display:flex;box-shadow:0 14px 40px #0f172a12}.profile-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px #1a365d1f}.profile-card-header{align-items:center;gap:16px;margin-bottom:18px;display:flex}.profile-icon{font-size:3rem;display:block}.profile-card-kicker{color:#5a9de5;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:.74rem;font-weight:900;line-height:1.1;display:block}.profile-card h3{color:#1a365d;margin-bottom:0;font-size:1.45rem;font-weight:800}.profile-card p{color:#5f708a;margin-bottom:18px;line-height:1.62}.profile-detail-list{gap:10px;margin:0 0 22px;padding:0;list-style:none;display:grid}.profile-detail-list li{color:#243b5a;padding-left:18px;font-size:.96rem;font-weight:650;line-height:1.45;position:relative}.profile-detail-list li:before{content:"";background:#5a9de5;border-radius:999px;width:6px;height:6px;position:absolute;top:.63em;left:0}.profile-tag-row{flex-wrap:wrap;gap:8px;margin:auto 0 24px;display:flex}.profile-tag-row span{color:#2c5282;background:#f4f9ff;border:1px solid #d8e9fb;border-radius:999px;align-items:center;min-height:28px;padding:6px 10px;font-size:.79rem;font-weight:800;line-height:1.1;display:inline-flex}.profile-card .btn-outline{align-self:flex-start;min-width:158px;margin-top:0}.home-section-heading{margin-bottom:28px}.home-section-heading.compact{margin-bottom:20px}.home-section-heading h2{color:#1a365d;margin-top:8px;font-size:2.35rem;line-height:1.12}.home-kicker{color:#5a9de5;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.76rem;font-weight:800;display:inline-flex}.home-kicker:before{content:"";background:currentColor;border-radius:999px;width:24px;height:2px}.home-band{background:0 0}.home-body-background:before{opacity:.62;background:repeating-linear-gradient(112deg,#1a365d07 0 1px,#0000 1px 18px) 0 0/100% 100%,repeating-linear-gradient(24deg,#5a9de506 0 1px,#0000 1px 26px) 0 0/100% 100%,linear-gradient(#ffffffeb,#f8fbff94) 0 0/100% 100%;animation:13s ease-in-out infinite home-paper-breathe}.home-body-background:after{opacity:.24;background-image:url(/assets/backgrounds/home-contours.svg);background-position:50% 0;background-repeat:repeat;background-size:760px 520px;animation:18s ease-in-out infinite home-contour-drift}.about-panel{background:linear-gradient(135deg,#5a9de512,#0000 42%),#fff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);align-items:stretch;gap:30px;padding:28px;display:grid;box-shadow:0 12px 32px #1a365d14}.about-summary{color:#334155;gap:16px;font-size:1.02rem;line-height:1.72;display:grid}.about-focus-tags,.latest-paper-tags,.project-tag-row{flex-wrap:wrap;gap:7px;display:flex}.about-focus-tags span,.latest-paper-tags span,.project-tag-row span{color:#4a5568;background:#f8fbff;border:1px solid #dbe6f2;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:700}.about-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.about-fact-card{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;min-height:104px;padding:16px}.about-fact-card span{color:#718096;letter-spacing:.06em;text-transform:uppercase;font-size:.76rem;font-weight:800;display:block}.about-fact-card strong{color:#1a365d;margin-top:10px;font-size:1.06rem;line-height:1.28;display:block}@keyframes home-paper-breathe{0%,to{opacity:.48}50%{opacity:.66}}@keyframes home-contour-drift{0%,to{opacity:.18}50%{opacity:.25}}.phd-journey-section{background:0 0;padding:76px 0;overflow:hidden}.journey-section-copy{color:#4a5568;max-width:760px;margin-top:12px;font-size:1.02rem;line-height:1.7}.journey-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.journey-stat{background:linear-gradient(135deg,#31979514,#0000 58%),#fff;border:1px solid #dbe6f2;border-radius:8px;min-height:92px;padding:16px;box-shadow:0 10px 26px #1a365d0f}.journey-stat strong{color:#1a365d;font-size:1.6rem;line-height:1.1;display:block}.journey-stat span{color:#718096;letter-spacing:.05em;text-transform:uppercase;margin-top:8px;font-size:.74rem;font-weight:800;display:block}.journey-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.journey-map-surface{background:linear-gradient(135deg,#4299e114,#3197950d 48%,#b7791f14),#fff;border:1px solid #dbe6f2;border-radius:8px;height:clamp(430px,43vw,560px);min-height:0;padding:10px;position:relative;overflow:hidden;box-shadow:0 12px 32px #1a365d14}.journey-map{width:100%;height:100%;min-height:0;display:block}.journey-map-bg{fill:#eef6fb;stroke:#dbe6f2eb}.journey-map-region.italy-focus .journey-map-bg{fill:#f5f1e9}.journey-graticule{fill:none;stroke:#7180962e;stroke-width:.7px}.journey-country{fill:#dfe8f1;stroke:#fffffff5;stroke-width:.9px;transition:fill .18s,stroke .18s,opacity .18s}.journey-country.visited.china{fill:#4299e14d;stroke:#2b6cb085}.journey-country.visited.europe{fill:#b7791f42;stroke:#8a5a127a}.journey-country.visited.italy-focus{fill:#b7791f57;stroke:#8a5a1294}.journey-country.active{fill:#31979561;stroke:#1a365d94;stroke-width:1.35px}.journey-china-boundary-glow,.journey-china-boundary-core{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;vector-effect:non-scaling-stroke}.journey-china-boundary-glow{stroke:#5a9de5a8;stroke-width:5.4px;opacity:.16}.journey-china-boundary-core{stroke:#2b6cb0d1;stroke-width:1.05px;opacity:.66}.journey-map-started .journey-china-boundary-glow{animation:3s ease-in-out .45s infinite journey-china-boundary-glow}.journey-map-started .journey-china-boundary-core{animation:3s ease-in-out .45s infinite journey-china-boundary-core}.journey-grid-line{fill:none;stroke:#7180962e;stroke-dasharray:4 8}.journey-region-label{fill:#718096;letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:900}.journey-region-label.europe{fill:#8a5a12}.journey-route-main,.journey-route-glow,.journey-route-flow{--journey-route-opacity:.76;--journey-route-width:2.15;fill:none;stroke:url(#journeyRouteGradient);stroke-width:var(--journey-route-width);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.journey-route-main{opacity:var(--journey-route-opacity)}.journey-route-glow-group{opacity:0;pointer-events:none}.journey-route-glow{--journey-route-width:7.2;opacity:1;stroke-opacity:.36}.journey-map-started .journey-route-glow-group{animation:3.8s ease-in-out 3.35s infinite journey-route-glow-breathe}.journey-route-main.route-china,.journey-route-glow.route-china{--journey-route-opacity:.76;--journey-route-width:2.15}.journey-route-main.route-east-asia,.journey-route-glow.route-east-asia{--journey-route-opacity:.62;--journey-route-width:1.85}.journey-route-main.route-departure,.journey-route-glow.route-departure{--journey-route-opacity:.82;--journey-route-width:2.35}.journey-route-main.route-transition,.journey-route-glow.route-transition{--journey-route-opacity:.56;--journey-route-width:2}.journey-route-main.route-italy,.journey-route-glow.route-italy{--journey-route-opacity:.82;--journey-route-width:1.9}.journey-route-main.route-italy-link,.journey-route-glow.route-italy-link{--journey-route-opacity:.44;--journey-route-width:1.75}.journey-route-main.route-iceland-outbound,.journey-route-glow.route-iceland-outbound,.journey-route-main.route-iceland-return,.journey-route-glow.route-iceland-return{--journey-route-opacity:.5;--journey-route-width:1.8}.journey-route-main.route-iceland-return,.journey-route-glow.route-iceland-return{--journey-route-opacity:.38}.journey-route-main.route-europe,.journey-route-glow.route-europe{--journey-route-opacity:.7;--journey-route-width:2.15}.journey-route-glow.route-china{--journey-route-width:6.8}.journey-route-glow.route-east-asia{--journey-route-width:5.6;stroke-opacity:.26}.journey-route-glow.route-departure{--journey-route-width:7.6}.journey-route-glow.route-transition,.journey-route-glow.route-italy-link,.journey-route-glow.route-iceland-outbound,.journey-route-glow.route-iceland-return{--journey-route-width:5.6;stroke-opacity:.28}.journey-route-glow.route-italy,.journey-route-glow.route-europe{--journey-route-width:6.4;stroke-opacity:.32}.journey-route-flow{stroke-width:2.4px;stroke-dasharray:.045 .955;stroke-dashoffset:1px;opacity:0;pointer-events:none}.journey-route-flow.route-secondary{stroke-width:1.9px;stroke-dasharray:.035 .965}.journey-map-started .journey-route-flow{animation:5.8s linear infinite journey-route-flow}.journey-map-started .journey-route-flow.route-primary{animation-delay:1.35s}.journey-map-started .journey-route-flow.route-secondary{animation-delay:2.8s}.journey-flight-plane{opacity:0;pointer-events:none}.journey-plane-shadow{opacity:.18}.journey-plane-shadow path{fill:#1a365d;stroke:none}.journey-map-started .journey-flight-plane{animation:6.8s linear 2.35s infinite journey-flight-plane-fade}.journey-point{cursor:pointer;touch-action:manipulation;outline:none}.journey-point-pulse{fill:none;stroke-width:1.55px;opacity:0;pointer-events:none;transform-box:fill-box;transform-origin:50%}.journey-point-halo{fill:#fff;stroke-width:1.6px;opacity:.92;pointer-events:none;transition:r .18s,opacity .18s,stroke-width .18s}.journey-point-core{pointer-events:all;transition:r .18s,fill .18s}.journey-point-base-ring{fill:none;stroke-width:1.35px;stroke-dasharray:2.4 2.2;opacity:.78;pointer-events:none;transition:r .18s,opacity .18s,stroke-width .18s}.journey-point-base-star{fill:#fff;stroke-width:1.35px;stroke-linejoin:round;pointer-events:none}.journey-point.china .journey-point-halo{stroke:#2b6cb075}.journey-point.china .journey-point-base-ring,.journey-point.china .journey-point-base-star{stroke:#2b6cb0d1}.journey-point.china .journey-point-pulse{stroke:#2b6cb080}.journey-point.china .journey-point-core{fill:#2b6cb0}.journey-point.europe .journey-point-halo{stroke:#b7791f7a}.journey-point.europe .journey-point-base-ring,.journey-point.europe .journey-point-base-star{stroke:#8a5a12d6}.journey-point.europe .journey-point-pulse{stroke:#b7791f85}.journey-point.europe .journey-point-core{fill:#b7791f}.journey-point.italy-focus .journey-point-halo{stroke:#8a5a1294}.journey-point.italy-focus .journey-point-base-ring,.journey-point.italy-focus .journey-point-base-star{stroke:#8a5a12e6}.journey-point.italy-focus .journey-point-pulse{stroke:#8a5a1294}.journey-point.italy-focus .journey-point-core{fill:#b7791f}.journey-point.active .journey-point-pulse{animation:2.2s ease-out infinite journey-point-pulse}.journey-point.active .journey-point-halo,.journey-point.hovered .journey-point-halo,.journey-point:hover .journey-point-halo,.journey-point:focus-visible .journey-point-halo{opacity:1;stroke-width:2.25px;filter:url(#journeyPointShadow)}.journey-point.academic-base.active .journey-point-base-ring,.journey-point.academic-base.hovered .journey-point-base-ring,.journey-point.academic-base:hover .journey-point-base-ring,.journey-point.academic-base:focus-visible .journey-point-base-ring{opacity:1;stroke-width:1.65px}.journey-point-label{pointer-events:none;fill:#1a365d;stroke:#fff;stroke-width:4px;paint-order:stroke;letter-spacing:0;opacity:0;font-size:12px;font-weight:900;transition:opacity .16s;display:none}.journey-point.active .journey-point-label,.journey-point.hovered .journey-point-label,.journey-point:hover .journey-point-label,.journey-point:focus-visible .journey-point-label{opacity:1;display:block}.journey-map-legend{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;bottom:22px;left:clamp(20px,5.6%,58px);right:auto}.journey-map-legend span{color:#4a5568;background:#ffffffdb;border:1px solid #dbe6f2e0;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.journey-map-legend span:before{content:"";background:#718096;border-radius:50%;width:8px;height:8px}.journey-map-legend .china:before{background:#2b6cb0}.journey-map-legend .europe:before{background:#b7791f}.journey-map-legend .route:before{background:linear-gradient(90deg,#2b6cb0,#319795,#b7791f);border-radius:999px;width:18px;height:2px}.journey-map-legend .base:before{background:#fff;border:2px solid #2c5282;border-radius:2px;width:9px;height:9px;transform:rotate(45deg)}.journey-detail{background:linear-gradient(135deg,#ffffffeb,#f8fbffd1),radial-gradient(circle at 88% 20%,#5a9de51a,#0000 34%),#fff;border:1px solid #dbe6f2;border-radius:8px;min-height:clamp(330px,28vw,430px);padding:24px;position:relative;overflow:hidden;box-shadow:0 12px 32px #1a365d14}.journey-detail:before{content:"";z-index:0;opacity:.42;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#1a365d0a 1px,#0000 1px),linear-gradient(#1a365d08 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.journey-detail:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#ffffffd6 0%,#ffffff9e 38%,#ffffff24 100%),linear-gradient(#ffffff29,#ffffff6b);position:absolute;inset:0}.journey-detail-content{z-index:2;will-change:opacity, transform;max-width:920px;animation:.28s cubic-bezier(.22,1,.36,1) both journey-detail-swap;position:relative}.journey-detail-badges{flex-wrap:wrap;gap:8px;display:flex}.journey-detail-kicker,.journey-detail-role{color:#2c5282;letter-spacing:.08em;text-transform:uppercase;background:#edf6ff;border-radius:999px;width:fit-content;padding:5px 9px;font-size:.74rem;font-weight:900;display:inline-flex}.journey-detail-role{color:#8a5a12;background:#fff7e8}.journey-overview-button{color:#2b6cb0;min-height:28px;font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:#fff;border:1px solid #dbe6f2;border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:.72rem;font-weight:900;text-decoration:none;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.journey-overview-button:hover,.journey-overview-button:focus-visible{color:#1a365d;background:#f8fbff;border-color:#5a9de5b8;outline:none}.journey-overview-button.admin-edit{color:#8a5a12;background:#fff7e8;border-color:#b7791f47}.journey-overview-button.admin-edit:hover,.journey-overview-button.admin-edit:focus-visible{color:#6f470c;background:#fff2d6;border-color:#b7791f7a}.journey-detail-gallery-link{color:#1f6f78;background:#edfafa;border-color:#31979547}.journey-detail-gallery-link:hover,.journey-detail-gallery-link:focus-visible{color:#174f56;background:#dff7f5;border-color:#31979585}.journey-detail h3{color:#1a365d;margin-top:18px;font-size:1.85rem;line-height:1.15}.journey-detail-meta{color:#718096;margin-top:8px;font-size:.9rem;font-weight:800}.journey-detail p{color:#4a5568;max-width:860px;margin-top:18px;line-height:1.72}.journey-tags{flex-wrap:wrap;gap:7px;margin-top:22px;display:flex}.journey-tags span{color:#4a5568;background:#f8fbff;border:1px solid #dbe6f2;border-radius:999px;padding:6px 9px;font-size:.74rem;font-weight:800}.journey-note-panel{background:linear-gradient(135deg,#31979514,#0000 68%),#f8fbff;border:1px solid #dbe6f2;border-radius:8px;margin-top:18px;padding:14px}.journey-note-panel span{color:#718096;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900;display:block}.journey-note-panel strong{color:#1a365d;margin-top:6px;font-size:.95rem;line-height:1.35;display:block}.journey-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:24px;display:grid}.journey-overview-item{background:linear-gradient(135deg,#31979514,#0000 64%),#f8fbff;border:1px solid #dbe6f2;border-radius:8px;padding:12px}.journey-overview-item strong{color:#1a365d;font-size:1.18rem;line-height:1.1;display:block}.journey-overview-item span{color:#718096;letter-spacing:.05em;text-transform:uppercase;margin-top:6px;font-size:.64rem;font-weight:900;line-height:1.25;display:block}.journey-photo-ambient{z-index:1;opacity:1;pointer-events:none;will-change:opacity;transition:opacity .9s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;overflow:hidden}.journey-photo-ambient.is-fading-out,.journey-photo-ambient.is-preparing{opacity:0}.journey-photo-ambient.is-fading-in{opacity:1}.journey-photo-ambient.is-fading-out .journey-photo-paper,.journey-photo-ambient.is-preparing .journey-photo-paper,.journey-photo-ambient.is-fading-in .journey-photo-paper,.journey-photo-ambient.is-fading-out .journey-photo-sheet,.journey-photo-ambient.is-preparing .journey-photo-sheet,.journey-photo-ambient.is-fading-in .journey-photo-sheet,.journey-photo-ambient.is-fading-out .journey-photo-paper img,.journey-photo-ambient.is-preparing .journey-photo-paper img,.journey-photo-ambient.is-fading-in .journey-photo-paper img{animation-play-state:paused}.journey-photo-paper{aspect-ratio:4/3;width:clamp(150px,17vw,260px);left:var(--paper-left);top:var(--paper-top);animation:journey-photo-paper-drift var(--paper-drift-duration,58s) ease-in-out infinite alternate;animation-delay:var(--paper-drift-delay,0s);will-change:left, top, translate;transition:left 1.15s cubic-bezier(.22,1,.36,1),top 1.15s cubic-bezier(.22,1,.36,1);display:block;position:absolute}.journey-photo-sheet{box-sizing:border-box;transform-origin:50%;width:100%;height:100%;transform:rotate(var(--paper-rotate,0deg)) scale(var(--paper-scale,1));animation:journey-photo-paper-tilt var(--paper-spin-duration,26s) linear infinite alternate;animation-delay:var(--paper-spin-delay,0s);will-change:transform;background:linear-gradient(145deg,#fbfdffc2,#e6eef894),#f5f8fca8;border:1px solid #5c74942e;border-radius:6px;padding:5px;transition:transform 1.15s cubic-bezier(.22,1,.36,1),background-color 1.2s cubic-bezier(.22,1,.36,1),border-color 1.2s cubic-bezier(.22,1,.36,1),box-shadow 1.2s cubic-bezier(.22,1,.36,1);display:block;position:relative;box-shadow:0 1px 1px #17263a1f,0 8px 20px #1a365d1a,inset 0 1px #ffffff94}.journey-photo-sheet:before{z-index:1;content:"";pointer-events:none;border:1px solid #ffffff3d;border-radius:3px;position:absolute;inset:4px;box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #435b7a14}.journey-photo-paper img{object-fit:cover;width:100%;height:100%;opacity:var(--paper-opacity-low,.2);filter:saturate(.94)contrast(1.02)brightness(.98);animation:journey-photo-paper-fade var(--paper-fade-duration,18s) ease-in-out infinite;animation-delay:var(--paper-fade-delay,0s);will-change:opacity, filter;border-radius:3px;transition:opacity 1.35s cubic-bezier(.22,1,.36,1),filter 1.35s cubic-bezier(.22,1,.36,1);display:block}.journey-photo-paper-1{--paper-left:8%;--paper-top:10%;--cluster-left:56%;--cluster-top:14%;--paper-rotate:-10deg;--cluster-rotate:-8deg;--paper-scale:.94;--cluster-scale:.9;--paper-opacity-low:.22;--paper-opacity-mid:.48;--paper-opacity-high:.84;--paper-drift-duration:62s;--paper-drift-delay:-7s;--paper-fade-duration:21s;--paper-fade-delay:-2s;--paper-spin-duration:24s;--paper-spin-delay:-13s;--paper-spin-start:-3.8deg;--paper-spin-end:3.1deg;--drift-1x:-18px;--drift-1y:8px;--drift-2x:26px;--drift-2y:-20px;--drift-3x:-30px;--drift-3y:18px;--drift-4x:22px;--drift-4y:12px;z-index:2}.journey-photo-paper-2{--paper-left:26%;--paper-top:55%;--cluster-left:67%;--cluster-top:27%;--paper-rotate:7deg;--cluster-rotate:6deg;--paper-scale:1;--cluster-scale:1.02;--paper-opacity-low:.28;--paper-opacity-mid:.56;--paper-opacity-high:.9;--paper-drift-duration:54s;--paper-drift-delay:-22s;--paper-fade-duration:16s;--paper-fade-delay:-6s;--paper-spin-duration:20s;--paper-spin-delay:-19s;--paper-spin-start:3.2deg;--paper-spin-end:-4.2deg;--drift-1x:20px;--drift-1y:-10px;--drift-2x:-26px;--drift-2y:24px;--drift-3x:18px;--drift-3y:-22px;--drift-4x:-14px;--drift-4y:16px;z-index:4}.journey-photo-paper-3{--paper-left:52%;--paper-top:12%;--cluster-left:59%;--cluster-top:43%;--paper-rotate:4deg;--cluster-rotate:3deg;--paper-scale:.9;--cluster-scale:.86;--paper-opacity-low:.2;--paper-opacity-mid:.42;--paper-opacity-high:.78;--paper-drift-duration:68s;--paper-drift-delay:-39s;--paper-fade-duration:22s;--paper-fade-delay:-9s;--paper-spin-duration:28s;--paper-spin-delay:-24s;--paper-spin-start:-2.8deg;--paper-spin-end:3deg;--drift-1x:-30px;--drift-1y:16px;--drift-2x:18px;--drift-2y:12px;--drift-3x:-14px;--drift-3y:-26px;--drift-4x:26px;--drift-4y:-8px;z-index:3}.journey-photo-paper-4{--paper-left:78%;--paper-top:18%;--cluster-left:76%;--cluster-top:9%;--paper-rotate:-5deg;--cluster-rotate:-3deg;--paper-scale:1.1;--cluster-scale:1.08;--paper-opacity-low:.24;--paper-opacity-mid:.52;--paper-opacity-high:.88;--paper-drift-duration:74s;--paper-drift-delay:-55s;--paper-fade-duration:19s;--paper-fade-delay:-4s;--paper-spin-duration:30s;--paper-spin-delay:-31s;--paper-spin-start:3.5deg;--paper-spin-end:-2.9deg;--drift-1x:12px;--drift-1y:-16px;--drift-2x:-18px;--drift-2y:20px;--drift-3x:22px;--drift-3y:14px;--drift-4x:-12px;--drift-4y:-10px;z-index:1}.journey-photo-paper-5{--paper-left:60%;--paper-top:62%;--cluster-left:71%;--cluster-top:56%;--paper-rotate:12deg;--cluster-rotate:10deg;--paper-scale:.82;--cluster-scale:.78;--paper-opacity-low:.26;--paper-opacity-mid:.46;--paper-opacity-high:.82;--paper-drift-duration:57s;--paper-drift-delay:-71s;--paper-fade-duration:17s;--paper-fade-delay:-8s;--paper-spin-duration:22s;--paper-spin-delay:-27s;--paper-spin-start:-3.4deg;--paper-spin-end:4.4deg;--drift-1x:-16px;--drift-1y:22px;--drift-2x:14px;--drift-2y:-18px;--drift-3x:28px;--drift-3y:10px;--drift-4x:-20px;--drift-4y:-12px;z-index:5}@media (hover:hover){.journey-detail:hover .journey-photo-paper,.journey-detail:focus-within .journey-photo-paper{left:var(--cluster-left,var(--paper-left));top:var(--cluster-top,var(--paper-top));--drift-1x:-8px;--drift-1y:4px;--drift-2x:9px;--drift-2y:-7px;--drift-3x:-6px;--drift-3y:8px;--drift-4x:7px;--drift-4y:5px}.journey-detail:hover .journey-photo-sheet,.journey-detail:focus-within .journey-photo-sheet{transform:rotate(var(--cluster-rotate,var(--paper-rotate,0deg))) scale(var(--cluster-scale,var(--paper-scale,1)));background:linear-gradient(145deg,#fdfeffd6,#e8f0f9b3),#f7fafdc2;border-color:#4a65883d;animation:none;box-shadow:0 1px 1px #17263a24,0 10px 24px #1a365d24,inset 0 1px #ffffffad}.journey-detail:hover .journey-photo-paper img,.journey-detail:focus-within .journey-photo-paper img{opacity:1;filter:saturate()contrast(1.04)brightness(1.02);animation:none}}@keyframes journey-route-flow{0%{opacity:0;stroke-dashoffset:1px}8%{opacity:.34}76%{opacity:.34}to{opacity:0;stroke-dashoffset:0}}@keyframes journey-route-glow-breathe{0%,to{opacity:.12}45%,55%{opacity:.34}}@keyframes journey-china-boundary-glow{0%,to{opacity:.12}45%,55%{opacity:.44}}@keyframes journey-china-boundary-core{0%,to{opacity:.58}45%,55%{opacity:.88}}@keyframes journey-point-pulse{0%{opacity:.42;stroke-width:1.8px;transform:scale(.72)}72%{opacity:0;stroke-width:.8px;transform:scale(1.65)}to{opacity:0;stroke-width:.8px;transform:scale(1.65)}}@keyframes journey-flight-plane-fade{0%{opacity:0}10%{opacity:.9}78%{opacity:.9}to{opacity:0}}@keyframes journey-detail-swap{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes journey-photo-paper-drift{0%{translate:var(--drift-1x,-14px) var(--drift-1y,8px)}34%{translate:var(--drift-2x,12px) var(--drift-2y,-12px)}68%{translate:var(--drift-3x,-8px) var(--drift-3y,14px)}to{translate:var(--drift-4x,18px) var(--drift-4y,10px)}}@keyframes journey-photo-paper-fade{0%,to{opacity:var(--paper-opacity-low,.2)}40%{opacity:var(--paper-opacity-high,.9)}72%{opacity:var(--paper-opacity-mid,.48)}}@keyframes journey-photo-paper-tilt{0%{transform:rotate(calc(var(--paper-rotate,0deg) + var(--paper-spin-start,-1.2deg))) scale(var(--paper-scale,1))}to{transform:rotate(calc(var(--paper-rotate,0deg) + var(--paper-spin-end,1.2deg))) scale(var(--paper-scale,1))}}@media (prefers-reduced-motion:reduce){.journey-route-glow-group{opacity:.16;animation:none!important}.journey-route-flow,.journey-flight-plane,.journey-point-pulse,.journey-china-boundary-glow,.journey-china-boundary-core,.journey-detail-content,.journey-photo-paper{animation:none!important}.journey-photo-paper,.journey-photo-ambient{transition:none!important}.journey-photo-sheet,.journey-photo-paper img{transition:none!important;animation:none!important}.journey-route-flow,.journey-flight-plane,.journey-point-pulse,.journey-china-boundary-glow{opacity:0}.journey-china-boundary-core{opacity:.7}}.admin-section{background:linear-gradient(#fff 0%,#f8fbff 100%);min-height:calc(100vh - 74px);padding:48px 0 70px}.admin-container{max-width:1180px}.admin-container.wide{max-width:1380px}.admin-container.narrow{max-width:520px}.admin-header{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px;display:flex}.admin-header h1,.admin-panel h1,.admin-panel h2{color:#1a365d}.admin-header p{color:#718096;margin-top:8px}.admin-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-environment-banner{background:#fff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(220px,.36fr) minmax(0,1fr);align-items:center;gap:18px;margin-bottom:18px;padding:16px 18px;display:grid;box-shadow:0 12px 32px #1a365d12}.admin-environment-banner div{gap:4px;display:grid}.admin-environment-banner span{color:#718096;letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:900}.admin-environment-banner strong{color:#1a365d;font-size:1.05rem}.admin-environment-banner p{color:#4a5568;margin:0;line-height:1.7}.admin-environment-banner.checking{background:linear-gradient(135deg,#f7fafcf5,#fffffffa);border-color:#dbe6f2}.admin-environment-banner.production{background:linear-gradient(135deg,#f0fdf4f5,#fffffffa);border-color:#b7d6c8}.admin-environment-banner.production span{color:#2f855a}.admin-environment-banner.staging{background:linear-gradient(135deg,#eff6fff5,#fffffffa);border-color:#b9c9f4}.admin-environment-banner.staging span{color:#3b5bdb}.admin-environment-banner.sandbox{background:linear-gradient(135deg,#fffaf0f5,#fffffffa);border-color:#f3d5a7}.admin-environment-banner.sandbox span{color:#b7791f}.admin-local-upload-warning{color:#744210;background:#fffaf0;border:1px solid #f3d5a7;border-radius:8px;margin:0;padding:12px 14px;font-size:.9rem;font-weight:700;line-height:1.55}.admin-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:start;gap:16px;display:grid}.admin-panel{background:#fff;border:1px solid #dbe6f2;border-radius:8px;padding:22px;box-shadow:0 12px 32px #1a365d14}.admin-context-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:24px;display:flex}.admin-text-button,.admin-text-link{color:#2b6cb0;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.84rem;font-weight:800;text-decoration:none}.admin-text-button:hover,.admin-text-button:focus-visible,.admin-text-link:hover,.admin-text-link:focus-visible{color:#1a365d;outline:none;text-decoration:underline}.admin-text-button.danger{color:#b83232}.admin-panel h1{margin:8px 0 18px;font-size:2rem}.admin-panel h2{margin-bottom:16px;font-size:1.25rem}.admin-login-note{color:#718096;margin:-6px 0 20px;line-height:1.6}.admin-place-selector-panel{grid-template-columns:minmax(130px,.2fr) minmax(260px,1fr);align-items:center;gap:16px;margin-bottom:16px;padding:16px 18px;display:grid}.admin-place-selector-panel label{color:#4a5568;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:900}.admin-place-selector-panel select{color:#1a365d;width:100%;min-height:44px;font:inherit;background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;padding:10px 12px;font-size:.95rem;font-weight:700}.admin-place-selector-panel select:focus-visible{border-color:#5a9de5c7;outline:3px solid #5a9de529}.admin-form{gap:12px;display:grid}.admin-form label{color:#4a5568;gap:6px;font-size:.82rem;font-weight:800;display:grid}.admin-form input,.admin-form textarea,.admin-form select{color:#1a365d;width:100%;font:inherit;background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;padding:10px 11px;font-size:.9rem}.admin-form textarea{resize:vertical}.admin-form select{min-height:138px}.admin-date-field{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(0,1fr) 44px;width:100%;transition:border-color .18s,box-shadow .18s;display:grid;overflow:hidden}.admin-date-field:focus-within{border-color:#5a9de5b8;box-shadow:0 0 0 3px #5a9de51f}.admin-form .admin-date-field input{background:0 0;border:0;border-radius:0;min-width:0;min-height:44px}.admin-form .admin-date-field .admin-date-picker{color:#0000;cursor:pointer;border-left:1px solid #dbe6f2;padding:0 9px}.admin-date-picker::-webkit-datetime-edit{color:#0000}.admin-date-picker::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.82;margin:0}.admin-photo-dropzone{color:#1a365d;cursor:pointer;background:#f8fbff;border:1px dashed #b8c8dc;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:72px;padding:13px 14px;transition:border-color .18s,background .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden}.admin-photo-dropzone:hover,.admin-photo-dropzone:focus-within{background:#f3f8ff;border-color:#5a9de5c2;box-shadow:0 0 0 3px #5a9de51a}.admin-photo-dropzone.dragging{background:#edf6ff;border-color:#5a9de5;box-shadow:inset 0 0 0 1px #5a9de559,0 10px 24px #2b6cb01a}.admin-form .admin-photo-input{z-index:2;opacity:0;cursor:pointer;border:0;border-radius:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.admin-photo-dropzone-button,.admin-photo-dropzone-copy{pointer-events:none}.admin-photo-dropzone-button{color:#2c5282;background:#fff;border:1px solid #dbe6f2;border-radius:6px;justify-content:center;align-items:center;min-height:34px;padding:7px 10px;font-size:.78rem;font-weight:900;line-height:1;display:inline-flex}.admin-photo-dropzone-copy{color:#4a5568;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.82rem;font-weight:800;overflow:hidden}.admin-place-list{gap:8px;max-height:680px;display:grid;overflow:auto}.admin-place-list button{color:#1a365d;text-align:left;cursor:pointer;background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;gap:4px;width:100%;padding:10px;display:grid}.admin-place-list button.active{background:#edf6ff;border-color:#5a9de5b8}.admin-place-list small{color:#718096;font-weight:800}.admin-message{color:#1a365d;background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;margin:16px 0;padding:12px 14px;font-weight:800}.admin-message.error{color:#9b2c2c;background:#fff5f5;border-color:#c5303040}.admin-media-panel{margin-top:16px}.admin-media-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.admin-media-card{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:12px;padding:12px;display:grid}.admin-media-card img{object-fit:cover;border-radius:6px;width:96px;height:80px}.admin-media-card h3{color:#1a365d;font-size:.96rem}.admin-media-card p{color:#718096;margin-top:5px;font-size:.78rem;line-height:1.35}.admin-media-card button{margin-top:9px}.admin-gallery-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.admin-gallery-stats div{background:linear-gradient(135deg,#fff 0%,#f3f8ff 100%);border:1px solid #dbe6f2;border-radius:8px;gap:4px;min-height:54px;padding:10px 13px;display:grid;box-shadow:0 8px 22px #1a365d0d}.admin-gallery-stats strong{color:#1a365d;font-size:1.08rem;line-height:1}.admin-gallery-stats span{color:#718096;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:900}.admin-gallery-toolbar{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:1fr;gap:10px;margin-bottom:16px;padding:12px;display:grid;box-shadow:inset 0 1px #ffffffc7}.admin-gallery-filters,.admin-gallery-bulk{gap:12px;display:grid}.admin-gallery-filters{grid-template-columns:minmax(240px,1fr) minmax(170px,.36fr) auto;align-items:flex-end;gap:10px;display:grid}.admin-gallery-filters label,.admin-gallery-bulk label,.admin-gallery-bulk-strip label{color:#4a5568;letter-spacing:.06em;text-transform:uppercase;gap:6px;font-size:.68rem;font-weight:900;display:grid}.admin-gallery-filters input,.admin-gallery-filters select,.admin-gallery-bulk select,.admin-gallery-bulk-strip select{color:#1a365d;width:100%;font:inherit;background:#fff;border:1px solid #dbe6f2;border-radius:7px;padding:8px 10px;font-size:.82rem;font-weight:700}.admin-gallery-bulk-strip select[multiple]{min-height:70px;padding:6px 8px}.admin-gallery-selection-actions,.admin-gallery-bulk-actions,.admin-gallery-edit-actions,.admin-gallery-card-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.admin-gallery-selection-actions{justify-content:flex-end}.admin-gallery-bulk{grid-template-columns:150px minmax(180px,1fr);align-items:end}.admin-gallery-bulk label:nth-child(2){grid-row:span 2}.admin-gallery-bulk-actions{align-self:end}.admin-gallery-bulk-strip{background:#fff;border:1px solid #5a9de52e;border-radius:8px;grid-template-columns:auto 134px minmax(190px,1fr) auto;align-items:end;gap:10px;padding:10px;display:grid}.admin-gallery-bulk-strip:not(.active){opacity:.76}.admin-gallery-bulk-empty{color:#718096;background:#fff;border:1px dashed #cbd5e0;border-radius:8px;align-items:center;min-height:40px;padding:9px 12px;font-size:.78rem;font-weight:800;display:flex}.admin-gallery-selected-pill{color:#2c5282;background:#edf6ff;border-radius:7px;place-items:center;min-width:76px;min-height:54px;padding:7px 9px;display:inline-grid}.admin-gallery-selected-pill strong{color:#1a365d;font-size:1rem;line-height:1}.admin-gallery-selected-pill span{color:#718096;letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:900}.journey-overview-button.danger{color:#b83232;border-color:#b8323247}.journey-overview-button.danger:hover,.journey-overview-button.danger:focus-visible{color:#9b2c2c;background:#fff5f5;border-color:#b832327a}.admin-gallery-layout{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}.admin-gallery-side{order:2;gap:16px;display:grid;position:static}.admin-gallery-library{order:1}.admin-gallery-panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-panel-eyebrow{color:#718096;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:.7rem;font-weight:900;display:block}.admin-gallery-panel-heading h2{margin-bottom:0}.admin-gallery-panel-heading>span{color:#718096;font-size:.8rem;font-weight:800}.btn.compact{width:auto;min-width:0;min-height:34px;padding:8px 12px;font-size:.78rem;line-height:1}.admin-gallery-result-line{color:#718096;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:.76rem;font-weight:800;display:flex}.admin-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(218px,1fr));gap:14px;display:grid}.admin-gallery-card{background:#fff;border:1px solid #dbe6f2;border-radius:8px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden}.admin-gallery-card:hover{transform:translateY(-1px);box-shadow:0 14px 28px #1a365d1a}.admin-gallery-card.selected,.admin-gallery-card.editing{border-color:#5a9de5b8;box-shadow:0 10px 24px #2b6cb01a}.admin-gallery-thumb{aspect-ratio:16/10;background:#e2e8f0;position:relative;overflow:hidden}.admin-gallery-thumb img{object-fit:cover;width:100%;height:100%;display:block}.admin-gallery-check{color:#1a365d;background:#ffffffeb;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:.68rem;font-weight:900;display:inline-flex;position:absolute;top:9px;right:9px;box-shadow:0 4px 12px #1a365d21}.admin-gallery-check input{accent-color:#5a9de5;width:13px;height:13px}.admin-gallery-card-body{min-width:0;padding:12px}.admin-gallery-card h3{color:#1a365d;margin:0;font-size:.92rem;line-height:1.25}.admin-gallery-card p{color:#718096;margin:6px 0 8px;font-size:.76rem;font-weight:700;line-height:1.35}.admin-gallery-tags{flex-wrap:wrap;gap:5px;margin-bottom:9px;display:flex}.admin-gallery-tags span{color:#4a5568;background:#fff;border:1px solid #dbe6f2;border-radius:999px;max-width:100%;padding:4px 7px;font-size:.66rem;font-weight:800;line-height:1.2}.admin-gallery-tags.collection-tags span{color:#2c5282;background:#eef6ff;border-color:#cfe4fb}.admin-gallery-card-actions{gap:12px}.admin-gallery-inspector{gap:16px;scroll-margin-top:96px;display:grid}.admin-gallery-inspector.attention{animation:.9s ease-out admin-inspector-attention}.admin-gallery-inspector-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-gallery-inspector-header h2{margin-bottom:0}.admin-gallery-mode-tabs{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;padding:3px;display:inline-flex}.admin-gallery-mode-tabs button{color:#718096;min-height:30px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 9px;font-size:.74rem;font-weight:900}.admin-gallery-mode-tabs button.active{color:#fff;background:#5a9de5}.admin-gallery-mode-tabs button:disabled{cursor:not-allowed;opacity:.45}.admin-form-two{grid-template-columns:minmax(0,1fr) minmax(130px,.62fr);gap:10px;display:grid}.admin-gallery-inspector-form{grid-template-columns:minmax(280px,.95fr) minmax(230px,1fr) minmax(180px,.72fr) minmax(240px,1fr);align-items:start;gap:16px 14px;display:grid}.admin-gallery-inspector-form.upload-mode{grid-template-areas:"photo title date location""caption caption collections collections""description description places actions"}.admin-gallery-inspector-form.upload-mode.has-local-warning{grid-template-areas:"local-warning local-warning local-warning local-warning""photo title date location""caption caption collections collections""description description places actions"}.admin-gallery-inspector-form.edit-mode{grid-template-areas:"preview title date location""caption caption collections collections""description description places actions"}.admin-gallery-inspector-form .admin-form-two{display:contents}.admin-gallery-inspector-form label{min-width:0}.admin-field-photo{grid-area:photo}.admin-gallery-inspector-form .admin-local-upload-warning{grid-area:local-warning}.admin-field-title{grid-area:title}.admin-field-date{grid-area:date}.admin-field-location{grid-area:location}.admin-field-description{grid-area:description}.admin-field-caption{grid-area:caption}.admin-field-collections{grid-area:collections}.admin-field-places{grid-area:places}.admin-field-actions{grid-area:actions;align-self:end}.admin-gallery-inspector-form textarea,.admin-gallery-inspector-form select[multiple],.admin-field-collections{min-height:132px}.admin-gallery-inspector-form .admin-field-description textarea,.admin-gallery-inspector-form .admin-field-places select[multiple]{height:132px}.admin-field-caption textarea{height:80px;min-height:80px}.admin-field-collections{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.admin-field-collections legend{color:#1a365d;padding:0;font-weight:800}.admin-collection-checklist{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.admin-collection-checklist label{color:#1a365d;background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:8px 10px;font-size:.78rem;font-weight:850;line-height:1.25;display:flex}.admin-collection-checklist input{accent-color:#5a9de5;flex:none;width:14px;height:14px}.admin-gallery-inspector-form>.btn.admin-field-actions{justify-self:start;width:min(220px,100%)}.admin-gallery-edit-preview{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-area:preview;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:11px;min-height:74px;padding:10px;display:grid}.admin-gallery-edit-preview img{object-fit:cover;border-radius:6px;width:68px;height:52px}.admin-gallery-edit-preview strong,.admin-gallery-edit-preview span{display:block}.admin-gallery-edit-preview strong{color:#1a365d;font-size:.9rem;line-height:1.25}.admin-gallery-edit-preview span{color:#718096;margin-top:4px;font-size:.72rem;font-weight:800;line-height:1.35}.admin-gallery-edit-actions{justify-content:flex-start;align-self:end;padding-bottom:1px}.admin-gallery-edit-actions .btn{width:min(178px,100%)}.admin-inline-feedback{color:#4a5568;background:#f8fbff;border:1px solid #dbe6f2;border-radius:999px;flex-basis:100%;align-items:center;gap:7px;width:fit-content;max-width:100%;min-height:30px;padding:6px 10px;font-size:.76rem;font-weight:900;line-height:1.2;display:inline-flex}.admin-inline-feedback:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.admin-inline-feedback.pending{color:#2c5282;background:#edf6ff;border-color:#5a9de547}.admin-inline-feedback.pending:before{animation:.9s ease-in-out infinite admin-feedback-pulse}.admin-inline-feedback.success{color:#276749;background:#f0fff4;border-color:#31979542}.admin-inline-feedback.error{color:#9b2c2c;background:#fff5f5;border-color:#c5303047}@keyframes admin-feedback-pulse{0%,to{opacity:.45;transform:scale(.86)}50%{opacity:1;transform:scale(1)}}.admin-gallery-inspector-empty{color:#718096;background:#f8fbff;border:1px dashed #cbd5e0;border-radius:8px;gap:14px;padding:16px;display:grid}.admin-research-list{gap:10px;display:grid}.admin-research-list-item{color:#1a365d;width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #5a9de538;border-radius:8px;gap:5px;padding:13px 14px;transition:border-color .18s,background .18s,transform .18s;display:grid}.admin-research-list-item:hover,.admin-research-list-item:focus-visible,.admin-research-list-item.active{background:#f2f8ff;border-color:#5a9de5ad;outline:none;transform:translateY(-1px)}.admin-research-list-item strong{color:#1a365d;font-size:.95rem;line-height:1.35}.admin-research-list-item span,.admin-research-file-name{color:#718096;font-size:.82rem;font-weight:700}.admin-research-form{gap:14px;display:grid}.admin-inline-check{align-items:center;gap:10px;width:fit-content;font-weight:800;display:inline-flex}.admin-inline-check input{width:auto}.admin-research-figure-panel{background:#f8fbff;border:1px solid #5a9de542;border-radius:8px;gap:12px;padding:14px;display:grid}.admin-research-figure-panel h3{color:#1a365d;font-size:1rem}.admin-delete-dialog{z-index:2500;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admin-delete-backdrop{-webkit-backdrop-filter:blur(12px)saturate(.9);cursor:pointer;background:radial-gradient(circle at 50% 18%,#c530302e,#0000 34%),#081220a3;border:0;position:absolute;inset:0}.admin-delete-panel{z-index:1;background:#fffffff7;border:1px solid #ffffffb8;border-radius:8px;grid-template-columns:46px minmax(0,1fr);gap:14px 16px;width:min(500px,100vw - 48px);padding:22px;animation:.18s both admin-delete-in;display:grid;position:relative;box-shadow:0 28px 70px #08122057}.admin-delete-mark{background:#fff5f5;border:1px solid #c5303038;border-radius:8px;width:46px;height:46px;position:relative}.admin-delete-mark:before,.admin-delete-mark:after{content:"";background:#9b2c2c;border-radius:999px;width:20px;height:3px;position:absolute;top:21px;left:13px}.admin-delete-mark:before{transform:rotate(45deg)}.admin-delete-mark:after{transform:rotate(-45deg)}.admin-delete-copy{min-width:0}.admin-delete-copy h2{color:#1a365d;margin:0;font-size:1.28rem;line-height:1.24}.admin-delete-copy p{color:#4a5568;margin-top:8px;font-size:.92rem;line-height:1.58}.admin-delete-media,.admin-delete-summary,.admin-delete-actions{grid-column:1/-1}.admin-delete-media{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px;padding:10px;display:grid}.admin-delete-media div{min-width:0}.admin-delete-media img{object-fit:cover;border-radius:6px;width:76px;height:58px}.admin-delete-media strong,.admin-delete-media span,.admin-delete-summary strong,.admin-delete-summary span{display:block}.admin-delete-media strong{color:#1a365d;overflow-wrap:anywhere;font-size:.96rem;line-height:1.25}.admin-delete-media span{color:#718096;overflow-wrap:anywhere;margin-top:4px;font-size:.78rem;font-weight:800;line-height:1.4}.admin-delete-summary{background:snow;border:1px solid #c530302e;border-radius:8px;padding:14px}.admin-delete-summary strong{color:#9b2c2c;font-size:1.7rem;line-height:1}.admin-delete-summary span{color:#4a5568;margin-top:6px;font-weight:800}.admin-delete-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-delete-confirm{color:#fff;min-width:132px;min-height:38px;font:inherit;cursor:pointer;background:#9b2c2c;border:1px solid #9b2c2cad;border-radius:999px;justify-content:center;align-items:center;padding:8px 14px;font-size:.82rem;font-weight:900;transition:background .18s,border-color .18s,transform .18s;display:inline-flex}.admin-delete-confirm:hover,.admin-delete-confirm:focus-visible{background:#742a2a;border-color:#742a2a;outline:none;transform:translateY(-1px)}.admin-delete-confirm:disabled{cursor:not-allowed;opacity:.62;transform:none}.admin-preview-lightbox{z-index:2400;place-items:center;padding:34px;display:grid;position:fixed;inset:0}.admin-preview-backdrop{-webkit-backdrop-filter:blur(14px)saturate(.94);cursor:zoom-out;background:radial-gradient(circle at 50% 24%,#5a9de533,#0000 38%),#081220b8;border:0;position:absolute;inset:0}.admin-preview-panel{z-index:1;background:#fffffff5;border:1px solid #dbe6f247;border-radius:10px;grid-template-columns:minmax(0,1fr) 280px;width:min(1160px,100vw - 68px);max-height:calc(100vh - 68px);animation:.18s both admin-preview-in;display:grid;position:relative;overflow:hidden;box-shadow:0 28px 70px #08122061}.admin-preview-figure{background:#081220;place-items:center;min-height:420px;max-height:calc(100vh - 68px);margin:0;display:grid}.admin-preview-figure img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 68px);display:block}.admin-preview-caption{background:#fff;align-content:end;gap:8px;padding:22px;display:grid}.admin-preview-caption span{color:#718096;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.admin-preview-caption h2{color:#1a365d;font-size:1.3rem;line-height:1.22}.admin-preview-caption p{color:#718096;font-size:.86rem;font-weight:800;line-height:1.45}.admin-preview-close{z-index:2;color:#1a365d;min-height:34px;font:inherit;cursor:pointer;background:#fffffff0;border:1px solid #cbd5e0c7;border-radius:999px;padding:7px 12px;font-size:.78rem;font-weight:900;position:absolute;top:14px;right:14px;box-shadow:0 8px 20px #0812202e}.admin-preview-close:hover,.admin-preview-close:focus-visible{background:#edf6ff;outline:none}@keyframes admin-preview-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes admin-delete-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes admin-inspector-attention{0%{border-color:#5a9de5eb;box-shadow:0 0 #5a9de552,0 18px 42px #1a365d24}55%{border-color:#5a9de5b8;box-shadow:0 0 0 7px #5a9de521,0 18px 42px #1a365d1f}to{border-color:#dbe6f2;box-shadow:0 12px 32px #1a365d14}}.latest-paper-section{background:0 0;padding:70px 0}.latest-paper-card{background:#fff;border:1px solid #dbe6f2;border-radius:8px;padding:26px;box-shadow:0 12px 32px #1a365d14}.latest-paper-meta{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.latest-paper-meta span{color:#2c5282;background:#edf6ff;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:800}.latest-paper-card h3{color:#1a365d;max-width:940px;margin-bottom:12px;font-size:1.45rem;line-height:1.36}.latest-paper-card p{color:#4a5568;max-width:940px;margin-bottom:16px;line-height:1.7}.latest-paper-actions{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.profile-icon-mark{color:#1a365d;letter-spacing:.02em;background:#edf6ff;border-radius:50%;flex:0 0 64px;justify-content:center;align-items:center;width:64px;height:64px;margin:0;font-size:1.12rem;font-weight:900;display:inline-flex}.project-showcase-section{background:0 0;padding:80px 0}.project-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;display:grid}.project-card-modern{background:#fff;border:1px solid #dbe6f2;border-radius:8px;transition:transform .22s,box-shadow .22s,border-color .22s;overflow:hidden;box-shadow:0 12px 32px #1a365d14}.project-card-modern:hover{border-color:#5a9de59e;transform:translateY(-3px);box-shadow:0 18px 38px #1a365d1f}.project-preview{aspect-ratio:16/9;background:#dbe6f2;position:relative;overflow:hidden}.project-preview img{object-fit:cover;width:100%;height:100%;transition:transform .28s;display:block}.project-card-modern:hover .project-preview img{transform:scale(1.025)}.project-preview span{color:#fff;background:#1a365ddb;border-radius:999px;padding:6px 9px;font-size:.74rem;font-weight:800;position:absolute;bottom:12px;left:12px}.project-card-body{gap:12px;padding:18px;display:grid}.project-card-body h3{color:#1a365d;font-size:1.18rem;line-height:1.28}.project-card-body p{color:#4a5568;line-height:1.58}.project-card-body .btn{width:fit-content}.project-resource-row{flex-wrap:wrap;gap:8px;display:flex}.project-resource-row a{color:#2c5282;background:#f8fbff;border:1px solid #dbe6f2;border-radius:6px;align-items:center;min-height:34px;padding:7px 10px;font-size:.78rem;font-weight:800;line-height:1.15;text-decoration:none;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.project-resource-row a:hover{color:#1a365d;background:#edf6ff;border-color:#5a9de594}.convex-learning-page{color:#1a365d;background:#fff}.bilingual-zh,.bilingual-en{display:block}.bilingual-zh{color:inherit;font-family:var(--font-cjk);letter-spacing:0;font-weight:600}.bilingual-en{color:#718096;font-family:var(--font-sans);margin-top:4px;font-size:.88em;font-weight:700;line-height:1.45}.latex-math{color:inherit;font-weight:400}.latex-math.inline{vertical-align:-.08em;margin:0 .08em;display:inline-block}.latex-math.display{max-width:100%;margin:4px 0;line-height:1.25;display:block;overflow-x:auto}.latex-math .katex{color:inherit;font-size:1em;line-height:1.2}.latex-math .katex-mathml{display:none}.bilingual-zh .latex-math,.bilingual-en .latex-math{margin-left:.12em;margin-right:.12em}.convex-learning-hero{background:linear-gradient(135deg,#4299e11a,#31979514 52%,#b7791f1a),#f8fbff;padding:108px 0 64px}.convex-learning-hero-layout{grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);align-items:center;gap:42px;display:grid}.convex-learning-hero-copy h1{color:#1a365d;margin-top:12px;line-height:1.02}.convex-learning-hero-copy h1 .bilingual-zh{overflow-wrap:normal;white-space:nowrap;word-break:keep-all;font-size:clamp(2.7rem,4vw,3.65rem);font-weight:600;line-height:1.08}.convex-learning-hero-copy h1 .bilingual-en{color:#2c5282;font-family:var(--font-sans);margin-top:10px;font-size:clamp(1.35rem,2.7vw,2.35rem);font-weight:800;line-height:1.12}.convex-learning-hero-copy p{color:#4a5568;max-width:680px;margin-top:18px;font-size:1.08rem;line-height:1.75}.convex-learning-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.convex-learning-hero-visual{background:#fff;border:1px solid #dbe6f2;border-radius:8px;overflow:hidden;box-shadow:0 18px 46px #1a365d24}.convex-learning-hero-visual img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.convex-learning-band,.convex-learning-resources{background:#fff;padding:48px 0}.convex-learning-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.convex-learning-mode{background:#fff;border:1px solid #dbe6f2;border-radius:8px;min-height:168px;padding:22px;box-shadow:0 10px 28px #1a365d12}.convex-learning-mode h2{color:#1a365d;font-size:1.08rem;line-height:1.25}.convex-learning-mode p{color:#4a5568;margin-top:12px;line-height:1.65}.convex-chapter-route-header{background:linear-gradient(135deg,#4299e114,#3197950f 58%,#b7791f12),#f8fbff;border-bottom:1px solid #dbe6f2;padding:98px 0 42px}.convex-chapter-route-layout{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.convex-chapter-route-layout h1{color:#1a365d;max-width:760px;margin-top:10px;font-size:clamp(2rem,3.2vw,3rem);line-height:1.08}.convex-chapter-route-layout h1 .bilingual-en{color:#2c5282;margin-top:8px;font-size:.56em}.convex-chapter-route-layout p{color:#4a5568;max-width:780px;margin-top:14px;font-size:1.02rem;line-height:1.7}.convex-learning-main{background:#f6f9fc;padding:70px 0}.convex-learning-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:30px;display:grid}.convex-course-overview{background:#f6f9fc}.convex-course-map-header{background:#fff;border:1px solid #dbe6f2;border-radius:8px;max-width:860px;padding:24px;box-shadow:0 12px 32px #1a365d0f}.convex-course-map-header h2{color:#1a365d;margin-top:8px;font-size:2rem;line-height:1.18}.convex-course-map-header p{color:#4a5568;margin-top:12px;line-height:1.7}.convex-course-chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.convex-course-chapter-card{background:#fff;border:1px solid #dbe6f2;border-radius:8px;flex-direction:column;align-items:flex-start;min-height:360px;padding:22px;display:flex;box-shadow:0 12px 32px #1a365d12}.convex-course-chapter-card-top{justify-content:space-between;align-items:center;gap:14px;width:100%;display:flex}.convex-course-chapter-number{color:#2c5282;background:#4299e124;border-radius:10px;justify-content:center;align-items:center;width:46px;height:46px;font-size:1rem;font-weight:900;display:inline-flex}.convex-course-chapter-card h3{color:#1a365d;margin-top:18px;font-size:1.28rem;line-height:1.22}.convex-course-chapter-card p{color:#4a5568;margin-top:12px;line-height:1.62}.convex-course-chapter-card ul{color:#4a5568;gap:8px;margin:16px 0 20px;padding-left:18px;line-height:1.5;display:grid}.convex-course-chapter-card .btn{margin-top:auto}.convex-practice-first-path{background:linear-gradient(135deg,#3197951a,#4299e114 64%,#0000),#fff;border:1px solid #31979552;border-radius:8px;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);align-items:stretch;gap:22px;padding:24px;display:grid;box-shadow:0 14px 34px #1a365d14}.convex-practice-first-path h2{color:#1a365d;margin-top:8px;font-size:2rem;line-height:1.2}.convex-practice-first-path p{color:#4a5568;max-width:780px;margin-top:14px;line-height:1.72}.convex-practice-first-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.convex-practice-first-card{color:#1a365d;background:#fff;border:1px solid #dbe6f2;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:210px;padding:18px;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.convex-practice-first-card:hover{border-color:#4299e194;transform:translateY(-2px);box-shadow:0 14px 30px #1a365d1f}.convex-practice-first-card.primary{background:linear-gradient(135deg,#3197951a,#0000 72%),#fff;border-color:#3197956b}.convex-practice-first-card span{color:#2c5282;background:#4299e124;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:900;display:inline-flex}.convex-practice-first-card.primary span{color:#2c7a7b;background:#3197952e}.convex-practice-first-card strong{margin-top:18px;font-size:1.04rem;line-height:1.34}.convex-practice-first-card small{color:#718096;margin-top:12px;font-weight:800;line-height:1.4}.convex-chapter-rail{width:184px}.convex-chapter-rail .section-rail-toggle-text{max-width:112px}.convex-chapter-rail .section-rail-marker{border-radius:50%;flex:0 0 28px;width:28px;height:28px;font-size:.68rem}.convex-chapter-rail .section-rail-label{max-width:122px;font-size:.82rem}.convex-chapter-rail.collapsed{width:54px}.convex-chapter-rail.collapsed .section-rail-marker{flex-basis:28px;width:28px;height:28px}.convex-chapter-status,.convex-chapter-label{color:#718096;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800;display:block}.convex-chapter-panel{background:linear-gradient(#fff 0% 58%,#fbfdff 100%);border:1px solid #d6e3ee;border-radius:8px;min-height:620px;padding:34px 38px 38px;scroll-margin-top:104px;box-shadow:0 18px 48px #1a365d14}.convex-chapter-panel-header{border-bottom:1px solid #e3edf7;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:24px;display:flex}.convex-chapter-title-row{grid-template-columns:78px minmax(0,1fr);align-items:start;gap:18px;min-width:0;display:grid}.convex-chapter-title-number{color:#153e75;width:78px;min-height:78px;font-family:var(--font-sans);letter-spacing:0;background:linear-gradient(#eef7ff,#fff);border:1px solid #4299e13d;border-radius:8px;justify-content:center;align-items:center;font-size:1.45rem;font-weight:900;line-height:1;display:inline-flex;box-shadow:inset 0 -1px #1a365d0f}.convex-chapter-title-copy{min-width:0}.convex-chapter-status{color:#319795}.convex-chapter-status .bilingual-en{color:#319795;font-size:.92em}.convex-chapter-label{color:#4a5568;white-space:nowrap;background:#f8fbff;border:1px solid #dbe6f2;border-radius:999px;width:fit-content;padding:8px 14px}.convex-chapter-panel h2{color:#1a365d;margin-top:8px;font-size:clamp(2.05rem,2.5vw,3rem);line-height:1.1}.convex-chapter-panel h2 .bilingual-zh{font-weight:800;line-height:1.12}.convex-chapter-panel h2 .bilingual-en{color:#2c5282;margin-top:10px;font-size:.58em;font-weight:800;line-height:1.18}.convex-chapter-summary{color:#4a5568;max-width:980px;margin-top:22px;margin-left:96px;font-size:1.02rem;line-height:1.75}.convex-chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:26px;display:grid}.convex-chapter-block{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;min-height:190px;padding:18px}.convex-chapter-block.wide{grid-column:1/-1;min-height:0}.convex-chapter-block.placeholder{background:linear-gradient(135deg,#31979514,#0000 62%),#fff}.convex-chapter-block h3{color:#1a365d;font-size:1rem;line-height:1.25}.convex-chapter-block p,.convex-chapter-block li{color:#4a5568;line-height:1.64}.convex-chapter-block ul{gap:8px;margin-top:12px;padding-left:18px;display:grid}.convex-chapter-block p{margin-top:12px}.convex-checkpoint-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.convex-checkpoint-row span{color:#2c5282;background:#fff;border:1px solid #dbe6f2;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:800}.convex-checkpoint-row span .bilingual-en{margin-top:2px;font-size:.92em}.convex-theory-use-callout{background:linear-gradient(135deg,#31979514,#0000 72%),#f8fbff;border:1px solid #31979547;border-radius:8px;gap:12px;margin-top:20px;padding:18px;display:grid}.convex-theory-use-callout h3{color:#1a365d;font-size:1.05rem;line-height:1.25}.convex-theory-use-callout p{color:#4a5568;line-height:1.68}.convex-theory-use-callout .btn{width:fit-content}.convex-chapter-pager{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.convex-chapter-pager-link{color:#1a365d;background:#fff;border:1px solid #dbe6f2;border-radius:8px;flex-direction:column;justify-content:center;min-height:116px;padding:18px;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;box-shadow:0 10px 26px #1a365d12}.convex-chapter-pager-link:hover{border-color:#4299e194;transform:translateY(-2px);box-shadow:0 14px 30px #1a365d1f}.convex-chapter-pager-link.next{text-align:right;align-items:flex-end}.convex-chapter-pager-link span{color:#319795;letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:900}.convex-chapter-pager-link strong{color:#1a365d;margin-top:8px;font-size:1rem;line-height:1.25}.convex-chapter-pager-link small{color:#718096;margin-top:5px;font-weight:800;line-height:1.35}.convex-practice-lesson{gap:22px;margin-top:26px;display:grid}.convex-practice-hero-card,.convex-practice-section{background:#fff;border:1px solid #dbe6f2;border-radius:8px;padding:22px;box-shadow:0 10px 28px #1a365d0f}.convex-practice-hero-card{background:linear-gradient(120deg,#4299e114,#ffffffb8 48%,#3197951a),#fff;border-color:#31979542;grid-template-columns:minmax(0,1.55fr) minmax(320px,.55fr);align-items:start;gap:30px;padding:30px 34px;display:grid;box-shadow:0 14px 34px #1a365d12}.convex-practice-hero-card>div:first-child{max-width:980px}.convex-learning-layout>*,.convex-chapter-panel,.convex-practice-first-path>*,.convex-practice-first-actions>*,.convex-practice-lesson>*,.convex-practice-hero-card>*,.convex-topology-layout>*,.convex-model-layout>*,.convex-model-sheet>*,.convex-model-objective-row>*,.convex-model-constraint-list>*,.convex-code-step,.convex-result-table-wrap,.convex-theory-link-card,.convex-dcp-grid>*{min-width:0}.convex-practice-hero-card h3,.convex-practice-section-heading h3{color:#1a365d;margin-top:8px;font-size:1.52rem;line-height:1.22}.convex-practice-hero-card p,.convex-practice-section p{color:#4a5568;margin-top:12px;line-height:1.68}.convex-practice-mini-metrics{background:#ffffffad;border:1px solid #dbe6f2db;border-radius:8px;align-self:stretch;gap:12px;padding:12px;display:grid;box-shadow:inset 0 1px #ffffffb8}.convex-practice-mini-metrics>span{background:linear-gradient(135deg,#fff,#f8fbff);border:1px solid #dbe6f2;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-height:62px;padding:12px 14px;display:flex}.convex-practice-mini-metrics strong{color:#1a365d;font-family:"Inter", var(--font-cjk);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;text-align:right;order:2;font-size:1.28rem;font-weight:800;line-height:1.1}.convex-practice-mini-metrics>span:first-child strong{font-size:1.42rem}.convex-practice-mini-metrics small{color:#718096;text-transform:uppercase;order:1;margin-top:0;font-size:.76rem;font-weight:800;line-height:1.25}.convex-offloading-definition{background:linear-gradient(135deg,#5a9de512,#b7791f0d 68%,#0000),#fff}.convex-offloading-definition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.convex-offloading-definition-grid article,.convex-offloading-implementation{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;min-width:0;padding:18px}.convex-offloading-definition-grid article>span{color:#319795;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900;display:block}.convex-offloading-definition-grid h4,.convex-offloading-implementation h4{color:#1a365d;margin-top:8px;font-size:1.08rem;line-height:1.28}.convex-offloading-keywords{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.convex-offloading-keywords span{color:#2c5282;background:#fff;border:1px solid #5a9de547;border-radius:999px;align-items:center;min-height:28px;padding:5px 9px;font-size:.76rem;font-weight:800;display:inline-flex}.convex-offloading-implementation{background:linear-gradient(135deg,#31979514,#0000 72%),#f8fbff;gap:16px;margin-top:14px;display:grid}.convex-offloading-flow{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.convex-offloading-flow article{background:#fff;border:1px solid #dbe6f2;border-radius:8px;min-width:0;min-height:178px;padding:14px;position:relative}.convex-offloading-flow small{color:#319795;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:900}.convex-offloading-flow strong{color:#1a365d;margin-top:8px;font-size:.95rem;line-height:1.25;display:block}.convex-offloading-flow p{color:#4a5568;margin-top:9px;font-size:.9rem;line-height:1.56}.convex-offloading-flow-arrow{z-index:2;background:#fff;border:1px solid #5a9de547;border-radius:999px;width:24px;height:24px;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.convex-offloading-flow-arrow:before{content:"";border-top:2px solid #2c5282;border-right:2px solid #2c5282;width:8px;height:8px;position:absolute;top:7px;left:7px;transform:rotate(45deg)}.convex-task-split-section{background:linear-gradient(135deg,#3197950f,#4299e10d 62%,#0000),#fff}.convex-task-split-section .convex-practice-section-heading{max-width:780px}.convex-task-split-section .convex-practice-section-heading h3{font-size:1.28rem;line-height:1.24}.convex-task-split-section .convex-practice-section-heading h3 .bilingual-en{color:#2c5282;margin-top:4px;font-size:.86em}.convex-task-split-layout{grid-template-columns:minmax(0,1.05fr) minmax(280px,.68fr);align-items:stretch;gap:16px;margin-top:18px;display:grid}.convex-task-split-diagram,.convex-task-mapping-card{background:#fff;border:1px solid #dbe6f2;border-radius:8px;min-width:0;padding:18px}.convex-task-split-diagram{grid-template-columns:minmax(120px,.32fr) minmax(0,1fr);align-items:center;gap:18px;display:grid}.convex-task-source{background:linear-gradient(135deg,#4299e114,#0000 72%),#f8fbff;border:1px solid #2c528238;border-radius:8px;align-content:center;gap:5px;min-height:128px;padding:16px;display:grid}.convex-task-source span,.convex-task-branch-copy span,.convex-task-budget-strip strong{color:#319795;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.convex-task-source strong,.convex-task-target strong,.convex-task-flow-chain strong{color:#1a365d;font-size:1rem;line-height:1.25;display:block}.convex-task-source small,.convex-task-target small,.convex-task-flow-chain small{color:#64748b;margin-top:6px;font-size:.78rem;font-weight:800;line-height:1.35;display:block}.convex-task-branches{gap:14px;display:grid}.convex-task-branch{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(88px,.3fr) minmax(70px,.42fr) minmax(150px,.78fr);align-items:center;gap:12px;min-width:0;padding:14px;display:grid}.convex-task-branch.edge{background:linear-gradient(135deg,#31979517,#0000 70%),#f8fbff;grid-template-columns:minmax(88px,.24fr) minmax(0,1fr)}.convex-task-branch-copy{gap:5px;display:grid}.convex-task-flow-line{background:#2c5282;min-width:52px;height:2px;position:relative}.convex-task-flow-line:after{content:"";border-top:2px solid #2c5282;border-right:2px solid #2c5282;width:9px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)rotate(45deg)}.convex-task-target,.convex-task-flow-chain div{background:#fff;border:1px solid #dbe6f2;border-radius:8px;min-width:0;padding:12px}.convex-task-flow-chain{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:18px;display:grid;position:relative}.convex-task-flow-chain:before{content:"";background:#319795;width:18px;height:2px;position:absolute;top:50%;left:calc(50% - 9px);transform:translateY(-50%)}.convex-task-flow-chain:after{content:"";border-top:2px solid #319795;border-right:2px solid #319795;width:8px;height:8px;position:absolute;top:50%;left:calc(50% + 5px);transform:translateY(-50%)rotate(45deg)}.convex-task-budget-strip{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.convex-task-budget-strip>span{background:#f8fbffeb;border:1px solid #3197953d;border-radius:8px;gap:6px;min-width:0;padding:12px;display:grid}.convex-task-mapping-card{align-content:start;gap:12px;display:grid}.convex-task-mapping-card h4{color:#1a365d;font-size:1.04rem;line-height:1.25}.convex-task-mapping-list{gap:8px;display:grid}.convex-task-mapping-list div{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(70px,.32fr) minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:10px;display:grid}.convex-task-mapping-card p{color:#4a5568;margin-top:0;font-size:.92rem;line-height:1.58}.convex-topology-section{background:linear-gradient(135deg,#3197950f,#4299e10d 62%,#0000),#fff}.convex-topology-section .convex-practice-section-heading{max-width:760px}.convex-topology-section .convex-practice-section-heading h3{font-size:1.28rem;line-height:1.24}.convex-topology-section .convex-practice-section-heading h3 .bilingual-en{color:#2c5282;margin-top:4px;font-size:.86em}.convex-topology-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;margin-top:18px;display:grid}.convex-topology-diagram-card,.convex-topology-notes article{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;min-width:0}.convex-topology-diagram-card{background:linear-gradient(135deg,#fffffff5,#f8fbfff0),#fff;padding:14px;overflow:hidden}.convex-edge-topology-svg{width:100%;height:auto;min-height:260px;max-height:390px;display:block}.convex-topology-surface{fill:#fff;stroke:#dbe6f2}.convex-topology-zone-title{fill:#718096;letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:900}.convex-topology-user-card,.convex-topology-server-body,.convex-topology-local-box{fill:#fff;stroke:#dbe6f2;stroke-width:2px}.convex-topology-user-icon{fill:#4299e129;stroke:#2c52825c;stroke-width:2px}.convex-topology-phone{fill:#2c5282;opacity:.88}.convex-topology-user-label,.convex-topology-server-label,.convex-topology-local-label,.convex-topology-access-label{fill:#1a365d;font-size:14px;font-weight:900}.convex-topology-task-label{fill:#718096;font-size:11px;font-weight:800}.convex-topology-access-ring{fill:#3197951a;stroke:#31979547;stroke-width:2px}.convex-topology-access-node{fill:#319795;opacity:.9}.convex-topology-access-wave{fill:none;stroke:#fff;stroke-linecap:round;stroke-width:4px}.convex-topology-server-body{fill:#edf6ff;stroke:#2c528247}.convex-topology-server-slot{fill:#fff;stroke:#dbe6f2;stroke-width:2px}.convex-topology-led{fill:#319795}.convex-topology-link,.convex-topology-edge-link{fill:none;stroke:#2c5282;stroke-linecap:round;stroke-width:3px}.convex-topology-edge-link{stroke:#319795;stroke-width:4px}.convex-topology-muted-link{fill:none;stroke:#718096;stroke-dasharray:7 7;stroke-linecap:round;stroke-width:2.5px}.convex-topology-arrow-head{fill:#2c5282}.convex-topology-arrow-head.muted{fill:#718096}.convex-topology-link-label rect,.convex-topology-budget-label rect{display:none}.convex-edge-topology-svg .convex-svg-latex-label{min-height:0;box-shadow:none;color:#1a365d;background:0 0;border:0;border-radius:0;padding:0}.convex-edge-topology-svg .convex-svg-latex-label .latex-math{margin:0}.convex-edge-topology-svg .convex-svg-latex-label .katex{font-size:.86rem}.convex-topology-link-label .katex,.convex-topology-budget-label .katex{color:#2c5282;font-size:.86rem}.convex-topology-notes{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.convex-topology-notes article{background:#fff;padding:14px}.convex-topology-notes strong{color:#1a365d;font-size:.94rem;line-height:1.25;display:block}.convex-topology-notes p{color:#4a5568;margin-top:8px;font-size:.9rem;line-height:1.52}.convex-topology-notes .bilingual-zh{font-weight:650}.convex-topology-notes .bilingual-en{color:#64748b;font-weight:600}.convex-practice-section-heading{max-width:880px}.convex-model-section{background:linear-gradient(135deg,#31979509,#4299e10b),#fff}.convex-model-layout{grid-template-columns:minmax(0,1.15fr) minmax(280px,.62fr);align-items:stretch;gap:16px;margin-top:18px;display:grid}.convex-model-sheet,.convex-model-reader{background:#ffffffdb;border:1px solid #dbe6f2;border-radius:8px;min-width:0;box-shadow:0 10px 24px #1a365d0b}.convex-model-sheet{gap:14px;padding:18px;display:grid}.convex-model-sheet-head{border-bottom:1px solid #dbe6f2f2;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;padding-bottom:12px;display:flex}.convex-model-sheet-head span,.convex-model-part-label{color:#319795;letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;font-weight:900}.convex-model-sheet-head strong{color:#1a365d;font-size:.98rem;line-height:1.25}.convex-model-objective-row{background:#f8fbff;border:1px solid #dbe6f2e6;border-radius:8px;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);align-items:center;gap:18px;padding:14px;display:grid}.convex-model-objective-row p{color:#64748b;margin-top:6px;font-size:.9rem;font-weight:650;line-height:1.52}.convex-model-objective-row .latex-math.display{color:#1a365d;margin:0;font-size:1.02rem}.convex-model-objective-row .katex-display{text-align:left;margin:0}.convex-model-subject-row{gap:10px;display:grid}.convex-model-constraint-list{gap:8px;display:grid}.convex-model-constraint-list>div{background:#fff;border:1px solid #dbe6f2e6;border-radius:8px;grid-template-columns:minmax(128px,.35fr) minmax(0,1fr);align-items:center;gap:12px;padding:11px 12px;display:grid}.convex-model-constraint-list strong{color:#4a5568;font-size:.88rem;line-height:1.32}.convex-model-constraint-list .latex-math{color:#1a365d;font-size:1rem}.convex-model-reader{align-content:start;gap:12px;padding:18px;display:grid}.convex-model-reader h4{color:#1a365d;font-size:1.08rem;line-height:1.34}.convex-model-reader ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.convex-model-reader li{border-top:1px solid #dbe6f2e6;gap:5px;padding-top:10px;display:grid}.convex-model-reader li:first-child{border-top:0;padding-top:0}.convex-model-reader li strong{color:#1a365d;font-size:.92rem}.convex-model-reader li span{color:#64748b;font-size:.9rem;font-weight:650;line-height:1.55}.convex-model-takeaway{background:#f8fbffe6;border-left:3px solid #319795;border-radius:0 8px 8px 0;margin-top:16px;padding:14px 16px}.convex-code-step-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.convex-code-step{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;min-width:0;padding:16px}.convex-code-step h4{color:#1a365d;font-size:1rem;line-height:1.25}.convex-code-step p{margin-top:10px;font-size:.95rem}.convex-code-block{color:#e2e8f0;white-space:pre;background:#0f172a;border:1px solid #1a365d1f;border-radius:8px;margin-top:14px;padding:14px;font-size:.82rem;line-height:1.55;overflow-x:auto}.convex-code-block code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.convex-result-table-wrap{border:1px solid #dbe6f2;border-radius:8px;margin-top:18px;overflow-x:auto}.convex-result-table{border-collapse:collapse;background:#fff;width:100%;min-width:760px}.convex-result-table th,.convex-result-table td{text-align:left;vertical-align:top;border-bottom:1px solid #dbe6f2;padding:13px 14px}.convex-result-table th{color:#1a365d;letter-spacing:.06em;text-transform:uppercase;background:#f8fbff;font-size:.78rem;font-weight:900}.convex-result-table td{color:#4a5568;line-height:1.5}.convex-result-table tbody tr:last-child td{border-bottom:0}.convex-theory-link-grid,.convex-dcp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.convex-theory-link-card,.convex-dcp-grid article{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;padding:16px}.convex-theory-link-card{color:#1a365d;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s}.convex-theory-link-card:hover{border-color:#4299e194;transform:translateY(-2px);box-shadow:0 12px 26px #1a365d1a}.convex-theory-link-card strong,.convex-dcp-grid strong{color:#1a365d;font-size:1rem;line-height:1.25}.convex-theory-link-card>span{color:#4a5568;margin-top:10px;line-height:1.56;display:block}.convex-dcp-grid article.warning{background:#fffaf0;border-color:#b7791f57}.convex-dcp-grid code{color:#1a365d;background:#1a365d14;border-radius:4px;padding:1px 4px;font-size:.86em}.convex-cvxpy-lesson .convex-practice-hero-card{grid-template-columns:minmax(0,1fr) auto}.convex-geometry-lesson{gap:22px;margin-top:26px;display:grid}.convex-lesson-overview{grid-template-columns:minmax(0,1fr) minmax(260px,.36fr);align-items:stretch;gap:18px;display:grid}.convex-lesson-overview h3,.convex-mix-controls h3,.convex-lesson-section h3,.convex-worked-example h3,.convex-practice-panel h3{color:#1a365d;font-size:1.08rem;line-height:1.25}.convex-lesson-overview p,.convex-mix-controls p,.convex-lesson-section p,.convex-worked-example p,.convex-practice-panel p{color:#4a5568;margin-top:12px;line-height:1.68}.convex-formula-card{background:linear-gradient(135deg,#3197951a,#0000 72%),#f8fbff;border:1px solid #31979557;border-radius:8px;align-content:center;gap:8px;padding:20px;display:grid}.convex-formula-card .convex-formula-label{color:#319795;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.convex-formula-card .latex-math.display{color:#1a365d;font-size:1.22rem;font-weight:400;line-height:1.32}.convex-formula-card small{color:#718096;font-size:.82rem;font-weight:700}.convex-formula-card small .latex-math{color:#1a365d}.convex-mix-lab{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);align-items:stretch;gap:18px;padding:18px;display:grid}.convex-mix-visual{background:#fff;border:1px solid #dbe6f2;border-radius:8px;min-height:300px;overflow:hidden}.convex-mix-visual svg{width:100%;height:100%;display:block}.convex-svg-surface{fill:#fff;stroke:#dbe6f2}.convex-svg-region{fill:#31979533;stroke:#319795;stroke-width:3px}.convex-svg-segment{stroke:#2c5282;stroke-width:4px;stroke-linecap:round}.convex-svg-endpoint{fill:#2c5282;stroke:#fff;stroke-width:4px}.convex-svg-mixpoint{fill:#f6ad55;stroke:#1a365d;stroke-width:4px}.convex-svg-label{fill:#1a365d;font-size:15px;font-weight:900}.convex-svg-label.active{fill:#975a16}.convex-svg-latex-label{color:#1a365d;background:#ffffffeb;border:1px solid #90a4bf5c;border-radius:999px;justify-content:center;align-items:center;width:fit-content;max-width:100%;min-height:24px;padding:3px 7px;line-height:1;display:inline-flex;box-shadow:0 4px 12px #1a365d1a}.convex-svg-latex-label .latex-math{margin:0}.convex-svg-latex-label .katex{font-size:.82rem}.convex-mix-controls{align-content:center;gap:12px;padding:8px;display:grid}.convex-mix-controls label{color:#1a365d;font-size:.9rem;font-weight:900}.convex-mix-controls input[type=range]{accent-color:#319795;width:100%}.convex-mix-equation{color:#2c5282;background:#fff;border:1px solid #dbe6f2;border-radius:6px;width:fit-content;max-width:100%;padding:9px 12px;font-size:.88rem;font-weight:900;line-height:1.35}.convex-mix-equation .latex-math{margin:0}.convex-combination-concept{background:linear-gradient(135deg,#5a9de514,#3197950f 58%,#0000),#fff;border:1px solid #5a9de542;border-radius:8px;gap:16px;padding:20px;display:grid}.convex-combination-copy{gap:10px;max-width:920px;display:grid}.convex-combination-copy h3{color:#1a365d;font-size:1.18rem;line-height:1.24}.convex-combination-copy p{color:#4a5568;line-height:1.68}.convex-combination-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.convex-combination-card{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;grid-template-columns:minmax(0,1fr);align-content:start;gap:12px;min-width:0;max-width:100%;padding:16px;display:grid}.convex-combination-card>*{min-width:0;max-width:100%}.convex-combination-card.visual{background:linear-gradient(135deg,#31979514,#0000 70%),#f8fbff}.convex-combination-card h4{color:#1a365d;overflow-wrap:anywhere;font-size:.98rem;line-height:1.25}.convex-combination-card p{color:#64748b;line-height:1.62}.convex-combination-simplex{background:#fff;border:1px solid #dbe6f2;border-radius:8px;width:100%;max-width:100%;min-height:220px;display:block}.convex-mini-segment.faint{stroke:#2c528252;stroke-width:3px;stroke-dasharray:6 6}.convex-combination-recipe{flex-wrap:wrap;gap:8px;min-width:0;max-width:100%;display:flex}.convex-combination-recipe>span{color:#2c5282;background:#fff;border:1px solid #dbe6f2;border-radius:6px;min-width:0;max-width:100%;padding:7px 9px;font-size:.84rem;font-weight:800}.convex-importance-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.convex-importance-strip div{background:#f8fbffeb;border:1px solid #3197953d;border-radius:8px;padding:13px}.convex-importance-strip strong,.convex-importance-strip span{display:block}.convex-importance-strip strong{color:#1a365d;font-size:.9rem;line-height:1.25}.convex-importance-strip span{color:#64748b;margin-top:6px;font-size:.86rem;font-weight:600;line-height:1.52}.convex-high-dim-lab{background:linear-gradient(135deg,#31979514,#5a9de50f 52%,#0000),#fff;border:1px solid #31979547;border-radius:8px;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);align-items:stretch;gap:18px;padding:20px;display:grid}.convex-high-dim-copy{align-content:center;gap:14px;display:grid}.convex-section-kicker{color:#319795;letter-spacing:.08em;text-transform:uppercase;width:fit-content;font-size:.72rem;font-weight:900;display:inline-flex}.convex-high-dim-copy h3{color:#1a365d;font-size:1.18rem;line-height:1.24}.convex-high-dim-copy p{color:#4a5568;line-height:1.68}.convex-rule-strip.wide{width:100%}.convex-rule-strip.compact{width:100%;margin-top:2px}.convex-dimension-control{color:#1a365d;background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;gap:10px;padding:12px;font-weight:800;display:grid}.convex-dimension-control input[type=range]{accent-color:#319795;width:100%}.convex-dimension-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;display:grid}.convex-dimension-card{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;align-content:start;gap:10px;min-width:0;padding:14px;display:grid}.convex-dimension-card.vector{grid-column:1/-1}.convex-dimension-card h4{color:#1a365d;font-size:.95rem;line-height:1.25}.convex-dimension-card p{color:#64748b;font-size:.86rem;font-weight:600;line-height:1.5}.convex-dimension-visual{background:#fff;border:1px solid #dbe6f2;border-radius:8px;width:100%;min-height:160px;display:block}.convex-3d-shadow{fill:#1a365d14}.convex-3d-body{fill:#31979533;stroke:#319795;stroke-width:3px}.convex-3d-back-contour,.convex-3d-front-contour,.convex-3d-meridian{fill:none;stroke:#2c528257;stroke-width:2px}.convex-3d-back-contour{stroke-dasharray:7 7}.convex-3d-front-contour{stroke:#2c52827a}.convex-3d-meridian{stroke:#3197956b}.convex-3d-inside-segment{stroke:#2c5282;stroke-width:4px;stroke-linecap:round}.convex-functions-lesson{gap:18px;display:grid}.convex-functions-lesson .convex-lesson-overview{grid-template-columns:minmax(0,.82fr) minmax(480px,.56fr)}.convex-functions-lesson .convex-formula-card .latex-math.display{font-size:1.02rem}.convex-function-visual{background:#fff;border:1px solid #dbe6f2;border-radius:8px;width:100%;min-height:220px;display:block}.convex-function-visual.worked{min-height:260px}.convex-axis-line.light{stroke:#1a365d38;stroke-width:2px}.convex-function-curve{fill:none;stroke:#2c5282;stroke-width:4px;stroke-linecap:round}.convex-function-curve.warning{stroke:#c05621}.convex-function-chord{stroke:#b7791f;stroke-width:3px;stroke-linecap:round;stroke-dasharray:8 7}.convex-function-chord.warning{stroke:#c05621}.convex-function-epi-fill{fill:#31979524}.convex-function-tangent{stroke:#319795;stroke-width:3px;stroke-linecap:round;stroke-dasharray:7 7}.convex-vector-components{background:#fff;border:1px solid #dbe6f2;border-radius:8px;gap:7px;padding:10px;display:grid}.convex-vector-row{grid-template-columns:50px repeat(3,minmax(0,1fr));align-items:center;gap:8px;display:grid}.convex-vector-index{color:#4a5568;font-size:.78rem;font-weight:800}.convex-vector-bar{background:#e2e8f0;border-radius:999px;height:12px;position:relative;overflow:hidden}.convex-vector-bar:after{content:"";width:calc(var(--value) * 100%);border-radius:inherit;position:absolute;inset:0 auto 0 0}.convex-vector-bar.x:after{background:#2c5282}.convex-vector-bar.y:after{background:#b7791f}.convex-vector-bar.z:after{background:#319795}.convex-vector-legend{color:#4a5568;flex-wrap:wrap;align-items:center;gap:8px;font-size:.78rem;font-weight:900;display:flex}.convex-vector-legend span{align-items:center;gap:5px;display:inline-flex}.convex-vector-legend span:before{content:"";background:#718096;border-radius:999px;width:16px;height:4px}.convex-vector-legend .x:before{background:#2c5282}.convex-vector-legend .y:before{background:#b7791f}.convex-vector-legend .z:before{background:#319795}.convex-lesson-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.convex-lesson-section,.convex-worked-example,.convex-practice-panel{background:#fff;border:1px solid #dbe6f2;border-radius:8px;padding:18px}.convex-lesson-section.wide{background:0 0;border:0;grid-column:1/-1;padding:0}.convex-lesson-section.wide>h3,.convex-lesson-section.wide>p{padding-left:2px;padding-right:2px}.convex-chapter-panel p .bilingual-zh,.convex-chapter-panel li .bilingual-zh{font-weight:600}.convex-chapter-panel p .bilingual-en,.convex-chapter-panel li .bilingual-en{color:#64748b;font-weight:600}.convex-concept-visuals{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:14px;margin-top:16px;display:grid}.convex-concept-visuals.three{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.convex-concept-panel{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;align-content:start;gap:12px;min-width:0;padding:16px;display:grid}.convex-concept-panel.warning{background:linear-gradient(135deg,#b7791f14,#0000 62%),#fffaf0;border-color:#b7791f3d}.convex-concept-panel h4{color:#1a365d;font-size:.98rem;line-height:1.28}.convex-concept-panel p{color:#4a5568;margin-top:0;line-height:1.62}.convex-concept-bridge{background:linear-gradient(135deg,#31979514,#5a9de50f 68%,#0000),#fff;border:1px solid #31979547;border-radius:8px;gap:14px;margin-top:16px;padding:16px;display:grid}.convex-concept-bridge-copy{gap:10px;max-width:980px;display:grid}.convex-concept-bridge-copy h4{color:#1a365d;font-size:1.04rem;line-height:1.28}.convex-concept-bridge-copy p{color:#4a5568;line-height:1.68}.convex-concept-bridge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.convex-concept-bridge-grid div{background:#f8fbffeb;border:1px solid #dbe6f2;border-radius:8px;grid-template-rows:auto auto 1fr auto;gap:8px;min-width:0;padding:14px;display:grid}.convex-concept-bridge-grid div>strong,.convex-concept-bridge-grid div>small,.convex-concept-bridge-grid div>span{display:block}.convex-concept-bridge-grid div>strong{color:#1a365d;font-size:.94rem;font-weight:800;line-height:1.28}.convex-concept-bridge-grid div>small{color:#2c7a7b;background:#3197951a;border-radius:999px;width:fit-content;padding:4px 7px;font-size:.72rem;font-weight:800;line-height:1.1}.convex-concept-bridge-grid div>span{color:#64748b;font-size:.88rem;font-weight:600;line-height:1.56}.convex-rule-strip{color:#2c5282;background:#fff;border:1px solid #5a9de547;border-radius:6px;width:fit-content;max-width:100%;padding:8px 10px;overflow-x:auto}.convex-mini-visual,.convex-simplex-visual{background:#fff;border:1px solid #dbe6f2;border-radius:8px;width:100%;min-height:220px;display:block}.convex-mini-visual.compact{min-height:190px}.convex-mini-surface{fill:#fff;stroke:#dbe6f2}.convex-mini-region{fill:#31979533;stroke:#319795;stroke-width:3px}.convex-mini-region.split{fill:#b7791f2e;stroke:#b7791f}.convex-mini-segment{stroke:#2c5282;stroke-width:4px;stroke-linecap:round}.convex-mini-segment.violating{stroke:#c05621;stroke-width:4px;stroke-dasharray:10 8}.convex-mini-point{fill:#2c5282;stroke:#fff;stroke-width:4px}.convex-mini-point.danger{fill:#c05621}.convex-mini-point.muted{fill:#718096}.convex-mini-gap{fill:#fffaf0f5;stroke:#c056216b;stroke-dasharray:5 6}.convex-mini-check{fill:none;stroke:#319795;stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;opacity:.82}.convex-mini-cross{fill:none;stroke:#c05621;stroke-width:7px;stroke-linecap:round;opacity:.82}.convex-mini-affine-line{stroke:#718096;stroke-width:3px;stroke-linecap:round;stroke-dasharray:8 8}.convex-mini-arrow,.convex-axis-arrow{fill:#718096}.convex-mini-boundary,.convex-constraint-line{stroke:#1a365d;stroke-width:4px;stroke-linecap:round}.convex-mini-normal{stroke:#b7791f;stroke-width:4px;stroke-linecap:round}.convex-mini-normal-head{fill:#b7791f}.convex-mini-guide-line{stroke:#b7791fa3;stroke-width:2px;stroke-linecap:round;stroke-dasharray:4 5}.convex-mini-guide-line.muted{stroke:#7180969e}.convex-mini-halfspace{fill:#31979529}.convex-axis-line{stroke:#1a365d;stroke-width:3px;stroke-linecap:round}.convex-simplex-region{fill:#31979538;stroke:#319795;stroke-width:3px}.convex-worked-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:center;gap:18px;display:grid}.convex-example-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.convex-example-pair div{background:#f8fbff;border:1px solid #dbe6f2;border-radius:8px;padding:14px}.convex-example-pair strong,.convex-example-pair span{display:block}.convex-example-pair strong{color:#1a365d;font-size:.92rem}.convex-example-pair span{color:#4a5568;margin-top:6px;line-height:1.54}.convex-worked-example{background:linear-gradient(135deg,#5a9de514,#0000 68%),#fff}.convex-equation-list{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.convex-equation-list .convex-equation-item{color:#2c5282;background:#f8fbff;border:1px solid #dbe6f2;border-radius:6px;padding:8px 10px;font-size:.86rem;font-weight:900}.convex-equation-list .latex-math{margin:0}.convex-practice-panel{background:linear-gradient(135deg,#b7791f14,#0000 68%),#fff;grid-template-columns:minmax(0,1fr) minmax(260px,.46fr);align-items:start;gap:18px;display:grid}.convex-practice-panel details{background:#fffaf0;border:1px solid #b7791f3d;border-radius:8px;padding:14px}.convex-practice-panel summary{color:#8a5a12;cursor:pointer;font-weight:900}.convex-learning-resources{border-top:1px solid #dbe6f2}.convex-learning-resource-layout{justify-content:space-between;align-items:center;gap:24px;display:flex}.convex-learning-resource-layout h2{color:#1a365d;margin-top:8px;font-size:2rem}.convex-resource-links{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.convex-resource-links a{color:#2c5282;background:#fff;border:1px solid #dbe6f2;border-radius:6px;align-items:center;min-height:42px;padding:9px 13px;font-size:.88rem;font-weight:800;text-decoration:none;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.convex-resource-links a:hover{color:#1a365d;background:#edf6ff;border-color:#5a9de594}.research-card,.timeline-item,.contact-item,.research-item,.project-item,.patent-item,.home-reveal,.journey-reveal{opacity:1}.research-item,.project-item,.patent-item,.home-reveal,.journey-reveal{transition:all .5s ease-out;transform:translateY(20px)}.animate-in{animation:.6s ease-out forwards fadeInUp}@keyframes fadeInUp{0%{opacity:.88;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.section-rail{z-index:900;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;pointer-events:none;visibility:hidden;background:#ffffffe6;border:1px solid #4299e142;border-radius:8px;width:164px;padding:10px;transition:width .25s,padding .25s,box-shadow .25s,opacity .22s,transform .22s,visibility .22s;position:fixed;top:96px;left:clamp(18px,2.4vw,56px);transform:translate(-18px);box-shadow:0 14px 35px #1a365d29}.section-rail.visible{opacity:1;pointer-events:auto;visibility:visible;transform:translate(0)}.section-rail.hidden{opacity:0;pointer-events:none;visibility:hidden;transform:translate(-18px)}.section-rail.collapsed{width:48px;padding:8px 6px}.section-rail-toggle{color:#1a365d;cursor:pointer;width:100%;min-height:32px;font:inherit;background:#1a365d14;border:0;border-radius:6px;justify-content:flex-start;align-items:center;gap:8px;padding:6px 9px;font-size:.78rem;font-weight:700;transition:background .2s,color .2s;display:flex}.section-rail-toggle:hover{background:#4299e12e}.section-rail-toggle-icon{text-align:center;flex:0 0 16px;width:16px;line-height:1}.section-rail-toggle-text,.section-rail-label{white-space:nowrap;transition:max-width .2s,opacity .2s;overflow:hidden}.section-rail-toggle-text{max-width:90px}.section-rail-list{flex-direction:column;gap:4px;margin-top:8px;display:flex}.section-rail-link{color:#4a5568;border-radius:6px;align-items:center;gap:8px;min-height:34px;padding:5px 8px;text-decoration:none;transition:background .2s,color .2s,transform .2s;display:flex}.section-rail-link:hover{color:#1a365d;background:#4299e11f;transform:translate(2px)}.section-rail-toggle:focus-visible,.section-rail-link:focus-visible{outline-offset:2px;outline:2px solid #4299e1b8}.section-rail-link.active{color:#1a365d;background:#4299e12e}.section-rail-marker{color:#2c5282;background:#4299e129;border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:inline-flex}.section-rail-link.active .section-rail-marker{color:#fff;background:#4299e1}.section-rail-label{max-width:104px;font-size:.86rem;font-weight:700}.section-rail.collapsed .section-rail-toggle-text,.section-rail.collapsed .section-rail-label{opacity:0;max-width:0}.section-rail.collapsed .section-rail-toggle,.section-rail.collapsed .section-rail-link{justify-content:center;padding-left:0;padding-right:0}.section-rail.collapsed .section-rail-link:hover{transform:none}.gallery-hero{color:#fff;text-align:left;border-bottom:1px solid #bfdbfe2e;padding:54px 0 34px}.gallery-hero:before{background:linear-gradient(90deg,#173a668a 0%,#173a663d 34%,#173a6624 100%),linear-gradient(#0c223e14,#0c223e33)}.gallery-hero h1{color:#fff;margin-bottom:12px;font-size:2.6rem}.gallery-hero p{color:#dbeafe;opacity:1;max-width:620px;font-size:1.04rem}.gallery-hero-layout{justify-content:space-between;align-items:flex-end;gap:34px;display:flex}.gallery-kicker{color:#90cdf4;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:10px;font-size:.78rem;font-weight:800;display:inline-flex;position:relative}.gallery-kicker:before{content:"";background:currentColor;border-radius:999px;width:24px;height:2px;box-shadow:0 0 14px #90cdf442}.gallery-hero-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.gallery-hero-tools span,.gallery-upload-link{color:#cfe4fb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:8px;flex-direction:column;gap:2px;min-width:86px;padding:10px 12px;font-size:.76rem;font-weight:700;line-height:1.2;transition:transform .2s,border-color .2s,box-shadow .2s,background-color .2s;display:inline-flex}.gallery-hero-tools span:hover,.gallery-upload-link:hover{background:#ffffff24;border-color:#bfdbfe57;transform:translateY(-2px);box-shadow:0 10px 26px #08182f2e}.gallery-hero-tools strong{color:#fff;font-size:.98rem}.gallery-storage-card{min-width:132px!important}.gallery-upload-link{color:#fff;background:#5a9de53d;border-color:#bfdbfe6b;flex-direction:row;align-items:center;min-width:auto;padding:12px 15px;text-decoration:none}.gallery-upload-link:hover{color:#fff;background:#5a9de552}.gallery-section{background-color:#f8fafc;padding:34px 0 78px}.gallery-collections-panel{gap:14px;margin-bottom:18px;display:grid}.gallery-collections-heading{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.gallery-collections-heading h2{color:#1a365d;font-size:1.18rem;line-height:1.2}.gallery-collection-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.gallery-collection-card{color:#1a365d;min-height:112px;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe6f2;border-radius:8px;align-content:start;gap:6px;padding:12px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;box-shadow:0 8px 24px #12284a0d}.gallery-collection-card.all{min-width:168px;min-height:0}.gallery-collection-card strong{font-size:.92rem;line-height:1.2}.gallery-collection-card span{color:#2c5282;font-size:.78rem;font-weight:900}.gallery-collection-card small{color:#718096;font-size:.74rem;font-weight:650;line-height:1.4}.gallery-collection-card:hover:not(:disabled),.gallery-collection-card:focus-visible,.gallery-collection-card.active{border-color:#5a9de5c2;outline:none;transform:translateY(-1px);box-shadow:0 14px 34px #12284a1f}.gallery-collection-card.active{background:#eef6ff}.gallery-collection-card:disabled{cursor:default;opacity:.46;box-shadow:none}.gallery-filter-panel{z-index:80;background:#fff;border:1px solid #dbe6f2;border-radius:8px;gap:12px;margin-bottom:26px;padding:14px;display:grid;position:relative;box-shadow:0 8px 24px #12284a0f}.gallery-filter-controls{grid-template-columns:minmax(180px,1.2fr) minmax(150px,.9fr) minmax(120px,.7fr) auto;align-items:end;gap:10px;display:grid}.gallery-filter-field{color:#1a365d;gap:6px;min-width:0;font-size:.78rem;font-weight:800;display:grid;position:relative}.gallery-filter-field>span{color:#718096;letter-spacing:.08em;text-transform:uppercase}.gallery-filter-trigger{color:#1a365d;width:100%;min-height:40px;font:inherit;text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #dbe6f2;border-radius:8px;padding:8px 34px 8px 10px;font-size:.92rem;font-weight:800;transition:border-color .18s,box-shadow .18s,background .18s;position:relative}.gallery-filter-trigger:after{content:"";border-bottom:2px solid #2c5282;border-right:2px solid #2c5282;width:8px;height:8px;transition:transform .18s;position:absolute;top:50%;right:13px;transform:translateY(-68%)rotate(45deg)}.gallery-filter-field.open .gallery-filter-trigger,.gallery-filter-trigger:hover,.gallery-filter-trigger:focus-visible{background:#fff;border-color:#5a9de5ad;outline:none;box-shadow:0 0 0 3px #5a9de51f}.gallery-filter-field.open .gallery-filter-trigger:after{transform:translateY(-28%)rotate(225deg)}.gallery-filter-menu{z-index:40;background:#fff;border:1px solid #dbe6f2;border-radius:8px;max-height:260px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 38px #12284a2e}.gallery-filter-option{color:#1a365d;width:100%;min-height:36px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:.9rem;font-weight:750}.gallery-filter-option:hover,.gallery-filter-option:focus-visible{background:#eef6ff;outline:none}.gallery-filter-option.selected{color:#fff;background:#5a9de5}.gallery-filter-clear{color:#2c5282;cursor:pointer;background:#fff;border:1px solid #dbe6f2;border-radius:999px;min-height:40px;padding:0 16px;font-weight:800;transition:border-color .18s,color .18s,transform .18s}.gallery-filter-clear:not(:disabled):hover,.gallery-filter-clear:not(:disabled):focus-visible{color:#1a365d;border-color:#5a9de5b8;transform:translateY(-1px)}.gallery-filter-clear:disabled{color:#a0aec0;cursor:default}.gallery-filter-summary{color:#4a5568;flex:auto;min-width:0;font-size:.9rem;font-weight:800}.gallery-filter-footer{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.gallery-density-toolbar{justify-content:flex-end;align-items:center;min-width:0;display:flex}.gallery-density-desktop{background:#ffffffeb;border:1px solid #dbe6f2;border-radius:999px;align-items:center;gap:10px;padding:5px;display:flex;box-shadow:0 8px 22px #12284a14}.gallery-density-button{color:#1a365d;width:28px;height:28px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.1rem;font-weight:900;line-height:1;transition:border-color .18s,box-shadow .18s,color .18s}.gallery-density-button:not(:disabled):hover,.gallery-density-button:not(:disabled):focus-visible{color:#2b6cb0;background:#edf6ff;outline:none}.gallery-density-button:disabled{color:#a0aec0;cursor:default}.gallery-density-range{accent-color:#5a9de5;cursor:pointer;width:150px}.gallery-density-mobile{background:#fff;border:1px solid #dbe6f2;border-radius:999px;display:none;overflow:hidden}.gallery-density-mobile button{color:#2c5282;min-width:36px;height:32px;font:inherit;cursor:pointer;background:0 0;border:0;border-right:1px solid #dbe6f2;padding:0 10px;font-size:.82rem;font-weight:900}.gallery-density-mobile button:last-child{border-right:0}.gallery-density-mobile button:hover,.gallery-density-mobile button:focus-visible,.gallery-density-mobile button.active{color:#fff;background:#5a9de5;outline:none}.gallery-upload-hero{padding:22px 0 16px}.gallery-upload-hero h1{margin-bottom:6px;font-size:1.9rem}.gallery-upload-hero p{font-size:.9rem}.gallery-upload-section{padding:18px 0 24px}.gallery-timeline{gap:34px;display:grid}.gallery-view-toolbar{color:#718096;justify-content:space-between;align-items:center;gap:16px;min-width:0;font-size:.8rem;font-weight:800;display:flex}.gallery-view-toolbar>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gallery-month-group{grid-template-columns:1fr;align-items:flex-start;gap:18px;display:grid;position:relative}.gallery-month-group:before{content:none}.gallery-month-group:last-child:before{bottom:auto}.gallery-month-header{border-bottom:1px solid #dbe6f2;justify-content:space-between;align-items:flex-end;gap:18px;padding:0 0 12px;display:flex;position:relative}.gallery-month-header:before{content:"";background:#5a9de5;border:0;border-radius:999px 999px 0 0;width:min(220px,38%);height:2px;transition:width .25s,box-shadow .25s;position:absolute;bottom:-1px;left:0;box-shadow:0 0 18px #5a9de547}.gallery-month-group.animate-in .gallery-month-header:before{width:min(320px,52%);box-shadow:0 0 22px #5a9de561}.gallery-month-eyebrow{color:#718096;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.gallery-month-header h2{color:#1a365d;font-size:1.18rem;line-height:1.2}.gallery-month-count{color:#718096;width:fit-content;font-size:.82rem;font-weight:700}.gallery-grid{align-items:start;gap:12px;display:grid}.gallery-row{align-items:flex-start;gap:12px;min-width:0;display:flex}.gallery-row.is-filled{justify-content:flex-start}.gallery-row.is-centered{justify-content:center}.gallery-card{flex:0 0 var(--gallery-card-width,100%);width:var(--gallery-card-width,100%);height:var(--gallery-row-height,auto);min-width:0;max-width:100%;aspect-ratio:var(--gallery-photo-ratio,4 / 3);color:inherit;cursor:pointer;box-shadow:none;animation:.42s both gallery-card-enter;animation-delay:var(--gallery-card-delay,0s);background:#e2e8f0;border:0;border-radius:8px;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s;display:block;position:relative;overflow:hidden}.gallery-card:before{content:"";z-index:0;background:linear-gradient(110deg,#e2e8f0 0%,#eef4fb 45%,#d9e5f2 70%,#e2e8f0 100%) 0 0/220% 100%;transition:opacity .25s;animation:1.5s ease-in-out infinite gallery-image-skeleton;position:absolute;inset:0}.gallery-card.is-portrait{max-width:none}.gallery-card:hover{z-index:1;transform:translateY(-2px);box-shadow:0 14px 30px #12284a33}.gallery-card img{z-index:1;object-fit:cover;opacity:.72;filter:blur(10px)saturate(.94);width:100%;height:100%;transition:opacity .35s,filter .45s,transform .45s;display:block;position:absolute;inset:0;transform:scale(1.025)}.gallery-card img.is-loaded{opacity:1;filter:blur()saturate();transform:scale(1)}.gallery-card.is-image-loaded:before{opacity:0;animation-play-state:paused}.gallery-card-overlay{color:#fff;text-align:left;opacity:0;z-index:2;background:linear-gradient(#12284a00 45%,#12284abd 100%);flex-direction:column;justify-content:flex-end;gap:4px;padding:12px;transition:opacity .2s;display:flex;position:absolute;inset:0}.gallery-card:hover .gallery-card-overlay{opacity:1}.gallery-card-title{font-size:.86rem;font-weight:700}.gallery-card-caption{color:#ffffffeb;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.74rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gallery-card-meta{opacity:.86;font-size:.72rem}.gallery-reveal{opacity:0;transition:opacity .48s,transform .48s;transform:translateY(12px)}.gallery-reveal.animate-in{opacity:1;transform:translateY(0)}.gallery-empty,.gallery-upload-panel{text-align:center;background:#fff;border-radius:10px;max-width:760px;margin:0 auto;padding:36px;box-shadow:0 3px 12px #1a365d1a}.gallery-upload-panel{max-width:920px;padding:18px 24px}.gallery-empty.compact{box-shadow:none;padding:20px}.gallery-empty h2{color:#1a365d;margin-bottom:12px}.gallery-empty p,.gallery-upload-note{color:#4a5568;margin-bottom:22px}.gallery-upload-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:.86rem;line-height:1.45}.gallery-upload-form{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;display:grid}.gallery-upload-form label{color:#1a365d;gap:4px;font-size:.9rem;font-weight:700;display:grid}.gallery-upload-photo-field,.gallery-upload-description-field,.gallery-upload-actions{grid-column:1/-1}.gallery-upload-form input,.gallery-upload-form textarea{color:#2d3748;width:100%;font:inherit;background:#fff;border:1px solid #cbd5e0;border-radius:8px;padding:7px 10px}.gallery-upload-form textarea{resize:vertical}.gallery-upload-actions{align-items:center;gap:18px;margin-top:2px;display:flex}.gallery-upload-actions .btn{width:fit-content;min-width:138px}.gallery-upload-message{color:#2c5282;margin-top:10px;font-size:.9rem;font-weight:600}.gallery-page-shell{transform-origin:top;transition:filter .22s,opacity .22s,transform .22s}.gallery-page-shell.is-modal-open{filter:blur(7px)saturate(.82)brightness(.86);opacity:.72;pointer-events:none;-webkit-user-select:none;user-select:none;transform:scale(.992)}.gallery-photo-modal{z-index:5000;place-items:center;padding:42px;animation:.2s both gallery-modal-enter;display:grid;position:fixed;inset:0}.gallery-photo-modal-backdrop{-webkit-backdrop-filter:blur(18px)saturate(.92);background:radial-gradient(circle at 18% 18%,#5a9de51f,#0000 30%),#050a12e0;position:absolute;inset:0}.gallery-photo-modal-frame{z-index:1;width:min(1360px,92vw);max-height:calc(100vh - 84px);position:relative}.gallery-photo-modal-frame:fullscreen{background:#081220;width:100vw;height:100vh;max-height:none;padding:0}.gallery-photo-modal-frame:fullscreen .gallery-photo-modal-panel{border:0;border-radius:0;width:100%;height:100%;max-height:none}:is(.gallery-photo-modal-frame:fullscreen .gallery-photo-modal-figure,.gallery-photo-modal-frame:fullscreen .gallery-photo-modal-info){max-height:none}.gallery-photo-modal-panel{background:#fff;border:1px solid #dbe6f2b8;border-radius:10px;grid-template:"figure info"minmax(0,1fr)"filmstrip info"/minmax(0,1fr) minmax(292px,380px);max-height:calc(100vh - 84px);display:grid;overflow:hidden;box-shadow:0 28px 90px #00000052}.gallery-photo-modal-figure{isolation:isolate;background:#102037;grid-area:figure;place-items:center;min-height:min(78vh,720px);max-height:calc(100vh - 84px);margin:0;display:grid;position:relative;overflow:hidden}.gallery-photo-modal-figure:before{content:"";z-index:0;background-image:var(--gallery-modal-photo-bg);filter:blur(30px)saturate(1.12)brightness(.86);opacity:.78;background-position:50%;background-size:cover;position:absolute;inset:-34px;transform:scale(1.08)}.gallery-photo-modal-figure:after{content:"";z-index:1;background:radial-gradient(circle,#ffffff0a,#08122042 72%),linear-gradient(#08122029,#0812203d);position:absolute;inset:0}.gallery-photo-modal-toolbar{z-index:5;-webkit-backdrop-filter:blur(14px)saturate(1.1);background:#0812207a;border:1px solid #ffffff38;border-radius:8px;align-items:center;gap:8px;padding:6px;display:inline-flex;position:absolute;top:16px;left:16px;box-shadow:0 14px 34px #08122047}.gallery-photo-modal-tool{color:#fff;min-height:32px;font:inherit;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff47;border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:.76rem;font-weight:850;line-height:1;text-decoration:none;transition:background .18s,border-color .18s,transform .18s;display:inline-flex}.gallery-photo-modal-tool:hover,.gallery-photo-modal-tool:focus-visible,.gallery-photo-modal-tool[aria-pressed=true]{background:#ffffff3d;border-color:#ffffffa8;outline:none;transform:translateY(-1px)}.gallery-photo-modal-zoom-stage{z-index:2;touch-action:none;cursor:grab;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.gallery-photo-modal-panel.is-zoomed .gallery-photo-modal-zoom-stage{cursor:grabbing}.gallery-photo-modal-figure img{z-index:1;object-fit:contain;filter:drop-shadow(0 16px 42px #0000003d);transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;width:100%;height:100%;max-height:calc(100vh - 84px);transition:transform .18s;display:block;position:relative}.gallery-photo-modal-panel.is-zoomed .gallery-photo-modal-figure img{transition-duration:80ms}.gallery-photo-modal-nav{z-index:4;color:#1a365d;-webkit-backdrop-filter:blur(14px)saturate(1.1);background:#ffffffb8;border:1px solid #ffffff6b;border-radius:999px;justify-content:center;align-items:center;width:46px;height:68px;text-decoration:none;transition:background .2s,transform .2s,color .2s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 12px 34px #0812203d}.gallery-photo-modal-nav.previous{left:18px}.gallery-photo-modal-nav.next{right:18px}.gallery-photo-modal-nav:before{content:"";border-top:3px solid;border-right:3px solid;width:13px;height:13px}.gallery-photo-modal-nav.previous:before{transform:translate(3px)rotate(-135deg)}.gallery-photo-modal-nav.next:before{transform:translate(-3px)rotate(45deg)}.gallery-photo-modal-nav span{clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.gallery-photo-modal-nav:hover,.gallery-photo-modal-nav:focus-visible{color:#2c5282;background:#ffffffeb;transform:translateY(-50%)scale(1.04)}.gallery-photo-modal-info{background:#fff;flex-direction:column;grid-area:info;gap:14px;min-width:0;max-height:calc(100vh - 84px);padding:28px;display:flex;overflow:auto}.gallery-photo-filmstrip{scrollbar-width:thin;background:#081220eb;grid-area:filmstrip;gap:8px;min-width:0;padding:10px;display:flex;overflow-x:auto}.gallery-photo-filmstrip-thumb{opacity:.62;background:#102037;border:2px solid #0000;border-radius:6px;flex:0 0 58px;width:58px;height:42px;transition:opacity .18s,border-color .18s,transform .18s;overflow:hidden}.gallery-photo-filmstrip-thumb img{object-fit:cover;width:100%;height:100%;display:block}.gallery-photo-filmstrip-thumb:hover,.gallery-photo-filmstrip-thumb:focus-visible,.gallery-photo-filmstrip-thumb.active{opacity:1;border-color:#5a9de5;outline:none;transform:translateY(-1px)}.gallery-photo-modal-actions{justify-content:space-between;align-items:center;gap:14px;margin-bottom:4px;display:flex}.gallery-photo-modal-close{color:#1a365d;opacity:.72;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;text-decoration:none;transition:background .2s,opacity .2s,transform .2s;display:inline-flex;position:relative}.gallery-photo-modal-close:before,.gallery-photo-modal-close:after{content:"";background:currentColor;border-radius:999px;width:18px;height:2px;position:absolute}.gallery-photo-modal-close:before{transform:rotate(45deg)}.gallery-photo-modal-close:after{transform:rotate(-45deg)}.gallery-photo-modal-close:hover,.gallery-photo-modal-close:focus-visible{opacity:1;background:#5a9de51f;outline:none;transform:translateY(-1px)}.gallery-photo-modal-info h2{color:#1a365d;font-size:1.6rem;line-height:1.18}.gallery-photo-modal-info p{color:#4a5568;line-height:1.65}.gallery-photo-modal-meta{font-weight:800;color:#718096!important}.gallery-photo-caption{background:#f4f9ff;border-left:3px solid #5a9de5;border-radius:0 8px 8px 0;margin-top:-4px;padding:13px 14px;font-weight:760;color:#1a365d!important}.gallery-photo-modal-position{color:#718096;letter-spacing:.08em;width:fit-content;margin-top:-8px;font-size:.78rem;font-weight:900}.gallery-photo-modal-info .gallery-place-chips{margin-top:4px}.gallery-collection-chips{flex-wrap:wrap;gap:8px;display:flex}.gallery-collection-chip{color:#2c5282;background:#eef6ff;border:1px solid #cfe4fb;border-radius:999px;align-items:center;min-height:30px;padding:6px 10px;font-size:.78rem;font-weight:850;line-height:1.2;text-decoration:none;transition:border-color .18s,background .18s,transform .18s;display:inline-flex}.gallery-collection-chip:hover,.gallery-collection-chip:focus-visible{background:#fff;border-color:#5a9de5;outline:none;transform:translateY(-1px)}.gallery-photo-modal-empty{text-align:center;background:#fffffff5;border:1px solid #dbe6f2b8;border-radius:10px;width:min(520px,90vw);margin:0 auto;padding:34px;box-shadow:0 28px 90px #00000047}.gallery-photo-modal-empty h2{color:#1a365d;margin-bottom:12px}.gallery-photo-modal-empty p{color:#4a5568;margin-bottom:18px}.gallery-back-link{color:#2c5282;width:fit-content;font-size:.86rem;font-weight:800;text-decoration:none}.gallery-back-link:hover,.gallery-back-link:focus-visible{color:#1a365d;text-decoration:underline}.gallery-photo-detail-info h2{color:#1a365d;font-size:1.6rem;line-height:1.2}.gallery-photo-detail-info p{color:#4a5568;line-height:1.65}.gallery-photo-detail-meta{font-weight:800;color:#718096!important}.gallery-place-chips{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.gallery-place-chip{color:#2c5282;background:#f8fafc;border:1px solid #dbe6f2;border-radius:999px;align-items:center;min-height:34px;padding:6px 11px;font-size:.82rem;font-weight:800;text-decoration:none;display:inline-flex}.gallery-place-chip:not(.muted):hover,.gallery-place-chip:not(.muted):focus-visible{color:#1a365d;background:#eef6ff;border-color:#5a9de5b8}.gallery-place-chip.muted{color:#718096}@keyframes gallery-modal-enter{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.gallery-lightbox{z-index:2000;background:#081220f0;justify-content:center;align-items:center;padding:34px 92px;animation:.18s both gallery-lightbox-fade;display:flex;position:fixed;inset:0}.gallery-lightbox-panel{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:28px;width:min(1380px,100%);max-height:88vh;animation:.22s both gallery-lightbox-scale;display:grid}.gallery-lightbox-figure{place-items:center;min-height:0;display:grid}.gallery-lightbox-figure img{object-fit:contain;border-radius:8px;max-width:100%;max-height:88vh;box-shadow:0 20px 60px #00000059}.gallery-lightbox-info{color:#fff;background:#122036d1;border:1px solid #ffffff1f;border-radius:8px;align-self:center;padding:24px}.gallery-lightbox-info h2{color:#fff;margin-bottom:12px;font-size:1.45rem;line-height:1.25}.gallery-lightbox-info p{color:#d7e1ee;line-height:1.7}.convex-learning-page.english-first{--convex-ink:#15345d;--convex-muted:#64748b;--convex-line:#cfe1f2;--convex-panel:#fffffff0}.convex-learning-page.english-first .convex-learning-main{padding-top:0}.convex-learning-page.english-first .convex-chapter-route-header{padding:74px 0 42px}.convex-learning-page.english-first .convex-chapter-route-layout{grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);align-items:end;gap:14px 44px;width:min(1200px,100% - 64px);margin:0 auto;display:grid}.convex-learning-page.english-first .convex-chapter-route-layout .gallery-back-link,.convex-learning-page.english-first .convex-chapter-route-layout .convex-chapter-label,.convex-learning-page.english-first .convex-chapter-route-layout h1{grid-column:1;justify-self:start}.convex-learning-page.english-first .convex-chapter-route-layout .gallery-back-link{margin:0 0 4px}.convex-learning-page.english-first .convex-chapter-route-layout .convex-chapter-summary{grid-area:2/2/span 2;align-self:center;margin:0}.convex-learning-page.english-first .bilingual-line,.convex-learning-page.english-first p .bilingual-en,.convex-learning-page.english-first p .bilingual-zh,.convex-learning-page.english-first li .bilingual-en,.convex-learning-page.english-first li .bilingual-zh{display:block}.convex-learning-page.english-first .bilingual-en{color:var(--convex-ink);font-family:Noto Sans SC,Inter,Segoe UI,Arial,sans-serif;font-weight:760;line-height:1.32}.convex-learning-page.english-first .bilingual-zh,.convex-support-text{color:var(--convex-muted);margin-top:5px;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-weight:560;line-height:1.58}.convex-learning-page.english-first .convex-learning-hero-copy h1 .bilingual-en,.convex-learning-page.english-first .convex-chapter-route-layout h1 .bilingual-en,.convex-learning-page.english-first .convex-chapter-panel h2 .bilingual-en{letter-spacing:0}.convex-learning-page.english-first .convex-learning-hero-copy h1 .bilingual-zh,.convex-learning-page.english-first .convex-chapter-route-layout h1 .bilingual-zh,.convex-learning-page.english-first .convex-chapter-panel h2 .bilingual-zh{font-size:.46em;font-weight:650}.convex-course-chapter-card small{color:#718096;margin:8px 0 0;font-weight:700;display:block}.convex-demo-back-link{margin:0 auto 42px;display:inline-flex}.convex-source-section{border:1px solid var(--convex-line);background:linear-gradient(#f8fcfff0,#fffffffa);border-radius:8px;margin-top:28px;padding:24px}.convex-source-section-header{color:#2c5282;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:18px;margin-bottom:18px;font-size:.78rem;font-weight:900;display:flex}.convex-source-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.convex-source-card{color:#31435f;background:#ffffffeb;border:1px solid #d7e6f5;border-radius:8px;min-width:0;padding:16px;text-decoration:none;transition:border-color .18s,transform .18s,box-shadow .18s}.convex-source-card:hover,.convex-source-card:focus-visible{border-color:#1f848e8a;transform:translateY(-2px);box-shadow:0 16px 42px #184a741f}.convex-source-card strong,.convex-source-card span,.convex-source-card small{display:block}.convex-source-card strong{color:#173b66;margin:8px 0;font-size:.98rem;line-height:1.3}.convex-source-card span:not(.convex-source-license){color:#516985;font-size:.9rem;line-height:1.58}.convex-source-card small{color:#718096;margin-top:8px;font-size:.82rem;line-height:1.55}.convex-source-license{color:#1f848e;letter-spacing:.04em;text-transform:uppercase;background:#f3f8fd;border:1px solid #cfe1f2;border-radius:999px;width:fit-content;padding:5px 9px;font-size:.72rem;font-weight:900}.convex-experiment-runner{background:#f8fcfff5;border:1px solid #cfe1f2;border-radius:8px;margin-top:28px;padding:22px}.convex-experiment-header{justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:18px;display:flex}.convex-experiment-header h3{color:#15345d;margin:4px 0 8px;font-size:1.35rem}.convex-experiment-header p{color:#516985;margin:0}.convex-experiment-grid{grid-template-columns:minmax(0,1.05fr) minmax(260px,.8fr);gap:16px;display:grid}.convex-experiment-model,.convex-experiment-controls,.convex-experiment-result{background:#fffffff0;border:1px solid #d7e6f5;border-radius:8px;min-width:0}.convex-experiment-model{grid-column:1/2;padding:16px;overflow-x:auto}.convex-experiment-model>span,.convex-result-map>strong{color:#718096;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;font-size:.78rem;font-weight:900;display:block}.convex-experiment-controls{grid-column:1/2;padding:16px}.convex-experiment-controls label{grid-template-columns:minmax(150px,.8fr) minmax(120px,1fr) 86px auto;align-items:center;gap:10px;margin-bottom:14px;display:grid}.convex-experiment-controls label:last-child{margin-bottom:0}.convex-experiment-controls label>span strong,.convex-experiment-controls label>span small{display:block}.convex-experiment-controls label>span strong{color:#173b66;font-size:.9rem}.convex-experiment-controls label>span small{color:#718096;font-size:.78rem}.convex-experiment-controls input[type=number]{color:#15345d;border:1px solid #cfe1f2;border-radius:6px;width:100%;min-width:0;padding:8px 9px;font-weight:800}.convex-experiment-controls em{color:#718096;font-size:.78rem;font-style:normal;font-weight:800}.convex-experiment-result{grid-area:1/2/3/3;padding:16px}.convex-result-status{border-bottom:1px solid #e4eef8;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.convex-result-status span{color:#718096;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:900}.convex-result-status strong{color:#1f848e}.convex-result-kv{color:#52657f;justify-content:space-between;align-items:baseline;gap:14px;padding:7px 0;display:flex}.convex-result-kv code{overflow-wrap:anywhere;color:#15345d;max-width:58%;font-weight:900}.convex-result-map{margin-top:12px}.convex-result-warnings{color:#875a18;margin:12px 0 0;padding-left:18px;font-size:.86rem;line-height:1.55}.convex-experiment-source-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.convex-experiment-source-row a{color:#2c5282;background:#fff;border:1px solid #d7e6f5;border-radius:999px;align-items:center;gap:8px;padding:7px 10px;font-size:.78rem;font-weight:850;text-decoration:none;display:inline-flex}.convex-experiment-source-row span{color:#718096}.convex-convergence-bars{gap:10px;margin:16px 0;display:grid}.convex-convergence-bars span{color:#173b66;border:1px solid #d7e6f5;border-radius:6px;padding:9px 12px;font-size:.84rem;font-weight:850;position:relative;overflow:hidden}.convex-convergence-bars span:before{content:"";width:var(--bar-width);z-index:0;background:linear-gradient(90deg,#1f848e2e,#2c52821a);position:absolute;inset:0 auto 0 0}.convex-convergence-bars span{z-index:1}.gallery-lightbox-meta{margin-bottom:16px;font-size:.94rem;font-weight:700;color:#9fb4ce!important}.gallery-lightbox-close,.gallery-lightbox-nav{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff42;border-radius:8px;font-weight:700;position:absolute}.gallery-lightbox-close{padding:10px 16px;top:22px;right:22px}.gallery-lightbox-nav{padding:14px 16px;top:50%;transform:translateY(-50%)}.gallery-lightbox-nav.prev{left:22px}.gallery-lightbox-nav.next{right:22px}@keyframes gallery-grid-drift{0%{background-position:0 0,0 0,0 0}to{background-position:32px 32px,32px 32px,24px 0}}@keyframes gallery-image-skeleton{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes gallery-card-enter{0%{opacity:.72;transform:translateY(8px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes gallery-lightbox-fade{0%{opacity:0}to{opacity:1}}@keyframes gallery-lightbox-scale{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}html[data-theme=dark] body{color:var(--page-text);background:radial-gradient(circle at 12% 8%, #2c81b72e, transparent 30%), radial-gradient(circle at 84% 18%, #1f848e24, transparent 26%), var(--page-bg)}html[data-theme=dark] .navbar,html[data-theme=dark] .nav-menu{background-color:var(--nav-bg)}html[data-theme=dark] .navbar{border-bottom:1px solid #7ea5d429;box-shadow:0 12px 34px #00000057}html[data-theme=dark] .nav-logo h2{color:#f4f9ff}html[data-theme=dark] .nav-link{color:var(--nav-text)}html[data-theme=dark] .nav-link:hover,html[data-theme=dark] .nav-link.active,html[data-theme=dark] .nav-logo:hover h2,html[data-theme=dark] .nav-logo:focus-visible h2{color:var(--nav-active)}html[data-theme=dark] .nav-dropdown-menu{background:#08111ffa;border-color:#7ea5d43d;box-shadow:0 20px 46px #00000070}html[data-theme=dark] .nav-dropdown-link{color:#edf6ff}html[data-theme=dark] .nav-dropdown-link small{color:#91a6c0}html[data-theme=dark] .nav-dropdown-link:hover,html[data-theme=dark] .nav-dropdown-link:focus-visible{background:#73b7ff29}html[data-theme=dark] .bar{background-color:#edf6ff}html[data-theme=dark] .hero-section{background:linear-gradient(135deg,#07111f 0%,#10284a 58%,#0b2d50 100%)}html[data-theme=dark] .hero-section:after{background:linear-gradient(90deg,#07111fad 0%,#07111f61 38%,#07111f38 100%),linear-gradient(#040c171f,#040c175c)}html[data-theme=dark] .hero-network-canvas{opacity:.86}html[data-theme=dark] .profile-img{border-color:#b8c7dc42;box-shadow:0 20px 44px #00000057}html[data-theme=dark] .main-content,html[data-theme=dark] .research-page,html[data-theme=dark] .convex-learning-page,html[data-theme=dark] .admin-section,html[data-theme=dark] .gallery-section,html[data-theme=dark] .gallery-upload-section{background:0 0}html[data-theme=dark] .home-body-background{background:linear-gradient(#08111f 0%,#0d1828 36%,#0a1424 72%,#08111f 100%)}html[data-theme=dark] .home-body-background:before{opacity:.82;background:repeating-linear-gradient(112deg,#73b7ff0d 0 1px,#0000 1px 18px),repeating-linear-gradient(24deg,#34d3990a 0 1px,#0000 1px 26px),linear-gradient(#08111fb8,#0d18287a)}html[data-theme=dark] .home-body-background:after{opacity:.16;filter:invert()hue-rotate(170deg)saturate(.8)}html[data-theme=dark] .section-title,html[data-theme=dark] .home-section-heading h2,html[data-theme=dark] .latest-paper-card h3,html[data-theme=dark] .profile-card h3,html[data-theme=dark] .timeline-content h3,html[data-theme=dark] .research-card h3,html[data-theme=dark] .project-card-body h3,html[data-theme=dark] .journey-detail h3,html[data-theme=dark] .gallery-hero h1,html[data-theme=dark] .gallery-month-header h2,html[data-theme=dark] .gallery-collections-heading h2,html[data-theme=dark] .research-page .research-hero h1,html[data-theme=dark] .admin-panel h1,html[data-theme=dark] .admin-panel h2,html[data-theme=dark] .admin-gallery-card h3,html[data-theme=dark] .convex-learning-resource-layout h2,html[data-theme=dark] .convex-chapter-panel h2,html[data-theme=dark] .convex-learning-mode h2{color:var(--heading)}html[data-theme=dark] .home-kicker,html[data-theme=dark] .profile-card-kicker,html[data-theme=dark] .admin-panel-eyebrow,html[data-theme=dark] .gallery-kicker,html[data-theme=dark] .gallery-month-eyebrow,html[data-theme=dark] .research-section-eyebrow,html[data-theme=dark] .convex-section-kicker{color:var(--brand-blue)}html[data-theme=dark] .about-summary,html[data-theme=dark] .journey-section-copy,html[data-theme=dark] .latest-paper-card p,html[data-theme=dark] .profile-card p,html[data-theme=dark] .timeline-content p,html[data-theme=dark] .research-card p,html[data-theme=dark] .project-card-body p,html[data-theme=dark] .contact-item,html[data-theme=dark] .gallery-hero p,html[data-theme=dark] .gallery-filter-summary,html[data-theme=dark] .research-page .research-hero p,html[data-theme=dark] .admin-gallery-card p,html[data-theme=dark] .convex-learning-mode p,html[data-theme=dark] .convex-chapter-panel p,html[data-theme=dark] .convex-support-text{color:var(--body-text)}html[data-theme=dark] .contact-label{color:var(--brand-blue)}html[data-theme=dark] .about-panel,html[data-theme=dark] .latest-paper-card,html[data-theme=dark] .profile-card,html[data-theme=dark] .timeline-content,html[data-theme=dark] .research-card,html[data-theme=dark] .project-card-modern,html[data-theme=dark] .journey-stat,html[data-theme=dark] .journey-map-surface,html[data-theme=dark] .journey-detail,html[data-theme=dark] .journey-note-panel,html[data-theme=dark] .journey-overview-item,html[data-theme=dark] .section-rail,html[data-theme=dark] .gallery-collections-panel,html[data-theme=dark] .gallery-collection-card,html[data-theme=dark] .gallery-filter-panel,html[data-theme=dark] .gallery-filter-menu,html[data-theme=dark] .gallery-density-desktop,html[data-theme=dark] .gallery-density-mobile,html[data-theme=dark] .gallery-empty,html[data-theme=dark] .gallery-upload-panel,html[data-theme=dark] .admin-panel,html[data-theme=dark] .admin-gallery-card,html[data-theme=dark] .admin-delete-panel,html[data-theme=dark] .admin-preview-panel,html[data-theme=dark] .convex-learning-mode,html[data-theme=dark] .convex-chapter-panel,html[data-theme=dark] .convex-source-section,html[data-theme=dark] .convex-source-card,html[data-theme=dark] .convex-experiment-runner,html[data-theme=dark] .convex-experiment-model,html[data-theme=dark] .convex-experiment-controls,html[data-theme=dark] .convex-experiment-result,html[data-theme=dark] .convex-practice-panel,html[data-theme=dark] .convex-example-pair div,html[data-theme=dark] .convex-resource-links a{border-color:var(--panel-line);background:linear-gradient(135deg, #73b7ff0f, transparent 48%), var(--panel-bg);box-shadow:0 18px 44px var(--shadow-soft)}html[data-theme=dark] .journey-detail{background:radial-gradient(circle at 86% 18%, #73b7ff1f, transparent 32%), linear-gradient(135deg, #111d2ff5, #0d1828e6), var(--panel-bg)}html[data-theme=dark] .journey-detail:before{opacity:.34;background:linear-gradient(90deg,#7ea5d414 1px,#0000 1px),linear-gradient(#7ea5d40f 1px,#0000 1px)}html[data-theme=dark] .journey-detail:after{background:linear-gradient(90deg,#111d2fe0 0%,#111d2fa8 38%,#111d2f1f 100%),linear-gradient(#111d2f14,#111d2f5c)}html[data-theme=dark] .journey-photo-sheet{background:linear-gradient(145deg,#16253bb8,#08111f8f),#0d18289e;border-color:#7ea5d438;box-shadow:0 1px 1px #00000057,0 8px 18px #00000038,inset 0 1px #b0cdef1f}html[data-theme=dark] .journey-photo-sheet:before{border-color:#b0cdef1f;box-shadow:inset 0 1px #b0cdef1f,inset 0 -1px #0000001f}html[data-theme=dark] .journey-photo-paper img{filter:saturate(.88)brightness(.82)contrast()}html[data-theme=dark] .about-fact-card,html[data-theme=dark] .journey-map-legend span,html[data-theme=dark] .journey-tags span,html[data-theme=dark] .timeline-date,html[data-theme=dark] .about-focus-tags span,html[data-theme=dark] .latest-paper-tags span,html[data-theme=dark] .project-tag-row span,html[data-theme=dark] .profile-tag-row span,html[data-theme=dark] .gallery-hero-tools span,html[data-theme=dark] .gallery-collection-chip,html[data-theme=dark] .gallery-filter-trigger,html[data-theme=dark] .gallery-filter-option,html[data-theme=dark] .gallery-density-mobile button,html[data-theme=dark] .admin-stat-card,html[data-theme=dark] .admin-gallery-bulk-strip,html[data-theme=dark] .admin-gallery-selected-pill,html[data-theme=dark] .convex-equation-list .convex-equation-item,html[data-theme=dark] .convex-practice-panel details,html[data-theme=dark] .convex-source-license{border-color:var(--panel-line);background:var(--panel-soft);color:var(--body-text)}html[data-theme=dark] .about-fact-card strong,html[data-theme=dark] .journey-stat strong,html[data-theme=dark] .journey-overview-item strong,html[data-theme=dark] .profile-detail-list li,html[data-theme=dark] .timeline-degree,html[data-theme=dark] .latest-paper-meta span,html[data-theme=dark] .gallery-hero-tools strong,html[data-theme=dark] .gallery-collection-card strong,html[data-theme=dark] .gallery-filter-trigger span,html[data-theme=dark] .gallery-photo-modal-info h2,html[data-theme=dark] .convex-example-pair strong,html[data-theme=dark] .convex-learning-page.english-first .bilingual-en{color:var(--heading)}html[data-theme=dark] .about-fact-card span,html[data-theme=dark] .timeline-meta,html[data-theme=dark] .journey-detail-meta,html[data-theme=dark] .journey-stat span,html[data-theme=dark] .journey-overview-item span,html[data-theme=dark] .gallery-month-count,html[data-theme=dark] .gallery-collection-card span,html[data-theme=dark] .gallery-collection-card small,html[data-theme=dark] .admin-date-text,html[data-theme=dark] .admin-gallery-result-line,html[data-theme=dark] .convex-learning-page.english-first .bilingual-zh{color:var(--muted-text)}html[data-theme=dark] .btn-outline,html[data-theme=dark] .btn-secondary,html[data-theme=dark] .journey-overview-button,html[data-theme=dark] .research-action-link,html[data-theme=dark] .gallery-upload-link,html[data-theme=dark] .gallery-filter-clear,html[data-theme=dark] .admin-text-button{color:#cfe8ff;background:#73b7ff14;border-color:#73b7ff70}html[data-theme=dark] .btn-outline:hover,html[data-theme=dark] .btn-secondary:hover,html[data-theme=dark] .journey-overview-button:hover,html[data-theme=dark] .journey-overview-button:focus-visible,html[data-theme=dark] .research-action-link:hover,html[data-theme=dark] .research-action-link:focus-visible,html[data-theme=dark] .gallery-upload-link:hover,html[data-theme=dark] .gallery-upload-link:focus-visible,html[data-theme=dark] .admin-text-button:hover,html[data-theme=dark] .admin-text-button:focus-visible{color:#fff;background:#73b7ff29;border-color:#73b7ffb8}html[data-theme=dark] .journey-detail-gallery-link{color:#bcf4ee;background:#3197951f;border-color:#3197956b}html[data-theme=dark] .journey-detail-gallery-link:hover,html[data-theme=dark] .journey-detail-gallery-link:focus-visible{color:#fff;background:#3197952e;border-color:#5eead49e}html[data-theme=dark] .btn-primary,html[data-theme=dark] .admin-delete-confirm{color:#06101d;background:#4f9ee8}html[data-theme=dark] .btn-primary:hover,html[data-theme=dark] .admin-delete-confirm:hover{color:#06101d;background:#73b7ff}html[data-theme=dark] .footer{color:var(--muted-text);background:#06101d;border-top:1px solid #7ea5d429}html[data-theme=dark] .footer a{color:#cfe8ff}html[data-theme=dark] .footer a:hover{color:#fff}html[data-theme=dark] .timeline:before,html[data-theme=dark] .gallery-month-header,html[data-theme=dark] .convex-learning-resources,html[data-theme=dark] .convex-result-status{border-color:var(--panel-line)}html[data-theme=dark] .page-pixel-hero,html[data-theme=dark] .convex-learning-hero,html[data-theme=dark] .convex-learning-page.english-first .convex-chapter-route-header{background:linear-gradient(135deg,#07111f 0%,#10284a 58%,#0b2d50 100%)}html[data-theme=dark] .page-pixel-hero:before{background:linear-gradient(90deg,#07111fad 0%,#07111f66 38%,#07111f3d 100%),linear-gradient(#040c171f,#040c175c)}html[data-theme=dark] .page-pixel-hero .hero-network-canvas{opacity:.86}html[data-theme=dark] .page-pixel-hero .research-dashboard-card,html[data-theme=dark] .page-pixel-hero .gallery-hero-tools span,html[data-theme=dark] .page-pixel-hero .gallery-upload-link{color:#c7d9ef;background:#111d2f52;border-color:#b0cdef2e}html[data-theme=dark] .page-pixel-hero .gallery-upload-link:hover,html[data-theme=dark] .page-pixel-hero .gallery-hero-tools span:hover{background:#1c2d466b;border-color:#b0cdef47}html[data-theme=dark] .page-pixel-hero h1,html[data-theme=dark] .page-pixel-hero .gallery-hero-tools strong,html[data-theme=dark] .page-pixel-hero .research-dashboard-card strong{color:#f8fbff}html[data-theme=dark] .page-pixel-hero p,html[data-theme=dark] .page-pixel-hero .gallery-hero-tools span,html[data-theme=dark] .page-pixel-hero .research-dashboard-card span{color:#c7d9ef}html[data-theme=dark] .page-pixel-hero .gallery-kicker,html[data-theme=dark] .page-pixel-hero .research-kicker{color:#8fc3ff}html[data-theme=dark] .tab-button,html[data-theme=dark] .research-text-button,html[data-theme=dark] .gallery-collection-card.active,html[data-theme=dark] .gallery-density-mobile button.active,html[data-theme=dark] .admin-gallery-mode-tabs button.active,html[data-theme=dark] .admin-gallery-card.selected,html[data-theme=dark] .admin-gallery-card.editing,html[data-theme=dark] .admin-research-list-item.active{color:#f4f9ff;background:#73b7ff29;border-color:#73b7ffb8}html[data-theme=dark] .admin-research-list-item,html[data-theme=dark] .admin-research-figure-panel,html[data-theme=dark] .admin-gallery-edit-preview{border-color:var(--panel-line);background:var(--panel-soft);color:var(--body-text)}html[data-theme=dark] .admin-research-list-item:hover,html[data-theme=dark] .admin-research-list-item:focus-visible{color:#f4f9ff;background:#73b7ff1f;border-color:#73b7ff94}html[data-theme=dark] .admin-research-list-item strong,html[data-theme=dark] .admin-research-figure-panel h3,html[data-theme=dark] .admin-gallery-edit-preview strong{color:var(--heading)}html[data-theme=dark] .admin-research-list-item span,html[data-theme=dark] .admin-research-file-name,html[data-theme=dark] .admin-gallery-edit-preview span{color:var(--muted-text)}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] .admin-date-picker,html[data-theme=dark] .admin-photo-dropzone,html[data-theme=dark] .admin-place-list,html[data-theme=dark] .admin-collection-checklist{border-color:var(--panel-line);color:var(--page-text);background:#0b1626}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#758ba5}html[data-theme=dark] .gallery-filter-menu,html[data-theme=dark] .admin-preview-lightbox,html[data-theme=dark] .admin-delete-dialog,html[data-theme=dark] .research-figure-modal,html[data-theme=dark] .gallery-photo-modal{color:var(--page-text)}html[data-theme=dark] .gallery-photo-modal-info{color:#334155;background:#f8fbff}html[data-theme=dark] .gallery-card{background:#17253a}html[data-theme=dark] .gallery-card:before{background:linear-gradient(110deg,#142135 0%,#1d304a 45%,#102033 70%,#142135 100%)}html[data-theme=dark] .project-preview{background:#0b1626}html[data-theme=dark] .project-preview img{filter:saturate(.94)brightness(.86)}html[data-theme=dark] .journey-map-bg,html[data-theme=dark] .convex-mini-surface{fill:#0b1626;stroke:#7ea5d447}html[data-theme=dark] .journey-map-region.italy-focus .journey-map-bg{fill:#111d2f;stroke:#7ea5d44d}html[data-theme=dark] .journey-country{fill:#152338;stroke:#7ea5d447}html[data-theme=dark] .journey-country.visited.china{fill:#4299e147;stroke:#73b7ff7a}html[data-theme=dark] .journey-country.visited.europe,html[data-theme=dark] .journey-country.visited.italy-focus{fill:#b7791f57;stroke:#f59e0b7a}html[data-theme=dark] .journey-country.active{fill:#1f848e5c;stroke:#7dd3fc9e}html[data-theme=dark] .journey-graticule,html[data-theme=dark] .journey-grid-line{stroke:#7ea5d433}html[data-theme=dark] .journey-region-label,html[data-theme=dark] .journey-point-label{fill:#d8e3f0}html[data-theme=dark] .journey-region-label.europe{fill:#f1c27d}html[data-theme=dark] .journey-map-legend span{color:#d8e3f0;background:#0c1828c2;border-color:#7ea5d447}html[data-theme=dark] .convex-mini-boundary,html[data-theme=dark] .convex-constraint-line,html[data-theme=dark] .convex-axis-line{stroke:#d8e3f0}html[data-theme=dark] .convex-mini-point,html[data-theme=dark] .convex-mini-segment{stroke:#0b1626}html[data-theme=dark] .convex-resource-links a:hover,html[data-theme=dark] .convex-source-card:hover,html[data-theme=dark] .convex-source-card:focus-visible{color:#f4f9ff;background:#122138;border-color:#73b7ff94}html[data-theme=dark] .research-tabs{background:radial-gradient(circle at 82% 18%,#1f848e24,#0000 28%),linear-gradient(#08111f 0%,#081725 100%)}html[data-theme=dark] .research-tab-nav{background:#0c1828e0;border:1px solid #7ea5d43d;border-radius:8px;box-shadow:0 18px 44px #0000003d}html[data-theme=dark] .tab-btn{color:#9fb4ce}html[data-theme=dark] .tab-btn:hover,html[data-theme=dark] .tab-btn.active{color:#73b7ff}html[data-theme=dark] .tab-btn.active:after{background:#73b7ff;box-shadow:0 0 18px #73b7ff57}html[data-theme=dark] .research-section-header h2,html[data-theme=dark] .research-featured-card h3,html[data-theme=dark] .research-publication-card h3,html[data-theme=dark] .research-patent-card h3,html[data-theme=dark] .research-empty h3,html[data-theme=dark] .research-year-heading{color:var(--heading)}html[data-theme=dark] .research-section-header p,html[data-theme=dark] .research-meta.compact,html[data-theme=dark] .research-meta.compact .authors,html[data-theme=dark] .research-abstract.compact,html[data-theme=dark] .research-patent-content .patent-desc,html[data-theme=dark] .research-empty{color:var(--body-text)}html[data-theme=dark] .research-meta.compact .journal{color:#73b7ff}html[data-theme=dark] .research-featured-card,html[data-theme=dark] .research-publication-card,html[data-theme=dark] .research-patent-card,html[data-theme=dark] .research-empty{background:linear-gradient(135deg,#73b7ff0e,#0000 46%),#111d2f;border-color:#7ea5d43d;box-shadow:0 18px 44px #00000057}html[data-theme=dark] .research-featured-card.has-carousel{border-color:#73b7ff42;box-shadow:0 20px 48px #00000061}html[data-theme=dark] .research-topic-chip{color:#c1cedf;background:#0f1b2c;border-color:#7ea5d447}html[data-theme=dark] .research-topic-chip:hover,html[data-theme=dark] .research-topic-chip.active{color:#f4f9ff;background:#73b7ff29;border-color:#73b7ffb8;box-shadow:0 10px 24px #00000042}html[data-theme=dark] .research-card-topline span,html[data-theme=dark] .research-topic-list span,html[data-theme=dark] .research-year-rail a{color:#cfe8ff;background:#0d1828;border-color:#7ea5d43d}html[data-theme=dark] .research-featured-nav{background:0 0}html[data-theme=dark] .research-featured-nav-button{color:#cfe8ff;background:#122034;border-color:#7ea5d43d;box-shadow:0 8px 18px #00000038}html[data-theme=dark] .research-featured-nav-button:hover,html[data-theme=dark] .research-featured-nav-button:focus-visible{color:#f4f9ff;background:#73b7ff29;border-color:#73b7ffa3}html[data-theme=dark] .research-featured-nav-status{color:var(--muted-text)}html[data-theme=dark] .research-featured-nav-status strong{color:var(--heading)}html[data-theme=dark] .research-year-rail a:hover{background:#73b7ff1f;border-color:#73b7ffa3}html[data-theme=dark] .research-year-rail small,html[data-theme=dark] .research-year-heading small,html[data-theme=dark] .research-featured-figure small{color:var(--muted-text)}html[data-theme=dark] .research-year-heading:before{background:#73b7ff;border-color:#73b7ff3d;box-shadow:0 0 0 4px #73b7ff1f}html[data-theme=dark] .research-featured-figure,html[data-theme=dark] .research-card-figure{background:#0b1626;border-color:#7ea5d43d}html[data-theme=dark] .research-featured-figure span{color:var(--heading)}html[data-theme=dark] .research-featured-figure img,html[data-theme=dark] .research-card-figure img{background:#f8fbff}html[data-theme=dark] .research-figure-dialog{color:var(--page-text);background:#111d2f;border-color:#7ea5d43d;box-shadow:0 22px 70px #00000085}html[data-theme=dark] .research-figure-dialog h2{color:var(--heading)}html[data-theme=dark] .research-figure-dialog p{color:var(--body-text)}html[data-theme=dark] .research-figure-close{color:#cfe8ff;background:#73b7ff1a;border-color:#73b7ff70}@media (prefers-reduced-motion:reduce){.gallery-hero:before,.gallery-card:before,.gallery-card,.gallery-lightbox,.gallery-lightbox-panel{animation:none}.gallery-reveal,.gallery-card,.gallery-card img,.gallery-card-overlay,.gallery-hero-tools span,.gallery-upload-link,.gallery-month-header:before{transition:none}.gallery-reveal{opacity:1;transform:none}}@media screen and (width<=1024px){.container{padding:0 15px}.hero-content{text-align:center;flex-direction:column;gap:30px}.hero-text h1{font-size:2.5rem}.section-title{font-size:2rem}.research-grid{grid-template-columns:1fr;gap:20px}.about-panel,.journey-layout{grid-template-columns:1fr}.journey-detail{min-height:0}.project-card-grid,.profiles-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.convex-learning-hero-layout{grid-template-columns:1fr}.convex-chapter-route-layout{flex-direction:column;align-items:flex-start}.convex-course-chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.convex-practice-first-path,.convex-practice-hero-card,.convex-cvxpy-lesson .convex-practice-hero-card,.convex-task-split-layout{grid-template-columns:1fr}.convex-task-mapping-list{grid-template-columns:repeat(2,minmax(0,1fr))}.convex-practice-hero-card{gap:20px;padding:24px}.convex-practice-mini-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.convex-practice-mini-metrics>span{min-height:66px}.convex-learning-mode-grid,.convex-lesson-overview,.convex-functions-lesson .convex-lesson-overview,.convex-mix-lab,.convex-combination-grid,.convex-importance-strip,.convex-concept-bridge-grid,.convex-high-dim-lab,.convex-dimension-visual-grid,.convex-concept-visuals,.convex-concept-visuals.three,.convex-example-pair,.convex-worked-layout{grid-template-columns:1fr}.gallery-hero-layout{flex-direction:column;align-items:flex-start}.gallery-hero-tools{justify-content:flex-start}.gallery-filter-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-collection-row{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-collections-heading{flex-direction:column;align-items:flex-start}.gallery-filter-clear{width:fit-content}.gallery-photo-modal{padding:24px}.gallery-photo-modal-panel{grid-template:"figure"minmax(0,auto)"filmstrip""info"/1fr;overflow:auto}.gallery-photo-modal-figure{min-height:min(62vh,520px);max-height:62vh}.gallery-photo-modal-info{max-height:none;padding:22px}.gallery-photo-modal-nav{width:42px;height:58px}.gallery-month-group{grid-template-columns:1fr;gap:18px}.gallery-grid,.gallery-row{gap:10px}.gallery-card{min-width:0}.admin-grid{grid-template-columns:1fr}.admin-gallery-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-gallery-toolbar,.admin-gallery-layout{grid-template-columns:1fr}.admin-gallery-side{grid-row:auto;position:static}.admin-gallery-bulk-strip{grid-template-columns:auto minmax(120px,.4fr) minmax(190px,1fr)}.admin-gallery-bulk-actions{grid-column:1/-1}.admin-gallery-inspector-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-gallery-inspector-form.upload-mode{grid-template-areas:"photo title""date location""caption collections""description places""actions actions"}.admin-gallery-inspector-form.edit-mode{grid-template-areas:"preview title""date location""caption collections""description places""actions actions"}.admin-field-actions{justify-self:start}.admin-place-list{max-height:none}.timeline-item{grid-template-columns:132px minmax(0,1fr);gap:28px}.timeline:before{left:146px}.timeline-item:before{left:139px}.timeline-date{min-height:58px;font-size:.9rem}}@media screen and (width<=768px){.nav-menu{text-align:center;background-color:#1a365d;flex-direction:column;width:100%;padding:20px 0;transition:all .3s;position:fixed;top:70px;left:-100%;box-shadow:0 10px 27px #0000000d}.nav-menu.active{left:0}.nav-dropdown-item,.nav-dropdown-toggle{width:100%}.nav-dropdown-menu{width:calc(100% - 36px);min-width:0;box-shadow:none;opacity:1;visibility:visible;pointer-events:auto;margin:4px auto 2px;display:none;position:static;transform:none}.nav-dropdown-item.open .nav-dropdown-menu{display:grid}.nav-dropdown-link{text-align:center}.nav-actions{display:none}.nav-item.nav-release-item,.nav-item.nav-theme-item{justify-content:center;width:100%;display:flex}.nav-release-item .release-badge{min-height:34px;padding:7px 12px}.nav-theme-item .theme-toggle{width:44px;height:44px}.nav-toggle{display:flex}.nav-toggle.active .bar:nth-child(2){opacity:0}.nav-toggle.active .bar:first-child{transform:translateY(8px)rotate(45deg)}.nav-toggle.active .bar:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.hero-section{padding:60px 0}.hero-network-canvas{opacity:.48}.hero-text h1{font-size:2rem}.subtitle{font-size:1.1rem}.description{font-size:1rem}.hero-buttons{flex-direction:column;align-items:center;gap:10px}.btn{text-align:center;width:200px}.section-title{margin-bottom:30px;font-size:1.8rem}.timeline{gap:14px}.timeline:before,.timeline-item:before{display:none}.timeline-item{grid-template-columns:1fr;gap:10px}.timeline-date{width:fit-content;min-height:0;padding:8px 11px}.timeline-content{min-height:0;padding:18px}.timeline-content-header{flex-direction:column;align-items:flex-start;gap:4px}.timeline-meta{text-align:left}.about-section,.phd-journey-section,.academic-profiles-section,.education-section,.research-section,.contact-section,.gallery-section{padding:40px 0}.profiles-section-intro{margin-top:-12px}.profiles-grid{grid-template-columns:1fr;gap:18px}.profile-card{min-height:0;padding:22px}.profile-card-header{align-items:flex-start}.gallery-hero{padding:38px 0 28px}.gallery-hero h1{font-size:2.15rem}.gallery-month-group{grid-template-columns:1fr;gap:12px}.gallery-month-header{justify-content:space-between;align-items:flex-end;gap:16px;display:flex;position:static}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gallery-row{display:contents}.gallery-card,.gallery-card.is-landscape,.gallery-card.is-portrait,.gallery-card.is-balanced{flex:none;grid-column:span 1;width:100%;min-width:0;height:auto}.gallery-lightbox{padding:66px 18px 24px}.gallery-lightbox-panel{grid-template-columns:1fr;gap:18px;max-height:calc(100vh - 110px);overflow:auto}.gallery-lightbox-figure img{max-height:58vh}.gallery-lightbox-info{align-self:stretch;padding:18px}.gallery-upload-panel{padding:22px}.gallery-upload-form{grid-template-columns:1fr}.gallery-upload-actions{flex-direction:column;align-items:flex-start;gap:10px}.admin-section{padding:54px 0 42px}.admin-header{flex-direction:column;align-items:flex-start}.admin-panel{padding:18px}.admin-environment-banner,.admin-place-selector-panel{grid-template-columns:1fr;gap:8px}.admin-place-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-gallery-stats,.admin-gallery-filters,.admin-gallery-bulk,.admin-gallery-bulk-strip,.admin-gallery-inspector-form,.admin-form-two{grid-template-columns:1fr}.admin-gallery-inspector-form.upload-mode{grid-template-areas:"photo""title""date""location""caption""collections""description""places""actions"}.admin-gallery-inspector-form.upload-mode.has-local-warning{grid-template-areas:"local-warning""photo""title""date""location""caption""collections""description""places""actions"}.admin-gallery-inspector-form.edit-mode{grid-template-areas:"preview""title""date""location""caption""collections""description""places""actions"}.admin-collection-checklist{grid-template-columns:1fr}.admin-field-actions,.admin-gallery-inspector-form>.btn.admin-field-actions,.admin-gallery-edit-actions .btn{width:100%}.admin-gallery-edit-actions{flex-direction:column;align-items:stretch}.admin-gallery-bulk label:nth-child(2){grid-row:auto}.admin-gallery-grid{grid-template-columns:1fr}.admin-preview-lightbox{padding:16px}.admin-preview-panel{grid-template-columns:1fr;width:calc(100vw - 32px);max-height:calc(100vh - 32px)}.admin-preview-figure{min-height:260px;max-height:calc(100vh - 180px)}.admin-preview-figure img{max-height:calc(100vh - 180px)}.admin-preview-caption{align-content:start;padding:16px}.home-section-heading h2{font-size:1.9rem}.about-facts{grid-template-columns:1fr}.journey-section-copy{font-size:.98rem}.journey-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-map-surface{height:clamp(390px,62vw,500px);min-height:0;padding:10px}.journey-map{min-height:0}.journey-map-legend{max-width:calc(100% - 32px);bottom:16px;left:16px;right:auto}.journey-detail{min-height:340px;padding:20px}.journey-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-detail h3{font-size:1.55rem}.journey-photo-paper{width:clamp(120px,36vw,190px)}.journey-photo-paper-1{--paper-left:4%;--paper-top:16%;--cluster-left:44%;--cluster-top:16%}.journey-photo-paper-2{--paper-left:22%;--paper-top:60%;--cluster-left:56%;--cluster-top:34%}.journey-photo-paper-3{--paper-left:48%;--paper-top:18%;--cluster-left:46%;--cluster-top:56%}.journey-photo-paper-4{--paper-left:72%;--paper-top:12%;--cluster-left:70%;--cluster-top:12%}.journey-photo-paper-5{--paper-left:64%;--paper-top:66%;--cluster-left:64%;--cluster-top:62%}.latest-paper-section,.project-showcase-section,.convex-learning-main{padding:48px 0}.convex-learning-hero{padding:82px 0 44px}.convex-learning-hero-copy h1,.convex-learning-hero-copy h1 .bilingual-zh{font-size:2.35rem}.convex-learning-mode-grid,.convex-course-chapter-grid,.convex-chapter-pager,.convex-chapter-grid,.convex-practice-first-path,.convex-practice-first-actions,.convex-practice-hero-card,.convex-cvxpy-lesson .convex-practice-hero-card,.convex-offloading-definition-grid,.convex-offloading-flow,.convex-task-split-layout,.convex-task-split-diagram,.convex-task-budget-strip,.convex-topology-layout,.convex-topology-notes,.convex-model-layout,.convex-code-step-grid,.convex-theory-link-grid,.convex-dcp-grid,.convex-lesson-overview,.convex-functions-lesson .convex-lesson-overview,.convex-mix-lab,.convex-lesson-grid,.convex-concept-visuals,.convex-concept-visuals.three,.convex-worked-layout,.convex-practice-panel{grid-template-columns:1fr}.convex-chapter-panel{min-height:0;padding:20px}.convex-chapter-title-row{grid-template-columns:64px minmax(0,1fr);gap:14px}.convex-chapter-title-number{width:64px;min-height:64px;font-size:1.2rem}.convex-chapter-panel-header,.convex-learning-resource-layout{flex-direction:column;align-items:flex-start}.convex-chapter-summary{margin-left:0}.convex-practice-mini-metrics{grid-template-columns:1fr}.convex-resource-links{justify-content:flex-start}.latest-paper-card,.about-panel{padding:20px}.project-card-grid{grid-template-columns:1fr}.tab-nav{flex-direction:column;gap:10px}.tab-btn{text-align:center;width:100%}.research-meta,.project-meta,.patent-meta{flex-direction:column;gap:5px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:20px}.stat-number{font-size:2.5rem}}@media screen and (width<=480px){.container,.nav-container{padding:0 10px}.hero-text h1{font-size:1.8rem}.profile-img{width:150px;height:150px}.section-title{font-size:1.6rem}.research-card,.research-item,.project-item,.patent-item,.blog-card,.gallery-empty,.gallery-upload-panel{padding:20px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gallery-row{display:contents}.gallery-filter-panel{padding:12px}.gallery-collection-row{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-collection-card{min-height:0}.gallery-collection-card small{display:none}.gallery-filter-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-filter-footer{align-items:center;gap:10px}.gallery-view-toolbar{justify-content:flex-end;gap:10px}.gallery-view-toolbar>span,.gallery-density-desktop{display:none}.gallery-density-mobile{display:flex}.gallery-filter-clear{width:100%}.gallery-photo-modal{padding:0}.gallery-photo-modal-frame,.gallery-photo-modal-panel{width:100vw;height:100dvh;max-height:none}.gallery-photo-modal-panel{border:0;border-radius:0;grid-template-rows:minmax(0,1fr) auto minmax(170px,34vh)}.gallery-photo-modal-figure{height:auto;min-height:0;max-height:none}.gallery-photo-modal-toolbar{top:calc(10px + env(safe-area-inset-top,0px));justify-content:flex-start;left:10px;right:10px;overflow-x:auto}.gallery-photo-modal-info{max-height:none;padding:18px}.gallery-photo-modal-nav{width:38px;height:52px}.gallery-photo-modal-nav.previous{left:10px}.gallery-photo-modal-nav.next{right:10px}.gallery-card,.gallery-card.is-landscape,.gallery-card.is-portrait,.gallery-card.is-balanced{flex:none;grid-column:span 1;width:100%;min-width:0;height:auto}.gallery-grid.density-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.gallery-grid.density-large{grid-template-columns:1fr;gap:10px}.gallery-grid.density-compact .gallery-card,.gallery-grid.density-large .gallery-card,.gallery-grid.density-compact .gallery-card.is-landscape,.gallery-grid.density-compact .gallery-card.is-portrait,.gallery-grid.density-compact .gallery-card.is-balanced,.gallery-grid.density-large .gallery-card.is-landscape,.gallery-grid.density-large .gallery-card.is-portrait,.gallery-grid.density-large .gallery-card.is-balanced{grid-column:span 1}.latest-paper-actions .btn,.project-card-body .btn,.convex-learning-actions .btn,.convex-practice-hero-card .btn{width:100%}.convex-learning-hero-copy h1{font-size:2rem}.convex-learning-hero-copy h1 .bilingual-zh{font-size:2.05rem}.convex-learning-hero-copy p,.convex-chapter-summary{font-size:.98rem}.convex-chapter-title-row{grid-template-columns:1fr}.convex-chapter-title-number{width:56px;min-height:40px;font-size:1rem}.convex-learning-band,.convex-learning-resources{padding:34px 0}.convex-learning-mode,.convex-chapter-block,.convex-practice-first-path,.convex-practice-first-card,.convex-practice-hero-card,.convex-offloading-definition,.convex-topology-section,.convex-practice-section,.convex-lesson-section,.convex-concept-bridge,.convex-combination-concept,.convex-combination-card,.convex-high-dim-lab,.convex-dimension-card,.convex-worked-example,.convex-practice-panel,.convex-mix-lab{padding:16px}.convex-formula-card strong{font-size:1rem}.convex-task-split-section{padding:16px}.convex-task-branch,.convex-task-branch.edge,.convex-task-flow-chain,.convex-task-mapping-list,.convex-task-mapping-list div,.convex-model-objective-row,.convex-model-constraint-list>div{grid-template-columns:1fr}.convex-task-flow-line,.convex-task-flow-chain:before,.convex-task-flow-chain:after{display:none}.convex-edge-topology-svg{min-height:210px}.convex-practice-mini-metrics{grid-template-columns:1fr}.convex-offloading-flow-arrow{display:none}.convex-mix-visual{min-height:238px}.convex-mix-equation{width:100%}.journey-stats{gap:8px}.journey-stat{min-height:84px;padding:14px}.journey-stat strong{font-size:1.28rem}.journey-stat span{font-size:.68rem}.journey-map-surface{height:330px;min-height:0}.journey-map{min-height:0}.journey-point-label{font-size:13px}.journey-map-legend span{padding:5px 8px;font-size:.68rem}.journey-photo-paper{width:132px}.journey-photo-paper-1{--paper-left:6%;--paper-top:18%;--cluster-left:44%;--cluster-top:18%}.journey-photo-paper-2{--paper-left:18%;--paper-top:62%;--cluster-left:52%;--cluster-top:36%}.journey-photo-paper-3{--paper-left:46%;--paper-top:20%;--cluster-left:42%;--cluster-top:58%}.journey-photo-paper-4{--paper-left:70%;--paper-top:10%;--cluster-left:66%;--cluster-top:14%}.journey-photo-paper-5{--paper-left:62%;--paper-top:68%;--cluster-left:60%;--cluster-top:66%}.gallery-lightbox{padding:62px 12px 18px}.gallery-lightbox-close{top:12px;right:12px}.admin-place-list,.admin-media-card{grid-template-columns:1fr}.admin-media-card img{width:100%;height:150px}.gallery-lightbox-nav{top:auto;bottom:18px;transform:none}.gallery-lightbox-nav.prev{left:18px}.gallery-lightbox-nav.next{right:18px}.stats-grid{grid-template-columns:1fr;gap:15px}.stat-item{padding:20px}.stat-number{font-size:2rem}}@media screen and (width<=1440px){.section-rail{width:48px;padding:8px 6px;left:12px}.section-rail-toggle,.section-rail-link{justify-content:center;padding-left:0;padding-right:0}.section-rail-toggle-text,.section-rail-label{opacity:0;max-width:0}.section-rail-link:hover{transform:none}}@media screen and (width<=1280px){.section-rail{display:none}}@media screen and (width<=1024px){.research-hero-layout{grid-template-columns:1fr;align-items:start;gap:26px}.research-dashboard{max-width:560px}.research-featured-card.with-figure,.research-featured-card.without-figure{grid-template-columns:1fr}.research-featured-header{flex-direction:column;align-items:flex-start}.research-featured-figure img{max-height:360px}.research-timeline-browser{grid-template-columns:1fr}.research-year-rail{padding-bottom:4px;display:flex;position:static;overflow-x:auto}.research-year-rail a{min-width:108px}}@media screen and (width<=768px){.convex-learning-page.english-first .convex-chapter-route-header{padding:38px 0 34px}.convex-learning-page.english-first .convex-chapter-route-layout{grid-template-columns:1fr;gap:12px;width:min(100% - 40px,680px)}.convex-learning-page.english-first .convex-chapter-route-layout .gallery-back-link,.convex-learning-page.english-first .convex-chapter-route-layout .convex-chapter-label,.convex-learning-page.english-first .convex-chapter-route-layout h1,.convex-learning-page.english-first .convex-chapter-route-layout .convex-chapter-summary{grid-area:auto/1}.convex-source-section-header,.convex-experiment-header,.convex-result-status{flex-direction:column;align-items:flex-start}.convex-source-card-grid,.convex-experiment-grid{grid-template-columns:1fr}.convex-experiment-model,.convex-experiment-controls,.convex-experiment-result{grid-area:auto}.convex-experiment-controls label{grid-template-columns:1fr}.convex-experiment-header .btn{width:100%}.convex-result-kv{flex-direction:column;align-items:flex-start;gap:4px}.convex-result-kv code{max-width:100%}.research-page .research-hero{padding:38px 0 30px}.research-page .research-hero h1{font-size:2.15rem}.research-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.research-tab-nav{position:static}.research-section-header{flex-direction:column;align-items:flex-start;gap:10px}.research-section-header h2{font-size:1.75rem}.research-publication-card{grid-template-columns:1fr}.research-card-figure{min-height:190px}.research-patent-card{grid-template-columns:1fr;gap:8px}.research-figure-modal{padding:14px}.research-figure-dialog{max-height:calc(100vh - 28px);padding:18px}.research-figure-dialog h2{max-width:100%;padding-right:78px;font-size:1.08rem}}@media screen and (width<=480px){.research-page .research-hero h1{font-size:1.86rem}.research-dashboard{grid-template-columns:1fr}.research-featured-card,.research-publication-card,.research-patent-card,.research-empty{padding:18px}.research-featured-nav{margin-left:auto}.research-card-actions{flex-direction:column;align-items:stretch}.research-action-link,.research-action-link.button{width:100%}}
