:root{--bg: #070708;--bg2: #0e0f11;--card: #121316;--card2: #181a1e;--line: #2a2d32;--line2: #3a3e45;--tx: #f2f0eb;--tx2: #b9b6ae;--tx3: #8a877f;--or: #ff5a1f;--or2: #ff8a3d;--amber: #ffc23a;--green: #4fd18b;--red: #ff4438;--mono: "IBM Plex Mono", ui-monospace, monospace;--disp: "Rajdhani", "IBM Plex Mono", sans-serif;--sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{margin:0;background:var(--bg);color:var(--tx)}body{font-family:var(--sans);font-size:16px;line-height:1.6;overflow-x:hidden}#root{min-height:100dvh}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--or2);outline-offset:2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nw{white-space:nowrap}.app{min-height:100dvh;overflow-x:clip;background:radial-gradient(ellipse 60% 70% at 26% 60%,rgba(255,90,31,.07),transparent 70%),linear-gradient(180deg,#0b0b0d 0%,var(--bg) 60%)}.stage{position:relative}.panel{padding:0 16px 48px}@media(min-width:1100px){.app{display:grid;grid-template-columns:minmax(0,1fr) minmax(560px,640px);column-gap:clamp(16px,3vw,64px);padding-right:clamp(16px,3vw,56px)}.stage{position:sticky;top:0;height:100dvh;overflow:hidden}.panel{padding:40px 0 64px}}.app{position:relative}.to-hub{position:absolute;z-index:6;top:10px;right:16px;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--tx3);text-decoration:none}.to-hub:hover{color:var(--tx1, #fff);text-decoration:underline;text-decoration-color:var(--or2);text-underline-offset:6px}.to-hub:focus-visible{outline:2px solid var(--or2);outline-offset:2px}@media(min-width:1100px){.to-hub{top:0;right:clamp(16px,3vw,56px)}}.brand{position:relative;z-index:2;padding:20px 16px 0;pointer-events:none}.brand p{margin:0}.brand-name{display:flex;align-items:flex-end;gap:12px}.brand-name .wm{display:block;width:168px;height:auto;flex:none}.brand-zh{font-family:var(--sans);font-weight:700;font-size:14px;letter-spacing:.14em;color:var(--tx2);white-space:nowrap;line-height:1;padding-bottom:2px}.wm-bar{transform-box:fill-box;transform-origin:center}@media(prefers-reduced-motion:no-preference){.wm-bar{animation:wmbar 1.1s ease-in-out infinite alternate}}@keyframes wmbar{0%{transform:scaleY(.45)}to{transform:scaleY(1)}}.brand-sub{font-family:var(--mono);font-size:12px;letter-spacing:.28em;color:var(--or2);margin-top:12px!important}.brand-tag{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--tx3);margin-top:6px!important}.brand-tag span{margin-left:10px;font-family:var(--sans);letter-spacing:.08em}@media(min-width:1100px){.brand{position:absolute;top:0;left:0;padding:36px clamp(24px,3vw,56px)}.brand-name .wm{width:230px}}.device{position:relative;margin:8px auto 0;height:clamp(300px,54svh,540px);aspect-ratio:4152 / 6060}.device picture,.device img{display:block;width:100%;height:100%}.device img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 84%,transparent 100%),linear-gradient(180deg,#000 80%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 16%,#000 84%,transparent 100%),linear-gradient(180deg,#000 80%,transparent 100%);mask-composite:intersect}@media(max-width:1099px){.dev-crop{position:relative;width:min(100%,560px);margin:8px auto 0;aspect-ratio:3314 / 3060;overflow:hidden}.dev-crop{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 7%,#000 86%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 7%,#000 86%,transparent 100%)}.device{width:125.29%;height:auto;margin:-57.94% 0 0 -14.7%}}@media(min-width:600px)and (max-width:1099px){.dev-crop{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 7%,#000 86%,transparent 100%),linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent 0,#000 7%,#000 86%,transparent 100%),linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);mask-composite:intersect}}@media(min-width:1100px){.dev-crop{display:contents}.device{position:absolute;margin:0;top:0;height:100dvh;left:50%;transform:translate(-40%)}}.dev-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.scr-space{position:absolute;left:0;top:0;width:4152px;height:6060px;transform:scale(var(--k, .15));transform-origin:0 0;pointer-events:none}.scr-space .screen{position:absolute;left:0;top:0;width:1000px;height:560px;transform-origin:0 0;overflow:visible}.screen .scr-ch{font-family:var(--disp);font-weight:700;font-size:150px;fill:#ffb21f;letter-spacing:6px}.screen .scr-en{font-family:var(--disp);font-weight:600;font-size:76px;fill:#f3e2bd;letter-spacing:3px}.screen .scr-sig{font-family:var(--mono);font-weight:500;font-size:30px;fill:#ff9a4a;letter-spacing:2px}.scr-wave{stroke:#ff7a2a}.scr-wave.warn{stroke:#ff4a38}.screen .scan{fill:#ffaa5a24;opacity:0}@media(prefers-reduced-motion:no-preference){.screen{animation:scr-in .42s ease-out}.screen .scan{animation:scan .6s ease-out}.needle{transition:transform .38s cubic-bezier(.3,1.4,.5,1)}}@keyframes scr-in{0%{opacity:.35}30%{opacity:1}45%{opacity:.6}to{opacity:1}}@keyframes scan{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(500px)}}.dial .num{font-family:var(--disp);font-weight:600;font-size:64px;fill:#e9e4da;font-style:italic}.dial .num.on{fill:#ff7a2a}.dev-hit{position:absolute;inset:0}.hit-num,.hit-knob{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;border-radius:50%}.hit-num{width:9%;aspect-ratio:1}.hit-knob{width:13%;aspect-ratio:1}.hit-num:hover,.hit-knob:hover{background:#ff7a2a14}.mod{border-top:1px solid var(--line);padding:28px 0 32px}.mod:first-of-type{border-top:0}.mod-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.mod-h h2,.sub-h{margin:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:inherit}.mod-no{font-family:var(--mono);font-size:13px;color:var(--or)}.mod-en{font-family:var(--disp);font-weight:700;font-size:24px;letter-spacing:.06em;white-space:nowrap;line-height:1.1}.mod-zh{font-weight:700;font-size:15px;color:var(--tx2);white-space:nowrap}.mod-aside{flex:none}.mod-lead{margin:0 0 14px;color:var(--tx2);font-size:15px}.tag{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:3px 8px;border:1px solid var(--line2);color:var(--tx2);white-space:nowrap}.ghost,.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line2);background:transparent;white-space:nowrap}.ghost:hover:not(:disabled){border-color:var(--or2);color:#fff}.ghost:disabled{opacity:.4;cursor:default}.ghost.sm{min-height:44px;padding:0 12px;font-size:14px;color:var(--tx2)}.ghost.danger,.ghost.sm.danger{border-color:var(--red);color:#ffd9d6}.primary{background:var(--or);border-color:var(--or);color:#120802;font-weight:700;min-height:52px;padding:0 22px}.primary:hover{background:#ff6c35}.ch-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.ch{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:64px;padding:8px 2px;border:1px solid var(--line2);background:var(--card)}.ch-code{font-family:var(--disp);font-weight:700;font-size:22px;line-height:1;letter-spacing:.02em;white-space:nowrap}.ch-pre{font-size:.62em;margin-right:1px;color:var(--tx3)}.ch-zh{font-size:13px;white-space:nowrap;color:var(--tx2)}.ch.on{border-color:var(--or);background:linear-gradient(180deg,#ff5a1f38,#ff5a1f0f);box-shadow:inset 0 -3px 0 var(--or)}.ch.on .ch-pre,.ch.on .ch-zh{color:var(--tx)}.ch:hover:not(.on){border-color:var(--tx3)}.ch-now{margin-top:14px;padding:14px 16px;background:var(--card);border-left:3px solid var(--or)}.ch-now-t{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px}.ch-now-t .code{font-family:var(--disp);font-weight:700;font-size:20px;color:var(--or2)}.ch-now-t .zh{font-weight:700;font-size:18px}.ch-now-t .en{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--tx3);white-space:nowrap}.ch-now p{margin:6px 0 0;color:var(--tx2)}@media(max-width:380px){.ch-pre{display:none}.ch-zh{font-size:12px}}.sig-count{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--amber);white-space:nowrap}.sig-count.full{color:var(--green)}.checks{list-style:none;margin:0;padding:0;display:grid;gap:6px}.chk{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 14px;min-height:48px;background:var(--card);border:1px solid var(--line);cursor:pointer}.chk input{position:absolute;opacity:0;width:1px;height:1px}.chk .box{width:22px;height:22px;margin-top:2px;border:1.5px solid var(--tx3);display:grid;place-items:center;color:#120802;transition:background .15s,border-color .15s}.chk.on .box{background:var(--green);border-color:var(--green)}.chk .st{font-family:var(--mono);font-size:12px;color:var(--tx3);margin-top:3px}.chk.on .st{color:var(--green)}.chk.on{border-color:#4fd18b59}.chk:has(input:focus-visible){outline:2px solid var(--or2);outline-offset:2px}.tip{margin:14px 0 12px;padding:14px 16px;border:1px dashed var(--line2)}.tip-h{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--or2)}.tip p{margin:6px 0 0;color:var(--tx)}.sig-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sig{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;padding:14px;min-height:132px;background:var(--card);border:1px solid var(--line2)}.sig-top{display:flex;justify-content:space-between;width:100%;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--tx3)}.sig-en{font-family:var(--disp);font-weight:700;font-size:20px;letter-spacing:.04em;white-space:nowrap;margin-top:4px}.sig-zh{font-weight:700;font-size:16px}.sig-use{font-size:13px;color:var(--tx2);margin-top:4px;line-height:1.5}.sig.on{border-color:var(--or);background:linear-gradient(180deg,#ff5a1f2e,#ff5a1f0a)}.sig.on .sig-rx{color:var(--or2)}.sig.s-warning.on{border-color:var(--red);background:linear-gradient(180deg,#ff44382e,#ff44380a)}.sig.s-warning.on .sig-rx{color:var(--red)}.sig:hover:not(.on){border-color:var(--tx3)}.structure{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.structure-h{font-size:13px;color:var(--tx3);white-space:nowrap}.structure ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.structure li{white-space:nowrap;font-size:13px;padding:4px 10px 4px 4px;background:var(--card2);color:var(--tx2);display:inline-flex;align-items:center;gap:6px}.structure .i{font-family:var(--mono);font-size:11px;width:18px;height:18px;display:grid;place-items:center;background:var(--line2);color:var(--tx)}.fr-ctx{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.fr-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line2);background:var(--card);font-size:14px;color:var(--tx2)}.notice p{margin:0;flex:1 1 260px}.notice b{font-family:var(--mono);font-weight:600;color:var(--amber);margin-right:8px;letter-spacing:.06em}.notice.sample{border-color:#ffc23a73}.notice.warn{border-color:#ff44388c;color:#ffd9d6}.fields{display:grid;gap:14px}.field label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-bottom:6px}.field .lb{font-weight:700;font-size:15px}.field .req{font-size:12px;color:var(--tx3);white-space:nowrap}.sample-tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:1px 6px;background:var(--amber);color:#1a1200}.field textarea,.tx-text{display:block;width:100%;resize:vertical;padding:12px 14px;background:#0b0c0e;border:1px solid var(--line2);border-radius:0;line-height:1.65;font-size:16px}.field textarea::placeholder{color:#6b6962}.field textarea:focus,.tx-text:focus{outline:none;border-color:var(--or2);box-shadow:0 0 0 1px var(--or2)}.field.is-sample textarea{border-style:dashed;border-color:#ffc23a99;color:#d9cfae}.tone{margin-top:26px}.sub-h{margin-bottom:12px}.sub-h .mod-en{font-size:18px}.tone-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 12px;min-height:76px;background:var(--card);border:1px solid var(--line2);text-align:left}.tn-en{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--tx3);white-space:nowrap}.tn-zh{font-weight:700;font-size:16px;white-space:nowrap}.tn-fit{font-size:12px;color:var(--tx3);white-space:nowrap}.tn.on{border-color:var(--or);background:linear-gradient(180deg,#ff5a1f2e,#ff5a1f0a)}.tn.on .tn-en{color:var(--or2)}@media(max-width:420px){.tone-row{grid-template-columns:1fr}.tn{flex-direction:row;align-items:baseline;gap:10px;min-height:48px}}.tx-status{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--tx3);white-space:nowrap}.tx-status.ph-ready{color:var(--green)}.tx-status.ph-generating{color:var(--amber)}.gen{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 16px;border:1px solid var(--amber);font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:var(--amber);overflow:hidden;position:relative}.gen-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--amber);transform-origin:left;animation:gen .52s linear}@keyframes gen{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tx-text{min-height:180px;font-size:16px}.tx-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tx-note{margin:16px 0 0;font-size:13px;color:var(--tx3)}.foot{border-top:1px solid var(--line);padding-top:24px;font-size:13px;color:var(--tx3)}.foot p{margin:0 0 12px}.foot-mark{margin-top:20px!important;font-family:var(--mono);letter-spacing:.2em;font-size:11px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media(max-width:1099px){.brand-tag span{display:block;margin:2px 0 0}}@media(max-width:520px){.mod-h{flex-wrap:wrap;row-gap:6px}.mod-en{font-size:22px}.sig-grid{grid-template-columns:1fr}.sig{min-height:0}}.scope{position:absolute;inset:0;z-index:3;pointer-events:none;--mv: 1s;--io: cubic-bezier(.65, 0, .35, 1)}.scope .xh{position:absolute;background:#ff3b1f6b;transition:top var(--mv) var(--io),left var(--mv) var(--io)}.scope .xh.h{left:0;right:0;height:1px}.scope .xh.v{top:0;bottom:0;width:1px}.scope .bx{position:absolute;box-shadow:inset 0 0 0 1px #ff3b1f,0 0 0 1px #08080959;transition:left var(--mv) var(--io),top var(--mv) var(--io),width var(--mv) var(--io),height var(--mv) var(--io)}.scope .ct{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;box-shadow:inset 0 0 0 1px #ff4a1f;transition:left var(--mv) var(--io),top var(--mv) var(--io)}.scope .tg{position:absolute;left:-1px;bottom:100%;margin-bottom:4px;padding:3px 5px;font:500 10px/1 var(--mono);letter-spacing:.12em;color:#ff6a3d;background:#080809a8;white-space:nowrap}.scope .ro{position:absolute;left:0;top:100%;margin-top:5px;display:grid;gap:2px;font:400 9px/1.2 var(--mono);letter-spacing:.04em;color:#f2f0ebcc;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.9)}.scope.ph-compute .bx{animation:flick .16s steps(2,jump-none) infinite}.scope.ph-compute .ct{animation:flick .1s steps(2,jump-none) infinite}.scope.ph-lock .ct{box-shadow:inset 0 0 0 1px #ff4a1f,0 0 10px 1px #ff4a1f8c}.scope.ph-lock .tg{color:#120802;background:var(--or)}@keyframes flick{0%{opacity:1}to{opacity:.35}}@media(max-width:1099px){.scope .tg{font-size:8px;padding:2px 4px}.scope .ro{font-size:7px}}@media(prefers-reduced-motion:reduce){.scope *{transition:none!important;animation:none!important}}.voiceprint{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.stage,.panel{position:relative;z-index:1}@media(min-width:1100px){.stage{position:sticky}}@media(max-width:1099px){.voiceprint{opacity:.55}}@media(min-width:1100px){.panel:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:-40px;right:-100vw;background:linear-gradient(90deg,#07070800,#070708e6 56px);pointer-events:none}}:root{--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9 .06' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--plate: linear-gradient(160deg, #1a1c20 0%, #121316 46%, #0f1012 100%);--cut: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%)}.ch,.sig,.tn,.chk,.ch-now,.notice{background:var(--grain),var(--plate)}.ch,.sig,.tn{clip-path:var(--cut);position:relative}.ch:after,.sig:after,.tn:after{content:"";position:absolute;top:0;right:0;width:14px;height:14px;background:linear-gradient(225deg,var(--line2) 0 50%,transparent 50%);opacity:.9}.ch.on:after,.sig.on:after,.tn.on:after{background:linear-gradient(225deg,var(--or) 0 50%,transparent 50%)}.sig.s-warning.on:after{background:linear-gradient(225deg,var(--red) 0 50%,transparent 50%)}.ch.on{background:linear-gradient(180deg,#ff5a1f3d,#ff5a1f0f),var(--grain),var(--plate)}.sig.on,.tn.on{background:linear-gradient(180deg,#ff5a1f2e,#ff5a1f0a),var(--grain),var(--plate)}.sig.s-warning.on{background:linear-gradient(180deg,#ff443833,#ff44380a),var(--grain),var(--plate)}.mod-no{display:inline-grid;place-items:center;min-width:26px;height:20px;padding:0 4px;border:1px solid rgba(255,90,31,.6);font-size:12px}.mod{position:relative}.mod:before{content:"";position:absolute;top:-1px;left:0;width:28px;height:1px;background:var(--or)}.mod:first-of-type:before{display:none}.field textarea,.tx-text{background:#0a0b0d var(--grain)}.tx-text{border-color:#ff8a3d73;box-shadow:inset 0 0 0 1px #ff5a1f14,inset 0 0 40px #ff5a1f0a;font-family:var(--sans)}@media(prefers-reduced-motion:no-preference){.tune{animation:tune .42s ease-out}.ch-now.tune{position:relative;overflow:hidden}.ch-now.tune:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,138,61,.22),transparent);transform:translate(-100%);animation:sweep .6s ease-out;pointer-events:none}.sig.on .sig-rx{animation:rx 1.2s steps(2,jump-none) infinite}.sig.on{animation:rxin .5s ease-out}.chk .box{transition:background .15s,border-color .15s,transform .15s}.chk.on .box{transform:scale(1.06)}}@keyframes tune{0%{opacity:.2;filter:blur(1px)}35%{opacity:1;filter:none}50%{opacity:.7}to{opacity:1}}@keyframes sweep{to{transform:translate(100%)}}@keyframes rx{0%{opacity:1}to{opacity:.3}}@keyframes rxin{0%{box-shadow:0 0 #ff5a1f80}to{box-shadow:0 0 0 10px #ff5a1f00}}.tx-status .tx-st{display:inline-block}.tx-status.ph-ready .tx-st:before,.tx-status.ph-generating .tx-st:before{content:"";display:inline-block;width:6px;height:6px;margin:0 8px 1px 0;background:currentColor;vertical-align:middle}.primary.ok{background:var(--green);border-color:var(--green);color:#06130b}.primary:disabled{opacity:.45;cursor:not-allowed}.count{display:block;margin-top:4px;text-align:right;font-family:var(--mono);font-size:11px;color:var(--amber)}.save-warn{margin:0 0 16px}@media(prefers-reduced-motion:no-preference){.tx-status.ph-ready .tx-st{animation:ready .9s steps(6,jump-none)}.tx-status.ph-generating .tx-st:before{animation:rx .3s steps(2,jump-none) infinite}.tx-text{animation:txin .5s ease-out}.primary.ok{animation:okp .35s ease-out}.chk.on .st{animation:okst .4s steps(4,jump-none)}.tn.on{animation:rxin .5s ease-out}}@keyframes ready{0%,32%,66%{opacity:.25}16%,50%,to{opacity:1}}@keyframes txin{0%{border-color:var(--or);box-shadow:inset 0 0 0 1px var(--or),0 0 24px #ff5a1f40}}@keyframes okp{0%{transform:scale(.97)}to{transform:none}}@keyframes okst{0%,50%{opacity:.2}25%,75%,to{opacity:1}}.foot-done{display:block;margin-top:8px;color:var(--green);font-size:13px;min-height:1em}.foot .cl{display:inline-block}
