.wf-wrap{justify-content:center;align-items:center;min-height:100vh;padding:32px 18px;display:flex}.wf-pick,.wf-build{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(680px,100%);display:flex}.wf-title{letter-spacing:-.02em;margin:6px 0 0;font-size:clamp(2.2rem,5vw,3.2rem);font-weight:700;line-height:1.04}.wf-title-sm{font-size:clamp(1.7rem,3.6vw,2.3rem)}.wf-sub{max-width:46ch;color:var(--muted);margin:0;font-size:1.05rem;line-height:1.5}.wf-choices{grid-template-columns:1fr 1fr;gap:18px;width:100%;margin:18px 0 8px;display:grid}@media (max-width:560px){.wf-choices{grid-template-columns:1fr}}.wf-choice{text-align:left;cursor:pointer;color:var(--ink);background:linear-gradient(180deg, #161c4400, #161c4400), var(--surface-0);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:stretch;gap:8px;padding:14px 14px 16px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.wf-choice:hover{border-color:var(--tbx-cyan);transform:translateY(-3px)}.wf-choice[aria-pressed=true]{border-color:var(--tbx-cyan);box-shadow:0 0 0 2px var(--tbx-cyan), 0 0 34px -6px var(--tbx-cyan)}.wf-choice b{margin-top:4px;font-size:1.15rem;font-weight:700}.wf-choice small{color:var(--muted);font-size:.92rem;line-height:1.4}.wf-preview{border-radius:6px;grid-template-rows:auto 1fr;grid-template-columns:26% 1fr;gap:6px;height:112px;padding:8px;display:grid;overflow:hidden}.wf-preview i{border-radius:3px;display:block}.wf-preview i:first-child{grid-row:1/3}.wf-preview i:nth-child(2){height:16px}.wf-preview-light{background-color:#fff;background-image:linear-gradient(#2846aa1a 1px,#0000 1px),linear-gradient(90deg,#2846aa1a 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:14px 14px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:1px solid #2846aa40}.wf-preview-light i:first-child{background:#eaf0ff;border:1px solid #2846aa33}.wf-preview-light i:nth-child(2){background:linear-gradient(90deg,#0070ff,#7a3cff)}.wf-preview-light i:nth-child(3){background:#fff;border:1px solid #2846aa40;box-shadow:inset 0 0 0 1px #ff1fa9}.wf-preview-dark{background:#070817 radial-gradient(#96aaff59 1px,#0000 1px) 0 0/12px 12px;border:1px solid #8296ff59}.wf-preview-dark i:first-child{background:#0c0f26;border:1px solid #8296ff4d}.wf-preview-dark i:nth-child(2){background:linear-gradient(90deg,#00f0ff,#8b5cff);box-shadow:0 0 14px #00f0ff99}.wf-preview-dark i:nth-child(3){background:#101542;border:1px solid #ff2bd6;box-shadow:0 0 14px #ff2bd680}.wf-go{cursor:pointer;border:0;margin-top:10px;padding:12px 38px;font-size:1.02rem;font-weight:700}.wf-term{text-align:left;width:100%;min-height:176px;font-family:var(--tbx-mono), monospace;background:var(--surface-0);border:1px solid var(--border);box-shadow:inset 3px 0 0 var(--tbx-violet);border-radius:8px;margin-top:8px;padding:18px 20px;font-size:.95rem;line-height:1.9}.wf-line{color:var(--ink);gap:12px;display:flex}.wf-line[data-state=active]{color:var(--muted)}.wf-mark{color:var(--tbx-cyan);flex:none}.wf-line[data-state=done] .wf-mark{color:var(--nx-lime)}.wf-line[data-state=active]:after{content:"";background:var(--tbx-cyan);align-self:center;width:8px;height:1.05em;margin-left:2px;animation:1s step-end infinite wf-blink;display:inline-block}@keyframes wf-blink{50%{opacity:0}}.wf-progress{align-items:center;gap:14px;width:100%;margin-top:6px;display:flex}.wf-bar{background:var(--border);border-radius:99px;flex:1;height:10px;overflow:hidden}.wf-fill{background:linear-gradient(90deg, var(--tbx-cyan), var(--tbx-violet), var(--tbx-magenta));height:100%;box-shadow:0 0 16px var(--tbx-cyan);border-radius:99px;transition:width .5s}.wf-pct{font-family:var(--tbx-mono), monospace;text-align:right;min-width:4ch;color:var(--tbx-cyan);font-weight:600}.wf-skip{color:var(--subtle);cursor:pointer;background:0 0;border:0;padding:6px 10px;font-size:.9rem}.wf-skip:hover{color:var(--ink)}.wf-wrap :focus-visible{outline:2px solid var(--tbx-cyan);outline-offset:3px}@media (prefers-reduced-motion:reduce){.wf-fill,.wf-choice{transition:none}.wf-line[data-state=active]:after{animation:none}}
