
html{scroll-behavior:smooth}
body{margin:0;background:#08090b;color:#f3f4f6;font-family:"Instrument Sans","Noto Sans SC",system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-wrap:pretty}
*{box-sizing:border-box}
a{color:#f3f4f6;text-decoration:none}
a:hover{color:#8ab4f8}
.tzh{display:none}
[data-lang="zh"] .ten{display:none}
[data-lang="zh"] .tzh{display:revert}
[data-lang="zh"] .zhfont{font-family:"Noto Sans SC","Instrument Sans",sans-serif}
@keyframes ffpulse{0%,100%{opacity:.25;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}
@keyframes fftravel{0%{transform:translateX(-30%)}100%{transform:translateX(430%)}}
@keyframes ffdrift{0%{transform:translateY(0)}50%{transform:translateY(-10px)}100%{transform:translateY(0)}}
@keyframes ffnudge{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:1}}
::selection{background:rgba(122,162,247,.3)}
.ff-logo{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(122,162,247,.35))}
.ff-step-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media (max-width: 900px){.ff-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width: 640px){
  .ff-step-grid{grid-template-columns:1fr!important}
  header nav{display:none!important}
  header>div{padding:0 18px!important;gap:12px!important}
  header>div>a:last-child{padding:0 10px!important}
  section{padding-left:20px!important;padding-right:20px!important}
  #top>div:last-child{left:20px!important;right:20px!important}
}

.hover-1:hover{color:#f3f4f6}
.hover-2:hover{color:#f3f4f6}
.hover-3:hover{color:#f3f4f6}
.hover-4:hover{color:#f3f4f6}
.hover-5:hover{color:#f3f4f6}
.hover-6:hover{border-color:rgba(255,255,255,.22);color:#f3f4f6}
.hover-7:hover{background:rgba(255,255,255,.06)}
.hover-8:hover{background:rgba(255,255,255,.06)}
.hover-9:hover{background:#fff;color:#08090b}
.hover-10:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(243,244,246,.16)}
.hover-11:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.04);color:#fff}
.hover-12:hover{background:#0d0f13}
.hover-13:hover{background:#0d0f13}
.hover-14:hover{background:#0d0f13}
.hover-15:hover{background:#0d0f13}
.hover-16:hover{background:#0d0f13}
.hover-17:hover{background:#0d0f13}
.hover-18:hover{transform:translateY(-1px)}
.hover-19:hover{background:#0d0f13}
.hover-20:hover{background:#0d0f13}
.hover-21:hover{background:#0d0f13}
.hover-22:hover{border-color:rgba(255,255,255,.2);transform:translateY(-3px)}
.hover-23:hover{border-color:rgba(255,255,255,.2);transform:translateY(-3px)}
.hover-24:hover{border-color:rgba(255,255,255,.2);transform:translateY(-3px)}
.hover-25:hover{transform:translateY(-1px)}
.hover-26:hover{border-color:rgba(255,255,255,.3);color:#fff}
.hover-27:hover{color:#f3f4f6}
.hover-28:hover{color:#f3f4f6}
.hover-29:hover{color:#f3f4f6}
.hover-30:hover{color:#f3f4f6}
#language-options{position:absolute;top:40px;right:0;min-width:150px;padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(14,16,20,.96);backdrop-filter:blur(12px);box-shadow:0 20px 50px -20px rgba(0,0,0,.9);z-index:5}
#language-options[hidden]{display:none}
.reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal-ready.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal-ready{opacity:1;transform:none;transition:none}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
/* Layout and interaction refinements for the standalone page. */
section{scroll-margin-top:64px}
:focus-visible{outline:2px solid #b0c9ff;outline-offset:5px}
[hidden]{display:none!important}
img,svg{max-width:100%}
header>div{gap:24px!important}
header nav{white-space:nowrap;gap:24px!important}
#language-toggle{margin-left:auto}
.nav-toggle{display:none;cursor:pointer;border:1px solid #ffffff24;border-radius:8px;background:#0e1014;color:#e7e9ec;padding:7px 10px;font:500 12px 'IBM Plex Mono',monospace}
.canvas-layout{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:64px!important}
.canvas-layout>div,.three-grid>div{min-width:0}
.three-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.source-link{font-size:13px;color:#8f96a0;line-height:1.7;margin:24px 0 0}
.source-link a{color:#adc7ff;border-bottom:1px solid #7aa2f740}
.muted-note{font-size:13px;line-height:1.8;color:#7c8490;margin:16px 0 0}
.provenance-chain{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.provenance-chain span{padding:9px 11px;border:1px solid #ffffff19;border-radius:7px;font:500 11px 'IBM Plex Mono',monospace}
.provenance-chain b{color:#515965;font-weight:400}
.canvas-preview{border:1px solid #ffffff19;border-radius:14px;overflow:hidden;background:#0a0c10;box-shadow:0 30px 80px -40px #000}
.preview-bar,.preview-foot{padding:15px 18px;font:500 10px 'IBM Plex Mono',monospace;color:#8e96a3;letter-spacing:.07em}
.preview-bar{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff12;gap:12px}
.preview-bar span{color:#b487f0}
.circuit-diagram{padding:40px 24px 30px;background-image:radial-gradient(#ffffff15 1px,transparent 1px);background-size:18px 18px;text-align:center}
.diagram-label{font:10px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:#747e8b}
.diagram-nodes{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin:55px 0 40px}
.diagram-nodes span{padding:13px 10px;border:1px solid #7aa2f750;border-radius:8px;background:#111a2b;font:9px 'IBM Plex Mono',monospace;color:#aec5f8;box-shadow:0 0 24px #7aa2f708}
.diagram-nodes span:nth-of-type(2){background:#1c132b;border-color:#b487f040;color:#c6a2f4}
.diagram-nodes b{color:#50596b;font-size:12px}
.circuit-diagram p{font-size:13px;color:#a7aeb8}
.signal-lines{display:flex;gap:10px;align-items:center;justify-content:center;height:36px}
.signal-lines i{width:3px;height:8px;border-radius:2px;background:#7aa2f7;animation:signal-height 2.8s ease-in-out infinite}
.signal-lines i:nth-child(2n){height:28px;animation-delay:.3s}.signal-lines i:nth-child(3n){height:16px;animation-delay:.6s}
@keyframes signal-height{50%{transform:scaleY(.4);opacity:.4}}
.preview-foot{border-top:1px solid #ffffff12;color:#797f8b}
.task-visual{position:relative;background:radial-gradient(ellipse at 50% 55%,#17223370,transparent 65%),#0b0d11;border-bottom:1px solid #ffffff0d;aspect-ratio:16/10}
.task-visual svg{width:100%;height:100%}.task-code{position:absolute;left:24px;top:20px;font:10px 'IBM Plex Mono',monospace;color:#5f6b80;letter-spacing:.12em}
.orbit{fill:none;stroke:#7aa2f740;stroke-width:1}.tick{fill:none;stroke:#657b9c;stroke-width:1}.signal{fill:none;stroke:#96b9fd;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.node{fill:#b9d0ff}
.heading-needle{transform-origin:180px 108px;animation:heading 8s ease-in-out infinite}.sugar-wave{stroke-dasharray:9 3;animation:sugar 4s linear infinite}.looming-disc{fill:#9d8abb22;stroke:#bd9ce370;animation:loom 5s ease-in-out infinite;transform-origin:87px 104px}.escape-trace{animation:escape 5s ease-in-out infinite}
@keyframes heading{50%{transform:rotate(100deg)}}@keyframes sugar{to{stroke-dashoffset:-48}}@keyframes loom{50%{transform:scale(1.25)}}@keyframes escape{50%{transform:translateX(12px)}}
.asset-flow{font:11px/1.8 'IBM Plex Mono',monospace;color:#b99565;letter-spacing:.02em;margin-bottom:36px}
.economy-row{flex-wrap:wrap}.economy-row span:last-child{text-align:right;margin-left:auto;font-size:11px}.economy-row span{overflow-wrap:anywhere}
.roadmap{margin-top:72px;padding-top:32px;border-top:1px solid #ffffff14}.eyebrow{font:500 11px/1.6 'IBM Plex Mono',monospace;letter-spacing:.1em;color:#7aa2f7;text-transform:uppercase}.roadmap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:30px}.roadmap-grid span:not(.ten):not(.tzh){font:10px 'IBM Plex Mono',monospace;color:#626d80}.roadmap-grid h3{font-size:14px;font-weight:500;color:#b8bec8;line-height:1.7;margin:9px 0 0}
#launch{max-width:460px;width:calc(100% - 40px);border:1px solid #ffffff24;background:#0d1016;color:#f3f4f6;padding:36px;border-radius:16px;box-shadow:0 20px 90px #0008}#launch::backdrop{background:#000b;backdrop-filter:blur(8px)}#launch h2{font-size:26px;font-weight:600;letter-spacing:-.02em}#launch>p:not(.eyebrow){font-size:14px;color:#9aa4b2;line-height:1.8}.dialog-close{position:absolute;top:12px;right:16px;background:none;border:0;color:#a0abba;font-size:24px;cursor:pointer}.dialog-done{margin-top:18px;padding:12px 16px;border:0;border-radius:8px;background:#f3f4f6;color:#08090b;font-weight:600;cursor:pointer}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.ff-step-grid>div:hover [data-step-icon]{filter:grayscale(0) brightness(1) contrast(1)!important;animation:ffdrift 3.6s ease-in-out infinite}}
@media(max-width:1100px){header nav{gap:16px!important}header>div{gap:16px!important}.canvas-layout{gap:36px!important}}
@media(max-width:1023px){
 header nav{display:none!important;position:absolute;top:64px;left:16px;right:16px;padding:22px;background:#10131bf5;border:1px solid #ffffff1f;border-radius:12px;margin:0!important;flex-direction:column;align-items:stretch!important;gap:22px!important}
 header nav.is-open{display:flex!important}.nav-toggle{display:block;margin-left:auto}header>div{padding:0 20px!important;gap:12px!important}
 .ff-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.canvas-layout{grid-template-columns:1fr!important;gap:48px!important}.three-grid{grid-template-columns:1fr!important}.three-grid>div{min-width:0}.task-visual{aspect-ratio:2/1}
}
@media(min-width:640px) and (max-width:1023px){#tasks .three-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}#tasks .three-grid>div>div:last-child{padding:24px 18px!important}.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){
 .ff-step-grid{grid-template-columns:1fr!important}header>div{gap:8px!important;padding:0 16px!important}header>div>a[data-site-link]{display:none!important}
 section{min-height:0!important;padding-top:80px!important;padding-bottom:80px!important}#top{min-height:100svh!important;padding-top:124px!important;padding-bottom:112px!important}#top h1{font-size:clamp(36px,9.8vw,52px)!important}#top>div:last-child{font-size:9px!important;align-items:flex-end!important}#top>div:last-child>span:first-child{max-width:210px;line-height:1.7!important}
 .ff-step-grid>div{padding:30px 24px!important}.roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}.canvas-preview .diagram-nodes{gap:6px}.canvas-preview .diagram-nodes span{font-size:8px;padding:10px 7px}.preview-bar{font-size:9px}.circuit-diagram{padding:32px 14px 24px}.source-link{overflow-wrap:anywhere}#science>div>div[data-reveal]:last-of-type{grid-template-columns:repeat(2,minmax(0,1fr))!important}#science>div>div[data-reveal]:last-of-type>div{padding:24px 18px!important}#science>div>div[data-reveal]:last-of-type>div>div:first-child{font-size:26px!important}#vision{padding-bottom:0!important}footer{margin-top:80px!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1!important;transform:none!important}}
