.contact-dock[data-v-ff0a1c75]{position:fixed;z-index:60;right:24px;bottom:24px;display:flex;flex-direction:column;align-items:flex-end;gap:14px;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.8,.2,1)}.contact-dock.is-visible[data-v-ff0a1c75]{opacity:1;pointer-events:auto;transform:none}.dock-toggle[data-v-ff0a1c75]{position:relative;height:52px;padding:0 20px 0 17px;display:inline-flex;align-items:center;gap:9px;border:0;border-radius:12px;color:var(--ink);background:var(--accent);box-shadow:0 12px 30px #00000073;font-size:14px;font-weight:700;cursor:pointer;transition:transform .25s,background .25s}.dock-toggle[data-v-ff0a1c75]:hover{transform:translateY(-2px);background:var(--text)}.dock-ring[data-v-ff0a1c75]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:2px solid var(--accent);animation:dock-ping-ff0a1c75 2.4s cubic-bezier(0,0,.2,1) infinite;pointer-events:none}.is-open .dock-ring[data-v-ff0a1c75]{display:none}@keyframes dock-ping-ff0a1c75{0%{transform:scale(1);opacity:.8}80%,to{transform:scale(1.35,1.6);opacity:0}}.dock-panel[data-v-ff0a1c75]{width:min(330px,calc(100vw - 48px));padding:18px;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);box-shadow:0 24px 70px #0009;transform-origin:bottom right}.dock-panel-enter-active[data-v-ff0a1c75],.dock-panel-leave-active[data-v-ff0a1c75]{transition:opacity .25s ease,transform .3s cubic-bezier(.2,.8,.2,1)}.dock-panel-enter-from[data-v-ff0a1c75],.dock-panel-leave-to[data-v-ff0a1c75]{opacity:0;transform:translateY(12px) scale(.94)}.dock-head[data-v-ff0a1c75]{display:grid;gap:6px;margin-bottom:14px}.dock-head strong[data-v-ff0a1c75]{font-size:16px}.dock-status[data-v-ff0a1c75]{display:inline-flex;align-items:center;gap:7px;color:var(--ok);font:500 12px var(--font-mono)}.dock-status i[data-v-ff0a1c75]{width:7px;height:7px;border-radius:50%;background:var(--ok)}.dock-item[data-v-ff0a1c75]{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:12px;margin-top:8px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.dock-label[data-v-ff0a1c75]{color:var(--muted);font-size:12px}.dock-item strong[data-v-ff0a1c75]{font:700 16px var(--font-display);letter-spacing:.02em;overflow-wrap:anywhere}.dock-actions[data-v-ff0a1c75]{display:flex;gap:6px}.dock-actions button[data-v-ff0a1c75],.dock-actions a[data-v-ff0a1c75]{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:8px;color:var(--text);background:transparent;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.dock-actions button[data-v-ff0a1c75]:hover,.dock-actions a[data-v-ff0a1c75]:hover{color:var(--ink);border-color:var(--accent);background:var(--accent)}.dock-hint[data-v-ff0a1c75]{min-height:18px;margin:12px 2px 0;color:var(--muted);font-size:12px;line-height:1.6}@media(max-width:760px){.contact-dock[data-v-ff0a1c75]{right:16px;bottom:16px}.dock-toggle[data-v-ff0a1c75]{height:50px;padding:0 16px 0 14px}}.cursor[data-v-37bc1f4a]{position:fixed;z-index:90;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .3s;will-change:transform}.cursor.is-visible[data-v-37bc1f4a]{opacity:1}.cursor-ring[data-v-37bc1f4a]{position:absolute;top:-38px;left:-38px;width:76px;height:76px;border:2px solid rgba(239,233,222,.5);border-radius:50%;transform:scale(.46);transition:transform .4s cubic-bezier(.2,.8,.2,1),background-color .3s,border-color .3s}.is-hover .cursor-ring[data-v-37bc1f4a]{border-color:var(--accent);transform:scale(.3)}.is-label .cursor-ring[data-v-37bc1f4a]{border-color:var(--accent);background:var(--accent);transform:scale(1)}.is-pressed .cursor-ring[data-v-37bc1f4a]{transform:scale(.24)}.is-pressed.is-label .cursor-ring[data-v-37bc1f4a]{transform:scale(.88)}.cursor-label[data-v-37bc1f4a]{position:absolute;top:0;left:0;color:var(--ink);font-size:12px;font-weight:700;white-space:nowrap;opacity:0;transform:translate(-50%,-50%) scale(.6);transition:opacity .25s,transform .4s cubic-bezier(.2,.8,.2,1)}.is-label .cursor-label[data-v-37bc1f4a]{opacity:1;transform:translate(-50%,-50%)}.intro[data-v-36adf0f0]{position:fixed;z-index:200;top:0;right:0;bottom:0;left:0}.intro.is-leaving[data-v-36adf0f0]{pointer-events:none}.intro-panel[data-v-36adf0f0]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--bg);transition:transform 1.05s cubic-bezier(.76,0,.24,1)}.intro-panel[data-v-36adf0f0]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent)}.is-leaving .intro-panel[data-v-36adf0f0]{transform:translateY(-100%)}.intro-inner[data-v-36adf0f0]{position:absolute;top:0;right:0;bottom:0;left:0;width:min(calc(100% - 96px),1320px);margin:auto;padding:30px 0;display:flex;flex-direction:column;justify-content:space-between;transition:transform 1.05s cubic-bezier(.76,0,.24,1),opacity .7s}.is-leaving .intro-inner[data-v-36adf0f0]{opacity:0;transform:translateY(35%)}.intro-row[data-v-36adf0f0]{display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted);font:500 12px var(--font-mono);letter-spacing:.1em}.intro-word[data-v-36adf0f0]{display:flex;overflow:hidden;padding-bottom:.04em;color:var(--text);font:800 clamp(72px,15vw,230px)/.9 var(--font-display);letter-spacing:-.05em}.intro-word span[data-v-36adf0f0]{display:inline-block;animation:intro-letter-36adf0f0 1s calc(var(--i) * 55ms) both cubic-bezier(.2,.9,.2,1)}.intro-word span[data-v-36adf0f0]:last-child{color:var(--accent)}@keyframes intro-letter-36adf0f0{0%{transform:translateY(105%)}}.intro-count[data-v-36adf0f0]{min-width:3.2ch;color:var(--text);font-size:14px}.intro-line[data-v-36adf0f0]{flex:1;height:1px;overflow:hidden;background:var(--line-strong)}.intro-line i[data-v-36adf0f0]{display:block;height:100%;background:var(--accent);transform-origin:left}@media(max-width:760px){.intro-inner[data-v-36adf0f0]{width:calc(100% - 40px);padding:22px 0}.intro-row[data-v-36adf0f0]{font-size:10px;gap:14px}}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/manrope-latin-300-normal-BgxWhS7-.woff2) format("woff2"),url(/assets/manrope-latin-300-normal-BXCth4v8.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2) format("woff2"),url(/assets/manrope-latin-400-normal-8tf8FM3T.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2) format("woff2"),url(/assets/manrope-latin-500-normal-DMZssgOp.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2) format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-latin-700-normal-BZp_XxE4.woff2) format("woff2"),url(/assets/manrope-latin-700-normal-DGRFkw-m.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/manrope-latin-800-normal-BfWYOv1c.woff2) format("woff2"),url(/assets/manrope-latin-800-normal-uHUdIJgA.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2) format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff) format("woff")}:root{--bg: #0d0c0a;--bg-elevated: #141310;--surface: #181714;--surface-2: #211f1b;--text: #efe9de;--muted: #9b9488;--line: rgba(239, 233, 222, .1);--line-strong: rgba(239, 233, 222, .2);--accent: #ff5f1f;--accent-2: #ffa071;--ink: #140b06;--ok: #7fd494;--header-h: 76px;--ease-out: cubic-bezier(.19, 1, .22, 1);--font-cjk: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-sans: "Manrope", var(--font-cjk);--font-display: "Manrope", var(--font-cjk);--font-mono: "DM Mono", var(--font-cjk);font-family:var(--font-sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);scrollbar-gutter:stable}body{min-width:320px;margin:0;background:var(--bg)}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}::selection{color:var(--ink);background:var(--accent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{border:2px solid var(--bg);border-radius:10px;background:#3b3832}::-webkit-scrollbar-thumb:hover{background:var(--accent)}html.is-intro{overflow:hidden}.is-intro .hero,.is-intro .hero *,.is-intro .site-header{animation-play-state:paused!important}.is-offscreen,.is-offscreen *,.is-offscreen *:before,.is-offscreen *:after{animation-play-state:paused!important}.has-cursor [data-cursor],.has-cursor [data-cursor] *{cursor:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.site-shell{position:relative;overflow:clip}main{position:relative;z-index:2}.section-wrap{width:min(calc(100% - 96px),1320px);margin-inline:auto}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font:500 12px/1.5 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.eyebrow:before{content:"";width:7px;height:7px;background:var(--accent)}.text-accent{color:var(--accent)}.theme-orange{--accent: #ff5f1f;--accent-2: #ffa071}.theme-lime{--accent: #cdf04a;--accent-2: #e4f5a0}.theme-blue{--accent: #7b93ff;--accent-2: #b9c6ff}.theme-sand{--accent: #e3c79a;--accent-2: #f2e3c8}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:48px}.section-heading h2{max-width:760px;margin:16px 0 0;font-size:clamp(34px,4.4vw,58px);line-height:1.16;letter-spacing:-.025em}.section-heading p{max-width:380px;margin:0 0 6px;color:var(--muted);font-size:14px;line-height:1.9}.split.reveal{opacity:1;transform:none}.split .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.split .ln>span{display:inline-block;transform:translateY(110%);transition:transform 1.15s var(--ease-out);transition-delay:calc(var(--reveal-delay, 0ms) + var(--ln, 0) * .11s)}.split.is-visible .ln>span{transform:none}.button{position:relative;min-height:52px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:12px;overflow:hidden;border:1px solid transparent;border-radius:10px;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer;isolation:isolate;transition:transform .3s cubic-bezier(.2,.8,.2,1),background .25s,border-color .25s,color .25s}.button svg{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.button:hover svg:last-child{transform:translate(3px)}.button:not(.is-magnetic):hover{transform:translateY(-2px)}.button.is-magnetic{transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,border-color .25s,color .25s}.button-primary{color:var(--ink);background:var(--accent)}.button-primary:before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:var(--text);transform:translateY(101%);transition:transform .45s var(--ease-out)}.button-primary:hover:before{transform:none}.button-ghost{color:var(--text);border-color:var(--line-strong);background:transparent}.button-ghost:hover{border-color:var(--text);background:#efe9de0f}.chip-button{min-height:38px;padding:0 14px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);border-radius:8px;color:var(--text);background:transparent;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}.chip-button:hover{transform:translateY(-2px);border-color:var(--text)}.chip-primary{border-color:var(--accent);color:var(--ink);background:var(--accent)}.chip-primary:hover{border-color:var(--text);background:var(--text)}.spotlight-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--line);background:var(--surface);box-shadow:inset 0 1px #efe9de0d;transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .3s}.spotlight-card:before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;opacity:0;background:radial-gradient(380px circle at var(--mx, 50%) var(--my, 50%),rgba(239,233,222,.07),transparent 60%);transition:opacity .4s}.spotlight-card:hover{transform:translateY(-4px);border-color:var(--line-strong)}.spotlight-card:hover:before{opacity:1}.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--reveal-delay, 0ms),transform .9s cubic-bezier(.2,.8,.2,1) var(--reveal-delay, 0ms)}.reveal.is-visible{opacity:1;transform:none}.spotlight-card.reveal.is-visible:hover{transform:translateY(-4px)}.reveal.is-visible.spotlight-card{transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--reveal-delay, 0ms),transform .4s cubic-bezier(.2,.8,.2,1),border-color .3s}.page-enter-active{transition:opacity .5s ease .05s}.page-leave-active{transition:opacity .35s ease}.page-enter-from,.page-leave-to{opacity:0}.route-curtain{position:fixed;z-index:85;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;visibility:hidden;border-block:3px solid var(--accent);background:var(--bg-elevated);transform:translateY(100%)}.route-curtain.is-active{visibility:visible;animation:curtain .9s cubic-bezier(.76,0,.24,1) both}@keyframes curtain{0%{transform:translateY(100%)}45%,55%{transform:translateY(0)}to{transform:translateY(-100%)}}.curtain-brand{font:800 clamp(28px,4vw,44px)/1 var(--font-display);letter-spacing:-.02em;opacity:0}.curtain-brand i{color:var(--accent);font-style:normal}.route-curtain.is-active .curtain-brand{animation:curtain-brand .9s both}@keyframes curtain-brand{0%,32%{opacity:0;transform:translateY(20px)}46%,56%{opacity:1;transform:none}70%,to{opacity:0;transform:translateY(-20px)}}.scroll-progress{position:fixed;z-index:80;top:0;left:0;width:100%;height:2px;pointer-events:none;background:var(--accent);transform:scaleX(var(--progress, 0));transform-origin:left}.site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:var(--header-h);border-bottom:1px solid transparent;animation:header-in .9s .15s backwards var(--ease-out);transition:transform .5s var(--ease-out),background .35s,border-color .35s,height .35s}.site-header.is-scrolled,.site-header.is-menu-open{height:64px;border-color:var(--line);background:#0d0c0af0}.site-header.is-hidden{transform:translateY(-100%)}@keyframes header-in{0%{opacity:0;transform:translateY(-100%)}}.site-header-inner{width:min(calc(100% - 96px),1320px);height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:12px;font:800 18px/1 var(--font-display);letter-spacing:.02em}.brand-dot{color:var(--accent)}.brand-mark{position:relative;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--accent);transition:transform .5s cubic-bezier(.2,.8,.2,1)}.brand-mark span{width:11px;height:11px;border:2.5px solid var(--ink);border-radius:2px;transform:rotate(45deg)}.brand:hover .brand-mark{transform:rotate(90deg)}.main-nav{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}.main-nav>a:not(.nav-contact){position:relative;padding:10px 16px;color:var(--muted);transition:color .2s}.main-nav>a:not(.nav-contact):after{content:"";position:absolute;left:16px;right:16px;bottom:4px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.main-nav>a:not(.nav-contact):hover{color:var(--text)}.main-nav>a:not(.nav-contact):hover:after{transform:scaleX(1)}.nav-num{margin-right:6px;color:var(--accent);font:500 10px var(--font-mono);vertical-align:2px}.nav-contact{min-height:40px;margin-left:10px;padding:0 16px;display:inline-flex;align-items:center;gap:9px;border-radius:8px;color:var(--ink);background:var(--text);transition:background .25s,transform .25s}.nav-contact:hover{transform:translateY(-2px);background:var(--accent)}.nav-contact-dot{width:7px;height:7px;border-radius:50%;background:#2fa84f}.menu-toggle{display:none;width:42px;height:42px;place-items:center;border:1px solid var(--line-strong);border-radius:10px;color:var(--text);background:transparent;cursor:pointer}.site-footer{position:relative;z-index:2;overflow:hidden;padding-top:80px;border-top:1px solid var(--line);background:var(--bg)}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.footer-about p{max-width:340px;margin:18px 0 0;color:var(--muted);font-size:13px;line-height:1.9}.footer-column{display:grid;align-content:start;gap:12px;color:var(--muted);font-size:13px}.footer-column a{width:fit-content;transition:color .2s,transform .2s}.footer-column a:hover{color:var(--accent);transform:translate(3px)}.footer-title{margin-bottom:6px;color:var(--text);font:600 12px var(--font-mono);letter-spacing:.12em}.footer-wordmark{position:relative;margin-top:60px;text-align:center;font:800 clamp(80px,19vw,290px)/.8 var(--font-display);letter-spacing:-.05em;-webkit-user-select:none;user-select:none}.wm-outline{display:block;color:transparent;-webkit-text-stroke:1px rgba(239,233,222,.16);transition:-webkit-text-stroke-color .5s}.footer-wordmark:hover .wm-outline{-webkit-text-stroke-color:rgba(239,233,222,.28)}.wm-fill{position:absolute;top:0;right:0;bottom:0;left:0;display:block;color:var(--accent);opacity:0;-webkit-mask-image:radial-gradient(circle 190px at var(--mx, 50%) var(--my, 50%),#000 15%,transparent 72%);mask-image:radial-gradient(circle 190px at var(--mx, 50%) var(--my, 50%),#000 15%,transparent 72%);transition:opacity .45s}.footer-wordmark:hover .wm-fill{opacity:1}.footer-meta{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:22px 0 28px;border-top:1px solid var(--line);color:var(--muted);font:500 11px var(--font-mono)}.footer-meta>span:last-child{justify-self:end}.back-top{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;color:var(--text);background:transparent;font:500 11px var(--font-mono);cursor:pointer;transition:border-color .25s,color .25s}.back-top svg{transition:transform .3s var(--ease-out)}.back-top:hover{border-color:var(--accent);color:var(--accent)}.back-top:hover svg{transform:translateY(-3px)}@media(max-width:1100px){.footer-grid{grid-template-columns:1fr 1fr 1fr}.footer-about{grid-column:1 / -1}}@media(max-width:760px){:root{--header-h: 64px}.section-wrap,.site-header-inner{width:calc(100% - 40px)}.section-heading{display:block;margin-bottom:30px}.section-heading p{margin-top:14px}.menu-toggle{display:grid}.main-nav{position:absolute;top:64px;left:0;right:0;display:none;padding:12px 20px 22px;flex-direction:column;align-items:stretch;gap:4px;border-bottom:1px solid var(--line);background:var(--bg);box-shadow:0 30px 60px #0009}.main-nav.is-open{display:flex;animation:menu-in .3s cubic-bezier(.2,.8,.2,1)}.main-nav>a:not(.nav-contact){min-height:48px;display:flex;align-items:center;border-bottom:1px solid var(--line);color:var(--text)}.main-nav>a:not(.nav-contact):after{display:none}.nav-contact{justify-content:center;min-height:48px;margin:12px 0 0}.button{min-height:50px;padding:0 20px}.footer-grid{grid-template-columns:1fr 1fr;gap:32px 20px}.footer-column:last-child{grid-column:1 / -1}.footer-meta{grid-template-columns:1fr;justify-items:start;gap:12px;padding-bottom:90px}.footer-meta>span:last-child{justify-self:start}}@keyframes menu-in{0%{opacity:0;transform:translateY(-10px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.split .ln>span{transform:none}}
