.fce{--fce-paper:var(--background);--fce-surface:#fff;--fce-ink:var(--foreground);--fce-muted:var(--muted-foreground);--fce-line:var(--border);--fce-spruce:var(--primary);--fce-on-spruce:var(--primary-foreground);--fce-tint:var(--accent);--fce-string:#f2581b;--fce-err:#b3261e;--fce-groundband:var(--muted);--fce-grid:#1f3a2e12;background:var(--fce-paper);color:var(--fce-ink);font-size:17px;line-height:1.5}.fce *,.fce :before,.fce :after{box-sizing:border-box}.fce .wrap{max-width:1120px;margin:0 auto;padding:0 20px}.fce button,.fce input,.fce select,.fce textarea{font:inherit;color:inherit}.fce :focus-visible{outline:3px solid var(--fce-string);outline-offset:2px}.fce .display{font-family:var(--font-display)}.fce .intro{max-width:720px;padding:40px 0 24px}.fce .intro h1{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:clamp(40px,7.5vw,72px);font-weight:700;line-height:.98}.fce .intro p{color:var(--fce-muted);max-width:52ch;margin:14px 0 0;font-size:19px}.fce .builder{grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:56px;display:grid}.fce .builder>*{min-width:0}@media (width>=920px){.fce .builder{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start;gap:28px}.fce .preview{position:sticky;top:112px}}.fce .preview{gap:14px;display:grid}.fce .stage{background:var(--fce-surface);border:1px solid var(--fce-line);background-image:linear-gradient(var(--fce-grid) 1px,transparent 1px),linear-gradient(90deg,var(--fce-grid) 1px,transparent 1px);background-position:-1px -1px;background-size:24px 24px;border-radius:16px;overflow:hidden}.fce .stage svg{width:100%;height:auto;display:block}.fce .g-band{fill:var(--fce-groundband)}.fce .g-line{stroke:var(--fce-ink);stroke-width:2px}.fce .g-dim{stroke:var(--fce-string);stroke-width:2.5px}.fce .g-dim-bg{fill:var(--fce-surface)}.fce .g-dim-t{fill:var(--fce-string);font:700 21px var(--font-sans)}.fce .g-h{stroke:var(--fce-muted);stroke-width:1.5px}.fce .g-h-t{fill:var(--fce-muted);font:650 19px var(--font-sans)}.fce .g-lbl{fill:var(--fce-muted);font:600 17px var(--font-sans)}.fce .spec{background:var(--fce-surface);border:1px solid var(--fce-line);border-radius:16px;padding:16px 18px}.fce .spec dl{grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:15px;display:grid}.fce .spec dt{color:var(--fce-muted)}.fce .spec dd{margin:0;font-weight:600}.fce .spec .est{border-top:1px dashed var(--fce-line);margin-top:14px;padding-top:14px}.fce .spec .est-l{color:var(--fce-muted);font-size:14px}.fce .spec .est-v{font-family:var(--font-display);font-size:28px;font-weight:700;line-height:1.1}.fce .spec .est-lock{color:var(--fce-muted);font-size:15px}.fce .panel{background:var(--fce-surface);border:1px solid var(--fce-line);border-radius:16px;padding:22px 20px 0;scroll-margin-top:100px}@media (width>=560px){.fce .panel{padding:28px 28px 0}}.fce .progress{margin-bottom:22px}.fce .progress ol{color:var(--fce-muted);justify-content:space-between;margin:0 0 10px;padding:0;font-size:14px;list-style:none;display:flex}.fce .progress li.cur{color:var(--fce-ink);font-weight:700}.fce .progress li.done{color:var(--fce-spruce)}.fce .bar{background:var(--fce-line);border-radius:2px;height:3px;overflow:hidden}.fce .bar i{background:var(--fce-string);height:100%;transition:width .35s;display:block}.fce h2{font-family:var(--font-display);margin:0 0 4px;font-size:30px;font-weight:700;line-height:1.1}.fce .lead{color:var(--fce-muted);margin:0 0 20px}.fce .field{border:0;min-width:0;margin:0 0 22px;padding:0}.fce .field>legend,.fce .field>.lab{margin:0 0 8px;padding:0;font-size:16px;font-weight:700;display:block}.fce .hint{color:var(--fce-muted);margin:8px 0 0;font-size:14px}.fce .grid{gap:8px;display:grid}.fce .g-mat{grid-template-columns:repeat(2,1fr)}@media (width>=560px){.fce .g-mat{grid-template-columns:repeat(3,1fr)}}.fce .opt{appearance:none;text-align:left;background:var(--fce-surface);border:1.5px solid var(--fce-line);cursor:pointer;border-radius:10px;align-content:start;gap:2px;min-height:48px;padding:11px 12px;transition:border-color .15s,background .15s;display:grid}.fce .opt:hover{border-color:var(--fce-muted)}.fce .opt.on{border-color:var(--fce-spruce);background:var(--fce-tint);box-shadow:inset 0 0 0 1.5px var(--fce-spruce)}.fce .opt .t{font-size:16px;font-weight:700}.fce .opt .d{color:var(--fce-muted);font-size:14px;line-height:1.35}.fce .mat{grid-template-columns:auto 1fr;align-items:center;column-gap:10px}.fce .mat .sw{border:1px solid #00000026;border-radius:6px;grid-row:span 2;width:26px;height:26px}.fce .sw-wood{background:repeating-linear-gradient(90deg,#c48d55 0 6px,#b27c47 6px 7px)}.fce .sw-vinyl{background:#f7f7f3}.fce .sw-chain{background-color:#9ea8ad;background-image:repeating-linear-gradient(45deg,#0000 0 3px,#e3e7e9 3px 4px),repeating-linear-gradient(-45deg,#0000 0 3px,#e3e7e9 3px 4px);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.fce .sw-aluminum{background:repeating-linear-gradient(90deg,#262c2e 0 2px,#8a9491 2px 6px)}.fce .sw-farm{background-color:#c2b79a;background-image:linear-gradient(#737d82 1px,#0000 1px),linear-gradient(90deg,#737d82 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:6px 8px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.fce .seg{flex-wrap:wrap;gap:8px;display:flex}.fce .seg .opt{text-align:center;justify-items:center;min-width:72px;padding:10px 14px}.fce .g-3{grid-template-columns:1fr}@media (width>=560px){.fce .g-3{grid-template-columns:repeat(3,1fr)}}.fce .inp{border:1.5px solid var(--fce-line);background:var(--fce-surface);border-radius:10px;align-items:center;display:flex;overflow:hidden}.fce .inp:focus-within{border-color:var(--fce-spruce);box-shadow:inset 0 0 0 1.5px var(--fce-spruce)}.fce .inp input,.fce .inp select,.fce .inp textarea{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:12px 14px;font-size:17px}.fce .inp textarea{resize:vertical;min-height:84px}.fce .inp .suf{color:var(--fce-muted);padding:0 14px;font-weight:600}.fce .inp.bad{border-color:var(--fce-err)}.fce .big input{padding:10px 14px;font-size:28px;font-weight:700}.fce .chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.fce .chip{appearance:none;border:1px solid var(--fce-line);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:15px}.fce .chip:hover{border-color:var(--fce-spruce)}.fce .sides{gap:8px;display:grid}.fce .side{grid-template-columns:64px 1fr 40px;align-items:center;gap:8px;display:grid}.fce .side>span{color:var(--fce-muted);font-size:15px}.fce .x{appearance:none;border:1px solid var(--fce-line);cursor:pointer;height:40px;color:var(--fce-muted);background:0 0;border-radius:8px;font-size:20px;line-height:1}.fce .x:hover{color:var(--fce-err);border-color:var(--fce-err)}.fce .link{appearance:none;color:var(--fce-spruce);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 0;font-weight:700;text-decoration:underline}.fce .sum{margin-top:8px;font-weight:700}.fce .stepper{border-top:1px solid var(--fce-line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.fce .stepper:last-child{border-bottom:1px solid var(--fce-line)}.fce .stepper .t{font-weight:700}.fce .stepper .d{color:var(--fce-muted);font-size:14px}.fce .ctl{align-items:center;gap:4px;display:flex}.fce .ctl button{appearance:none;border:1.5px solid var(--fce-line);background:var(--fce-surface);cursor:pointer;border-radius:10px;width:42px;height:42px;font-size:22px;line-height:1}.fce .ctl button:hover{border-color:var(--fce-spruce)}.fce .ctl output{text-align:center;min-width:34px;font-size:20px;font-weight:800}.fce .two{gap:14px;display:grid}@media (width>=560px){.fce .two{grid-template-columns:1fr 1fr}}.fce .two .field{margin:0}.fce .err{color:var(--fce-err);margin:6px 0 0;font-size:14px}.fce .alert{background:var(--fce-tint);border-left:3px solid var(--fce-err);border-radius:6px;margin:0 0 18px;padding:10px 14px;font-size:15px}.fce .fine{color:var(--fce-muted);margin:4px 0 20px;font-size:14px}.fce .nav{background:var(--fce-surface);padding:14px 0 calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--fce-line);z-index:5;justify-content:space-between;gap:10px;margin-top:8px;display:flex;position:sticky;bottom:0}@media (width>=920px){.fce .nav{padding-bottom:26px;position:static}}.fce .btn{appearance:none;cursor:pointer;border:1.5px solid var(--fce-line);background:var(--fce-surface);border-radius:12px;padding:14px 22px;font-size:17px;font-weight:750}.fce .btn:hover{border-color:var(--fce-ink)}.fce .btn.pri{background:var(--fce-spruce);border-color:var(--fce-spruce);color:var(--fce-on-spruce);flex:1;max-width:320px;margin-left:auto}.fce .btn.pri:hover{filter:brightness(1.1)}.fce .btn:disabled{opacity:.7;cursor:wait}.fce .range{font-family:var(--font-display);letter-spacing:-.01em;margin:6px 0;font-size:clamp(38px,8vw,58px);font-weight:700;line-height:1}.fce .perft{color:var(--fce-muted);margin:0 0 18px}.fce .scope{margin:0 0 18px;font-weight:600}.fce table.bd{border-collapse:collapse;width:100%;margin:0 0 8px;font-size:15px}.fce .bd td{border-bottom:1px solid var(--fce-line);vertical-align:top;padding:9px 0}.fce .bd td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding-left:12px}.fce .bd tr.tot td{border-bottom:0;font-weight:800}.fce .inc{gap:6px;margin:6px 0 22px;padding:0;list-style:none;display:grid}.fce .inc li{padding-left:24px;position:relative}.fce .inc li:before{content:"";border-left:2.5px solid var(--fce-spruce);border-bottom:2.5px solid var(--fce-spruce);width:12px;height:6px;position:absolute;top:.55em;left:2px;transform:rotate(-45deg)}.fce .next{background:var(--fce-tint);border-radius:12px;margin:0 0 20px;padding:16px 18px}.fce .next h3{font-size:18px;font-family:var(--font-sans);margin:0 0 4px;font-weight:700}.fce .next p{margin:0}.fce h3.sub{font-size:18px;font-family:var(--font-sans);margin:22px 0 8px;font-weight:700}.fce .foot{border-top:1px solid var(--fce-line);color:var(--fce-muted);font-size:14px}.fce .foot .wrap{padding-top:20px;padding-bottom:28px}@media (prefers-reduced-motion:reduce){.fce *{transition:none!important;animation:none!important}}
