/* AlphaDesk Autopilot — landing / tech(light studio language:Albert Sans · neutral greys · sparse green) */
:root{
  --bg:#ffffff;--panel:#fafafa;--panel2:#f3f3f3;--border:#dbdbdb;--border-soft:#ececec;
  --text:#494949;--strong:#202020;--muted:#8a8a8a;--dim:#b5b5b5;
  --brand:#87ea5c;--brand-text:#0d5400;--brand-soft:#eefbe6;--green:#00aa54;--blue:#1a74ff;--red:#f04142;--amber:#ff7528;
  --seal:#f04142;--signal:#00aa54;--actual:#9a9a9a;--paper:#00aa54;--shadow:#ff7528;
  --sans:"Albert Sans","Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
  --mono:"IBM Plex Mono",Consolas,monospace;
  --sh-xs:0 1px 2px rgba(0,0,0,.05);--sh-sm:0 2px 8px rgba(0,0,0,.06);--sh-md:0 12px 32px rgba(0,0,0,.09);
  --measure:62ch;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em;color:var(--strong)}
p{margin:0}
b{font-weight:600;color:var(--strong)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* ---- nav ---- */
.nav{display:flex;align-items:center;gap:32px;padding:16px clamp(20px,5vw,64px);border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);z-index:20}
.wordmark{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--strong)}
.wordmark em{font-style:normal;font-weight:600;letter-spacing:.14em;font-size:10.5px;color:var(--brand-text);background:var(--brand-soft);padding:2px 7px;border-radius:999px;text-transform:uppercase}
.mark{width:10px;height:10px;border:2px solid var(--brand-text);background:var(--brand);transform:rotate(45deg);display:inline-block}
.wordmark .dxwm{height:15px;display:block;width:auto}
.links{display:flex;gap:22px;margin-left:auto;font-size:13.5px;color:var(--muted)}
.links a:hover{color:var(--strong)}
.cta{display:inline-block;padding:10px 18px;background:var(--strong);color:#fff;border-radius:8px;font-size:13.5px;font-weight:600;transition:background .2s,transform .18s}
.cta:hover{background:#000}
.cta.big{padding:15px 30px;font-size:15px;margin-top:26px}
.cta.soft{background:var(--brand);color:var(--brand-text)}
.cta.soft:hover{background:#7ad84f}
.cta.ghost{background:transparent;color:var(--strong);border:1px solid var(--border)}
.cta.ghost:hover{background:var(--panel2)}
.lang{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted);padding:6px 10px;border:1px solid var(--border-soft);border-radius:999px}
.lang:hover{color:var(--strong);border-color:var(--border)}
/* value grid */
.value{border-top:1px solid var(--border-soft)}
.value-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.value .v{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:20px 18px;box-shadow:var(--sh-xs)}
.value .v b{display:block;font-size:15px;margin-bottom:8px;color:var(--strong)}
.value .v p{font-size:13.5px;color:var(--text)}
.chain-foot .ok{color:var(--green)}
@media (max-width:1000px){.value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.value-grid{grid-template-columns:1fr}.lang{display:none}}

/* ---- hero ---- */
.hero{padding:clamp(52px,9vh,104px) clamp(20px,5vw,64px) 30px;max-width:1180px;margin:0 auto;position:relative}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--brand-text);margin-bottom:22px}
.hero h1{font-size:clamp(38px,5.8vw,74px);line-height:1.12;max-width:15em}
.hero h1 b{color:var(--green)}
.lede{max-width:var(--measure);font-size:clamp(16px,1.3vw,18.5px);color:var(--text);margin-top:26px;line-height:1.8}
.hero-ctas{display:flex;gap:10px;align-items:center;margin-top:26px;flex-wrap:wrap}
.hero-ctas .note{font-size:12.5px;color:var(--muted)}
.reveal{opacity:0;transform:translateY(12px);animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.hero .reveal:nth-child(1){animation-delay:.05s}.hero .reveal:nth-child(2){animation-delay:.18s}.hero .reveal:nth-child(3){animation-delay:.34s}.hero .reveal:nth-child(4){animation-delay:.48s}.hero .reveal:nth-child(5){animation-delay:.62s}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.reveal{animation:none;opacity:1;transform:none}}
.reveal-on-scroll{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal-on-scroll.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transform:none}}

/* ---- signature: studio mock(左計畫 / 右畫布,會自己動)---- */
.mock{margin-top:clamp(40px,6vh,64px);border:1px solid var(--border);border-radius:16px;background:var(--bg);box-shadow:var(--sh-md);overflow:hidden}
.mock-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border-soft);background:var(--panel);font-size:12px;color:var(--muted)}
.mock-bar .dots{display:flex;gap:5px}.mock-bar .dots i{width:9px;height:9px;border-radius:50%;background:var(--border)}
.mock-bar .url{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-left:auto}
.mock-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:400px}
.mock-left{border-right:1px solid var(--border-soft);padding:14px 16px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.mock-goal{align-self:flex-end;background:var(--panel2);border-radius:12px;padding:8px 12px;font-size:13px;color:var(--strong);max-width:90%}
.mock-plan{border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--sh-xs)}
.mock-plan .h{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-soft);font-size:12.5px;font-weight:600;color:var(--strong)}
.mock-plan .h .cnt{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--muted);font-weight:500}
.mock-plan .s{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:6px 12px;border-top:1px solid var(--border-soft);font-size:13px;color:var(--muted);opacity:0;transform:translateX(-6px);transition:opacity .35s,transform .35s}
.mock-plan .s:first-of-type{border-top:0}
.mock-plan .s.show{opacity:1;transform:none}
.mock-plan .s .box{width:15px;height:15px;border:1.5px solid var(--border);border-radius:4px;margin-top:2px;display:grid;place-items:center;font-size:10px;color:#fff;transition:.3s}
.mock-plan .s.doing{color:var(--strong);font-weight:600}
.mock-plan .s.doing .box{border-color:var(--green);box-shadow:0 0 0 3px rgba(0,170,84,.15)}
.mock-plan .s.done .box{background:var(--green);border-color:var(--green)}
.mock-plan .s.done{color:var(--muted)}
.mock-act{border:1px solid var(--border-soft);border-radius:10px;background:var(--panel);padding:8px 10px;font-size:12.5px;display:none}
.mock-act.show{display:block}
.mock-act .row{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--strong)}
.mock-act .row .ic{width:18px;height:18px;border-radius:5px;background:var(--brand-soft);color:var(--brand-text);display:grid;place-items:center;font-size:10px;font-family:var(--mono)}
.mock-act .row .r{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--green)}
.mock-act .row .r.wait{color:var(--amber)}
.mock-act .row.spin .r::before{content:"";display:inline-block;width:9px;height:9px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .9s linear infinite;margin-right:5px;vertical-align:-1px}
@keyframes spin{to{transform:rotate(360deg)}}
.mock-approval{display:none;border:1px solid #f5cdb0;background:#fff1e8;border-radius:12px;padding:10px 12px;font-size:12.5px}
.mock-approval.show{display:block;animation:rise .4s ease}
.mock-approval .what{font-family:var(--mono);font-size:12px;background:var(--bg);border:1px solid var(--border-soft);border-radius:8px;padding:5px 8px;margin:5px 0}
.mock-approval .btns{display:flex;gap:6px;margin-top:6px}
.mock-approval .btns span{padding:5px 10px;border-radius:7px;font-size:12px;border:1px solid var(--border)}
.mock-approval .btns span.ok{background:var(--brand);color:var(--brand-text);border-color:var(--brand);font-weight:600}
.mock-right{background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.mock-tabs{display:flex;gap:4px;font-size:12px;color:var(--muted)}
.mock-tabs span{padding:4px 9px;border-radius:7px}
.mock-tabs span.on{background:var(--panel2);color:var(--strong);font-weight:600}
.mock-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:var(--sh-xs);display:none}
.mock-card.show{display:block;animation:rise .45s ease}
.mock-card h4{margin:0 0 2px;font-size:13px;color:var(--strong)}
.mock-card .sub{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:8px}
.mock-card svg{width:100%;height:150px;display:block}
.mock-card .kv{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:12px;margin-top:6px}
.mock-card .kv dt{color:var(--muted)}.mock-card .kv dd{margin:0;font-family:var(--mono);color:var(--strong)}
.mock-card .kv dd.neg{color:var(--red)}
.mb{transform-origin:bottom;animation:grow .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes grow{from{transform:scaleY(0)}}
.mock-foot{font-size:11px;color:var(--muted);font-family:var(--mono)}
.mock-hb{display:grid;grid-template-columns:120px 1fr 60px;gap:8px;align-items:center;font-size:12px;padding:3px 0}
.mock-hb .t{position:relative;height:9px;background:var(--panel2);border-radius:5px}
.mock-hb .t i{position:absolute;top:0;bottom:0;border-radius:5px;background:var(--red);animation:bx .6s cubic-bezier(.2,.8,.2,1) both;transform-origin:left}
.mock-hb .t i.ok{background:var(--green)}
@keyframes bx{from{transform:scaleX(0)}}
.mock-hb .v{font-family:var(--mono);text-align:right;color:var(--strong)}

/* ---- sections ---- */
section{padding:clamp(60px,8vh,100px) clamp(20px,5vw,64px);max-width:1180px;margin:0 auto}
.section-head{max-width:var(--measure);margin-bottom:40px}
.section-head h2,.books h2,.final h2{font-size:clamp(26px,3.1vw,38px);line-height:1.3}
.section-head p{color:var(--text);margin-top:12px}

/* dial(自主等級刻度尺) */
.dial{border-top:1px solid var(--border-soft);padding-top:26px}
.dial-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:22px}
.dial-label{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--strong)}
.dial-note{font-size:13px;color:var(--muted)}
.ruler{position:relative;padding:8px 64px 0}
.stops{position:relative;height:78px}
.track{position:absolute;left:0;right:0;top:4px;height:2px;background:var(--border)}
.fill{height:100%;width:50%;background:var(--green);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.stop{appearance:none;background:none;border:0;color:var(--muted);font:inherit;cursor:pointer;padding:0;position:absolute;top:0;left:calc(var(--i) * 25%);transform:translateX(-50%);width:128px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px}
.stop::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--border);margin-bottom:8px;transition:.3s;flex:none}
.stop b{font-family:var(--mono);font-weight:600;font-size:13px;letter-spacing:.08em;color:var(--muted)}
.stop span{font-size:13px}
.stop[aria-pressed="true"]{color:var(--strong)}
.stop[aria-pressed="true"]::before{background:var(--green);border-color:var(--green);box-shadow:0 0 0 5px rgba(0,170,84,.15)}
.stop[aria-pressed="true"] b{color:var(--green)}
.stop:hover:not(.locked){color:var(--strong)}
.stop.locked{cursor:not-allowed}
.stop.locked::before{border-style:dashed;border-color:var(--red)}
.stop.locked b{color:var(--red)}
.seal{position:absolute;left:calc(50% + 18px);top:14px;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--red);border:1.5px solid var(--red);padding:2px 6px;transform:rotate(-6deg);opacity:.9;white-space:nowrap}
.stop.locked[aria-pressed="true"]::before{background:var(--red);border-color:var(--red);box-shadow:0 0 0 5px rgba(240,65,66,.15)}
.dial-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:34px;margin-top:30px;align-items:start}
.dial-copy{font-size:clamp(17px,1.5vw,21px);line-height:1.6;color:var(--strong);font-weight:700;min-height:4.2em}
.dial-copy small{display:block;font:14px/1.7 var(--sans);color:var(--text);margin-top:10px;font-weight:400}
.record{margin:0;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:0 12px 12px 0;padding:16px 18px;font:12.5px/1.75 var(--mono);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;min-height:180px}
.record .k{color:var(--muted)}.record .v{color:var(--strong)}.record .h{color:var(--green)}.record .s{color:var(--red)}
.record.sealed{border-left-color:var(--red)}

/* four questions */
.ask{border-top:1px solid var(--border-soft)}
.ask-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.q{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:22px 20px 18px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--sh-xs)}
.q h3{font-size:17px;line-height:1.45}
.q p{font-size:13.5px;color:var(--text);flex:1}
.stat{margin-top:6px;padding-top:12px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:2px}
.stat .num{font-family:var(--mono);font-size:26px;color:var(--strong)}
.stat .num.neg{color:var(--red)}.stat .num.pos{color:var(--green)}
.stat .unit{font-size:12px;color:var(--muted)}

/* ledger */
.ledger{border-top:1px solid var(--border-soft)}
.chain{border:1px solid var(--border);background:var(--bg);border-radius:14px;overflow:hidden;box-shadow:var(--sh-xs)}
.chain-row{display:grid;grid-template-columns:52px 96px 130px 1fr 110px;gap:14px;padding:11px 16px;border-top:1px solid var(--border-soft);font:12.5px/1.6 var(--mono);color:var(--muted);align-items:baseline;opacity:0;transform:translateX(-6px);animation:slide .5s forwards}
.chain-row:first-child{border-top:0}
.chain-row.placeholder{opacity:1;transform:none;animation:none;color:var(--muted)}
@keyframes slide{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.chain-row{animation:none;opacity:1;transform:none}}
.chain-row .seq{color:var(--dim)}
.chain-row .kind{color:var(--blue)}
.chain-row .kind.human{color:var(--amber)}
.chain-row .kind.warn{color:var(--red)}
.chain-row .text{font-family:var(--sans);color:var(--strong);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chain-row .hash{color:var(--dim);text-align:right}
.chain-foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:14px;font:12.5px var(--mono);color:var(--muted)}
.chain-foot a{color:var(--strong);border-bottom:1px solid var(--border)}
#chainVerify.ok{color:var(--green)}#chainVerify.bad{color:var(--red)}

/* books */
.books{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center;border-top:1px solid var(--border-soft)}
.books-text p{color:var(--text);margin-top:14px;max-width:46ch}
.books-legend{display:flex;flex-direction:column;gap:8px;margin:20px 0 0;font-size:13px;color:var(--text)}
.books-legend div{display:flex;align-items:center;gap:10px}
.books-legend dt{width:26px;height:0;border-top:2px solid;margin:0}
.k-actual{border-color:var(--actual)}.k-paper{border-color:var(--paper)}.k-shadow{border-color:var(--shadow);border-top-style:dashed}
.books-chart{width:100%;height:auto;display:block;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:10px;box-shadow:var(--sh-xs)}
.books-chart .ln{fill:none;stroke-width:1.6;stroke-linejoin:round}
.books-chart .actual{stroke:var(--actual);stroke-width:1.3}
.books-chart .paper{stroke:var(--paper);stroke-width:2.4}
.books-chart .shadow{stroke:var(--shadow);stroke-width:1.8;stroke-dasharray:6 4}
.books-chart .grid{stroke:var(--border-soft)}
.books-chart .lbl{fill:var(--muted);font:10px var(--mono)}
.books-chart .split{fill:var(--red)}

/* dexless engine */
.engine{border-top:1px solid var(--border-soft)}
.spine{width:min(720px,100%);height:auto;display:block;margin:0 0 26px}
.seg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.seg{position:relative;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:20px 20px 18px;box-shadow:var(--sh-xs);overflow:hidden}
.seg-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.seg-k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.seg-badge{margin-left:auto;font-size:10.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-weight:600}
.seg-badge.live{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-text)}
.seg-badge.this{background:var(--strong);border-color:var(--strong);color:#fff}
.seg h3{font-size:18px;margin-bottom:8px}
.seg p{font-size:13.5px;color:var(--text);max-width:34ch}
.seg-ghost{position:absolute;right:10px;bottom:6px;width:64px;opacity:.9;pointer-events:none}
.seg:has(.seg-ghost) p{padding-right:72px}
.bench{margin-top:14px;border:1px solid var(--border);border-radius:14px;background:var(--panel);padding:18px 20px}
.bench-t{font-size:14px;font-weight:700;color:var(--strong);margin-bottom:12px}
.bench-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bench-grid b{display:block;font-family:var(--mono);font-size:24px;color:var(--strong);font-weight:600;letter-spacing:-.01em}
.bench-grid b small{font-size:13px;color:var(--red);font-weight:500}
.bench-grid span{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}
.bench-note{font-size:11px;color:var(--dim);margin-top:12px;border-top:1px solid var(--border-soft);padding-top:8px}
.engine-close{margin-top:22px;font-family:var(--display-tc,var(--sans));font-size:clamp(16px,1.6vw,20px);font-weight:700;color:var(--strong);border-left:3px solid var(--brand);padding:8px 16px;background:var(--panel);border-radius:0 10px 10px 0;max-width:44em}
.fx .seg{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.fx .seg::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(135,234,92,.18),transparent 60%)}
.fx .seg:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.fx .seg:hover::after{opacity:1}
@media (max-width:1000px){.seg-grid{grid-template-columns:1fr}.bench-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bench-grid{grid-template-columns:1fr}}
/* refusals */
.refuse{border-top:1px solid var(--border-soft)}
.refuse-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.refuse-list h3{font-size:21px;line-height:1.4;position:relative;padding-left:20px}
.refuse-list h3::before{content:"";position:absolute;left:0;top:.6em;width:10px;height:2px;background:var(--red)}
.refuse-list p{color:var(--text);margin-top:10px;font-size:14.5px}
.refuse-list em{font-style:normal;color:var(--strong);border-bottom:2px solid var(--brand)}

/* final */
.final{text-align:center;border-top:1px solid var(--border-soft);padding-bottom:clamp(80px,12vh,140px)}
.final-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted);margin-bottom:18px}
.final p{color:var(--text);max-width:52ch;margin:14px auto 0}
.final-note{font-size:12.5px;color:var(--muted);margin-top:20px}

/* footer */
.foot{display:flex;gap:24px;flex-wrap:wrap;justify-content:space-between;padding:22px clamp(20px,5vw,64px);border-top:1px solid var(--border-soft);font-size:12px;color:var(--muted)}
.foot img{height:12px;vertical-align:-1px;margin:0 3px;filter:invert(.5)}
.foot img.dxfoot{height:11px;filter:grayscale(1) opacity(.75);vertical-align:-2px}

/* ---- fx:spotlight / magnetic / cursor glow ---- */
.fx .q,.fx .pillar,.fx .mock,.fx .gov-grid>div,.fx .big-stats>div{position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.fx .q::after,.fx .pillar::after,.fx .gov-grid>div::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(135,234,92,.18),transparent 60%)}
.fx .q:hover::after,.fx .pillar:hover::after,.fx .gov-grid>div:hover::after{opacity:1}
.fx .q:hover,.fx .pillar:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.fx .cta,.fx .links a{transition:transform .18s cubic-bezier(.2,.8,.2,1),background .2s,color .2s;will-change:transform}
.cursor-glow{position:fixed;left:0;top:0;width:440px;height:440px;border-radius:50%;pointer-events:none;z-index:0;opacity:0;transition:opacity .4s;background:radial-gradient(circle,rgba(135,234,92,.22) 0%,rgba(135,234,92,.08) 35%,transparent 70%);filter:blur(10px)}
/* 背景點陣:游標附近才浮現(fx.js 更新 --dgx/--dgy) */
.dotgrid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle,#9fd8ab 1.2px,transparent 1.4px);
  background-size:26px 26px;
  opacity:.55;
  -webkit-mask-image:radial-gradient(260px circle at var(--dgx,-600px) var(--dgy,-600px),#000 0%,rgba(0,0,0,.4) 45%,transparent 72%);
  mask-image:radial-gradient(260px circle at var(--dgx,-600px) var(--dgy,-600px),#000 0%,rgba(0,0,0,.4) 45%,transparent 72%)}
.glow-host{position:relative;z-index:1}

/* ================= tech page ================= */
.tech-hero{padding-bottom:20px}
.tech-hero h1{font-size:clamp(34px,5.2vw,68px);max-width:16em}
.tech-hero .lede{max-width:66ch}
.big-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:44px}
.big-stats div{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--sh-xs)}
.big-stats .num{display:block;font-family:var(--mono);font-size:clamp(28px,3vw,40px);color:var(--strong);letter-spacing:-.02em;line-height:1.1}
.big-stats .lbl{display:block;font-size:12.5px;color:var(--muted);margin-top:8px}
.pipeline{border-top:1px solid var(--border-soft)}
.pipe{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:0;position:relative;padding:0;margin:0}
.pipe::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:var(--border-soft)}
.pipe li{list-style:none;position:relative;padding:28px 12px 0 0;font-size:13px;color:var(--text)}
.pipe li::before{content:"";position:absolute;left:0;top:4px;width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--green)}
.pipe li b{display:block;color:var(--strong);font-size:14px;margin-bottom:4px}
.pipe li.human::before{background:var(--amber);border-color:var(--amber)}
.pipe li small{display:block;color:var(--muted);font-family:var(--mono);font-size:11px;margin-top:6px}
.pillars{border-top:1px solid var(--border-soft)}
.pillar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pillar{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:24px 22px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--sh-xs)}
.pillar .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--brand-text)}
.pillar h3{font-size:18px;line-height:1.4}
.pillar p{font-size:14px;color:var(--text);flex:1}
.pillar code{font-family:var(--mono);font-size:12px;color:var(--strong);background:var(--panel2);padding:1px 6px;border-radius:4px}
.pillar .proof{font-family:var(--mono);font-size:12px;color:var(--muted);border-top:1px solid var(--border-soft);padding-top:12px}
.formula{border-top:1px solid var(--border-soft)}
.formula pre{margin:0;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--green);padding:22px 26px;font:13.5px/1.9 var(--mono);color:var(--text);overflow-x:auto;border-radius:0 12px 12px 0}
.formula pre b{color:var(--strong);font-weight:600}
.formula pre .c{color:var(--muted)}
.spec{border-top:1px solid var(--border-soft)}
.spec-table{width:100%;border-collapse:collapse;font-size:14px}
.spec-table th{text-align:left;font-weight:600;color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:.1em;padding:10px 0;border-bottom:1px solid var(--border)}
.spec-table td{padding:14px 0;border-bottom:1px solid var(--border-soft);vertical-align:top;color:var(--text)}
.spec-table td:first-child{color:var(--strong);width:28%;font-weight:600}
.spec-table td:last-child{font-family:var(--mono);font-size:12.5px;color:var(--muted);width:30%}
.gov{border-top:1px solid var(--border-soft)}
.gov-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.gov-grid div{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--sh-xs)}
.gov-grid b{display:block;font-family:var(--mono);font-size:13px;color:var(--green);margin-bottom:8px}
.gov-grid div.locked b{color:var(--red)}
.gov-grid p{font-size:13px;color:var(--text)}
.gov-grid small{display:block;font-size:11.5px;color:var(--muted);margin-top:10px}
.honest{border-top:1px solid var(--border-soft)}
.honest ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 40px}
.honest li{position:relative;padding-left:22px;font-size:14.5px;color:var(--text)}
.honest li::before{content:"";position:absolute;left:0;top:.7em;width:10px;height:2px;background:var(--dim)}
.honest li b{color:var(--strong)}

/* ---- responsive ---- */
@media (max-width:1100px){
  .ask-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .big-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pipe{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:22px}
  .pipe::before{display:none}
  .pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gov-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
  .books{grid-template-columns:1fr}
  .refuse-list{grid-template-columns:1fr;gap:28px}
  .mock-body{grid-template-columns:1fr}
  .mock-left{border-right:0;border-bottom:1px solid var(--border-soft)}
}
@media (max-width:720px){
  .links{display:none}
  .dial-body{grid-template-columns:1fr;gap:20px}
  .ruler{padding:8px 34px 0}
  .stop{width:68px}
  .stop span{font-size:10.5px;line-height:1.3}
  .stop b{font-size:12px}
  .seal{font-size:9px;padding:1px 4px;left:50%;top:-20px;transform:translateX(-50%) rotate(-6deg)}
  .ask-grid{grid-template-columns:1fr}
  .chain-row{grid-template-columns:44px 1fr 80px;row-gap:2px}
  .chain-row .day{display:none}
  .chain-row .text{grid-column:1/-1;white-space:normal}
  .hero h1{max-width:none}
  .pillar-grid,.gov-grid,.honest ul,.big-stats{grid-template-columns:1fr}
  .pipe{grid-template-columns:1fr 1fr}
  .spec-table td:last-child{display:none}
}
