@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/noto-serif-sc-700-subset.woff2) format("woff2")}:root{--bg: #f7f5ef;--surface: #fffdf8;--fg: #211e17;--muted: #5d574a;--border: #e0dacb;--border-strong: #cfc7b4;--accent: #211e17;--accent-on: #fffdf8;--accent-hover: color-mix(in oklch, var(--accent), var(--bg) 12%);--accent-active: color-mix(in oklch, var(--accent), var(--bg) 20%);--alert: #b3352b;--alert-on: #7c231b;--alert-wash: color-mix(in oklch, var(--alert), transparent 92%);--font-display: "Noto Serif SC", "Source Han Serif SC", "Source Han Serif CN", "Songti SC", SimSun, serif;--font-body: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--fs-h1: clamp(34px, 4vw, 46px);--fs-h2: clamp(26px, 2.8vw, 34px);--fs-h3: 21px;--fs-lead: 17px;--fs-body: 16px;--fs-meta: 12px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 9999px;--elev-raised: 0 18px 40px -24px color-mix(in oklch, var(--fg), transparent 30%);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--alert);--motion-fast: .15s;--motion-base: .2s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--container-max: 1280px;--container-gutter-desktop: 24px;--container-gutter-phone: 16px;--container: var(--container-max);--gutter: var(--container-gutter-desktop);--bp-wide: 1100px;--bp-tablet: 920px;--bp-phone: 640px;--bp-narrow: 560px;--nav-height: 64px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background-color:var(--bg);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,color-mix(in oklch,var(--fg),transparent 97%) 31px,color-mix(in oklch,var(--fg),transparent 97%) 32px);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.75;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;line-height:1.3;text-wrap:balance}p{margin:0;text-wrap:pretty}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}dl,ul,ol{margin:0;padding:0}section[id]{scroll-margin-top:calc(var(--nav-height) + 32px)}:focus-visible{outline:none;box-shadow:var(--focus-ring)}::selection{background:var(--accent);color:var(--accent-on)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.section{padding:clamp(64px,8vw,104px) 0}.section-head{max-width:720px;margin-bottom:clamp(36px,5vw,56px)}.section-head h2{font-size:var(--fs-h2);margin-bottom:12px}.lead{margin:0;font-size:var(--fs-lead);color:var(--muted)}.eyebrow,.section-tag{display:inline-flex;align-items:center;gap:10px;margin:0 0 16px;font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.14em;color:var(--muted)}.eyebrow:before,.section-tag:before{content:"";width:26px;height:1px;background:var(--border-strong)}.topnav{position:fixed;top:16px;left:0;right:0;z-index:50;display:flex;justify-content:center;padding-inline:16px;pointer-events:none}.topnav-inner{pointer-events:auto;width:100%;max-width:calc(var(--container-max) - 48px);height:var(--nav-height);display:flex;align-items:center;gap:20px;padding:0 12px 0 18px;border:1px solid var(--border);border-radius:var(--radius-pill);background:color-mix(in oklch,var(--bg),transparent 8%);box-shadow:0 12px 32px -20px color-mix(in oklch,var(--fg),transparent 20%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background-color var(--motion-base) var(--ease-standard),border-color var(--motion-base) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard)}.topnav.is-scrolled .topnav-inner{background:color-mix(in oklch,var(--surface),transparent 4%);border-color:var(--border-strong);box-shadow:0 16px 36px -20px color-mix(in oklch,var(--fg),transparent 10%)}.brand{display:inline-flex;align-items:center;gap:12px}.brand-seal{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border:2px solid var(--alert);border-radius:7px;box-shadow:inset 0 0 0 1.5px var(--bg),inset 0 0 0 2.5px var(--alert);background:var(--alert-wash);color:var(--alert);font-family:var(--font-display);font-size:11px;font-weight:700;line-height:1.08;letter-spacing:.02em;text-align:center;transform:rotate(-4deg);-webkit-user-select:none;user-select:none}.brand-name{font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:.02em}.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto}.nav-link{padding:8px 12px;border-radius:var(--radius-sm);font-size:14px;color:var(--muted);transition:color var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard)}.nav-link:hover{color:var(--fg);background:color-mix(in oklch,var(--fg),transparent 95%)}.nav-cta{margin-left:6px}.nav-menu{display:none}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:60;background:var(--alert);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:1px solid transparent;border-radius:var(--radius-md);font-size:15px;font-weight:600;line-height:1.4;transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.btn-primary{background:var(--accent);color:var(--accent-on)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-primary:active{background:var(--accent-active);transform:translateY(0)}.btn-ghost{border-color:var(--border-strong);background:var(--surface);color:var(--fg)}.btn-ghost:hover{border-color:var(--fg)}.btn-sm{padding:8px 16px;font-size:14px;border-radius:var(--radius-sm)}.btn-lg{padding:15px 28px;font-size:16px}.pagefoot{padding:36px 0 44px;border-top:1px solid var(--border)}.footer-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px}.footer-brand{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:14px}.footer-brand .logo{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--fg)}.footer-links{display:flex;flex-wrap:wrap;gap:20px}.footer-links a{color:var(--muted);font-size:14px}.footer-links a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:4px}.footer-download{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.footer-download .meta{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.footer-download a{color:var(--muted);font-size:var(--fs-meta)}.footer-download a:hover{color:var(--fg);text-decoration:underline;text-underline-offset:4px}@media(max-width:920px){.nav-links,.nav-cta{display:none}.nav-menu{display:block;margin-left:auto}.nav-menu summary{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);cursor:pointer;list-style:none}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu summary svg{width:20px;height:20px}.nav-menu-panel{position:absolute;top:calc(100% + 12px);left:0;right:0;z-index:40;display:grid;gap:4px;padding:14px 20px 20px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-raised)}.nav-menu-panel>a:not(.btn){padding:10px 8px;border-radius:var(--radius-sm);font-size:15px;color:var(--fg)}.nav-menu-panel>a:not(.btn):hover{background:color-mix(in oklch,var(--fg),transparent 95%)}.nav-menu-panel .btn{justify-self:start;margin-top:6px}}@media(max-width:640px){.container{padding-inline:var(--container-gutter-phone)}}.hero{position:relative;overflow:hidden;padding-top:calc(var(--nav-height) + clamp(48px,7vw,88px));padding-bottom:clamp(48px,6vw,72px)}.hero-split{display:grid;grid-template-columns:minmax(0,10fr) minmax(0,11fr);gap:clamp(32px,5vw,72px);align-items:center}.hero h1{font-size:var(--fs-h1);margin-bottom:16px}.hero .lead{max-width:34em}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-meta{margin-top:20px;font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}@media(max-width:920px){.hero-split{grid-template-columns:1fr;gap:40px}}.mock-stage{perspective:1200px}.mock-stage .tilt{transform:rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transform-style:preserve-3d;transition:transform var(--motion-base) var(--ease-standard)}.mock-window{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-raised);overflow:hidden}.mock-window:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(160px circle at var(--mx, 50%) var(--my, 50%),color-mix(in oklch,var(--fg) 5%,transparent),transparent 70%);opacity:0;transition:opacity var(--motion-fast) var(--ease-standard);pointer-events:none}.mock-window:hover:after{opacity:1}.mock-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.mock-dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--border);flex:0 0 auto}.mock-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--fg)}.mock-pill{margin-left:auto;flex:none;font-family:var(--font-mono);font-size:11px;line-height:1.4;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);padding:1px 10px}.mock-body-col{display:grid;gap:10px;padding:14px 16px 16px}.mock-body-col dl{display:grid;gap:10px}.mock-foot{padding:10px 16px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:11px;color:var(--muted)}.mock-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 16px;font-size:13px}.mock-row+.mock-row{border-top:1px solid var(--border)}.mock-row-head{padding-block:9px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--muted)}.mock-row.is-today{background:var(--alert-wash)}.mock-date{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.mock-item{min-width:0;overflow-wrap:anywhere;color:var(--fg)}.mock-state{justify-self:end;font-family:var(--font-mono);font-size:11px;line-height:1;padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--muted);white-space:nowrap}.mock-state.is-alert{color:var(--alert-on);border-color:color-mix(in oklch,var(--alert),transparent 55%);background:var(--alert-wash)}.mock-state.is-today{color:var(--surface);background:var(--alert);border-color:var(--alert)}.kv{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-family:var(--font-mono);color:var(--fg)}.mock-progress{height:6px;border-radius:var(--radius-pill);background:var(--border);overflow:hidden}.mock-progress>span{display:block;height:100%;border-radius:inherit;background:var(--alert)}.mock-note{font-size:12px;line-height:1.7;color:var(--muted)}.tree-row{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:13px;border-top:1px solid var(--border)}.tree-row:first-child{border-top:0}.tree-mark{flex:none;font-family:var(--font-mono);font-size:12px;color:var(--border-strong)}.tree-main{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;color:var(--fg)}.tree-tag{flex:none;font-family:var(--font-mono);font-size:11px;color:var(--muted)}.diag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.diag-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 20px}.diag-q{margin-bottom:8px;font-weight:600;font-size:15px;color:var(--fg)}.diag-a{font-size:14px;line-height:1.8;color:var(--muted)}.diag-result{margin-top:16px;padding:20px 24px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);font-size:16px}.diag-result b{font-weight:700}@media(max-width:1100px){.diag-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.diag-grid{grid-template-columns:1fr}}.journey-list{list-style:none}.chapter{display:grid;grid-template-columns:minmax(0,10fr) minmax(0,11fr);gap:clamp(28px,4vw,64px);align-items:center;padding:clamp(40px,5vw,64px) 0}.chapter+.chapter{border-top:1px solid var(--border)}.chapter.flip .chapter-copy{order:2}.chapter-num{margin-bottom:12px;font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:.14em;color:var(--muted)}.chapter-copy h3{font-size:var(--fs-h3);margin-bottom:12px}.chapter-copy>p:not(.chapter-num){font-size:15px;line-height:1.85;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;list-style:none}.chip{font-family:var(--font-mono);font-size:12px;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);padding:3px 10px}.chapter-stage{min-width:0}@media(max-width:920px){.chapter{grid-template-columns:1fr;gap:28px}.chapter.flip .chapter-copy{order:0}}.sov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.sov-item{padding-top:16px;border-top:1px solid var(--border)}.sov-item b{display:block;margin-bottom:6px;font-family:var(--font-display);font-size:17px;color:var(--fg)}.sov-item p{font-size:14px;line-height:1.8;color:var(--muted)}.sov-demo{margin-top:clamp(36px,5vw,56px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4vw,56px);align-items:center}.sov-note{font-size:15px;line-height:1.85;color:var(--muted)}.sov-note b{color:var(--fg)}@media(max-width:1100px){.sov-grid{grid-template-columns:repeat(2,1fr);gap:20px 32px}}@media(max-width:640px){.sov-grid{grid-template-columns:1fr}}.ai-mock{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-raised);overflow:hidden;color:var(--fg)}.ai-dialog-body{padding:18px 20px 14px;font-size:14px;line-height:1.85}.ai-dialog-body b{font-family:var(--font-mono);font-weight:600}.ai-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 20px 18px}.ai-actions .btn-primary{background:var(--alert);border-color:var(--alert);color:var(--surface)}.ai-actions .btn-primary:hover{background:var(--alert-on);border-color:var(--alert-on)}.spec-list{max-width:880px}.spec-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:20px;padding:16px 0;border-top:1px solid var(--border)}.spec-row dt{font-weight:600;font-size:15px}.spec-row dd{margin:0;font-size:15px;line-height:1.8;color:var(--muted)}@media(max-width:640px){.spec-row{grid-template-columns:1fr;gap:4px}}@media(max-width:560px){.mock-row{grid-template-columns:48px minmax(0,1fr) auto;gap:8px;padding:10px 12px;font-size:12px}.mock-date{font-size:11px}.mock-bar,.mock-body-col,.tree-row,.mock-foot{padding-left:12px;padding-right:12px}}.faq-inner{max-width:720px}.faq-list{margin-top:40px}.faq-item{border-bottom:1px solid var(--border)}.faq-item:first-child{border-top:1px solid var(--border)}.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;font-size:16px;font-weight:500;color:var(--fg);transition:color var(--motion-fast) var(--ease-standard)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";flex:none;font-family:var(--font-mono);font-size:16px;font-weight:400;line-height:1;color:var(--alert);transition:transform var(--motion-fast) var(--ease-standard)}.faq-item summary:hover{color:var(--alert-on)}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-answer{overflow:hidden}.faq-answer p{margin:0 0 24px;font-size:15px;line-height:1.8;color:var(--muted);max-width:60ch}.cta{padding:clamp(72px,10vw,120px) 0}.cta-inner{text-align:center}.cta-panel{max-width:680px;margin-inline:auto}.cta-panel h2{font-size:clamp(30px,4vw,42px);margin-bottom:14px}.cta-panel .lead{max-width:32em;margin-inline:auto}.cta-panel .btn-primary{min-height:58px;padding:0 44px;font-size:17px}.magnetic{display:inline-flex;padding:24px;margin:16px -24px -24px}.cta-meta{margin:12px 0 0;font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-blur-in{0%{opacity:0;transform:translateY(16px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.55}}.js .reveal{opacity:0}.js .reveal.is-in{animation:fade-up .4s var(--ease-standard) both}.js .diag-grid>*,.js .sov-grid>*{opacity:0}.js .diag-grid.is-in>*,.js .sov-grid.is-in>*{animation:rise-in .28s var(--ease-standard) both}.js .diag-grid.is-in>*:nth-child(1){animation-delay:0ms}.js .diag-grid.is-in>*:nth-child(2){animation-delay:40ms}.js .diag-grid.is-in>*:nth-child(3){animation-delay:80ms}.js .diag-grid.is-in>*:nth-child(4){animation-delay:.12s}.js .diag-grid.is-in>*:nth-child(5){animation-delay:.16s}.js .diag-grid.is-in>*:nth-child(6){animation-delay:.2s}.js .sov-grid.is-in>*:nth-child(1){animation-delay:0ms}.js .sov-grid.is-in>*:nth-child(2){animation-delay:40ms}.js .sov-grid.is-in>*:nth-child(3){animation-delay:80ms}.js .sov-grid.is-in>*:nth-child(4){animation-delay:.12s}.js [data-od-id=hero] .hero-copy>*{opacity:0}.js [data-od-id=hero] .hero-copy.is-in>*{animation:rise-blur-in .2s var(--ease-standard) both}.js [data-od-id=hero] .hero-copy.is-in>*:nth-child(1){animation-delay:40ms}.js [data-od-id=hero] .hero-copy.is-in>*:nth-child(2){animation-delay:80ms}.js [data-od-id=hero] .hero-copy.is-in>*:nth-child(3){animation-delay:.12s}.js [data-od-id=hero] .hero-copy.is-in>*:nth-child(4){animation-delay:.16s}.js [data-od-id=hero] .hero-copy.is-in>*:nth-child(5){animation-delay:.2s}.js [data-od-id=hero] .mock-stage{opacity:0}.js [data-od-id=hero] .mock-stage.is-in{animation:rise-blur-in .24s var(--ease-standard) both;animation-delay:.18s}.js [data-od-id=hero] .mock-window .mock-row:not(.mock-row-head){opacity:0}.js [data-od-id=hero] .mock-window .mock-row:not(.mock-row-head):nth-child(2){animation:fade-in .16s var(--ease-standard) both;animation-delay:.32s}.js [data-od-id=hero] .mock-window .mock-row:not(.mock-row-head):nth-child(3){animation:fade-in .16s var(--ease-standard) both;animation-delay:.36s}.js [data-od-id=hero] .mock-window .mock-row:not(.mock-row-head):nth-child(4){animation:fade-in .16s var(--ease-standard) both;animation-delay:.4s}.js [data-od-id=hero] .mock-window .mock-row:not(.mock-row-head):nth-child(5){animation:fade-in .16s var(--ease-standard) both;animation-delay:.44s}.js .mock-state.is-today{animation:breathe 2.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.nav-link,.topnav-inner,.mock-stage .tilt,.mock-window,.mock-window:after,.faq-item summary,.faq-item summary:after{transition:none}.btn:hover{transform:none}.js .reveal,.js .reveal.is-in,.js .diag-grid>*,.js .diag-grid.is-in>*,.js .sov-grid>*,.js .sov-grid.is-in>*,.js [data-od-id=hero] .hero-copy>*,.js [data-od-id=hero] .mock-stage,.js [data-od-id=hero] .mock-window .mock-row:not(.mock-row-head),.js .mock-state.is-today{animation:none!important;opacity:1!important}}
