.lib-filter[data-v-d28a54f7]{gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.lib-filter input[data-v-d28a54f7]{flex:1 1 220px;min-width:180px}.boats[data-v-d28a54f7]{align-items:start}.boat[data-v-d28a54f7]{padding:0;overflow:hidden}.boat-head[data-v-d28a54f7]{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;font:inherit;background:none;border:0;padding:14px 16px;cursor:pointer;color:inherit}.boat-head[data-v-d28a54f7]:hover,.boat.open .boat-head[data-v-d28a54f7]{background:var(--canvas)}.boat-sails[data-v-d28a54f7]{display:flex;flex-direction:column;gap:6px;padding:10px 16px 14px}.boat-sails .btn[data-v-d28a54f7]{justify-content:flex-start;text-align:left}.mono[data-v-d28a54f7]{font-variant-numeric:tabular-nums}.fleet[data-v-d28a54f7]{color:var(--ok)}.measured[data-v-d28a54f7]{background:var(--canvas);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.sail-btn[data-v-d28a54f7]{flex-direction:column;align-items:flex-start;gap:2px;border-radius:12px}.viewer3d[data-v-14f1a37a]{height:560px}@media (max-width: 640px){.viewer3d[data-v-14f1a37a]{height:470px}}.editable[data-v-9262c1da]{touch-action:none}.hit[data-v-9262c1da]{cursor:grab;outline:none}.hit[data-v-9262c1da]:active{cursor:grabbing}.hit[data-v-9262c1da]:focus-visible{stroke:#a63a15;stroke-width:3}.designer3d[data-v-a3c5f97f]{height:520px}@media (max-width: 900px){.designer3d[data-v-a3c5f97f]{height:430px}}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #F7F5F0;--surface: #FFFFFF;--ink: #15212C;--ink-2: #4A5561;--line: #E4DFD5;--line-2: #D3CCBF;--accent: #A63A15;--accent-2: #8C2F0F;--accent-soft: #F6E7DF;--ok: #1E6B3A;--err: #A1261B;--serif: "Fraunces Variable", Georgia, "Times New Roman", serif;--sans: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: 14px;--shadow: 0 1px 2px rgba(21,33,44,.04), 0 8px 28px rgba(21,33,44,.06);--sea: var(--ink);--sea-2: var(--ink);--rust: var(--accent);--canvas: #EFEBE3;--muted: var(--ink-2);font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}img{max-width:100%;display:block}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent)}h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.15;letter-spacing:-.01em;font-optical-sizing:auto;margin:0 0 .5em}h1{font-size:clamp(2.2rem,4.6vw,3.6rem)}h2{font-size:clamp(1.6rem,2.8vw,2.2rem)}h3{font-size:1.3rem}p{margin:0 0 1em}.wrap{max-width:1200px;margin:0 auto;padding:0 24px}.section{padding:72px 0}.eyebrow,.cat{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:600;color:var(--accent)}.lead{font-size:1.15rem;color:var(--ink-2);max-width:640px}.muted{color:var(--ink-2)}.small{font-size:.86rem}.err{color:var(--err)}.ok{color:var(--ok)}.spacer{flex:1}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:24px}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.topbar{position:sticky;top:0;z-index:20;background:#f7f5f0db;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}.topbar.scrolled{border-bottom-color:var(--line)}.topbar .wrap{display:flex;align-items:center;gap:20px;height:68px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:1.35rem;font-weight:600;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.brand img{width:28px;height:28px}.nav{white-space:nowrap;display:flex;gap:22px}.nav a{text-decoration:none;color:var(--ink-2);font-size:.95rem}.nav a:hover,.nav a.router-link-active{color:var(--ink)}select.lang{border:1px solid var(--line-2);border-radius:999px;padding:6px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--accent);border-radius:999px;padding:11px 22px;font:600 .95rem/1.2 var(--sans);background:var(--accent);color:#fff;cursor:pointer;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s}.btn:hover{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.outline{background:transparent;color:var(--ink);border-color:var(--line-2)}.btn.outline:hover{border-color:var(--ink);color:var(--ink);background:transparent}.btn.rust{background:var(--accent);border-color:var(--accent)}.btn.text{background:none;border-color:transparent;color:var(--ink);padding:6px 10px}.btn.text:hover{color:var(--accent);background:none}.btn.small{padding:7px 14px;font-size:.85rem}.arrow{transition:transform .2s;display:inline-block}a:hover .arrow,.choice:hover .arrow{transform:translate(4px)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.subcard{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:12px;background:var(--surface)}.subcard h4{margin:0 0 10px;display:flex;align-items:center;gap:8px;font-size:1.05rem}.notice{background:var(--accent-soft);border:1px solid #EBCFC1;border-radius:12px;padding:12px 16px}.chip{display:inline-block;padding:3px 11px;border-radius:999px;font-size:.78rem;font-weight:500;background:#efebe3;color:var(--ink)}.chip.done{background:#e3f0e6;color:#1b5e20}.chip.failed{background:#f8e1dd;color:#8c1d18}.chip.running,.chip.queued{background:#e5ebf1;color:#173d5f}.chip.paid{background:var(--accent-soft);color:#7e2a0d}label.field{display:flex;flex-direction:column;gap:6px;font-size:.82rem;color:var(--ink-2);font-weight:500}label.field input,label.field select,label.field textarea{font:400 1rem/1.4 var(--sans);padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--ink);min-width:0;transition:border-color .15s,box-shadow .15s}label.field input:hover,label.field select:hover{border-color:#b9b1a2}label.field input:focus,label.field select:focus,label.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #15212c1f}.fields{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:18px;height:18px}.tabs{display:flex;gap:4px;padding:4px;margin:18px 0 26px;background:#ece8e0;border-radius:999px;width:fit-content;max-width:100%}.tabs button{background:none;border:0;padding:9px 18px;font:500 .95rem var(--sans);cursor:pointer;color:var(--ink);border-radius:999px;white-space:nowrap;transition:background .15s,color .15s}.tabs button:hover{background:#15212c12}.tabs button.on{background:var(--ink);color:#fff;font-weight:600;box-shadow:0 1px 3px #15212c40}@media (max-width: 640px){.tabs{width:100%;border-radius:16px;display:grid;grid-template-columns:repeat(2,1fr)}.tabs button:last-child:nth-child(odd){grid-column:1 / -1}.tabs button{padding:10px 8px;border-radius:12px;white-space:normal;line-height:1.2}}@media (prefers-reduced-motion: reduce){.tabs button{transition:none}}table.data{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}table.data th,table.data td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}table.data th{color:var(--ink-2);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.preview{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;aspect-ratio:4 / 3}img.result{width:100%;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface)}.hero{position:relative;overflow:hidden;background:var(--paper)}.hero-media{position:absolute;top:0;right:0;bottom:0;left:18%;background-size:cover;background-position:70% 40%}.hero-media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#f7f5f0,#f7f5f0f7 34%,#f7f5f099,#f7f5f000 66%)}.hero-inner{position:relative;padding:120px 0 128px;max-width:620px}.hero h1{margin-bottom:18px}.hero .lead{color:#2f3a45}.hero-cta{margin-top:28px}@media (max-width: 860px){.hero-media{position:relative;height:240px;background-position:55% 45%}.hero-media:after{background:linear-gradient(0deg,#f7f5f0,#f7f5f000 45%)}.hero-inner{padding:8px 0 48px}.hero{background:var(--paper)}}.section-head{display:flex;align-items:end;gap:24px;margin-bottom:28px;flex-wrap:wrap}.section-head h2{margin:0}.choice{text-decoration:none;color:inherit;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:box-shadow .25s,transform .25s,border-color .25s}.choice:hover{box-shadow:var(--shadow);transform:translateY(-3px);border-color:var(--line-2);color:inherit}.choice .media{aspect-ratio:4 / 3;overflow:hidden;background:#dfe7ee}.choice .media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.choice:hover .media img{transform:scale(1.04)}.choice-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;gap:6px}.choice .name{font-family:var(--serif);font-size:1.75rem;font-weight:500;line-height:1.1}.choice-body p{flex:1;color:var(--ink-2);margin:6px 0 14px}.choice-foot{display:flex;align-items:baseline;gap:6px;border-top:1px solid var(--line);padding-top:14px}.price{font-family:var(--serif);font-size:1.35rem;font-weight:600;color:var(--ink)}.go{margin-left:auto;font-weight:600;color:var(--accent)}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;counter-reset:s}.step{border-top:1px solid var(--ink);padding-top:18px}.step .n{font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--accent)}.step p{margin-top:10px;font-size:1.05rem}.band{background:var(--ink);color:#edeae3;border-radius:22px;padding:48px;display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center}.band h2{color:#fff}.band .muted{color:#b9c0c7}.band .btn{background:#fff;color:var(--ink);border-color:#fff}.band .btn:hover{background:var(--accent-soft)}@media (max-width: 760px){.band{grid-template-columns:1fr;padding:32px 24px}}.product-hero{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;padding:56px 0 24px}.product-hero figure{margin:0}.product-hero img{border-radius:20px;border:1px solid var(--line);aspect-ratio:3 / 2;object-fit:cover;width:100%}@media (max-width: 860px){.product-hero{grid-template-columns:1fr;gap:24px;padding-top:28px}.product-hero figure{order:-1}}ul.ticks{padding-left:0;list-style:none;margin:0 0 1em}ul.ticks li{padding:10px 0 10px 30px;position:relative;border-bottom:1px solid var(--line)}ul.ticks li:last-child{border-bottom:0}ul.ticks li:before{content:"";position:absolute;left:4px;top:18px;width:12px;height:7px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}.other{display:flex;gap:16px;align-items:center;text-decoration:none;color:inherit;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .2s}.other:hover{border-color:var(--line-2);color:inherit}.other img{width:128px;height:86px;object-fit:cover;border-radius:10px;flex:none}.page-head{padding:40px 0 8px}.editor{display:grid;gap:32px;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}.editor>:last-child{position:sticky;top:88px}@media (max-width: 900px){.editor{grid-template-columns:1fr}.editor>:last-child{position:static;order:-1}.nav a.hide-sm{display:none}}.editor h3{margin-top:28px;font-size:1.2rem}.editor>div>h3:first-child,.editor>div>.row:first-child+h3{margin-top:8px}.auth{max-width:440px;margin:56px auto;padding:32px}.progress{height:4px;background:#efebe3;border-radius:2px;overflow:hidden}.progress div{height:100%;width:40%;background:var(--accent);animation:slide 1.4s infinite ease-in-out}@keyframes slide{0%{margin-left:-40%}to{margin-left:100%}}footer{border-top:1px solid var(--line);margin-top:88px;padding:40px 0 48px;color:var(--ink-2);font-size:.88rem}footer .brand{font-size:1.15rem;margin-bottom:8px}footer nav{display:flex;gap:18px;flex-wrap:wrap}footer a{color:var(--ink-2)}footer p{margin:6px 0}.foot-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:32px}@media (max-width: 760px){.foot-grid{grid-template-columns:1fr}}.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px}.skip:focus{left:8px;color:#fff}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}main:focus{outline:none}.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}.choice,.choice .media img,.arrow,.btn{transition:none}.choice:hover,.choice:hover .media img{transform:none}.progress div{animation:none;width:100%}}@media (max-width: 480px){.brand span.name{display:none}.topbar .wrap{gap:10px}.nav{gap:14px}.wrap{padding:0 18px}}.docs article{max-width:780px}.docs h2{font-size:1.45rem;margin-top:44px;scroll-margin-top:90px}.docs p{font-size:1.04rem}.docs .toc{margin:24px 0 8px}.docs .toc ol{margin:8px 0 0;padding-left:20px;columns:2}.docs .toc li{margin:3px 0}@media (max-width: 640px){.docs .toc ol{columns:1}}pre.formula{background:#efebe3;border-left:3px solid var(--accent);border-radius:8px;padding:14px 16px;overflow-x:auto;font:500 .95rem/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);white-space:pre}.methods{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.methods legend{padding:0;margin-bottom:8px}.method{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line, #E4DFD6);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s}.method:hover{border-color:var(--ink)}.method.on{border-color:var(--accent);background:var(--accent-soft)}.method input{margin-top:4px;accent-color:var(--accent)}.method>span{display:flex;flex-direction:column;gap:4px}@media (max-width: 760px){.methods{grid-template-columns:1fr}.card[style*="span 2"]{grid-column:auto!important}}@media (prefers-reduced-motion: reduce){.method{transition:none}}fieldset.plain{border:0;padding:0;margin:0}fieldset.plain legend{padding:0;margin-bottom:6px}.offline-bar{position:sticky;top:64px;z-index:40;background:#15212c;color:#fff;text-align:center;padding:8px 16px;font-size:.92rem}.seg-switch{display:inline-flex;gap:4px;padding:4px;margin-bottom:10px;background:#ece8e0;border-radius:999px}.seg-switch button{border:0;background:none;padding:7px 18px;border-radius:999px;font:600 .95rem var(--sans);color:var(--ink);cursor:pointer;min-width:56px}.seg-switch button[aria-pressed=true]{background:var(--ink);color:#fff}.edit-toggle{margin:0 0 10px 10px;vertical-align:top}.usermenu{position:relative}.avatar{width:38px;height:38px;border-radius:50%;border:0;background:var(--ink);color:#fff;font:600 1rem var(--sans);cursor:pointer}.avatar:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.usermenu .menu{position:absolute;right:0;top:46px;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #15212c29;padding:6px;z-index:60;display:flex;flex-direction:column}.usermenu .menu-head{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:4px;overflow-wrap:anywhere}.usermenu .menu a,.usermenu .menu button{text-align:left;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink);background:none;border:0;font:inherit;cursor:pointer}.usermenu .menu a:hover,.usermenu .menu button:hover{background:#f2eee6}.usermenu .menu-logout{color:var(--err)!important}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:600 .98rem var(--sans);text-decoration:none}.oauth-btn:hover{border-color:var(--ink)}.or-line{display:flex;align-items:center;gap:10px;color:var(--ink-2);font-size:.9rem}.or-line:before,.or-line:after{content:"";flex:1;border-top:1px solid var(--line)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px}.kv dt{color:var(--ink-2)}.kv dd{margin:0;overflow-wrap:anywhere;min-width:0}.bignum{font:600 2.2rem var(--serif);color:var(--ink);line-height:1.1}.verify-bar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:center;background:var(--accent-soft);border-bottom:1px solid #EBCFC1;padding:9px 16px;font-size:.93rem;text-align:center}.verify-bar .btn{background:#fff}
