:root{--letter-ease:cubic-bezier(.16,1,.3,1);--letter-line:#fff;--letter-accent:#bfe9ff}
.letter-intro-pending{overflow:hidden}
.letter-intro-pending .air-header,.letter-intro-pending .theme-switcher{opacity:0;pointer-events:none}
.letter-intro-pending #hero .orb,.letter-intro-pending .letter-hero-lockup{visibility:hidden;opacity:0}
.letter-opening{position:absolute;inset:0;z-index:500;overflow:hidden;pointer-events:none;color:#fff;background:transparent}
.letter-opening::before{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(90deg,rgba(1,43,107,.12),transparent 28%,transparent 72%,rgba(1,43,107,.12)),radial-gradient(circle at 50% 52%,rgba(255,255,255,.15),transparent 32%)}
.letter-opening__meta,.letter-opening__caption{position:absolute;z-index:2;font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:.16em;opacity:0}
.letter-opening__meta{top:32px;right:34px;left:34px;display:flex;justify-content:space-between}
.letter-opening__caption{bottom:30px;left:50%;transform:translateX(-50%);white-space:nowrap}
.letter-opening__stage{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.letter-opening__grid{fill:none;stroke:rgba(255,255,255,.22);stroke-width:1;opacity:0}
.letter-opening__font-lockup{position:absolute;inset:0;z-index:1;display:grid;place-items:center}
.letter-opening__font-lockup,.letter-hero-lockup{--hero-scale-x:.77}
.letter-opening__letters,.letter-opening__word,.letter-hero-outline{width:100%;font-size:259.2px;font-weight:900;line-height:220.32px;text-align:center;white-space:nowrap;text-shadow:0 10px 44px rgba(3,39,85,.08);transform:scaleX(var(--hero-scale-x))}
.letter-opening__letters,.letter-opening__word{position:relative;grid-area:1/1;margin:0}
.letter-opening__letters{color:transparent}
.letter-opening__word{color:#fff;opacity:0}
.letter-opening__letter{--from-x:0px;--from-y:0px;--from-r:0deg;display:inline-block;opacity:0;-webkit-text-stroke:2px rgba(255,255,255,.96);text-stroke:2px rgba(255,255,255,.96);filter:drop-shadow(0 0 7px rgba(255,255,255,.3));transform:translate(var(--from-x),var(--from-y)) rotate(var(--from-r))}
.letter-opening__letter--d{--from-x:-620px;--from-y:120px;--from-r:-5deg;--delay:.38s}
.letter-opening__letter--2{--from-x:-170px;--from-y:-480px;--from-r:7deg;--delay:.5s}
.letter-opening__letter--x{--from-x:80px;--from-y:-540px;--from-r:-8deg;--delay:.66s}
.letter-opening__letter--p{--from-x:-110px;--from-y:470px;--from-r:5deg;--delay:.76s}
.letter-opening__letter--l{--from-x:-350px;--from-y:420px;--from-r:-6deg;--delay:.84s}
.letter-opening__letter--o{--from-x:500px;--from-y:-170px;--from-r:10deg;--delay:.9s}
.letter-opening__letter--r{--from-x:610px;--from-y:330px;--from-r:8deg;--delay:.96s}
.letter-intro-playing .letter-opening::before{animation:letter-decor-out .55s ease 3.42s both}
.letter-intro-playing .letter-opening__grid{animation:letter-grid-in 1.25s ease-out .16s both,letter-decor-out .5s ease 3.4s forwards}
.letter-intro-playing .letter-opening__meta{animation:letter-meta-in .7s var(--letter-ease) .22s both,letter-decor-out .45s ease 3.42s forwards}
.letter-intro-playing .letter-opening__caption{animation:letter-caption-in .55s var(--letter-ease) 2.48s both,letter-decor-out .42s ease 3.5s forwards}
.letter-intro-playing .letter-opening__letter{animation:letter-font-glyph-in 2.25s var(--letter-ease) var(--delay) both}
.letter-intro-playing .letter-opening__letter--d,.letter-intro-playing .letter-opening__letter--2{animation:letter-font-glyph-in 2.25s var(--letter-ease) var(--delay) both,letter-font-signal .72s ease-in-out 2.38s both}
.letter-intro-playing .letter-opening__word{animation:letter-opening-word-settle 1.1s linear 2.96s both}
.letter-motion-hero{min-height:720px;height:100svh}
.letter-hero-lockup{position:absolute;inset:0;z-index:2;display:grid;place-items:center}
.letter-hero-lockup h1,.letter-hero-outline{grid-area:1/1}
.air-clone .letter-hero-lockup h1{width:100%;opacity:0;transform:scaleX(.73) scale(.92)}
.letter-hero-outline{position:relative;color:transparent;opacity:0;-webkit-text-stroke:2px rgba(255,255,255,.96);text-stroke:2px rgba(255,255,255,.96);filter:drop-shadow(0 10px 34px rgba(3,39,85,.1))}
.letter-hero-ready .letter-hero-outline{opacity:0}
.letter-hero-ready #hero .orb{visibility:visible;animation:letter-hero-orb-in .36s var(--letter-ease) both}
.letter-hero-ready .letter-hero-lockup{visibility:visible;animation:letter-hero-environment-in .36s var(--letter-ease) both}
.air-clone.letter-hero-ready:not(.letter-hero-word-active) .letter-hero-lockup h1{opacity:0!important;animation:none!important;transform:scaleX(var(--hero-scale-x));filter:none}
.air-clone.letter-hero-word-active .letter-hero-lockup h1{opacity:1;transform:scaleX(var(--hero-scale-x));filter:none}
.letter-intro-complete .letter-opening__letters,.letter-intro-complete .letter-opening__grid,.letter-intro-complete .letter-opening__meta,.letter-intro-complete .letter-opening__caption,.letter-intro-complete .letter-opening::before{visibility:hidden}
.letter-hero-ready .air-header,.letter-hero-ready .theme-switcher{animation:letter-ui-in .42s var(--letter-ease);pointer-events:auto}
.letter-intro-pending main>section:not(#hero),.letter-intro-pending footer{opacity:0}
.letter-hero-ready main>section:not(#hero),.letter-hero-ready footer{animation:letter-content-in .42s var(--letter-ease) both}
.letter-review{position:fixed;right:16px;bottom:14px;z-index:450;display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.38);border-radius:999px;padding:8px 12px 8px 15px;color:#fff;background:rgba(4,43,98,.34);box-shadow:0 12px 36px rgba(3,35,78,.16);backdrop-filter:blur(16px);font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:10px}
.letter-review button,.letter-review a{border:0;padding:4px 8px;color:inherit;background:transparent;font:inherit;text-decoration:none;cursor:pointer}
.letter-review button,.letter-review a{border-left:1px solid rgba(255,255,255,.28)}
@keyframes letter-grid-in{from{opacity:0;transform:scale(1.035);transform-origin:center}to{opacity:.28;transform:scale(1);transform-origin:center}}
@keyframes letter-meta-in{from{opacity:0;transform:translateY(-16px)}to{opacity:.72;transform:translateY(0)}}
@keyframes letter-caption-in{from{opacity:0;letter-spacing:.34em;transform:translate(-50%,12px)}to{opacity:.75;letter-spacing:.16em;transform:translate(-50%,0)}}
@keyframes letter-font-glyph-in{0%{opacity:.08;transform:translate(var(--from-x),var(--from-y)) rotate(var(--from-r))}62%,82%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(0,0) rotate(0)}}
@keyframes letter-font-signal{0%,100%{-webkit-text-stroke-color:rgba(255,255,255,.96);filter:drop-shadow(0 0 7px rgba(255,255,255,.3))}28%,72%{-webkit-text-stroke-color:var(--letter-accent);filter:drop-shadow(0 0 12px rgba(191,233,255,.8))}}
@keyframes letter-opening-word-settle{0%{opacity:0;filter:blur(5px);transform:scaleX(var(--hero-scale-x)) scale(1)}18%{opacity:1;filter:blur(0);transform:scaleX(var(--hero-scale-x)) scale(1)}28%{opacity:1;filter:blur(0);transform:scaleX(var(--hero-scale-x)) scale(1);animation-timing-function:cubic-bezier(.22,1,.36,1)}62%{opacity:1;filter:blur(0);transform:scaleX(var(--hero-scale-x)) scale(1.105);animation-timing-function:cubic-bezier(.4,0,.2,1)}100%{opacity:1;filter:blur(0);transform:scaleX(var(--hero-scale-x)) scale(1)}}
@keyframes letter-decor-out{to{opacity:0}}
@keyframes letter-path-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes letter-signal-layer{0%,100%{opacity:0}18%,72%{opacity:.95}}
@keyframes letter-signal-run{from{stroke-dashoffset:1}to{stroke-dashoffset:-.55}}
@keyframes letter-hero-line-handoff{0%{opacity:1}54%{opacity:1}100%{opacity:0}}
@keyframes letter-hero-type-in{from{opacity:0;transform:scaleX(var(--hero-scale-x))}to{opacity:1;transform:scaleX(var(--hero-scale-x))}}
@keyframes letter-hero-environment-in{from{opacity:0}to{opacity:1}}
@keyframes letter-hero-orb-in{from{opacity:0}to{opacity:.5}}
@keyframes letter-ui-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes letter-content-in{from{opacity:0}to{opacity:1}}
@media(max-width:768px){.letter-opening__letters,.letter-opening__word,.letter-hero-outline{font-size:clamp(96px,18vw,150px);line-height:.85}}
@media(max-width:700px){.letter-opening__stage{width:100%;left:0}.letter-opening__meta{top:90px;right:16px;left:16px;justify-content:flex-end}.letter-opening__meta span:first-child{display:none}.letter-review span,.letter-review a{display:none}.letter-review{right:12px;bottom:12px}.letter-review button{border-left:0}}
@media(max-width:480px){.letter-opening__font-lockup,.letter-hero-lockup{--hero-scale-x:.72}.letter-opening__letters,.letter-opening__word,.letter-hero-outline{font-size:min(84px,22vw);line-height:.85;transform:scaleX(var(--hero-scale-x))}}
@media(prefers-reduced-motion:reduce){.letter-opening{display:none}.letter-intro-pending{overflow:auto}.letter-intro-pending .air-header,.letter-intro-pending .theme-switcher{opacity:1;pointer-events:auto}.air-clone .letter-hero-lockup h1{opacity:1;transform:scaleX(.77);filter:none}.letter-hero-outline{display:none}}
@media(max-width:480px) and (prefers-reduced-motion:reduce){.air-clone .letter-hero-lockup h1{transform:scaleX(.72)}}
