:root{color-scheme:dark;font-family:Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif;color:#f5f7ff;background:#030817;font-synthesis:none;--bg: #030817;--bg-deep: #02050f;--surface: rgba(10, 22, 48, .64);--surface-strong: rgba(11, 25, 54, .86);--surface-soft: rgba(26, 45, 82, .35);--text: #f5f7ff;--muted: #a9b2c9;--faint: #78849d;--line: rgba(153, 180, 239, .17);--line-strong: rgba(137, 173, 255, .35);--accent: #7e8cff;--accent-cyan: #49c7ff;--accent-pink: #e96ed3;--shadow: 0 22px 65px rgba(0, 0, 0, .36);--header-bg: rgba(4, 10, 26, .72)}:root[data-theme=light]{color-scheme:light;color:#111827;background:#f3f5f7;--bg: #f3f5f7;--bg-deep: #eceff3;--surface: rgba(255, 255, 255, .78);--surface-strong: rgba(255, 255, 255, .94);--surface-soft: rgba(238, 242, 247, .86);--text: #111827;--muted: #566174;--faint: #798394;--line: rgba(61, 76, 99, .13);--line-strong: rgba(62, 83, 115, .22);--accent: #2563eb;--accent-cyan: #1677b8;--accent-pink: #2563eb;--shadow: 0 20px 60px rgba(36, 47, 67, .09);--header-bg: rgba(250, 251, 252, .88)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:4px}.site-shell{position:relative;width:min(100% - 32px,1680px);min-height:100vh;margin:16px auto;border:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 94%,transparent),var(--bg-deep));box-shadow:var(--shadow);overflow:hidden}.glass-panel{background:linear-gradient(145deg,var(--surface-strong),var(--surface));border:1px solid var(--line-strong);box-shadow:inset 0 1px #ffffff14,0 16px 44px #0000001f;-webkit-backdrop-filter:blur(18px) saturate(120%);backdrop-filter:blur(18px) saturate(120%)}:root[data-theme=light] .site-shell{background:#f8f9fb}:root[data-theme=light] .glass-panel{background:#fffc;box-shadow:inset 0 1px #fff,0 14px 38px #23304512;-webkit-backdrop-filter:blur(16px) saturate(105%);backdrop-filter:blur(16px) saturate(105%)}.site-header{position:sticky;top:0;z-index:20;height:70px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 28px;background:var(--header-bg);border-width:0 0 1px}.brand-button{display:inline-flex;align-items:center;gap:12px;width:fit-content;padding:0;border:0;background:transparent;font-weight:700;cursor:pointer}.brand-mark{width:24px;height:24px;display:inline-block;border-radius:50%;border:2px solid rgba(255,255,255,.9);border-right-color:var(--accent);border-bottom-color:var(--accent-cyan);box-shadow:0 0 18px #5a97ff5c}:root[data-theme=light] .brand-mark{border-color:#263652;border-right-color:var(--accent);border-bottom-color:var(--accent-cyan)}.desktop-nav{display:flex;align-items:center;gap:40px;height:100%}.desktop-nav button{position:relative;height:100%;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:color .2s ease}.desktop-nav button:hover,.desktop-nav button.active{color:var(--text)}.desktop-nav button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-pink))}:root[data-theme=light] .desktop-nav button.active:after{background:var(--accent)}.header-actions{display:flex;justify-content:flex-end;gap:10px}.icon-button{width:40px;height:40px;display:inline-grid;place-items:center;border-radius:14px;border:1px solid var(--line);background:var(--surface-soft);cursor:pointer;transition:transform .2s ease,border-color .2s ease}.icon-button:hover{transform:translateY(-2px);border-color:var(--line-strong)}.mobile-menu-button,.mobile-nav{display:none}.page-content{position:relative;z-index:1;padding:0 clamp(28px,3.4vw,58px)}.hero{position:relative;min-height:450px;display:flex;align-items:center;margin-top:30px;padding:38px;border-radius:22px;overflow:hidden;background-image:linear-gradient(90deg,#02071461,#02071414),url(/assets/aurora-orbit.png);background-position:center;background-size:cover}.hero-copy{width:100%;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(350px,.88fr);gap:clamp(28px,4vw,66px);align-items:stretch;padding:34px 38px;border-radius:18px;background:#040c1ea3;border-color:#9dbcff47;-webkit-backdrop-filter:blur(22px) saturate(118%);backdrop-filter:blur(22px) saturate(118%);box-shadow:inset 0 1px #ffffff1a,0 20px 60px #00000047}.hero-primary{display:flex;min-width:0;flex-direction:column;justify-content:center}.hero-side{display:grid;grid-template-columns:1fr;gap:13px}.eyebrow{margin:0 0 10px;font:500 12px/1.4 Cascadia Mono,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;color:var(--accent-cyan)}.hero h1,.project-header h1{margin:0;font-size:clamp(42px,4vw,62px);line-height:1.05;letter-spacing:-.04em}.hero-role{margin:16px 0 0;font-size:20px;font-weight:600}.hero-intro{max-width:620px;margin:14px 0 0;color:var(--muted);font-size:15px;line-height:1.8}.contact-list{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:20px}.contact-list a{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:14px;transition:color .2s ease}.contact-list a:hover{color:var(--text)}.hero-actions,.project-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:23px}.focus-block,.hero-project{border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface-soft) 76%,transparent)}.focus-block{padding:20px}.side-label{display:block;margin:0 0 12px;color:var(--accent-cyan);font:600 11px/1.3 Cascadia Mono,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase}.focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.focus-grid span{min-height:39px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:9px;color:var(--text);background:color-mix(in srgb,var(--surface) 65%,transparent);font-size:12px}.focus-grid svg{flex:0 0 auto;color:var(--accent-cyan)}.learning-note{display:flex;align-items:center;gap:8px;margin:14px 2px 0;color:var(--muted);font-size:12px}.learning-note span{width:7px;height:7px;border-radius:50%;background:var(--accent-cyan);box-shadow:0 0 12px var(--accent-cyan)}.hero-project{display:flex;flex-direction:column;align-items:flex-start;padding:18px 20px;text-align:left;color:var(--text);cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.hero-project:hover{transform:translateY(-2px);border-color:var(--accent-cyan);background:var(--surface-soft)}.hero-project .side-label{margin-bottom:7px}.hero-project strong{font-size:16px}.hero-project small{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.55}.hero-project-link{display:flex;align-items:center;gap:7px;margin-top:11px;color:var(--accent-cyan);font-size:12px}.primary-button,.secondary-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 19px;border-radius:11px;border:1px solid var(--line-strong);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.primary-button{color:#fff;background:linear-gradient(110deg,#2469ed,#755bd8 56%,#b94f9e);box-shadow:0 12px 30px #3d4bd245,inset 0 1px #ffffff47}:root[data-theme=light] .primary-button{background:linear-gradient(110deg,#2563eb,#1677b8);box-shadow:0 10px 24px #2563eb2e,inset 0 1px #ffffff4d}.secondary-button{background:var(--surface);color:var(--text)}.primary-button:hover,.secondary-button:hover{transform:translateY(-2px);border-color:var(--accent-cyan)}:root[data-theme=light] .hero{background-image:linear-gradient(90deg,#edf4f924,#edf4f908),url(/assets/aurora-orbit-light.png);border-color:#4c648433}:root[data-theme=light] .hero-copy{background:#ffffffb3;border-color:#48628433;box-shadow:inset 0 1px #fff,0 20px 54px #33486221;-webkit-backdrop-filter:blur(24px) saturate(112%);backdrop-filter:blur(24px) saturate(112%)}.content-section{padding:28px 0 20px;scroll-margin-top:90px}.section-heading h2,.detail-section h2{margin:0;font-size:clamp(26px,3vw,36px);letter-spacing:-.025em}.project-card{width:100%;margin-top:24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:26px;text-align:left;border-radius:17px;cursor:pointer;overflow:hidden;position:relative;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-card:before{content:"";position:absolute;inset:auto -10% -90% 45%;height:200%;background:radial-gradient(circle,rgba(217,86,208,.18),transparent 55%);pointer-events:none}:root[data-theme=light] .project-card:before{background:radial-gradient(circle,rgba(37,99,235,.06),transparent 58%)}.project-card:hover{transform:translateY(-4px);border-color:#5dbdffb3;box-shadow:0 18px 60px #2a53d438,inset 0 1px #ffffff1f}.project-icon{width:62px;height:62px;display:grid;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(145deg,#486fb7a6,#151c30e0);border:1px solid rgba(189,208,255,.35);box-shadow:inset 0 1px #ffffff40}:root[data-theme=light] .project-icon{color:#2563eb;background:#edf3fb;border-color:#cfdae8;box-shadow:inset 0 1px #fff}.project-content{min-width:0;display:flex;flex-direction:column;gap:9px}.project-title-row{display:flex;justify-content:space-between;gap:20px}.project-title-row strong{font-size:19px}.project-title-row>span{color:var(--accent-cyan);font-size:13px}.project-description{color:var(--muted);font-size:14px;line-height:1.7}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list>span{padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--surface-soft);font:500 11px/1.2 Cascadia Mono,SFMono-Regular,Consolas,monospace}.project-arrow{color:var(--accent-cyan);transition:transform .2s ease}.project-card:hover .project-arrow{transform:translate(5px)}.tutorial-list{margin-top:24px;border-radius:17px;overflow:hidden}.tutorial-list>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:24px 26px;transition:background .2s ease}.tutorial-list>a:hover{background:var(--surface-soft)}.tutorial-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:14px;color:var(--accent-cyan);background:var(--surface-soft);border:1px solid var(--line)}.tutorial-copy{display:flex;min-width:0;flex-direction:column;gap:6px}.tutorial-copy strong{font-size:17px}.tutorial-copy small{color:var(--muted);font-size:13px;line-height:1.6}.tutorial-link{display:flex;align-items:center;gap:8px;color:var(--accent-cyan);font-size:13px}.project-page{padding:46px 0 20px}.back-button{display:inline-flex;align-items:center;gap:8px;margin-bottom:38px;padding:0;color:var(--muted);border:0;background:transparent;cursor:pointer}.back-button:hover{color:var(--text)}.project-header{display:flex;justify-content:space-between;gap:40px;align-items:flex-end}.project-header h1{font-size:clamp(40px,5vw,62px)}.project-header>div>p:not(.eyebrow){margin:12px 0 18px;color:var(--muted);font-size:18px}.project-cta-row{justify-content:flex-end;margin:0}.project-shot{margin:48px 0;padding:13px;border-radius:17px;overflow:hidden}.project-shot img{display:block;width:100%;border-radius:10px}.project-shot figcaption{padding:11px 4px 1px;color:var(--faint);font-size:12px;text-align:center}.detail-section{padding:45px 0;border-top:1px solid var(--line)}.detail-intro{display:grid;grid-template-columns:.55fr 1.45fr;gap:70px}.detail-intro>p{margin:0;color:var(--muted);line-height:2}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 50px;margin-top:28px}.feature-item{display:flex;gap:16px;padding:21px 0;border-bottom:1px solid var(--line)}.feature-item>span{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:var(--accent-cyan);background:var(--surface-soft);border:1px solid var(--line)}.feature-item h3{margin:0 0 6px;font-size:15px}.feature-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.project-meta{display:grid;grid-template-columns:repeat(3,1fr);margin:12px 0 35px;padding:26px;border-radius:15px}.project-meta>div{display:flex;align-items:center;gap:13px;padding:0 24px;border-right:1px solid var(--line);color:var(--accent-cyan)}.project-meta>div:first-child{padding-left:0}.project-meta>div:last-child{padding-right:0;border-right:0}.project-meta span{display:flex;flex-direction:column;gap:3px}.project-meta strong{color:var(--text);font-size:14px}.project-meta small{color:var(--faint);font-size:11px}.site-footer{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;margin-top:45px;padding:24px clamp(28px,3.4vw,58px);color:var(--faint);background:color-mix(in srgb,var(--bg-deep) 80%,transparent);border-top:1px solid var(--line);font-size:12px}@media(min-width:1500px){.site-header{padding-inline:38px}.hero{min-height:430px}.content-section{padding-top:22px}}.site-footer div{display:flex;gap:22px}.site-footer a{display:inline-flex;align-items:center;gap:7px;transition:color .2s ease}.site-footer a:hover{color:var(--text)}@media(max-width:860px){.site-shell{width:100%;margin:0;border-width:0}.site-header{height:64px;grid-template-columns:1fr auto;padding:0 20px}.desktop-nav{display:none}.mobile-menu-button{display:inline-grid}.mobile-nav{position:absolute;top:58px;right:14px;display:flex;min-width:180px;flex-direction:column;padding:8px;border-radius:14px}.mobile-nav button{padding:12px 14px;text-align:left;border:0;background:transparent;border-radius:9px;cursor:pointer}.mobile-nav button:hover{background:var(--surface-soft)}.page-content{padding:0 20px}.hero{min-height:430px;padding:28px}.hero h1{font-size:48px}.hero-copy{width:100%;grid-template-columns:1fr;padding:31px 32px}.hero-side{grid-template-columns:1fr 1fr}.content-section{padding-top:34px}.detail-intro{grid-template-columns:1fr;gap:23px}.project-header{align-items:flex-start;flex-direction:column}.project-cta-row{justify-content:flex-start}.feature-grid{grid-template-columns:1fr}.project-meta{grid-template-columns:1fr;gap:16px}.project-meta>div,.project-meta>div:first-child,.project-meta>div:last-child{padding:0 0 16px;border-right:0;border-bottom:1px solid var(--line)}.project-meta>div:last-child{padding-bottom:0;border-bottom:0}.site-footer{padding:22px 20px}}@media(max-width:560px){.brand-button span{display:none}.hero{min-height:auto;margin-top:18px;padding:14px;background-position:64% center}.hero-copy{width:100%;padding:25px 22px}.hero-side{grid-template-columns:1fr}.focus-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:44px}.hero-role{font-size:18px}.hero-actions{flex-direction:column}.primary-button,.secondary-button{width:100%}.contact-list a span{overflow-wrap:anywhere}.project-card{grid-template-columns:auto 1fr;gap:17px;padding:20px}.project-icon{width:50px;height:50px}.project-title-row{flex-direction:column;gap:3px}.project-title-row strong{font-size:17px}.project-arrow{display:none}.tutorial-list>a{grid-template-columns:auto 1fr;gap:15px;padding:20px}.tutorial-link{grid-column:2}.project-page{padding-top:28px}.back-button{margin-bottom:28px}.project-header h1{font-size:38px;overflow-wrap:anywhere}.project-shot{margin:34px 0;padding:7px}.detail-section{padding:34px 0}.feature-item{padding:17px 0}.site-footer{align-items:flex-start;gap:18px;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
