@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--page);--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--accent:#0b7f7a;--accent-dark:#075c58;--accent-hover:#096b67;--accent-soft:#e3f3f1;--ink:#12161c;--ink-2:#3d4651;--muted:#68727e;--line:#e2e6eb;--line-strong:#cfd5dc;--panel:#fff;--panel-2:#f8f9fb;--surface:#fff;--field:#fff;--seg:#eceff3;--page:#f4f5f7;--workspace:#e9edf1;--shadow:#12161c24;--danger:#c0362c;--danger-line:#f1c9c5;--danger-soft:#fbe9e7;--warning:#a15c0a;--on-accent:#fff;--backdrop:#0e121866;--tour-shade:#0e121880;--toast-bg:#12161c;--toast-ink:#fff;font-family:IBM Plex Sans,Avenir Next,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent:#3dd1c6;--accent-dark:#8ee8e0;--accent-hover:#2fb8ae;--accent-soft:#12332f;--ink:#e9eef3;--ink-2:#c0c9d2;--muted:#8693a0;--line:#222b34;--line-strong:#303b46;--panel:#141a20;--panel-2:#10151a;--surface:#1a2128;--field:#0f1419;--seg:#0f1419;--page:#0c1014;--workspace:#0a0e12;--shadow:#0000008c;--danger:#ff8a80;--danger-line:#5d2b28;--danger-soft:#3a1d1b;--warning:#f0b089;--on-accent:#04211f;--backdrop:#0000009e;--tour-shade:#000000a8;--toast-bg:#e9eef3;--toast-ink:#0c1014}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{min-height:100vh}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,.file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.file-button input:focus-visible{outline:none}.eyebrow{background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;align-items:center;gap:8px;margin:0 0 20px;padding:5px 12px 5px 10px;font-size:13px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}h1{letter-spacing:-.035em;margin:0;font-size:64px;font-weight:600;line-height:1.02}.lede{margin:20px 0 0;line-height:1.55}.landing{--accent:#1f6fd1;--accent-hover:#1a5fb4;--accent-soft:#e7f0fc;--accent-dark:#17549f;background:var(--page);color:var(--ink)}.landing a{text-decoration:none}.landing-hero{color:#f3f8ff;background:radial-gradient(1100px 700px at 72% 38%,#173a6b 0%,#0d2142 45%,#081428 100%);position:relative;overflow:hidden}.landing-hero:before{content:"";opacity:.55;pointer-events:none;background:url(/landing/blueprint.svg) right -180px top 40px/1240px no-repeat,radial-gradient(#a9d6ff4d 1px,#0000 1.3px) 0 0/24px 24px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 70% at 72% 45%,#000 20%,#0000 75%);mask-image:radial-gradient(60% 70% at 72% 45%,#000 20%,#0000 75%)}.landing-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000 calc(100% - 160px),#081428),linear-gradient(90deg,#081428eb 0%,#0814288c 42%,#0000 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/200px 200px;position:absolute;inset:0}.landing-hero>*{z-index:1;position:relative}.landing-hero>.landing-header{z-index:2}.landing-header{justify-content:space-between;align-items:center;gap:24px;max-width:1240px;margin:0 auto;padding:24px 40px 0;display:flex;position:relative}.landing-brand{letter-spacing:-.01em;color:#f3f8ff;align-items:center;gap:10px;font-size:18px;font-weight:600;display:inline-flex}.landing-brand .brand-mark{color:#0d2142;background:#7cc4ff}.landing-links{align-items:center;gap:32px;font-size:15px;display:flex}.landing-links a{color:#b7c8de}.landing-links a:hover{color:#7cc4ff}.landing-nav{align-items:center;gap:12px;display:flex}.landing-open{color:#0d2142;background:#f3f8ff;border-radius:10px;align-items:center;height:40px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.landing-open:hover{background:#fff}.landing-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);align-items:center;gap:56px;max-width:1240px;margin:0 auto;padding:56px 40px 112px;display:grid;position:relative}.landing .eyebrow{color:#bfe0ff;background:#7cc4ff1f;border:1px solid #7cc4ff4d;margin-bottom:24px}.landing .eyebrow:before{background:#7cc4ff}.landing h1{letter-spacing:-.035em;color:#f3f8ff;font-size:66px;line-height:1.03}.landing h1 span{display:block}.landing h1 .accent{color:#7cc4ff}.landing .lede{color:#b7c8de;max-width:500px;margin:26px 0 0;font-size:20px}.landing .actions{flex-wrap:wrap;gap:14px;margin-top:36px;display:flex}.hero-button{color:#f3f8ff;border:1px solid #7cc4ff66;border-radius:12px;align-items:center;gap:10px;height:54px;padding:0 26px;font-size:17px;font-weight:500;transition:transform .15s,background .15s;display:inline-flex}.hero-button:hover{background:#7cc4ff1a;transform:translateY(-1px)}.hero-button.primary{color:#061428;background:#7cc4ff;border-color:#7cc4ff;font-weight:600;box-shadow:0 12px 32px -10px #7cc4ff8c}.hero-button.primary:hover{background:#a2d6ff}.cta .hero-button{border-color:#7cc4ff66}.proof{color:#b7c8de;flex-wrap:wrap;gap:12px 28px;margin:40px 0 0;padding:0;font-size:15px;list-style:none;display:flex}.proof li{align-items:center;gap:8px;display:flex}.proof li:before{content:"";border-bottom:2.4px solid #7cc4ff;border-left:2.4px solid #7cc4ff;width:14px;height:8px;margin-top:-4px;transform:rotate(-45deg)scale(.9)}.hero-card{position:relative}.hero-card-frame{background:linear-gradient(#ffffff12,#ffffff05);border:1px solid #7cc4ff47;border-radius:22px;overflow:hidden;box-shadow:0 40px 90px -30px #000000a6}.hero-card-bar{border-bottom:1px solid #7cc4ff2e;align-items:center;gap:8px;height:44px;padding:0 18px;display:flex}.hero-card-bar i{background:#ffffff38;border-radius:50%;width:10px;height:10px}.hero-card-bar>span:first-of-type{color:#9fb3cc;margin-left:12px;font-size:13px}.hero-toggle{background:#ffffff14;border-radius:8px;margin-left:auto;padding:2px;font-size:12px;display:inline-flex}.hero-toggle b{border-radius:6px;padding:4px 10px}.hero-toggle .p2d{color:#0d2142;background:#f3f8ff;font-weight:600}.hero-toggle .p3d{color:#9fb3cc;font-weight:500}.hero-stage{aspect-ratio:560/440;position:relative}.hero-stage svg,.hero-stage img{width:100%;height:100%;display:block;position:absolute;inset:0}.hero-stage svg{touch-action:none}.hero-stage text{font-family:var(--font-mono)}.hero-stage .piece{cursor:grab}.hero-stage .piece:active{cursor:grabbing}.hero-stage .l3d{opacity:0;pointer-events:none}.hero-hint{pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:-22px;left:0;right:0}.hero-hint span{color:#0d2142;background:#f3f8ff;border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 14px 30px -10px #00000080}.hero-hint.f3d{opacity:0}@keyframes show2d{0%,40%{opacity:1;pointer-events:auto;transform:none}50%,90%{opacity:0;pointer-events:none;transform:scale(.96)translateY(10px)}to{opacity:1;pointer-events:auto;transform:none}}@keyframes show3d{0%,40%{opacity:0;transform:translateY(16px)scale(.96)}50%,90%{opacity:1;transform:none}to{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes fade2d{0%,40%{opacity:1}50%,90%{opacity:0}to{opacity:1}}@keyframes fade3d{0%,40%{opacity:0}50%,90%{opacity:1}to{opacity:0}}@keyframes pill2d{0%,40%{color:#0d2142;background:#f3f8ff;font-weight:600}50%,90%{color:#9fb3cc;background:0 0;font-weight:500}to{color:#0d2142;background:#f3f8ff;font-weight:600}}@keyframes pill3d{0%,40%{color:#9fb3cc;background:0 0;font-weight:500}50%,90%{color:#0d2142;background:#f3f8ff;font-weight:600}to{color:#9fb3cc;background:0 0;font-weight:500}}.hero-card .l2d{animation:9s ease-in-out infinite show2d}.hero-card .l3d{animation:9s ease-in-out infinite show3d}.hero-card .f2d{animation:9s ease-in-out infinite fade2d}.hero-card .f3d{animation:9s ease-in-out infinite fade3d}.hero-card .p2d{animation:9s ease-in-out infinite pill2d}.hero-card .p3d{animation:9s ease-in-out infinite pill3d}.hero-card:hover .l2d,.hero-card:hover .l3d,.hero-card:hover .f2d,.hero-card:hover .f3d,.hero-card:hover .p2d,.hero-card:hover .p3d{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.hero-card .l2d,.hero-card .l3d,.hero-card .f2d,.hero-card .f3d,.hero-card .p2d,.hero-card .p3d{animation:none}.hero-stage .l3d,.hero-hint.f3d{display:none}.hero-hint span,.hero-button{transition:none}}.landing-more{max-width:1240px;margin:0 auto;padding:24px 40px}.landing-more section{margin-top:112px}.landing-more section:first-child{margin-top:104px}.kicker{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;font-size:14px;font-weight:600}.landing-more h2{letter-spacing:-.03em;margin:0;font-size:44px;font-weight:600;line-height:1.08}.section-lede{max-width:640px;color:var(--ink-2);margin:18px 0 0;font-size:18px;line-height:1.6}.view-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:48px;display:grid}.view-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s;overflow:hidden}.view-card:hover,.features li:hover,.samples li:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 18px 40px -18px #08142859}.view-card.dark{color:#f3f8ff;background:#0d2142;border-color:#0d2142}.view-card h3{justify-content:space-between;align-items:center;margin:0;font-size:22px;font-weight:600;display:flex}.view-card h3 span{color:#f2b35e;background:#f2b35e29;border-radius:999px;padding:4px 12px;font-size:13px}.view-card img{border-radius:14px;width:100%;height:auto;margin-top:18px;display:block}.view-card p{color:var(--ink-2);margin:16px 0 0;font-size:16px;line-height:1.55}.view-card.dark p{color:#b7c8de}.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:48px 0 0;padding:0;list-style:none;display:grid}.steps li{align-items:flex-start;gap:16px;display:flex}.steps span{background:var(--ink);width:30px;height:30px;color:var(--page);font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:500;display:grid}.steps strong{font-size:16px;font-weight:600;display:block}.steps p{color:var(--ink-2);margin:6px 0 0;font-size:14.5px;line-height:1.55}.features{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:48px 0 0;padding:0;list-style:none;display:grid}.features li{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px;transition:transform .2s,box-shadow .2s,border-color .2s}.feature-icon{background:var(--accent-soft);width:46px;height:46px;color:var(--accent);border-radius:13px;place-items:center;display:grid}.features h3{letter-spacing:-.01em;margin:20px 0 8px;font-size:20px;font-weight:600}.features p{color:var(--ink-2);margin:0;font-size:16px;line-height:1.6}.samples ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:44px 0 0;padding:0;list-style:none;display:grid}.samples li{background:var(--surface);border:1px solid var(--line);border-radius:20px;transition:transform .2s,box-shadow .2s,border-color .2s}.samples li a{color:inherit;padding:22px;display:block}.samples .thumb{background-color:#0d2142;background-image:linear-gradient(#7cc4ff14 1px,#0000 1px),linear-gradient(90deg,#7cc4ff14 1px,#0000 1px);background-size:16px 16px;border-radius:12px;padding:18px;display:block}.samples .thumb svg{width:100%;height:auto;display:block}.samples .walls{fill:none;stroke:#f3f8ff;stroke-width:2.4px;stroke-linecap:square}.samples .pieces{fill:none;stroke:#f2b35e;stroke-width:3.4px;stroke-linecap:round}.samples h3{font-family:var(--font-mono);letter-spacing:-.02em;margin:20px 0 0;font-size:34px;font-weight:500}.samples p{color:var(--ink-2);margin:6px 0 12px;font-size:15px}.samples .open{color:var(--accent);align-items:center;gap:8px;font-size:16px;font-weight:600;display:inline-flex}.landing-more .rules{color:#f3f8ff;background-color:#0d2142;background-image:linear-gradient(#7cc4ff0f 1px,#0000 1px),linear-gradient(90deg,#7cc4ff0f 1px,#0000 1px);background-size:32px 32px;border-radius:28px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;padding:64px;display:grid}.rules h2{font-size:40px}.rules p{color:#b7c8de;margin:18px 0 0;font-size:18px;line-height:1.6}.rules ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.rules li{color:#dbe7f5;background:#ffffff0f;border:1px solid #7cc4ff33;border-radius:14px;align-items:flex-start;gap:14px;padding:16px 18px;font-size:16px;line-height:1.5;display:flex}.rules b{color:#f2b35e;min-width:28px;height:28px;font-family:var(--font-mono);background:#f2b35e2e;border-radius:14px;flex:none;place-items:center;padding:0 4px;font-size:13px;font-weight:500;display:grid}.landing-more .faq{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:56px;display:grid}.faq-list{gap:12px;display:grid}.faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0 24px}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-size:18px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary span{background:var(--accent-soft);border-radius:50%;flex:none;width:28px;height:28px;transition:transform .2s;position:relative}.faq summary span:before,.faq summary span:after{content:"";background:var(--accent);border-radius:1px;width:12px;height:2px;position:absolute;top:13px;left:8px}.faq summary span:after{transform:rotate(90deg)}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{color:var(--ink-2);margin:0;padding:0 0 22px;font-size:16px;line-height:1.65}.landing-more .cta{text-align:center;color:#f3f8ff;background-color:#0d2142;background-image:radial-gradient(640px 320px at 50% 0,#5aa0ff47,#0000 70%),linear-gradient(#7cc4ff12 1px,#0000 1px),linear-gradient(90deg,#7cc4ff12 1px,#0000 1px);background-size:auto,32px 32px,32px 32px;border-radius:32px;padding:80px 64px;position:relative;overflow:hidden}.cta h2{letter-spacing:-.035em;max-width:700px;margin:0 auto;font-size:52px;line-height:1.05}.cta p{color:#b7c8de;max-width:520px;margin:20px auto 0;font-size:19px;line-height:1.55}.cta .actions{justify-content:center}.landing-footer{max-width:1240px;margin:0 auto;padding:72px 40px 48px}.landing-footer nav{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px 22px;padding-top:28px;display:flex}.landing-footer a{color:var(--ink-2);font-size:15px}.landing-footer a:hover{color:var(--accent)}.editor{--chrome-top:52px;--chrome-status:30px;grid-template-columns:360px minmax(0,1fr) 300px;grid-template-rows:var(--chrome-top) minmax(0, 1fr) var(--chrome-status);background:var(--workspace);grid-template-areas:"top top top""left viewport right""status status status";height:100vh;display:grid;position:relative;overflow:hidden}.topbar{height:var(--chrome-top);background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:none;grid-area:top;align-items:center;gap:6px;padding:0 14px;display:flex;overflow-x:auto}.topbar::-webkit-scrollbar{display:none}@media (width<=1680px){.topbar{gap:4px;padding:0 10px}.topbar .pill-button{gap:5px;padding:0 8px}.topbar .compact-label,.topbar .theme-label{display:none}.topbar .pill-button:has(>svg~svg)>svg:first-of-type{display:none}.topbar .name-input{width:80px}}.topbar-identity{flex:none;align-items:center;gap:4px;min-width:0;display:flex}.brand{color:var(--ink);flex:none;align-items:center;margin-right:6px;text-decoration:none;display:flex}.brand-mark{background:var(--accent);width:26px;height:26px;color:var(--on-accent);border-radius:7px;place-items:center;display:grid}.name-input{width:100px;height:32px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;padding:0 10px;font-size:14px;font-weight:600}.name-input:hover{background:var(--seg)}.name-input:focus{border-color:var(--accent);background:var(--field);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.toolbar-group{flex:none;align-items:center;gap:2px;display:flex}.toolbar-group:has(.segmented){gap:8px}.toolbar-rule{background:var(--line);flex:none;width:1px;height:22px}.preferences{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.hero-bar{justify-content:flex-end;margin-bottom:28px;display:flex}.hero-bar .preferences{margin-left:0}.demo-banner{top:calc(var(--chrome-top) + 12px);z-index:6;border:1px solid var(--line);background:var(--panel);box-shadow:0 10px 30px -10px var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 16px;font-size:13px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.demo-banner .pill-button,.demo-banner .button{border-radius:999px}.pill-button.only-compact,.only-narrow{display:none}.icon{flex:none;display:block}.icon-button{width:32px;height:32px;color:var(--ink-2);background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--seg);color:var(--ink)}.icon-button.active,.icon-button.open{background:var(--accent-soft);color:var(--accent)}.icon-button.project-trigger{width:26px;height:26px;color:var(--muted)}.pill-button{border:1px solid var(--line-strong);background:var(--panel);height:32px;color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.pill-button:hover,.pill-button.open{background:var(--seg)}.pill-button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.pill-button.lang-trigger{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.pill-button.lang-trigger:hover,.pill-button.lang-trigger.open{background:var(--accent-hover);border-color:var(--accent-hover)}.button{border:1px solid var(--line-strong);background:var(--panel);min-height:36px;color:var(--ink);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){background:var(--seg)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.button.danger{color:var(--danger);border-color:var(--danger-line)}.button.danger:hover:not(:disabled){background:var(--danger-soft)}.button.primary.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button.small{min-height:30px;padding:0 12px;font-size:12.5px}.button.full{width:100%}.button.export-trigger{gap:7px;min-height:32px;padding:0 12px 0 14px}.button.export-trigger.open{background:var(--accent-hover)}.topbar .export-trigger>svg:first-of-type{display:none}.button-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.theme-switch{flex:none;align-items:center;gap:8px;display:inline-flex}.theme-label{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:500}.segmented{background:var(--seg);border-radius:9px;flex:none;padding:2px;display:inline-flex}.segmented button{height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:0 12px;font-size:13px;font-weight:500}.segmented button:hover:not(:disabled):not(.active){color:var(--ink)}.segmented button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px var(--shadow);font-weight:600}.segmented.fill{width:100%;margin-top:2px;margin-bottom:8px;display:flex}.segmented.fill button{flex:1;padding:0 6px;font-size:12.5px}.icon-segmented button{justify-content:center;align-items:center;width:30px;padding:0;display:inline-flex}.camera-chips{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;margin-bottom:8px;display:grid}.camera-chips button{padding:0 4px}.chip{border:1px solid var(--line-strong);background:var(--panel);min-height:30px;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:0 10px;font-size:12.5px;font-weight:500;overflow:hidden}.chip:hover:not(.active){background:var(--seg)}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.chip.with-dot{align-items:center;gap:6px;display:inline-flex}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.chip-grid .chip{padding:0 4px;font-size:12px}.preset-dot{border-radius:4px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000024}.menu{flex:none}.popover{z-index:40;border:1px solid var(--line);background:var(--panel);max-height:min(560px,100vh - 72px);box-shadow:0 18px 40px -12px var(--shadow);border-radius:14px;padding:12px;position:fixed;overflow-y:auto}.popover.list-popover{padding:6px}.popover-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.popover-head strong{font-size:15px}.popover-divider{background:var(--line);height:1px;margin:10px 0}.menu-row{width:100%;height:36px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-size:13px;font-weight:500;display:flex;position:relative}.menu-row span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-row small{font-family:var(--font-mono);color:var(--muted);font-size:11px;font-weight:400}.menu-row:hover:not(:disabled){background:var(--seg)}.menu-row.active{background:var(--accent-soft)}.menu-row.active small{color:var(--accent)}.menu-row.danger{color:var(--danger)}.menu-row.check-row{padding-left:6px}.menu-check{width:20px;height:20px;color:var(--accent);place-items:center;display:grid;flex:none!important}.menu-row.file-row{cursor:pointer}.menu-row.file-row input{opacity:0;cursor:pointer;position:absolute;inset:0}.menu-row.file-row:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.camera-popover .field-label{margin:10px 0 6px}.camera-popover .field-label:first-child{margin-top:0}.camera-popover .check{margin:6px 0}.project-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.project-list li{border-radius:10px;align-items:center;gap:4px;display:flex}.project-list li.active{background:var(--accent-soft)}.project-open{min-width:0;color:var(--ink);text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.project-open span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13.5px;font-weight:600;overflow:hidden}.project-open small{color:var(--muted);font-size:11.5px}.project-list li.active .project-open small{color:var(--accent)}.project-delete{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:7px;place-items:center;margin-right:4px;display:grid}.project-delete:hover{color:var(--danger);background:var(--danger-soft)}.project-empty{color:var(--muted);margin:4px 0;font-size:13px}.side-panel{background:var(--panel);scrollbar-gutter:stable;min-height:0;overflow:auto}.side-panel.right{border-left:1px solid var(--line);grid-area:right}.tool-dock{scrollbar-gutter:auto;border-right:1px solid var(--line);grid-area:left;display:flex;overflow:hidden}.tool-rail{border-right:1px solid var(--line);flex-direction:column;flex:none;align-items:stretch;gap:4px;width:88px;padding:10px 8px;display:flex;overflow-y:auto}.rail-button{min-height:58px;color:var(--ink-2);background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 4px 6px;display:flex}.rail-button span{text-align:center;overflow-wrap:anywhere;font-size:11px;font-weight:500;line-height:1.15}.rail-button:hover:not(.active){background:var(--seg);color:var(--ink)}.rail-button.active{background:var(--accent);color:var(--on-accent)}.rail-button.active span{font-weight:600}.rail-button{position:relative}.rail-key{font:600 12px var(--font-mono);color:var(--ink-2);line-height:1;position:absolute;top:3px;right:4px}.rail-button.active .rail-key{color:var(--on-accent)}.tool-panel{scrollbar-gutter:stable;flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.panel-section{padding:14px 16px}.panel-section+.panel-section{border-top:1px solid var(--line)}.panel-section.grow{flex:1}.tool-hint{color:var(--muted);margin:12px 0 0;font-size:12.5px;line-height:1.5}.tool-hint:first-of-type{margin-top:0}.panel-section h2,.modal h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:11px;font-weight:600}.modal h2{letter-spacing:-.01em;text-transform:none;color:var(--ink);margin:0 0 8px;font-size:17px;font-weight:600}.panel-head{z-index:1;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex;position:sticky;top:0}.panel-head-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:8px;flex:none;place-items:center;display:grid}.panel-head-text{flex:1;min-width:0}.panel-head-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;display:block;overflow:hidden}.panel-head-text small{color:var(--muted);margin-top:1px;font-size:12px;display:block}.panel-head+.panel-section{border-top:0}.selection-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.selection-list li{color:var(--ink-2);font-size:13px}.hint,.panel-note,.readout{color:var(--muted);margin:6px 0 10px;font-size:12.5px;line-height:1.45}.warning{color:var(--warning);font-size:13px}.field-label{color:var(--muted);margin:12px 0 8px;font-size:12px}.panel-section>.field-label:first-child{margin-top:0}.field{color:var(--muted);gap:5px;margin-bottom:10px;font-size:12px;display:grid}.field input,.field select{border:1px solid var(--line-strong);background:var(--field);width:100%;min-width:0;height:34px;color:var(--ink);border-radius:8px;padding:0 10px;font-size:13px}.field input.mono,.field-pair .field input{font-family:var(--font-mono);font-weight:500}.field input:focus,.field select:focus,.search-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field input[type=color]{width:56px;padding:3px}.field small,.field-error{color:var(--danger);font-size:12px}.field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px;display:grid}.check{color:var(--ink);align-items:center;gap:8px;margin:8px 0;font-size:13px;display:flex}.check input{accent-color:var(--accent)}.room-row{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.room-row .field{margin-bottom:10px}.room-row .text-button{height:34px;margin-bottom:10px}.text-button{color:var(--accent);background:0 0;border:0;padding:0 8px;font-size:13px;font-weight:500}.text-button:hover{text-decoration:underline}.search-field{margin-bottom:10px;display:block;position:relative}.search-field .icon{color:var(--muted);pointer-events:none;position:absolute;top:9px;left:10px}.search-field input{border:1px solid var(--line-strong);background:var(--field);width:100%;height:33px;color:var(--ink);border-radius:8px;padding:0 10px 0 33px;font-size:13px}.group-chips{flex-wrap:wrap;gap:6px;padding-bottom:6px;display:flex}.group-chip{border:1px solid var(--line-strong);height:26px;color:var(--ink-2);background:0 0;border-radius:999px;flex:none;padding:0 11px;font-size:12px;font-weight:500}.group-chip:hover:not(.active){background:var(--seg)}.group-chip.active{background:var(--ink);border-color:var(--ink);color:var(--panel);font-weight:600}.catalog{gap:1px;margin-top:6px;display:grid}.catalog-section{margin-top:14px}.catalog-section:first-of-type{margin-top:8px}.catalog-group{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;padding:0 8px;font-size:11px;font-weight:600}.catalog-item{border-radius:9px;align-items:center;gap:6px;height:48px;padding:0 6px 0 8px;display:flex}.catalog-item:hover{background:var(--seg)}.catalog-item.active{background:var(--accent-soft)}.catalog-pick{min-width:0;height:100%;color:var(--ink);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:0;font-size:13px;font-weight:500;display:flex}.catalog-item.active .catalog-pick{color:var(--accent);font-weight:600}.catalog-pick span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.catalog-pick small{font-family:var(--font-mono);color:var(--muted);font-size:11px;font-weight:400}.catalog-item i{border:1px solid var(--line-strong);border-radius:9px;flex:none;width:36px;height:36px}.catalog-thumb{background:var(--seg);object-fit:contain;border-radius:9px;flex:none;width:36px;height:36px}.design-count{background:var(--seg);min-width:18px;height:18px;color:var(--muted);text-align:center;border-radius:999px;flex:none;padding:0 5px;font-size:10.5px;font-style:normal;font-weight:600;line-height:18px}.catalog-item.active .design-count{background:var(--accent);color:var(--on-accent)}.design-flyout{z-index:60;background:var(--panel);border:1px solid var(--line-strong);width:min(260px,100vw - 16px);max-height:calc(100vh - 16px);box-shadow:var(--shadow-pop,0 12px 32px -8px #0f172047);border-radius:12px;gap:2px;padding:8px;display:grid;position:fixed;overflow-y:auto}.design-flyout:before{content:"";width:12px;position:absolute;top:0;bottom:0;left:-12px}.design-option{height:48px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:0 8px;font-size:13px;font-weight:500;display:flex}.design-option:hover{background:var(--seg)}.design-option.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.design-option span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.design-option small{font-family:var(--font-mono);color:var(--muted);font-size:11px;font-weight:400}.design-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.design-grid .tile{padding:6px}.design-grid .tile .catalog-thumb{width:100%;height:56px}.catalog-color{border:1px solid var(--line-strong);background:0 0;border-radius:6px;flex:none;width:26px;height:22px;padding:0}.swatch-grid{flex-wrap:wrap;gap:8px;display:flex}.swatch{background:0 0;border:0;border-radius:50%;width:26px;height:26px;padding:0}.swatch i{border:1px solid var(--line-strong);border-radius:50%;width:100%;height:100%;display:block}.swatch.active{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent)}.swatch-none{background:repeating-linear-gradient(45deg, var(--panel) 0 4px, var(--line-strong) 4px 8px)}.tile-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:4px;display:grid}.tile{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:9px;padding:4px;display:block}.tile:hover:not(.active):not(:disabled){border-color:var(--line-strong)}.tile i.texture-swatch{border:1px solid var(--line);background-position:50%;background-size:cover;border-radius:6px;width:100%;height:36px;display:block}.tile span{color:var(--ink-2);overflow-wrap:anywhere;margin-top:5px;font-size:10.5px;line-height:1.2;display:block}.tile.active{border:1.5px solid var(--accent);background:var(--accent-soft);padding:3.5px}.tone-row{gap:8px;margin-bottom:8px;display:flex}.tone-row button{border:1px solid var(--line-strong);border-radius:7px;width:36px;height:28px;padding:0}.tone-row button.active{outline:2px solid var(--accent);outline-offset:2px}.facing-pad{grid-template-columns:repeat(3,36px);gap:4px;width:max-content;margin-bottom:10px;display:grid}.facing-pad .button{width:36px;height:36px;min-height:36px;padding:0;font-size:16px;line-height:1}.facing-pad button:first-child{grid-column:2}.facing-pad button:nth-child(2){grid-area:2/1}.facing-pad button:nth-child(3){grid-area:2/3}.facing-pad button:nth-child(4){grid-area:3/2}.viewport-stage{grid-area:viewport;min-width:0;min-height:0;position:relative}.canvas-host{position:absolute;inset:0}.canvas-host.is-hidden{visibility:hidden;pointer-events:none}.canvas-host canvas{touch-action:none;width:100%;height:100%;display:block}.viewport-stage.is-move canvas{cursor:grab}.viewport-stage.is-move canvas:active{cursor:grabbing}.viewport-stage.is-rotate canvas{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' fill='none'%3E%3Cpath d='M9 8.2A8 8 0 0 1 20.6 10' stroke='%231c2430' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M18.4 7.2h3.2V4' stroke='%231c2430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 19.8A8 8 0 0 1 7.4 18' stroke='%231c2430' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M9.6 20.8H6.4V24' stroke='%231c2430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 14 14,grab}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.measure{color:#fff;font-family:var(--font-mono);white-space:nowrap;background:#1c2430;border-radius:999px;padding:3px 8px;font-size:11.5px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1.5px #ffffffd9}.measure.is-entry{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 2px #fff}.measure.is-dimension{color:#3a4552;background:#f4f6f8;box-shadow:0 0 0 1px #c5ced6}.measure.is-gap{background:#c2410c}.measure.is-warn{background:#dc2626;font-weight:600}.statusbar{height:var(--chrome-status);background:var(--panel);border-top:1px solid var(--line);color:var(--muted);grid-area:status;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:0 14px;font-size:12px;display:grid}.statusbar span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.statusbar span:nth-child(n+2){font-family:var(--font-mono)}.status-warning{color:var(--warning);font-weight:600}.status-level{color:var(--accent)}.level-badge{z-index:3;border:1px solid var(--line);background:var(--panel);color:var(--ink);box-shadow:0 1px 2px var(--shadow);pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:14px;left:16px}.level-badge:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px}.level-hint{z-index:3;border:1px solid var(--line);background:var(--panel);width:min(400px,100% - 32px);color:var(--ink);box-shadow:0 18px 40px -12px var(--shadow);border-radius:14px;justify-items:start;gap:8px;padding:16px 18px;display:grid;position:absolute;top:56px;left:50%;transform:translate(-50%)}.level-hint p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.5}.modal-backdrop{background:var(--backdrop);z-index:20;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(400px,100% - 32px);box-shadow:0 30px 60px -20px var(--shadow);border-radius:16px;padding:22px}.modal p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.55}.toast{background:var(--toast-bg);color:var(--toast-ink);box-shadow:0 10px 30px -10px var(--shadow);z-index:21;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:500;position:fixed;bottom:46px;left:50%;transform:translate(-50%)}.tour-root{z-index:40;position:fixed;inset:0}.tour-blocker{position:absolute;inset:0}.tour-blocker.is-dim{background:var(--tour-shade)}.tour-hole{pointer-events:none;box-shadow:0 0 0 9999px var(--tour-shade);border-radius:14px;position:absolute}.tour-card{background:var(--panel);border:1px solid var(--line);width:min(352px,100vw - 32px);box-shadow:0 30px 60px -20px var(--shadow);border-radius:16px;padding:20px;position:absolute}.tour-card:focus{outline:none}.tour-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.tour-kicker{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:11px;font-weight:600}.tour-count{color:var(--muted);font-family:var(--font-mono);margin:0;font-size:12px}.tour-card h2{letter-spacing:-.01em;margin:10px 0 0;font-size:18px;font-weight:600}.tour-body{color:var(--ink-2);margin:6px 0 0;font-size:14px;line-height:1.55}.tour-dots{gap:5px;margin-top:16px;display:flex}.tour-dots i{background:var(--line-strong);border-radius:2px;flex:1;height:4px}.tour-dots i.on{background:var(--accent)}.tour-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:18px;display:flex}.tour-nav{gap:8px;display:flex}.tour-skip{color:var(--muted);background:0 0;border:0;padding:8px 2px;font-size:13px;font-weight:500}.tour-skip:hover{color:var(--ink)}@media (width<=960px){.samples ul,.view-cards,.steps,.features,.landing-more .rules,.landing-more .faq{grid-template-columns:minmax(0,1fr)}.landing-layout{grid-template-columns:1fr;gap:48px;padding:32px 20px 72px}.landing-header{padding:18px 20px 0}.landing-links{display:none}.landing-more{padding:24px 20px}.landing-more section{margin-top:72px}.landing-more h2{font-size:32px}.landing-more .rules{gap:28px;padding:28px 20px}.landing-more .cta{border-radius:24px;padding:44px 20px}.cta h2{font-size:32px}.landing-footer{padding:56px 20px 40px}.landing h1{font-size:42px}.landing .lede{font-size:17px}.hero-button{flex:100%;justify-content:center;height:52px}.landing-open{display:none}h1{font-size:40px}}@media (width<=1200px){.editor{grid-template-columns:minmax(0,1fr);grid-template-areas:"top""viewport""status"}.pill-button.only-compact{display:inline-flex}.name-input{width:112px}.side-panel,.tool-dock{z-index:5;top:var(--chrome-top);bottom:var(--chrome-status);background:var(--panel);grid-area:viewport;width:min(360px,92vw);transition:transform .18s;position:absolute;transform:translate(-105%)}.side-panel.right{left:auto;right:0;transform:translate(105%)}.side-panel.left.open,.side-panel.right.open{transform:none}.topbar .pill-button:not(.only-compact),.topbar .export-trigger{gap:0;padding:0 9px;font-size:0}:is(.topbar .pill-button:has(>svg~svg)>svg:first-of-type,.topbar .export-trigger>svg:first-of-type){display:inline}:is(.topbar .pill-button:has(>svg~svg)>svg:last-of-type,.topbar .export-trigger>svg:last-of-type){display:none}}@media (width<=1100px){.topbar{gap:4px;padding-inline:8px}.topbar .theme-switch,.topbar .name-input{display:none}.topbar .pill-button.only-compact{gap:0;padding:0 9px;font-size:0}.topbar .toolbar-rule{display:none}.only-narrow{display:block}}@media (width<=640px){.topbar{gap:6px;padding-inline:10px}.topbar .only-compact{order:-1}.topbar .name-input{display:none}.statusbar{font-size:11px}.demo-banner{z-index:4;max-width:calc(100vw - 16px);font-size:12px}}.promo{--promo-ink:#fbf8f2;--promo-scrim:#0e141a94;--promo-bar:#070a0d;background:var(--promo-bar);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex;position:fixed;inset:0;overflow:hidden}.promo-stage{background:#cfd8de;border-radius:6px;flex:none;position:relative;overflow:hidden;container-type:inline-size}.promo-stage canvas{width:100%;height:100%;display:block}.promo-shade{pointer-events:none;background:linear-gradient(#0000 66%,#0a0e1280 100%);position:absolute;inset:0}.promo-caption{max-width:62cqw;color:var(--promo-ink);text-shadow:0 2px 18px #00000059;pointer-events:none;position:absolute;bottom:7cqw;left:6cqw}.promo-caption h1{text-wrap:balance;letter-spacing:-.02em;margin:0;font-size:5.2cqw;font-weight:700;line-height:1.02}.promo-caption p{text-wrap:balance;opacity:.92;margin:1.2cqw 0 0;font-size:2.1cqw;font-weight:500}.promo-caption.is-hero{text-align:center;background:radial-gradient(ellipse at center, var(--promo-scrim) 0%, transparent 70%);flex-direction:column;justify-content:center;align-items:center;max-width:none;display:flex;inset:0}.promo-caption.is-hero h1{font-size:9cqw}.promo-caption.is-hero p{font-size:2.6cqw}.promo-mark{background:var(--accent);clip-path:polygon(50% 8%,92% 44%,82% 44%,82% 92%,18% 92%,18% 44%,8% 44%);border-radius:1.4cqw;width:6cqw;height:6cqw;margin-bottom:1.6cqw}.promo-cta{background:var(--accent);color:#fff;text-shadow:none;border-radius:999px;margin-top:2.4cqw;padding:1.1cqw 2.6cqw;font-size:2cqw;font-weight:600}.promo-stage.is-portrait .promo-caption{max-width:none;bottom:14cqw;left:8cqw;right:8cqw}.promo-stage.is-portrait .promo-caption h1{font-size:10cqw}.promo-stage.is-portrait .promo-caption p{margin-top:2.4cqw;font-size:4.4cqw}.promo-stage.is-portrait .promo-caption.is-hero h1{font-size:15cqw}.promo-stage.is-portrait .promo-caption.is-hero p{font-size:5cqw}.promo-stage.is-portrait .promo-mark{border-radius:3cqw;width:13cqw;height:13cqw}.promo-stage.is-portrait .promo-cta{margin-top:5cqw;padding:2.2cqw 5cqw;font-size:4.2cqw}.promo-dip{pointer-events:none;background:#05070a;position:absolute;inset:0}.promo-player{color:#e8edf1;align-items:center;gap:8px;width:min(100%,640px);display:flex}.promo-player .button{min-width:44px;color:var(--text,#1c2430);font-variant-numeric:tabular-nums;justify-content:center}.promo-seek{min-width:0;accent-color:var(--accent);cursor:pointer;flex:1}.promo-time{font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.85;font-size:13px}.promo-controls{background:var(--panel,#fff);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:6px;display:flex}.promo-error{color:#f3b4a8;font-size:13px}.print-page{color:#1c2430;background:#dfe4e8;min-height:100vh;padding:16px}.print-toolbar{background:#fff;border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;max-width:1200px;margin:0 auto 16px;padding:10px 14px;display:flex}.print-check{align-items:center;gap:6px;font-size:13px;display:flex}.print-note{color:#5d6b7c;flex-basis:100%;margin:0;font-size:12px}.print-note.is-warning{color:#9a3412;font-weight:600}.print-sheet-wrap{justify-content:center;display:flex;overflow:auto}.print-sheet{background:#fff;flex:none;box-shadow:0 10px 30px #161c242e}@media print{.print-page{background:#fff;min-height:0;padding:0}.print-toolbar{display:none}.print-sheet-wrap{display:block;overflow:visible}.print-sheet{box-shadow:none;display:block}}.modal.quantities{width:min(900px,100% - 32px);max-height:calc(100vh - 48px);padding:24px;overflow-y:auto}.modal.quantities h2{font-size:18px}.modal.quantities h3{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:20px 0 10px;font-size:11px;font-weight:600}.quantities-note{color:var(--muted);margin:4px 0 14px;font-size:12.5px;line-height:1.5}.quantities-table-wrap{overflow-x:auto}.quantities-table{border-collapse:collapse;width:100%;font-size:13px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.quantities-table th,.quantities-table td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 8px}.quantities-table th:first-child,.quantities-table td:first-child,.quantities-table th:nth-child(2),.quantities-table td:nth-child(2){text-align:left}.quantities-table td:first-child,.quantities-table td:nth-child(2){font-family:IBM Plex Sans,sans-serif}.quantities-table th{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Sans,sans-serif;font-size:11px;font-weight:600}.quantities-table tfoot td{border-bottom:0;font-weight:600}.quantities-prices{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 12px;display:grid}.quantities-total{background:var(--panel-2);border:1px solid var(--line);color:var(--ink-2);border-radius:10px;margin:14px 0 0;padding:14px 16px;font-size:14px}.quantities-total strong{font-family:var(--font-mono);color:var(--ink);margin-left:8px;font-size:16px}.promo-empty{color:#e8edf1;text-align:center;max-width:420px;font-size:15px;line-height:1.5}
