@property --th-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@property --th-n{syntax:"<integer>";inherits:false;initial-value:0}.tech-home{--th-bg:#050505;--th-raise:#0c0c0d;--th-line:#ffffff14;--th-line-strong:#ffffff24;--th-text:#f4f4f5;--th-muted:#8a8a93;--th-dim:#55555c;--th-signal:#c8ff00;--th-warn:#ffb224;--th-chrome:linear-gradient(180deg, #fff 0%, #fff 38%, #a1a1aa 100%);--th-chrome-dim:linear-gradient(180deg, #d4d4d8 0%, #71717a 100%);--th-sheen:linear-gradient(100deg, transparent 30%, #fffffff2 46%, #c8ff0099 50%, transparent 64%);--th-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--t-console:.35s;--t-input:1.05s;--t-track:1.7s;--t-title:2.75s;--t-tags:3.35s;--t-verdict:4.05s;--t-comet:4.1s;background:var(--th-bg);color:var(--th-text);position:relative;overflow:hidden}.tech-home:after{content:"";z-index:3;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.tech-home a{color:inherit;text-decoration:none}.th-hero-inner,.th-section{z-index:1;width:min(var(--page-max,1200px), calc(100% - 2 * var(--page-gutter,16px)));margin-inline:auto;position:relative}.th-hero{--mx:74%;--my:42%;isolation:isolate;padding:clamp(64px,10vw,136px) 0 clamp(72px,9vw,120px);position:relative}.th-grid{z-index:-3;background-image:radial-gradient(#ffffff26 1px,#0000 1.2px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 35%,#000 20%,#0000 72%);mask-image:radial-gradient(70% 60% at 50% 35%,#000 20%,#0000 72%)}.th-grid-lit{z-index:-2;-webkit-mask-image:radial-gradient(circle 220px at var(--mx) var(--my), #000 0%, #0006 45%, transparent 75%);mask-image:radial-gradient(circle 220px at var(--mx) var(--my), #000 0%, #0006 45%, transparent 75%);opacity:.55;background-image:radial-gradient(#dcff78d9 1.1px,#0000 1.4px)}.has-pointer .th-grid-lit{opacity:1}.th-glow{z-index:-1;background:radial-gradient(520px circle at var(--mx) var(--my), #c8ff000f, transparent 65%), radial-gradient(60% 50% at 50% -8%, #ffffff21, transparent 70%);position:absolute;inset:0}.th-hero:after{content:"";background:linear-gradient(90deg, transparent, var(--th-line-strong), transparent);height:1px;position:absolute;bottom:0;left:0;right:0}.th-hero-inner{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(32px,5vw,72px);display:grid}.th-status{border:1px solid var(--th-line-strong);font:500 11.5px/1 var(--th-mono);letter-spacing:.14em;color:var(--th-muted);background:#ffffff08;border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 10px;display:inline-flex}.th-pulse{background:var(--th-signal);width:6px;height:6px;box-shadow:0 0 10px var(--th-signal);border-radius:50%;position:relative}.th-pulse:after{content:"";border:1px solid var(--th-signal);opacity:0;border-radius:50%;position:absolute;inset:-4px}.tech-home h1{font-family:var(--font-sans);letter-spacing:-.045em;margin:26px 0 20px;font-size:clamp(2rem,4.7vw,4.3rem);font-weight:700;line-height:1.02}.th-line{white-space:nowrap;margin-bottom:-.1em;padding-bottom:.1em;display:block;overflow:hidden}.th-line-inner{background:var(--th-sheen) 160% 0 / 250% 100% no-repeat, var(--th-chrome);color:#0000;-webkit-background-clip:text;background-clip:text;display:inline-block}.th-line-inner.is-dim{background:var(--th-sheen) 160% 0 / 250% 100% no-repeat, var(--th-chrome-dim);-webkit-background-clip:text;background-clip:text}:lang(zh-CN) .tech-home h1{font-size:clamp(2.2rem,4.5vw,3.9rem);line-height:1.12}.th-lede{text-wrap:pretty;max-width:34em;color:var(--th-muted);margin:0;font-size:clamp(1.02rem,1.5vw,1.2rem)}.th-actions{flex-wrap:wrap;gap:12px;margin-top:38px;display:flex}.th-button{isolation:isolate;background:var(--th-signal);min-height:48px;transition:transform .35s var(--ease-out), box-shadow .3s ease, background .3s ease;border-radius:999px;align-items:center;gap:10px;padding:0 22px;font-weight:600;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #c8ff0066,0 10px 40px -8px #c8ff0073;color:#050505!important}.th-button:after{content:"";z-index:-1;transition:transform .8s var(--ease-out);background:linear-gradient(105deg,#0000 30%,#ffffffb3 50%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.th-button:hover:after{transform:translate(120%)}.th-button:hover{background:#d6ff3d;box-shadow:0 0 0 1px #c8ff0099,0 16px 56px -8px #c8ff00a6}.th-button svg{transition:transform .35s var(--ease-out)}.th-button:hover svg{transform:translate(4px)}.th-button:active{transform:scale(.97)}.th-button.is-ghost{box-shadow:inset 0 0 0 1px var(--th-line-strong);background:#ffffff08;color:var(--th-text)!important}.th-button.is-ghost:after{background:linear-gradient(105deg,#0000 30%,#ffffff24 50%,#0000 70%)}.th-button.is-ghost:hover{background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff47}.th-button:focus-visible,.tech-home a:focus-visible,.tech-home button:focus-visible{outline:2px solid var(--th-signal);outline-offset:3px}.th-console{border:1px solid var(--th-line-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-family:var(--th-mono);transform-origin:50% 100%;background:linear-gradient(#18181bb8,#0a0a0bd1);border-radius:14px;margin:0;position:relative;box-shadow:inset 0 1px #ffffff14,0 30px 80px -20px #000000e6,0 0 0 1px #0009}.th-console:before{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);height:1px;position:absolute;top:0;left:12%;right:12%}.th-comet{pointer-events:none;background:conic-gradient(from var(--th-angle), transparent 0deg 290deg, #c8ff0026 310deg, var(--th-signal) 350deg, #fff 357deg, transparent 360deg);-webkit-mask-composite:xor;opacity:0;border-radius:15px;padding:1px;position:absolute;inset:-1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.th-console-bar{border-bottom:1px solid var(--th-line);color:var(--th-muted);align-items:center;gap:7px;padding:12px 16px;font-size:11.5px;display:flex}.th-console-bar>span{background:#ffffff1f;border-radius:50%;width:9px;height:9px}.th-console-bar code{margin-left:10px;font-family:inherit}.th-run-state{margin-left:auto;font-weight:500;position:relative}.th-run-state i{font-style:normal}.th-run-state .is-running{color:var(--th-warn)}.th-run-state .is-done{color:var(--th-signal);white-space:nowrap;opacity:0;position:absolute;right:0}.th-console-body{grid-template-columns:minmax(0,.8fr) 28px minmax(0,1.2fr);gap:14px;padding:20px;display:grid}.th-console small{letter-spacing:.18em;color:var(--th-dim);margin-bottom:12px;font-size:10.5px;display:block}.th-input{position:relative}.th-input:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(#0000,#c8ff001f,#0000);border-bottom:1px solid #c8ff008c;height:36px;position:absolute;top:0;left:-8px;right:-8px}.th-input p{gap:2px;margin:0 0 12px;font-size:12.5px;display:grid}.th-input span{color:var(--th-dim)}.th-input span:before{content:"› ";color:var(--th-signal)}.th-input strong{color:var(--th-text);font-weight:500}.th-input .is-flag{color:var(--th-warn)}.th-track{background:var(--th-line-strong);width:1px;margin:28px auto 8px;position:relative}.th-track span{background:linear-gradient(180deg, #c8ff0040, var(--th-signal) 80%, #f7ffd6);height:100%;position:absolute;inset:0 0 auto;box-shadow:0 0 10px #c8ff00b3}.th-card{border:1px solid var(--th-line);background:#ffffff06;border-radius:10px;margin-bottom:10px;padding:12px 14px}.th-out-verdict{color:var(--th-signal);background:#c8ff000d;border-color:#c8ff0040;align-items:center;gap:10px;margin-bottom:0;font-size:12px;display:flex}.th-meta{letter-spacing:.16em;color:var(--th-dim);justify-content:space-between;font-size:10px;display:flex}.th-meta em{font-variant-numeric:tabular-nums;color:var(--th-text);font-style:normal}.th-count{--th-n:var(--to);counter-reset:th var(--th-n)}.th-count:before{content:counter(th)}.th-out-title p{font-family:var(--font-sans);color:var(--th-text);margin:8px 0 0;font-size:14px;line-height:1.45}.th-token{white-space:pre;display:inline-block}.th-out-tags ul{flex-wrap:wrap;gap:5px;margin:10px 0 0;padding:0;list-style:none;display:flex}.th-out-tags li{border:1px solid var(--th-line);color:#d4d4d8;background:#ffffff08;border-radius:5px;padding:3px 7px;font-size:10.5px}.th-dot{background:var(--th-signal);width:6px;height:6px;box-shadow:0 0 10px var(--th-signal);border-radius:50%}@media (prefers-reduced-motion:no-preference){.js .th-grid{animation:1.4s .1s both th-fade}.js .th-glow{animation:1.8s both th-fade}.js .th-status{animation:th-rise-blur .8s var(--ease-out) 50ms both}.js .th-pulse:after{animation:1.2s ease-out .6s 2 th-ping}.js .th-line-inner{animation:th-line-up 1s var(--ease-out) calc(.12s + var(--l) * .1s) both, th-sheen 1.5s ease calc(1.05s + var(--l) * .14s) both}.js .th-lede{animation:th-rise-blur .9s var(--ease-out) .42s both}.js .th-hero-copy .th-actions{animation:th-rise-blur .9s var(--ease-out) .55s both}.js .th-console{animation:th-console-in 1.2s var(--ease-out) var(--t-console) both, th-console-settle 1.2s ease var(--t-verdict) both}.js .th-input:after{animation:th-scan .95s cubic-bezier(.45, 0, .25, 1) var(--t-input) both}.js .th-input p{animation:th-rise .45s var(--ease-out) calc(var(--t-input) + .1s + var(--i) * .16s) both}.js .th-track span{animation:th-fill 1.15s cubic-bezier(.6, 0, .2, 1) var(--t-track) both}.js .th-out-title{animation:th-rise .5s var(--ease-out) calc(var(--t-title) - .15s) both}.js .th-token{animation:th-token .5s var(--ease-out) calc(var(--t-title) + var(--w) * 50ms) both}.js .th-count.is-title{animation:th-count .75s var(--ease-out) var(--t-title) both}.js .th-out-tags{animation:th-rise .5s var(--ease-out) calc(var(--t-tags) - .15s) both}.js .th-out-tags li{animation:th-pop .45s var(--ease-spring) calc(var(--t-tags) + var(--i) * 45ms) both}.js .th-count.is-tags{animation:th-count .65s ease calc(var(--t-tags) + 50ms) both}.js .th-out-verdict{animation:th-rise .5s var(--ease-out) var(--t-verdict) both}.js .th-run-state .is-running{animation:th-blink .9s ease 1s 3, th-hide .25s ease var(--t-verdict) forwards}.js .th-run-state .is-done{animation:th-show .3s ease var(--t-verdict) forwards}.js .th-comet{animation:th-comet 1.6s cubic-bezier(.45, 0, .25, 1) var(--t-comet) both}.library-site:has(.tech-home) .library-header{animation:th-header-in .9s var(--ease-out) both}}.th-section{padding:clamp(80px,10vw,136px) 0 0}.th-head{margin-bottom:36px}.th-head>span{font:500 11.5px/1 var(--th-mono);letter-spacing:.22em;color:var(--th-muted);align-items:center;gap:10px;display:inline-flex}.th-head>span:empty{display:none}.th-head>span:before{content:"";background:var(--th-signal);transform-origin:0;width:18px;height:1px;box-shadow:0 0 8px #c8ff0099}.th-head h2{font-family:var(--font-sans);letter-spacing:-.04em;margin:16px 0 0;padding-bottom:.08em;font-size:clamp(1.9rem,3.8vw,3rem);font-weight:650;overflow:hidden}.th-head h2>span{background:var(--th-chrome);color:#0000;-webkit-background-clip:text;background-clip:text;display:inline-block}@media (prefers-reduced-motion:no-preference){.js .th-head>span{opacity:0;transition:opacity .6s}.js .th-head>span:before{transition:transform .9s var(--ease-out) .1s;transform:scaleX(0)}.js .th-head h2>span{transition:transform 1.05s var(--ease-out) 80ms;transform:translateY(110%)}.js .th-head.is-visible>span{opacity:1}.js .th-head.is-visible>span:before,.js .th-head.is-visible h2>span{transform:none}}.tech-home [data-spot]{isolation:isolate;position:relative}.has-pointer .tech-home [data-spot]:after,.has-pointer .tech-home [data-spot]:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;position:absolute;inset:-1px}.has-pointer .tech-home [data-spot]:after{background:radial-gradient(240px circle at var(--sx,50%) var(--sy,50%), #c8ff00bf, transparent 60%);-webkit-mask-composite:xor;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.has-pointer .tech-home [data-spot]:before{z-index:-1;background:radial-gradient(380px circle at var(--sx,50%) var(--sy,50%), #ffffff0f, transparent 55%)}.has-pointer .tech-home [data-spot]:hover:after,.has-pointer .tech-home [data-spot]:hover:before{opacity:1}.th-custom{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;display:grid}.th-custom>div{border:1px solid var(--th-line);background:linear-gradient(#ffffff08,#ffffff03);border-radius:14px;padding:22px;box-shadow:inset 0 1px #ffffff0d}.th-custom small{font:500 10.5px/1 var(--th-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--th-dim);margin-bottom:16px;display:block}.th-custom ul{margin:0;padding:0;list-style:none}.th-custom-library ul{flex-wrap:wrap;gap:8px;display:flex}.th-custom-library button{border:1px dashed var(--th-line-strong);font:inherit;color:var(--th-muted);cursor:pointer;transition:border-color .25s ease, color .25s ease, background .25s ease, transform .25s var(--ease-out);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:8px 13px;font-size:13px;display:inline-flex}.th-custom-library button svg{color:var(--th-signal);transition:transform .35s var(--ease-spring)}.th-custom-library button:hover:not(:disabled){color:var(--th-text);background:#c8ff000f;border-style:solid;border-color:#c8ff0099;transform:translateY(-1px)}.th-custom-library button:hover:not(:disabled) svg{transform:rotate(90deg)}.th-custom-library button:disabled{opacity:.35;cursor:default}.th-custom-hint{color:var(--th-dim);margin:18px 0 0;font-size:12.5px}.th-custom-board{background:radial-gradient(#ffffff0f 1px,#0000 1.2px) 0 0/18px 18px,linear-gradient(#ffffff08,#ffffff03)!important}.th-custom-board ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.th-custom-board li{border:1px solid var(--th-line-strong);will-change:transform;background:#0c0c0deb;border-radius:12px;align-content:space-between;gap:10px;min-height:96px;padding:14px;display:grid;position:relative;box-shadow:inset 0 1px #ffffff0f}.th-custom-board li.is-skill{border-color:#c8ff0059}.th-custom-board li.is-fresh{animation:1.3s ease-out .35s both th-fresh}.th-custom-board em{width:fit-content;font:500 10px/1 var(--th-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--th-dim);font-style:normal}.th-custom-board li.is-skill em{color:var(--th-signal)}.th-custom-board strong{color:var(--th-text);padding-right:18px;font-size:14px;font-weight:500;line-height:1.35}.th-custom-board li button{width:24px;height:24px;color:var(--th-muted);cursor:pointer;opacity:0;transition:opacity .2s ease, transform .25s var(--ease-spring), background .2s ease;background:#ffffff0f;border:0;border-radius:7px;place-items:center;display:grid;position:absolute;top:8px;right:8px;transform:scale(.8)}.th-custom-board li:hover button,.th-custom-board li:focus-within button{opacity:1;transform:none}.th-custom-board li button:hover{color:var(--th-text);background:#ffffff24}@media (hover:none){.th-custom-board li button{opacity:.7;transform:none}}.th-section>.th-actions{margin-top:26px}.th-tools{flex-wrap:wrap;gap:10px;display:flex}.th-tools a{border:1px solid var(--th-line-strong);color:var(--th-text);transition:border-color .25s ease, background .25s ease, transform .3s var(--ease-out);background:#ffffff05;border-radius:999px;align-items:center;gap:8px;padding:11px 16px;display:inline-flex}.th-tools a svg{transition:transform .3s var(--ease-out)}.th-tools a:hover{background:#c8ff000d;border-color:#c8ff0080;transform:translateY(-2px)}.th-tools a:hover svg{transform:translate(2px,-2px)}.th-library .library-section-links{color:#09090b;background:#fafafa;border-radius:14px;overflow:hidden}.th-pipeline-wrap{--rail-top:27px;position:relative}.th-rail,.th-rail-comet{top:var(--rail-top);pointer-events:none;height:1px;position:absolute;left:4%;right:4%}.th-rail{background:var(--th-line-strong)}.th-rail.is-lit{z-index:1;background:linear-gradient(90deg, #c8ff0033, var(--th-signal));transform-origin:0;box-shadow:0 0 10px #c8ff00b3}.th-rail-comet{z-index:1;width:90px;height:3px;box-shadow:0 0 14px var(--th-signal), 0 0 4px #fff;opacity:0;background:linear-gradient(90deg,#0000,#fff);border-radius:3px;margin-top:-1px;right:auto}.th-pipeline{z-index:2;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid;position:relative}.th-pipeline li{text-align:center;color:var(--th-text);justify-items:center;gap:14px;font-size:13.5px;display:grid}.th-node{background:var(--th-raise);width:56px;height:56px;font:600 13px/1 var(--th-mono);color:var(--th-signal);border:1px solid #c8ff008c;border-radius:14px;place-items:center;display:grid;position:relative;box-shadow:inset 0 1px #ffffff0f,0 0 24px -4px #c8ff0073}.th-node:after{content:"";border-radius:inherit;border:1px solid var(--th-signal);opacity:0;position:absolute;inset:-1px}.th-pipeline strong{font-weight:500}@media (prefers-reduced-motion:no-preference){.js .th-rail.is-lit{transition:transform 1.7s cubic-bezier(.6,0,.2,1) .1s;transform:scaleX(0)}.js .th-pipeline-wrap.is-visible .th-rail.is-lit{transform:none}.js .th-pipeline-wrap.is-visible .th-rail-comet{animation:1.7s cubic-bezier(.6,0,.2,1) .1s both th-comet-x}.js .th-pipeline li{color:var(--th-dim);transition:color .5s ease calc(.15s + var(--i) * .26s)}.js .th-node{border-color:var(--th-line-strong);color:var(--th-dim);box-shadow:none;transition:border-color .5s ease calc(.15s + var(--i) * .26s), color .5s ease calc(.15s + var(--i) * .26s), box-shadow .5s ease calc(.15s + var(--i) * .26s)}.js .th-pipeline-wrap.is-visible li{color:var(--th-text)}.js .th-pipeline-wrap.is-visible .th-node{color:var(--th-signal);border-color:#c8ff008c;box-shadow:inset 0 1px #ffffff0f,0 0 24px -4px #c8ff0073}.js .th-pipeline-wrap.is-visible .th-node:after{animation:th-ping .9s ease-out calc(.15s + var(--i) * .26s) both}}.th-bento{grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;display:grid}.th-tile{border:1px solid var(--th-line);transition:border-color .3s ease, transform .4s var(--ease-out);background:linear-gradient(#ffffff09,#ffffff03);border-radius:14px;padding:24px;box-shadow:inset 0 1px #ffffff0d}.th-tile:hover{border-color:var(--th-line-strong);transform:translateY(-3px)}.th-tile-develop{background:radial-gradient(70% 60% at 100% 0,#c8ff0012,#0000 70%),linear-gradient(#ffffff0a,#ffffff03);grid-area:span 2/span 7}.th-tile-copy,.th-tile-photo{grid-column:span 5}.th-tile-operate{grid-column:span 12}.th-tile-head{align-items:center;gap:10px;margin-bottom:18px;font-weight:600;display:flex}.th-tile-head svg:first-child{color:var(--th-signal)}.th-tile-head svg:last-child{color:var(--th-dim);transition:transform .35s var(--ease-out), color .3s ease;margin-left:auto}.th-tile:hover .th-tile-head svg:last-child{color:var(--th-signal);transform:translate(2px,-2px)}.th-tile ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.th-tile-operate ul{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.th-tile li{border-top:1px solid var(--th-line);color:var(--th-muted);transition:color .25s ease, padding .35s var(--ease-out);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.th-tile:hover li{color:#c4c4cc}.th-tile li em{font:500 12px/1.6 var(--th-mono);color:var(--th-text);font-style:normal}.th-stats{border-block:1px solid var(--th-line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.th-stats>div{border-left:1px solid var(--th-line);gap:8px;padding:32px 24px;display:grid}.th-stats>div:first-child{border-left:0}.th-stats strong{font:600 clamp(2.4rem, 4.4vw, 3.6rem)/1 var(--th-mono);font-variant-numeric:tabular-nums;letter-spacing:-.04em;background:var(--th-chrome);color:#0000;-webkit-background-clip:text;background-clip:text}.th-stats>div:first-child strong{color:var(--th-signal);text-shadow:0 0 30px #c8ff0059;background:0 0}.th-stats>div>span{font:500 11.5px/1.4 var(--th-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--th-muted)}.th-plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.th-plan{border:1px solid var(--th-line);transition:border-color .3s ease, transform .4s var(--ease-out);background:linear-gradient(#ffffff09,#ffffff03);border-radius:14px;gap:12px;padding:28px;display:grid;box-shadow:inset 0 1px #ffffff0d}.th-plan:hover{border-color:var(--th-line-strong);transform:translateY(-3px)}.th-plan.is-featured{border-color:#c8ff0080;box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #c8ff001f,0 24px 70px -30px #c8ff0073}.th-plan span{font:500 11.5px/1 var(--th-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--th-muted)}.th-plan.is-featured span{color:var(--th-signal)}.th-plan strong{font:650 2.6rem/1 var(--font-sans);letter-spacing:-.04em;color:var(--th-text)}.th-plan small{color:var(--th-muted);margin-left:6px;font-size:.95rem;font-weight:400}.th-plan em{font:500 12.5px/1 var(--th-mono);color:var(--th-muted);font-style:normal}@media (prefers-reduced-motion:no-preference){.js :is(.th-tools>a,.th-bento>.th-tile,.th-stats>div,.th-plans>.th-plan){opacity:0;filter:blur(6px);transform:translateY(18px)}.js :is(.th-tools,.th-bento,.th-stats,.th-plans).is-visible>*{opacity:1;filter:none;transition:opacity .7s ease calc(var(--i,0) * 80ms), transform .9s var(--ease-out) calc(var(--i,0) * 80ms), filter .7s ease calc(var(--i,0) * 80ms), border-color .3s ease;transform:none}.js .th-bento.is-visible>.th-tile:hover,.js .th-plans.is-visible>.th-plan:hover{transition:transform .4s var(--ease-out), border-color .3s ease;transform:translateY(-3px)}.js .th-tools.is-visible>a:hover{transition:transform .3s var(--ease-out), border-color .25s ease, background .25s ease;transform:translateY(-2px)}}.th-final{text-align:center;justify-items:center;gap:10px;display:grid}.th-final .th-head{margin-bottom:14px}.th-final .th-head h2{letter-spacing:-.045em;font-size:clamp(2rem,4.4vw,3.4rem)}.th-wordmark{z-index:1;font-family:var(--font-sans);letter-spacing:-.065em;white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:baseline;margin:clamp(48px,7vw,96px) 0 -.12em;font-size:clamp(3.6rem,15.5vw,15rem);font-weight:800;line-height:.82;display:flex;position:relative}.th-wordmark span{background:linear-gradient(#ffffff29 0%,#ffffff05 78%);color:#0000;-webkit-background-clip:text;background-clip:text}.th-wordmark b{color:var(--th-signal);text-shadow:0 0 60px #c8ff008c}@media (prefers-reduced-motion:no-preference){.js .th-wordmark span{opacity:0;transition:transform 1.4s var(--ease-out), opacity 1.2s ease;transform:translateY(24%)}.js .th-wordmark b{opacity:0;transition:opacity .4s ease .7s, transform .7s var(--ease-spring) .7s;transform:scale(.4)}.js .th-wordmark.is-visible span,.js .th-wordmark.is-visible b{opacity:1;transform:none}}@keyframes th-fade{0%{opacity:0}}@keyframes th-rise{0%{opacity:0;transform:translateY(10px)}}@keyframes th-rise-blur{0%{opacity:0;filter:blur(8px);transform:translateY(14px)}}@keyframes th-line-up{0%{transform:translateY(108%)rotate(1.5deg)}}@keyframes th-sheen{0%{background-position:160% 0,0 0}to{background-position:-70% 0,0 0}}@keyframes th-console-in{0%{opacity:0;filter:blur(6px);transform:perspective(1400px)rotateX(16deg)translateY(44px)scale(.96)}}@keyframes th-console-settle{50%{border-color:#c8ff0073}to{border-color:#c8ff0033}}@keyframes th-scan{0%{opacity:0;transform:translateY(-10px)}12%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(190px)}}@keyframes th-fill{0%{height:0}}@keyframes th-fill-x{0%{width:0}}@keyframes th-token{0%{opacity:0;filter:blur(6px);transform:translateY(4px)}}@keyframes th-count{0%{--th-n:0}}@keyframes th-pop{0%{opacity:0;transform:scale(.6)translateY(6px)}}@keyframes th-show{to{opacity:1}}@keyframes th-hide{to{opacity:0}}@keyframes th-blink{50%{opacity:.35}}@keyframes th-ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}@keyframes th-comet{0%{--th-angle:0deg;opacity:0}10%,80%{opacity:1}to{--th-angle:360deg;opacity:0}}@keyframes th-comet-x{0%{opacity:0;left:4%}10%,85%{opacity:1}to{opacity:0;left:calc(96% - 90px)}}@keyframes th-comet-y{0%{opacity:0;top:4%}10%,85%{opacity:1}to{opacity:0;top:calc(96% - 90px)}}@keyframes th-fresh{0%{border-color:var(--th-signal);box-shadow:0 0 #c8ff008c,inset 0 1px #ffffff0f}to{box-shadow:0 0 0 14px #c8ff0000,inset 0 1px #ffffff0f}}@keyframes th-header-in{0%{opacity:0;transform:translateY(-100%)}}@media (max-width:980px){.th-hero-inner{grid-template-columns:1fr}.th-pipeline{grid-template-columns:1fr;gap:14px}.th-rail,.th-rail-comet{width:1px;height:auto;inset:4% auto 4% 27px}.th-rail.is-lit{background:linear-gradient(180deg, #c8ff0033, var(--th-signal));transform-origin:top}.th-rail-comet{background:linear-gradient(#0000,#fff);width:3px;height:90px;margin:0 0 0 -1px;bottom:auto}.th-pipeline li{text-align:left;grid-template-columns:56px 1fr;place-items:center start}.th-tile-develop,.th-tile-copy,.th-tile-photo,.th-tile-operate{grid-area:auto/span 12}.th-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.th-stats>div:nth-child(3){border-left:0}.th-stats>div:nth-child(n+3){border-top:1px solid var(--th-line)}.th-plans,.th-custom{grid-template-columns:1fr}}@media (max-width:980px) and (prefers-reduced-motion:no-preference){.js .th-rail.is-lit{transform:scaleY(0)}.js .th-pipeline-wrap.is-visible .th-rail-comet{animation-name:th-comet-y}}@media (max-width:560px){.th-console-body{grid-template-columns:1fr}.th-track{width:100%;height:1px;margin:0}.th-track span{background:linear-gradient(90deg, #c8ff0040, var(--th-signal) 80%, #f7ffd6);width:100%;height:100%;inset:0 auto 0 0}.th-console-bar code{display:none}.th-custom-board ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px) and (prefers-reduced-motion:no-preference){.js .th-track span{animation-name:th-fill-x}}.th-partner{background:radial-gradient(60% 80% at 100% 0,#c8ff001a,#0000 70%),radial-gradient(#ffffff0d 1px,#0000 1.2px) 0 0/20px 20px,linear-gradient(#ffffff08,#ffffff03);border:1px solid #c8ff004d;border-radius:20px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:clamp(28px,5vw,64px);padding:clamp(28px,5vw,56px);display:grid;box-shadow:inset 0 1px #ffffff0f}.th-partner-eyebrow{font:500 11.5px/1 var(--th-mono);letter-spacing:.22em;color:var(--th-signal)}.th-partner h2{font-family:var(--font-sans);letter-spacing:-.04em;background:var(--th-chrome);color:#0000;-webkit-background-clip:text;background-clip:text;margin:16px 0 14px;font-size:clamp(1.8rem,3.6vw,2.8rem);font-weight:650;line-height:1.1}.th-partner p{color:var(--th-muted);margin:0 0 28px}.th-partner ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.th-partner li{border:1px solid var(--th-line);color:var(--th-text);background:#0c0c0dd9;border-radius:10px;gap:6px;padding:12px 14px;font-size:13.5px;display:grid}.th-partner li.is-you{border-color:#ffffff38;grid-column:1/-1;font-weight:600}.th-partner li em{font:500 10px/1 var(--th-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--th-signal);font-style:normal}.th-partner li.is-you em{color:var(--th-muted)}@media (prefers-reduced-motion:no-preference){.js .th-partner li:not(.is-you){opacity:0;transform:translateY(10px)}.js .th-partner.is-visible li:not(.is-you){opacity:1;transition:opacity .5s ease calc(.3s + var(--i) * 90ms), transform .7s var(--ease-out) calc(.3s + var(--i) * 90ms);transform:none}}@media (max-width:980px){.th-partner{grid-template-columns:1fr}}.th-partner .th-actions{margin-top:0}.th-partner p.th-partner-supply{color:var(--th-text);align-items:center;gap:10px;margin:-12px 0 28px;font-size:14px;display:flex}.th-partner-supply span{background:var(--th-signal);width:6px;height:6px;box-shadow:0 0 10px var(--th-signal);border-radius:50%;flex-shrink:0}.th-svband{border:1px solid var(--th-line-strong);background:radial-gradient(60% 80% at 0 100%,#c8ff000f,#0000 70%),linear-gradient(#ffffff08,#ffffff03);border-radius:20px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,64px);padding:clamp(28px,5vw,56px);display:grid;box-shadow:inset 0 1px #ffffff0f}.th-svband h2{font-family:var(--font-sans);letter-spacing:-.03em;background:var(--th-chrome);color:#0000;-webkit-background-clip:text;background-clip:text;margin:16px 0 14px;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:600;line-height:1.15}.th-svband p{max-width:34em;color:var(--th-muted);margin:0 0 26px;font-size:15.5px;line-height:1.8}.th-svband ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.th-svband li a{border:1px solid var(--th-line-strong);color:var(--th-text);transition:border-color .3s ease, background .3s ease, transform .4s var(--ease-out);background:#0000004d;border-radius:14px;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:20px 22px;text-decoration:none;display:grid}.th-svband li span{font:500 12px/1 var(--th-mono);color:var(--th-signal);grid-row:1/3}.th-svband li strong{font-size:17px;font-weight:600}.th-svband li em{color:var(--th-muted);grid-column:2;font-size:13.5px;font-style:normal}.th-svband li svg{color:var(--th-muted);transition:transform .4s var(--ease-out), color .3s ease;grid-area:1/3/3}.th-svband li a:hover{background:#c8ff000d;border-color:#c8ff008c;transform:translate(4px)}.th-svband li a:hover svg{color:var(--th-signal);transform:translate(4px)}.th-svband li a:focus-visible{outline:2px solid var(--th-signal);outline-offset:3px}@media (prefers-reduced-motion:no-preference){.js .th-svband li{opacity:0;transform:translateY(14px)}.js .th-svband.is-visible li{opacity:1;transition:opacity .6s ease calc(.2s + var(--i) * .12s), transform .8s var(--ease-out) calc(.2s + var(--i) * .12s);transform:none}}@media (max-width:860px){.th-svband{grid-template-columns:1fr}}.th-custom-hint.is-full{color:var(--th-warn)}.th-custom-library button:disabled{cursor:not-allowed}
