:root{--bg:#fbfbfd;--surface:#fff;--surface2:#f5f5f7;--surface3:#e8e8ed;--text:#1d1d1f;--muted:#6e6e73;--faint:#86868b;--line:#00000014;--accent:#0071e3;--accent-h:#0077ed;--link:#06c;--nav:#fbfbfdcc;--inv:#1d1d1f;--inv-text:#f5f5f7;--inv-muted:#a1a1a6;--inv-link:#2997ff;--inv-2:#2c2c2e;--stripe1:#f0f0f3;--stripe2:#e7e7ec;--ok:#1f9d48;--err:#d70015;--track:#7676801f;--seg-on:#fff;--mono:ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#000;--surface:#1c1c1e;--surface2:#161617;--surface3:#2c2c2e;--text:#f5f5f7;--muted:#a1a1a6;--faint:#8d8d93;--line:#ffffff1a;--link:#2997ff;--nav:#161617cc;--inv:#f5f5f7;--inv-text:#1d1d1f;--inv-muted:#6e6e73;--inv-link:#06c;--inv-2:#e8e8ed;--stripe1:#1c1c1e;--stripe2:#232326;--err:#ff453a;--ok:#30d158;--track:#7676803d;--seg-on:#636366;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;transition:background .3s,color .3s}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}input,textarea,button{color:inherit;font-family:inherit}input[type=range]{accent-color:var(--accent)}button:disabled{opacity:.5;cursor:default!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.nav{z-index:20;background:var(--nav);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1180px;height:52px;margin:0 auto;padding:0 22px;display:flex}.brand{cursor:pointer;letter-spacing:-.02em;white-space:nowrap;color:var(--text);align-items:center;gap:9px;font-size:17px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:var(--text);border-radius:7px;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.brand-mark:after{content:"";background:var(--bg);border-radius:50%;width:8px;height:8px}.nav-links{align-items:center;gap:24px;font-size:13px;display:flex}.nav-link{color:var(--muted)}.nav-link:hover{color:var(--text);text-decoration:none}.nav-link.on{color:var(--text);font-weight:600}.theme-btn{background:var(--track);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:flex}.theme-btn span{border:1.5px solid var(--text);background:linear-gradient(90deg, var(--text) 50%, transparent 50%);border-radius:50%;width:14px;height:14px;display:block}@media (width<=480px){.nav-inner{padding:0 16px}.nav-links{gap:14px}.brand-text{display:none}}.hero{text-align:center;max-width:1080px;margin:0 auto;padding:104px 22px 64px}.hero-eyebrow{color:var(--muted);margin:0 0 14px;font-size:19px;font-weight:600}.hero h1{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(44px,7vw,80px);font-weight:700;line-height:1.04}.hero-sub{max-width:560px;color:var(--muted);text-wrap:pretty;margin:22px auto 0;font-size:21px;line-height:1.4}.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px;max-width:1080px;margin:0 auto;padding:0 22px;display:grid}.tile{cursor:pointer;background:var(--surface2);color:var(--text);border-radius:30px;flex-direction:column;justify-content:space-between;min-height:400px;padding:44px 40px;transition:transform .5s cubic-bezier(.2,.8,.2,1);display:flex}.tile:hover{text-decoration:none;transform:scale(1.012)}.tile.inv{background:var(--inv);color:var(--inv-text)}.tile-kicker{color:var(--muted);letter-spacing:.04em;margin:0;font-size:13px;font-weight:600}.tile h2{letter-spacing:-.03em;margin:10px 0 0;font-size:40px;line-height:1.08}.tile-desc{color:var(--muted);max-width:340px;margin:12px 0 0;font-size:19px;line-height:1.4}.tile-foot{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.tile-cta{color:var(--link);font-size:17px}.tile.inv .tile-kicker,.tile.inv .tile-desc{color:var(--inv-muted)}.tile.inv .tile-cta{color:var(--inv-link)}@media (width<=480px){.tile{min-height:340px;padding:32px 26px}.tile h2{font-size:34px}}.art-play{background:var(--inv-2);border-radius:50%;flex:none;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.art-play:after{content:"";border-top:16px solid #0000;border-bottom:16px solid #0000;border-left:26px solid var(--inv-text);margin-left:6px}.art-resize{flex:none;width:96px;height:96px;position:relative}.art-resize:before{content:"";border:2px solid var(--text);border-radius:22px;position:absolute;inset:0}.art-resize:after{content:"";background:var(--accent);border-radius:16px;width:58px;height:58px;position:absolute;bottom:0;left:0}.art-pdf{flex:none;width:96px;height:96px;position:relative}.art-pdf:before{content:"";background:var(--surface3);border-radius:12px;width:66px;height:86px;position:absolute;top:0;left:6px}.art-pdf span{background:var(--surface);width:66px;height:86px;box-shadow:0 0 0 1px var(--line), 0 6px 16px #00000014;letter-spacing:.02em;color:var(--err);border-radius:12px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:absolute;top:10px;left:24px}.art-json{font-family:var(--mono);letter-spacing:-.04em;font-size:46px;font-weight:500}.values{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;max-width:1080px;margin:0 auto;padding:104px 22px 40px;display:grid}.values h3{letter-spacing:-.02em;margin:0 0 8px;font-size:21px}.values p{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.tool-wrap{align-items:flex-start;gap:48px;max-width:1180px;margin:0 auto;padding:64px 22px 48px;display:flex}.tool-main{flex:1;min-width:0}.tool-eyebrow{color:var(--muted);margin:0;font-size:17px;font-weight:600}.tool-title{letter-spacing:-.035em;margin:6px 0 0;font-size:clamp(36px,5vw,56px);font-weight:700;line-height:1.05}@media (width<=480px){.tool-wrap{padding:40px 16px}}.card{background:var(--surface);box-shadow:0 0 0 1px var(--line);border-radius:22px}.err-text{color:var(--err)}.notice{background:var(--surface);box-shadow:0 0 0 1px var(--line);border-radius:14px;margin-top:16px;padding:12px 16px;font-size:14px;line-height:1.45}.notice b{color:var(--err);font-weight:600}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:980px;padding:11px 22px;font-size:15px}.btn-primary:hover:not(:disabled){background:var(--accent-h)}.btn-pill{background:var(--track);color:var(--link);cursor:pointer;white-space:nowrap;border:0;border-radius:980px;padding:10px 20px;font-size:15px}.btn-pill:hover:not(:disabled){background:var(--surface3)}.btn-plain{background:var(--track);color:var(--text);cursor:pointer;border:0;border-radius:980px;padding:9px 20px;font-size:15px}.btn-plain:hover:not(:disabled){background:var(--surface3)}.link-btn{color:var(--link);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0}.seg{background:var(--track);border-radius:9px;padding:2px;display:flex}.seg button{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;flex:1;padding:7px 14px;font-size:13px;font-weight:500;transition:background .15s}.seg button.on{background:var(--seg-on);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.field-label{color:var(--muted);font-size:13px;font-weight:600}.input{background:var(--track);color:var(--text);border:0;border-radius:10px;outline:0;width:100%;padding:10px 12px;font-size:15px;font-weight:400}.input:focus{box-shadow:0 0 0 2px var(--accent)}.progress{background:var(--track);border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--accent);border-radius:3px;height:100%;transition:width .15s}.drop{border:2px dashed var(--surface3);text-align:center;cursor:pointer;border-radius:18px;padding:48px 20px;transition:border-color .2s,background .2s}.drop:hover,.drop.over{border-color:var(--accent)}.drop.over{background:color-mix(in srgb, var(--accent) 6%, transparent)}.drop-title{margin:0;font-size:17px;font-weight:600}.drop-sub{color:var(--muted);margin:6px 0 0;font-size:14px}.done{flex-wrap:wrap;align-items:center;gap:18px;margin-top:20px;padding:24px 28px;display:flex}.done-check{background:var(--ok);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:21px;font-weight:600;display:flex}.done-text{flex:1;min-width:180px}.done-text p{margin:0}.done-title{letter-spacing:-.01em;font-size:19px;font-weight:600}.done-meta{color:var(--muted);overflow-wrap:anywhere;font-size:14px;margin-top:4px!important}.ad-label{letter-spacing:.08em;color:var(--faint);margin:0 0 8px;font-size:11px}.placeholder{background:repeating-linear-gradient(135deg, var(--stripe1) 0 10px, var(--stripe2) 10px 20px);font-family:var(--mono);color:var(--faint);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex}.ad-inline{margin-top:28px}.ad-inline .placeholder{border-radius:18px;height:120px}.ad-side{flex:none;width:300px;position:sticky;top:84px}.ad-side .placeholder{border-radius:18px;width:300px;height:600px}.more{border-top:1px solid var(--line);margin-top:72px;padding-top:28px}.more p{color:var(--muted);margin:0 0 14px;font-size:13px;font-weight:600}.more div{flex-wrap:wrap;gap:10px;display:flex}.more a{background:var(--surface2);color:var(--text);border-radius:980px;padding:10px 18px;font-size:15px}.more a:hover{background:var(--surface3);text-decoration:none}footer{background:var(--surface2);border-top:1px solid var(--line)}.foot{max-width:1180px;color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:16px;margin:0 auto;padding:22px;font-size:12px;display:flex}.foot div{gap:18px;display:flex}.foot a{color:var(--muted)}.prose{max-width:680px;margin:0 auto;padding:72px 22px 64px;font-size:17px;line-height:1.6}.prose h1{letter-spacing:-.035em;margin:0 0 24px;font-size:clamp(36px,5vw,48px);line-height:1.08}.prose p,.prose li{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.json-head{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:12px 18px;font-size:13px;display:flex}.json-area{resize:vertical;min-height:420px;font-family:var(--mono);tab-size:2;background:0 0;border:0;outline:0;flex:1;padding:16px 18px;font-size:13px;line-height:1.6}.json-out{min-height:420px;max-height:640px;font-family:var(--mono);white-space:pre-wrap;word-break:break-word;tab-size:2;flex:1;margin:0;padding:16px 18px;font-size:13px;line-height:1.6;overflow:auto}.chip{background:var(--track);cursor:pointer;border:0;border-radius:980px;padding:7px 13px;font-size:13px}.chip:hover{background:var(--surface3)}.sign-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));align-items:start;gap:24px;margin-top:22px;display:grid}.sig-pad{aspect-ratio:3;width:100%;box-shadow:0 0 0 1px var(--line);touch-action:none;cursor:crosshair;background:#fff;border-radius:14px;display:block}.sig-page{width:100%;max-width:420px;box-shadow:0 0 0 1px var(--line), 0 6px 20px #00000014;cursor:crosshair;-webkit-user-select:none;user-select:none;background:#fff;border-radius:6px;margin:0 auto;position:relative;overflow:hidden}.sig-page>img:first-child{width:100%;height:100%;display:block}.sig-ghost{pointer-events:none;outline:1.5px dashed var(--accent);outline-offset:2px;position:absolute}.pdf-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:36px;display:grid}.pdf-tool{text-align:left;background:var(--surface2);box-shadow:0 0 0 1px var(--line);cursor:pointer;border:0;border-radius:16px;flex-direction:column;gap:10px;padding:16px;transition:background .2s;display:flex}.pdf-tool:hover:not(:disabled){background:var(--surface)}.pdf-tool.on{background:var(--surface);box-shadow:0 0 0 2px var(--accent)}.pdf-tool-icon{background:var(--track);width:32px;height:32px;color:var(--text);border-radius:9px;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.pdf-tool.on .pdf-tool-icon{background:var(--accent);color:#fff}.pdf-tool-label{letter-spacing:-.01em;font-size:15px;font-weight:600}.file-list{box-shadow:0 0 0 1px var(--line);border-radius:14px;margin-top:22px;transition:box-shadow .2s;overflow:hidden}.file-list.over{box-shadow:0 0 0 2px var(--accent)}.file-row{border-bottom:1px solid var(--line);cursor:default;align-items:center;gap:14px;padding:12px 16px;display:flex}.file-tag{background:var(--surface2);width:30px;height:38px;box-shadow:0 0 0 1px var(--line);border-radius:5px;flex:none;justify-content:center;align-items:center;font-size:8px;font-weight:700;display:flex}.file-name{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;overflow:hidden}.file-meta{color:var(--faint);margin:2px 0 0;font-size:12px}.file-order{gap:2px;display:flex}.file-order button,.file-remove{color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 8px}.file-order button{font-size:14px}.file-remove{font-size:18px}.file-order button:hover:not(:disabled),.file-remove:hover:not(:disabled){background:var(--track);color:var(--text)}.file-add{color:var(--link);cursor:pointer;padding:12px 16px;font-size:14px}.url-bar{background:var(--surface);box-shadow:0 2px 14px #0000000f, 0 0 0 1px var(--line);border-radius:20px;flex-wrap:wrap;gap:8px;margin-top:36px;padding:8px;display:flex}.url-bar input{background:0 0;border:0;outline:0;flex:240px;min-width:0;padding:14px 16px;font-size:17px}.url-bar:focus-within{box-shadow:0 2px 14px #0000000f, 0 0 0 2px var(--accent)}.url-bar button{flex:none}@media (width<=480px){.url-bar button{flex:1}}.fmt-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:15px 28px;display:flex}.fmt-row:last-child{border-bottom:0}@media (width<=480px){.fmt-row{padding:14px 18px}}.seo{max-width:720px;margin-top:72px}.seo h2{letter-spacing:-.02em;margin:40px 0 14px;font-size:24px}.seo-summary{color:var(--text);text-wrap:pretty;margin:0;font-size:19px;line-height:1.5}.seo ol{color:var(--muted);margin:0;padding-left:22px;font-size:16px;line-height:1.6}.seo li{margin-bottom:6px;padding-left:4px}.seo-links{flex-wrap:wrap;gap:8px;display:flex}.seo-links a{background:var(--surface2);color:var(--text);border-radius:980px;padding:8px 15px;font-size:14px}.seo-links a:hover{background:var(--surface3);text-decoration:none}.faq{margin:0}.faq>div{border-top:1px solid var(--line);padding:18px 0}.faq dt{letter-spacing:-.01em;font-size:17px;font-weight:600}.faq dd{color:var(--muted);margin:6px 0 0;font-size:15px;line-height:1.55}.home-more{max-width:1080px;margin:0 auto;padding:24px 22px 64px}.home-more>h2{letter-spacing:-.02em;margin:0 0 14px;font-size:21px}.home-more .seo{margin-top:48px}.foot-links{flex-wrap:wrap;gap:56px;max-width:1180px;margin:0 auto;padding:32px 22px 8px;font-size:13px;display:flex}.foot-links div{flex-direction:column;gap:8px;display:flex}.foot-links p{color:var(--text);margin:0 0 2px;font-size:12px;font-weight:600}.foot-links a{color:var(--muted)}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dancing-script-vietnamese-600-normal-B_5hiXq4.woff2)format("woff2"),url(/assets/dancing-script-vietnamese-600-normal-DmBNuN3D.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:Dancing Script;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dancing-script-latin-ext-600-normal-B3h_y-4p.woff2)format("woff2"),url(/assets/dancing-script-latin-ext-600-normal-C2Rto93b.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:Dancing Script;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dancing-script-latin-600-normal-CUtcW3hj.woff2)format("woff2"),url(/assets/dancing-script-latin-600-normal-8nA_0nHX.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}
