@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.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{--ink:#14163b;--ink2:#4a4e7c;--paper:#f1f0ff;--card:#ffffff;--line:#d8d7f2;--indigo:#4636f5;--coral:#f2494f;--sun:#ffc12e;--mint:#12a37f;--esp:#4636f5;--mad:#b86e00;--cdmx:#d93a40;--voc:#0b8a6b;--f-d:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;--f-b:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper);color:var(--ink);font-family:var(--f-b);font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%}body{min-height:100%}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}h1,h2,h3,h4{font-family:var(--f-d);font-weight:800;line-height:1.15;text-wrap:balance;letter-spacing:-.01em}h1{font-size:28px}h2{font-size:21px}h3{font-size:16.5px}h4{font-size:14.5px}small,.sm{font-size:13px;color:var(--ink2)}b,strong{font-weight:700}:focus-visible{outline:3px solid var(--indigo);outline-offset:2px}#top{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:2px solid var(--ink);padding:10px 16px 8px}.top-in{max-width:640px;margin:auto}.brand{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand b{font-family:var(--f-d);font-size:17px;font-weight:800;display:flex;align-items:center;gap:6px}.rank{background:var(--sun);border:2px solid var(--ink);border-radius:99px;padding:1px 10px;font-size:12.5px;font-weight:700;white-space:nowrap;box-shadow:2px 2px 0 var(--ink)}.xpline{display:flex;align-items:center;gap:10px;margin-top:6px}.bar{flex:1;height:10px;border:2px solid var(--ink);border-radius:99px;background:#fff;overflow:hidden}.bar i{display:block;height:100%;background:var(--indigo);width:0;transition:width .5s}#xptxt{font-size:12px;font-weight:700;color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums}.card{background:var(--card);border:2px solid var(--ink);border-radius:18px;box-shadow:4px 4px 0 var(--ink);padding:16px}.card.tint{background:#e9e7ff}.card.sun{background:#fff3c9}.card.mint{background:#d8f8ee}.card.coral{background:#ffe5e6}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;align-items:center}.wrap{flex-wrap:wrap}.sp{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 16px;background:var(--indigo);color:#fff;border:2px solid var(--ink);border-radius:14px;box-shadow:3px 3px 0 var(--ink);font-weight:700;text-align:center;transition:transform .08s,box-shadow .08s}.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}.btn.alt{background:#fff;color:var(--ink)}.btn.sun{background:var(--sun);color:var(--ink)}.btn.coral{background:var(--coral);color:#fff}.btn.mint{background:var(--mint);color:#fff}.btn.sm2{min-height:36px;padding:6px 12px;font-size:13.5px}.btn.full{width:100%}.btn[disabled]{opacity:.45;pointer-events:none}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;border:2px solid var(--ink);border-radius:99px;padding:5px 12px;font-weight:700;font-size:13px;background:#fff;white-space:nowrap;box-shadow:2px 2px 0 var(--ink);transition:transform .06s}.chip:active{transform:translate(2px,2px);box-shadow:none}.chip.on{background:var(--ink);color:#fff}.tag{display:inline-block;border:2px solid var(--ink);border-radius:8px;padding:1px 8px;font-size:12px;font-weight:700;background:#fff}.lead{font-size:16px}ul.clean{list-style:none;display:flex;flex-direction:column;gap:8px}ul.clean li{padding-left:22px;position:relative}ul.clean li:before{content:"";position:absolute;left:2px;top:.55em;width:9px;height:9px;border:2px solid var(--ink);background:var(--sun);border-radius:3px}.mastery{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center}.mastery .bar{height:12px}.num{font-variant-numeric:tabular-nums;font-weight:700}nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:2px solid var(--ink);display:flex;justify-content:center;padding:4px 6px calc(6px + env(safe-area-inset-bottom))}nav .in{display:flex;width:100%;max-width:640px;gap:2px}nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0;border-radius:12px;font-size:11px;font-weight:700;color:var(--ink2)}nav button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}nav button.on{background:var(--sun);color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink)}.step{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:2px dashed var(--line)}.step:first-of-type{border-top:0}.dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;font-weight:800;background:#fff;flex:none}.dot.ok{background:var(--mint);color:#fff}details{border:2px solid var(--ink);border-radius:14px;background:#fff;padding:0;box-shadow:2px 2px 0 var(--ink)}details+details{margin-top:8px}summary{list-style:none;padding:12px 14px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px}summary::-webkit-details-marker{display:none}summary:after{content:"+";font-family:var(--f-d);font-size:20px;line-height:1;flex:none}details[open] summary{border-bottom:2px dashed var(--line);background:#f9f8ff;border-radius:12px 12px 0 0}details[open] summary:after{content:"–"}details .in{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}.badges{display:grid;grid-template-columns:1fr 1fr;gap:8px}.badge{border:2px solid var(--ink);border-radius:12px;padding:8px 10px;background:#fff;font-size:13px;line-height:1.3}.badge b{display:block;font-size:13.5px}.badge.off{opacity:.45;border-style:dashed}.badge.on{background:var(--sun);box-shadow:2px 2px 0 var(--ink)}.fc{min-height:250px;display:flex;flex-direction:column;justify-content:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.fc .q{font-family:var(--f-d);font-weight:800;font-size:21px;line-height:1.25}.fc .a{font-size:16px}.fc.pop{animation:pop .25s ease}@keyframes pop{0%{transform:scale(.97);opacity:.4}to{transform:none;opacity:1}}.progress{height:12px;border:2px solid var(--ink);border-radius:99px;background:#fff;overflow:hidden}.progress i{display:block;height:100%;background:var(--mint);transition:width .3s}.opt{display:block;width:100%;text-align:left;border:2px solid var(--ink);border-radius:14px;background:#fff;padding:12px 14px;font-weight:600;box-shadow:3px 3px 0 var(--ink);transition:transform .08s,box-shadow .08s}.opt:active{transform:translate(3px,3px);box-shadow:none}.opt.ok{background:#c9f3e5}.opt.bad{background:#ffd3d4}.opt.dim{opacity:.55}.opt[disabled]{pointer-events:none}.fb{border:2px solid var(--ink);border-radius:14px;padding:12px 14px;background:#fff3c9}.hearts{color:var(--coral);letter-spacing:2px;font-size:18px}.combo{background:var(--coral);color:#fff;border:2px solid var(--ink);border-radius:99px;padding:0 10px;font-weight:800;font-size:13px}.big{font-family:var(--f-d);font-size:52px;font-weight:800;line-height:1}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tile{border:2px solid var(--ink);border-radius:12px;padding:8px;background:#fff}.tile small{display:block;font-size:11.5px;line-height:1.2}.tile b{font-family:var(--f-d);font-size:18px;font-variant-numeric:tabular-nums}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;font-weight:600}.legend i{display:inline-block;width:12px;height:12px;border:2px solid var(--ink);margin-right:5px;vertical-align:-1px;border-radius:3px}input[type=range]{width:100%;accent-color:var(--indigo);height:34px}svg.plot{width:100%;height:auto;display:block;border:2px solid var(--ink);border-radius:14px;background:#f7f7ff}svg.plot text{font-family:var(--f-b);fill:var(--ink)}table.tb{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:2px solid var(--ink);border-radius:12px;overflow:hidden}table.tb th,table.tb td{border:1.5px solid var(--ink);padding:6px 8px;text-align:left}table.tb th{background:var(--sun);font-family:var(--f-d);font-weight:800;font-size:12.5px}table.tb tr:nth-child(2n) td{background:#f8f7ff}textarea{width:100%;min-height:150px;border:2px solid var(--ink);border-radius:14px;padding:12px;font:inherit;background:#fff;resize:vertical;color:var(--ink)}.seg{border-left:6px solid var(--ink);padding:6px 0 6px 12px;background:#fafaff;border-radius:0 10px 10px 0}.seg .lb{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:2px}.seg.D{border-color:var(--indigo)}.seg.D .lb{color:var(--indigo)}.seg.M{border-color:#e08a00}.seg.M .lb{color:var(--mad)}.seg.E{border-color:var(--mint)}.seg.E .lb{color:var(--voc)}.seg.C{border-color:var(--coral)}.seg.C .lb{color:var(--cdmx)}.check{display:flex;gap:10px;align-items:flex-start;border:2px solid var(--ink);border-radius:12px;padding:10px;background:#fff;width:100%;text-align:left}.check .bx{flex:none;width:22px;height:22px;border:2px solid var(--ink);border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:14px;background:#fff}.check.on{background:#c9f3e5}.check.on .bx{background:var(--mint);color:#fff}.subj{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;padding:12px;border:2px solid var(--ink);border-radius:14px;background:#fff;box-shadow:3px 3px 0 var(--ink);transition:transform .08s,box-shadow .08s}.subj:active{transform:translate(3px,3px);box-shadow:none}.recipe{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.recipe div{border:2px solid var(--ink);border-radius:12px;padding:8px;font-size:12.5px;line-height:1.3;background:#fff}.recipe b{display:block;font-family:var(--f-d);font-size:16px}.doc-box{border:2px solid var(--ink);border-radius:14px;background:#f8f7ff;padding:12px;display:flex;flex-direction:column;gap:8px}.doc-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--indigo);display:flex;justify-content:space-between;align-items:center}.mindmap{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(max-width:440px){.mindmap{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(2,1fr)}}.mm-node{border:2px solid var(--ink);border-radius:12px;padding:10px;background:#fff;box-shadow:2px 2px 0 var(--ink)}.mm-node b{display:block;font-family:var(--f-d);font-size:14px;margin-bottom:4px;color:var(--indigo)}.mm-node ul{padding-left:15px;font-size:12.5px;line-height:1.35}.search-in{width:100%;border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font:inherit;background:#fff;box-shadow:2px 2px 0 var(--ink)}#toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:8px 16px;border-radius:99px;font-weight:700;opacity:0;pointer-events:none;transition:all .3s;z-index:50;white-space:nowrap;border:2px solid #fff;box-shadow:0 4px 12px #00000040}#toast.show{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}a{color:inherit}#app{max-width:640px;margin:auto;padding:16px 16px 115px;display:flex;flex-direction:column;gap:16px}nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:2px solid var(--ink);display:flex;justify-content:center;padding:4px 6px calc(6px + env(safe-area-inset-bottom))}.ni{font-size:19px;line-height:1.1}header.top{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:2px solid var(--ink);padding:10px 16px}header.top .top-in{max-width:640px;margin:auto}.logo{display:flex;align-items:center;gap:8px;font-family:var(--f-d);font-weight:800;font-size:20px;text-decoration:none}.logo-i{display:grid;place-items:center;width:32px;height:32px;border:2px solid var(--ink);border-radius:10px;background:var(--sun);box-shadow:2px 2px 0 var(--ink)}select,input:not([type=checkbox]):not([type=range]){font:inherit;color:var(--ink);border:2px solid var(--ink);border-radius:12px;padding:9px 11px;background:#fff;width:100%}#uilang{width:auto;padding:5px 8px;font-size:13px;font-weight:700}.fld{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700;color:var(--ink2)}.fld textarea{min-height:64px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:440px){.grid2{grid-template-columns:1fr}}.opts{display:flex;flex-direction:column;gap:6px}.opt-row{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;border:2px solid var(--ink);border-radius:12px;padding:8px 10px;background:#fff;font-weight:600;cursor:pointer}.opt-row:has(select){grid-template-columns:22px 1fr 110px}.opt-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--indigo)}.opt-row select{padding:5px 8px}.opt-row select:disabled{opacity:.4}.seg-ctl{display:flex;border:2px solid var(--ink);border-radius:12px;overflow:hidden;box-shadow:2px 2px 0 var(--ink)}.seg-ctl button{flex:1;padding:9px 6px;font-weight:700;font-size:13.5px;background:#fff}.seg-ctl button+button{border-left:2px solid var(--ink)}.seg-ctl button.on{background:var(--ink);color:#fff}pre.prompt{white-space:pre-wrap;font-size:11.5px;line-height:1.4;max-height:340px;overflow:auto;background:#fff;padding:12px;font-family:ui-monospace,Consolas,monospace}textarea.paste{min-height:220px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}textarea.paste.drop{outline:4px dashed var(--ink,#14163b);outline-offset:-8px;background:#fffbe0}.hero h1{font-size:30px}.how{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.how div{border:2px solid var(--ink);border-radius:12px;padding:8px;background:#fff;font-weight:700;font-size:13px}.how b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--indigo);color:#fff;margin-bottom:4px}.card.pack{padding:12px;display:flex;flex-direction:column;gap:10px}.pack-main{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;text-align:left;width:100%}.pk-emoji{display:grid;place-items:center;width:48px;height:48px;border:2px solid var(--ink);border-radius:14px;background:var(--sun);font-size:26px;flex:none}.pk-txt{display:flex;flex-direction:column;gap:3px;min-width:0}.pk-txt b{font-family:var(--f-d);font-size:16.5px;line-height:1.2}.pk-txt .bar{height:8px;margin-top:4px;display:block}.pk-actions{display:flex;gap:6px;flex-wrap:wrap}.pk-actions .chip{font-size:12px;padding:3px 10px}.chip.danger{color:var(--coral)}.pk-head{display:flex;gap:12px;align-items:center}.statgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.statgrid div{border:2px solid var(--ink);border-radius:12px;background:#fff;padding:8px;text-align:center}.statgrid b{display:block;font-family:var(--f-d);font-size:22px}.statgrid small{font-size:11.5px}.brand .back{font-size:20px;font-weight:800;width:34px;height:34px;border:2px solid var(--ink);border-radius:10px;background:#fff;flex:none;box-shadow:2px 2px 0 var(--ink)}.brand .ttl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.tag.ok{background:var(--mint);color:#fff}.recipe{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.rich{display:flex;flex-direction:column;gap:8px}.rh{margin-top:4px}mark{background:var(--sun);padding:0 3px;border-radius:4px;color:var(--ink)}.corr{border:2px solid var(--mint);border-radius:14px;padding:12px;background:#effcf7}.corr .lb{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--voc);display:block;margin-bottom:6px}.tbwrap{overflow-x:auto}.mm-center{align-self:center;border:2px solid var(--ink);border-radius:99px;background:var(--indigo);color:#fff;font-weight:800;padding:4px 14px;font-family:var(--f-d)}.timeline{list-style:none;position:relative;display:flex;flex-direction:column;gap:10px;padding-left:22px}.timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:3px;background:var(--ink);border-radius:2px}.timeline li{position:relative;display:flex;flex-direction:column;background:#fff;border:2px solid var(--ink);border-radius:12px;padding:6px 10px;font-size:13.5px}.timeline li:before{content:"";position:absolute;left:-22px;top:10px;width:12px;height:12px;border-radius:50%;background:var(--sun);border:2px solid var(--ink)}.tl-d{font-family:var(--f-d);font-weight:800;color:var(--indigo)}.chart{display:flex;flex-direction:column;gap:7px}.ch-row{display:grid;grid-template-columns:minmax(70px,32%) 1fr auto;gap:8px;align-items:center;font-size:13px}.ch-k{font-weight:700}.ch-bar{height:16px;border:2px solid var(--ink);border-radius:6px;background:#fff;overflow:hidden}.ch-bar i{display:block;height:100%}.ch-v{font-weight:800;font-variant-numeric:tabular-nums}.flow{display:flex;flex-direction:column;align-items:stretch}.flow-s{display:flex;gap:10px;align-items:center;border:2px solid var(--ink);border-radius:12px;padding:8px 10px;background:#fff}.flow-a{text-align:center;font-weight:800;line-height:1.3}.dot.sm{width:26px;height:26px;font-size:13px;background:var(--sun)}.versus{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch}.vs-col{border:2px solid var(--ink);border-top:8px solid var(--c);border-radius:12px;background:#fff;padding:8px 10px}.vs-col b{display:block;font-family:var(--f-d);color:var(--c);margin-bottom:4px}.vs-col ul{padding-left:16px;font-size:13px}.vs-x{align-self:center;font-family:var(--f-d);font-weight:800;background:var(--ink);color:#fff;border-radius:99px;padding:4px 7px;font-size:12px}@media(max-width:440px){.versus{grid-template-columns:1fr}.vs-x{justify-self:center}}.note{border:2px solid var(--ink);border-left:8px solid var(--coral);border-radius:12px;background:#fff6f6;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.note-t{font-family:var(--f-d)}.formula{font-family:ui-monospace,Consolas,monospace;font-size:15px;display:flex;flex-direction:column;gap:4px;background:#fff;border:2px dashed var(--ink2);border-radius:10px;padding:10px;text-align:center}.flash{display:flex;flex-direction:column;gap:14px;text-align:left;min-height:240px;width:100%;background:#fff;border:2px solid var(--ink);border-radius:20px;box-shadow:5px 5px 0 var(--ink);padding:18px}.flash.flipped{background:#fffaf0}.fq{font-family:var(--f-d);font-size:20px;font-weight:800;line-height:1.25}.fa{border-top:2px dashed var(--line);padding-top:12px;font-size:15.5px}.tap{margin-top:auto;text-align:center}.mode{display:flex;flex-direction:column;gap:2px;text-align:left;width:100%;border:2px solid var(--ink);border-radius:14px;background:#fff;padding:12px 14px;box-shadow:3px 3px 0 var(--ink)}.mode b{font-family:var(--f-d);font-size:16px}.mode.boss{background:var(--ink);color:#fff}.mode.boss small{color:#d8d7f2}.card.mode{gap:6px}.opt.right{background:#c9f3e5}.big{margin:6px 0}#toast{bottom:84px}:root{--ease-out:cubic-bezier(.2,.8,.2,1);--ease-back:cubic-bezier(.3,1.6,.5,1)}.btn,.opt,.mode,.chip,.flash,.subj,.brand .back{--sh:3px;transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out)}.chip,.brand .back{--sh:2px}.card.mode{--sh:4px}.flash{--sh:5px}.btn:active,.opt:active,.mode:active,.chip:active,.flash:active,.subj:active,.brand .back:active{transform:translate(var(--sh),var(--sh));box-shadow:0 0 0 var(--ink);transition-duration:.06s}@media(hover:hover)and (pointer:fine){.btn:hover,.opt:hover,.mode:hover,.chip:hover,.subj:hover,.brand .back:hover{transform:translate(-2px,-2px);box-shadow:calc(var(--sh) + 2px) calc(var(--sh) + 2px) 0 var(--ink)}.flash:not(.flipped):hover{transform:translate(-2px,-2px) rotate(-.4deg);box-shadow:7px 7px 0 var(--ink)}.btn:hover:active,.opt:hover:active,.mode:hover:active,.chip:hover:active,.flash:hover:active,.subj:hover:active,.brand .back:hover:active{transform:translate(var(--sh),var(--sh));box-shadow:0 0 0 var(--ink)}}.check{transition:transform .1s var(--ease-out)}.check:active{transform:scale(.98)}nav.tabs button{transition:transform .12s var(--ease-out)}nav.tabs button:active{transform:scale(.92)}nav.tabs button.on{animation:fx-tab .38s var(--ease-back)}nav.tabs button.on svg{animation:fx-hop .5s var(--ease-back)}.bar i.sx{width:100%;transform:scaleX(var(--p,0));transform-origin:left center;transition:transform .75s var(--ease-out)}body.studying #top{view-transition-name:rv-top}body.studying nav.tabs{view-transition-name:rv-tabs}body.studying #app{view-transition-name:rv-main}::view-transition-old(rv-main){animation:fx-vt-out .16s ease-in both}::view-transition-new(rv-main){animation:fx-vt-in .3s var(--ease-out) both}html[data-vt-dir=back]::view-transition-new(rv-main){animation-name:fx-vt-in-back}#app.fx-enter>*,.fx-stagger>*{animation:fx-up .45s var(--ease-out) both}#app.fx-enter>:nth-child(2),.fx-stagger>:nth-child(2){animation-delay:.05s}#app.fx-enter>:nth-child(3),.fx-stagger>:nth-child(3){animation-delay:.1s}#app.fx-enter>:nth-child(4),.fx-stagger>:nth-child(4){animation-delay:.15s}#app.fx-enter>:nth-child(5),.fx-stagger>:nth-child(5){animation-delay:.2s}#app.fx-enter>:nth-child(6),.fx-stagger>:nth-child(6){animation-delay:.25s}#app.fx-enter>:nth-child(7),.fx-stagger>:nth-child(7){animation-delay:.3s}#app.fx-enter>:nth-child(n+8),.fx-stagger>:nth-child(n+8){animation-delay:.35s}#app.fx-enter .dot.ok{animation:fx-bumpin .5s .25s var(--ease-back) both}#app.fx-enter .badges>*{animation:fx-bumpin .4s .22s var(--ease-back) both}#app.fx-enter .badges>:nth-child(2){animation-delay:.27s}#app.fx-enter .badges>:nth-child(3){animation-delay:.32s}#app.fx-enter .badges>:nth-child(4){animation-delay:.37s}#app.fx-enter .badges>:nth-child(5){animation-delay:.42s}#app.fx-enter .badges>:nth-child(n+6){animation-delay:.47s}.badge{position:relative;overflow:hidden}#app.fx-enter .badge.on:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.7) 50%,transparent 65%);transform:translate(-110%);animation:fx-sheen .9s .6s var(--ease-out)}details[open]>.in{animation:fx-drop .28s var(--ease-out)}.fx-reveal{animation:fx-drop .4s var(--ease-out) both;transform-origin:top center}.fx-rise{animation:fx-up .35s .08s var(--ease-out) both}.fx-pop{animation:fx-bumpin .45s var(--ease-back) both}.fx-bounce{animation:fx-bounce .55s var(--ease-back) both}.flash.fx-flipin{animation:fx-flipin .28s cubic-bezier(.2,.8,.35,1.15) both}.flash.fx-deal{animation:fx-deal .36s cubic-bezier(.2,.8,.25,1.12) both}.opt{position:relative}.opt.right,.opt.bad{padding-right:42px}.opt.right:before,.opt.bad:before{content:"✓";position:absolute;right:10px;top:50%;width:24px;height:24px;margin-top:-12px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--mint);color:#fff;font-weight:800;font-size:13px;line-height:1}.opt.bad:before{content:"✕";background:var(--coral)}.opt.fx-pop{animation:fx-pop .45s var(--ease-back)}.opt.fx-pop:before{animation:fx-bumpin .45s .1s var(--ease-back) both}.opt.fx-pop:after,.opt.fx-shake:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:14px;background:var(--mint);opacity:0;pointer-events:none;animation:fx-flash .6s ease-out}.opt.fx-shake:after{background:var(--coral)}.opt.fx-shake{animation:fx-shake .42s cubic-bezier(.36,.07,.19,.97)}.opt.fx-hint{animation:fx-pop .45s .3s var(--ease-back)}.opt.fx-opt{animation:fx-up .32s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms + 60ms)}.fx-next{animation:fx-slide .32s var(--ease-out) both}.combo{display:inline-block}.combo.up{animation:fx-bump .45s var(--ease-back)}.big.fx-win{animation:fx-wiggle .7s .95s ease-in-out}.check.fx-tick .bx{animation:fx-tickpop .4s var(--ease-back)}.fx-float{position:fixed;z-index:60;pointer-events:none;font-family:var(--f-d);font-weight:800;font-size:15px;white-space:nowrap;background:var(--sun);color:var(--ink);border:2px solid var(--ink);border-radius:99px;padding:2px 10px;box-shadow:2px 2px 0 var(--ink);transform:translate(-50%,-50%);animation:fx-float 1.1s var(--ease-out) forwards}.fx-confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:70}#toast .ti{display:inline-block}#toast.badge,#toast.rank{background:var(--sun);color:var(--ink);border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}#toast.badge.show .ti,#toast.rank.show .ti{animation:fx-toast .6s var(--ease-back)}@keyframes fx-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fx-slide{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes fx-drop{0%{opacity:0;transform:translateY(-6px) scaleY(.97)}to{opacity:1;transform:none}}@keyframes fx-bumpin{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@keyframes fx-bounce{0%{opacity:0;transform:scale(.85) translateY(10px)}to{opacity:1;transform:none}}@keyframes fx-pop{0%{transform:scale(1)}40%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes fx-bump{0%{transform:scale(1)}40%{transform:scale(1.35) rotate(-8deg)}to{transform:scale(1)}}@keyframes fx-flash{0%{opacity:.5}to{opacity:0}}@keyframes fx-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}@keyframes fx-flipin{0%{transform:perspective(900px) rotateY(-90deg)}to{transform:perspective(900px) rotateY(0)}}@keyframes fx-deal{0%{opacity:0;transform:translateY(22px) scale(.93) rotate(-2deg)}to{opacity:1;transform:none}}@keyframes fx-tickpop{0%{transform:scale(.5)}60%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes fx-wiggle{0%,to{transform:none}25%{transform:rotate(-4deg) scale(1.08)}50%{transform:rotate(3deg) scale(1.08)}75%{transform:rotate(-1deg)}}@keyframes fx-tab{0%{transform:scale(.85)}to{transform:none}}@keyframes fx-hop{0%{transform:none}35%{transform:translateY(-4px) rotate(-8deg)}to{transform:none}}@keyframes fx-sheen{to{transform:translate(110%)}}@keyframes fx-float{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-90%) scale(1.15)}30%{transform:translate(-50%,-100%) scale(1)}to{opacity:0;transform:translate(-50%,-280%)}}@keyframes fx-toast{0%{transform:scale(.6) rotate(-4deg)}60%{transform:scale(1.08) rotate(1deg)}to{transform:none}}@keyframes fx-vt-out{to{opacity:0;transform:scale(.985)}}@keyframes fx-vt-in{0%{opacity:0;transform:translate(24px)}}@keyframes fx-vt-in-back{0%{opacity:0;transform:translate(-24px)}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.btn,.opt,.mode,.chip,.flash,.subj,.brand .back,.check,nav.tabs button{transform:none!important}}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:8px}.model{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:2px solid var(--ink);border-radius:12px;padding:8px 10px;background:#fff;text-align:left;box-shadow:2px 2px 0 var(--ink);transition:transform .06s}.model:active{transform:translate(2px,2px);box-shadow:none}.model .mi{font-size:18px;line-height:1}.model b{font-size:14px}.model small{font-size:11px;color:var(--ink2);line-height:1.2}.model.on{background:var(--ink);color:#fff}.model.on small{color:#ddd}.tip{border:2px dashed var(--ink);border-radius:12px;padding:8px 10px;background:#fffbe9;font-size:13.5px;line-height:1.4}.depth-d{margin-top:-2px}.chips.wrap{flex-wrap:wrap;overflow:visible}.wtypes{border-top:2px dashed var(--ink);padding-top:10px}.cont-box{border:2px solid var(--ink);border-radius:14px;background:#fff3c9;padding:12px;box-shadow:3px 3px 0 var(--ink)}.cont-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:14px}.delta{font-style:normal;font-size:12px;color:var(--mint);margin-left:2px}.card.pack.trunc{border-style:dashed}.lib-tools{display:flex;flex-direction:column;gap:8px}.lib-tools .row .search-in{flex:1;min-width:0;margin:0}.lib-tools select{flex:none;width:auto}.lib-count{align-self:flex-end;font-weight:700;color:var(--ink2)}.lib-count.full{color:var(--coral)}.lib-group{display:flex;flex-direction:column;gap:10px}.lib-group>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;border:2px solid var(--ink);border-left:10px solid var(--gc,var(--indigo));border-radius:14px;padding:8px 12px;background:#fff;box-shadow:3px 3px 0 var(--ink)}.lib-group>summary::-webkit-details-marker{display:none}.lib-group>summary:after{content:"▾";margin-left:4px;transition:transform .15s}.lib-group:not([open])>summary:after{transform:rotate(-90deg)}.lg-emoji{font-size:22px}.lg-name{flex:1;min-width:0;font-family:var(--f-d);font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lg-count{border:2px solid var(--ink);border-radius:99px;padding:0 8px;font-weight:800;font-size:12.5px;background:var(--gc,var(--sun));color:#fff}.lg-pct{font-weight:700;font-size:12.5px;color:var(--ink2)}.lg-items{display:flex;flex-direction:column;gap:12px;padding-left:6px;margin-top:10px}.move-row input{flex:1;min-width:0}.tag.wtype{background:#fff3c9}.exam-cd{background:#e9e7ff}.exam-cd.hot{background:var(--coral);color:#fff}.check.rub .pts{margin-left:auto;flex:none;border:2px solid var(--ink);border-radius:8px;padding:0 7px;background:var(--sun);font-size:13px}.score-line{border-top:2px solid var(--ink);padding-top:8px}.score-line .num{font-family:var(--f-d);font-size:22px;font-weight:800}.rubric-pre summary{font-weight:700}:root{--orange:#F47B20;--orange-d:#d9631a;--orange-l:#ffe3cc;--sun:#f8923c;--paper:#fff8f0;--line:#efdccb;--mad:#b4570f;--f-d:"Bricolage Grotesque Variable","Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;--f-b:"Figtree Variable","Figtree",system-ui,-apple-system,"Segoe UI",sans-serif}.card.sun{background:#ffeddc}mark{background:#ffd3ad}textarea.paste.drop{background:#fff1e3}.logo-i{width:36px;height:36px;border:0;border-radius:0;background:none;box-shadow:none;flex:none}.logo-i svg{width:100%;height:100%;display:block;overflow:visible}.logo:hover .logo-i svg{animation:rv-wiggle .5s ease}.logo .rv-eyes,.lp-final-face .rv-eyes{transform-box:fill-box;transform-origin:center;animation:rv-blink 6s infinite}@keyframes rv-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes rv-wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-8deg)}65%{transform:rotate(6deg)}}a.btn{text-decoration:none}.su-note a,.legal-doc a,.legal-links a{color:var(--indigo);font-weight:700}.legal-doc{gap:14px}.legal-doc h1{font-size:26px}.legal-doc h3{font-size:17px;margin-bottom:4px}.legal-doc p,.legal-doc li{font-size:14.5px}.legal-doc .lg-sec{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:2px dashed var(--line)}.legal-doc a{overflow-wrap:anywhere}.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-size:13px}#app>.legal-links{margin-top:-4px}#cgu{scroll-margin-top:72px}.linkbtn{background:none;border:0;padding:4px 0;color:var(--ink2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;justify-self:start;align-self:flex-start;font:inherit}.linkbtn:hover{color:var(--ink)}.seg2{display:grid;grid-template-columns:1fr 1fr;border:2.5px solid var(--ink);border-radius:14px;overflow:hidden;background:var(--card)}.seg2 button{padding:10px 8px;font-weight:700;color:var(--ink2);transition:background .15s,color .15s}.seg2 button.on{background:var(--sun);color:var(--ink)}.seg2 button+button{border-left:2.5px solid var(--ink)}.auth #authmsg:empty{display:none}.landing{background:var(--paper)}.lp{overflow-x:clip}.lp-in{max-width:1080px;margin:0 auto;padding:0 18px;position:relative;z-index:1}.lp-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:2px solid var(--ink);padding:10px 0}.lp-top-r{gap:8px}.lp-top .uilang{width:auto;padding:5px 8px;font-size:13px;font-weight:700}.lp-progress{position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--orange);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}@media(max-width:400px){.lp-top .uilang{max-width:92px}}.lp-hero,.lp-sec{position:relative}.lp-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.lp-sh{position:absolute;display:block;width:calc(34px*var(--s,1));height:calc(34px*var(--s,1));will-change:translate}.sh-ring{border:3px solid var(--ink);border-radius:50%;background:var(--orange-l)}.sh-dot{width:calc(16px*var(--s,1));height:calc(16px*var(--s,1));border-radius:50%;background:var(--orange);border:2px solid var(--ink)}.sh-sq{border:3px solid var(--ink);border-radius:9px;background:#e9e7ff;rotate:18deg}.sh-star{background:var(--sun);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}.sh-squig{width:calc(70px*var(--s,1));height:calc(20px*var(--s,1));background:radial-gradient(circle at 50% 120%,transparent 9px,var(--orange) 10px,var(--orange) 13px,transparent 14px) 0 0/20px 20px repeat-x;opacity:.75}@media(max-width:719px){.lp-sh{opacity:.55}.lp-hero .lp-sh:nth-child(n+4){display:none}}.lp-hero{padding:28px 0 40px}.lp-hero-grid{display:grid;gap:18px;align-items:center}.lp-hero-txt{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}.lp-kicker{align-self:flex-start;background:#fff;border:2px solid var(--ink);border-radius:99px;padding:4px 12px;font-size:12.5px;font-weight:700;box-shadow:2px 2px 0 var(--ink)}.lp-hero h1{font-size:clamp(34px,8.6vw,62px);line-height:1.04;letter-spacing:-.025em}.w{display:inline-block;overflow:clip;overflow-clip-margin:.12em;vertical-align:top;padding:0 .02em .1em;margin:0 -.02em -.1em}.w>span{display:inline-block}.lp-squiggle{width:min(260px,70%);height:16px;margin-top:-8px}.lp-squiggle path{fill:none;stroke:var(--orange);stroke-width:6;stroke-linecap:round;stroke-dasharray:340;stroke-dashoffset:0}.lp-lead{font-size:17px;color:var(--ink2);max-width:52ch}.lp-ctas{display:flex;flex-wrap:wrap;gap:10px}.lp-cta{min-height:52px;font-size:16px;padding:12px 20px}@media(max-width:480px){.lp-cta{flex:1 1 100%}}.lp-art{position:relative;width:min(100%,420px);aspect-ratio:1;justify-self:center;-webkit-tap-highlight-color:transparent;cursor:pointer;touch-action:manipulation}.lp-blob{position:absolute;top:10%;right:6%;bottom:6%;left:6%;background:var(--orange-l);border:2px solid var(--ink);border-radius:42% 58% 55% 45%/50% 42% 58% 50%;box-shadow:6px 6px 0 var(--ink)}.lp-mascot{position:absolute;top:6%;right:12%;bottom:4%;left:12%;display:grid;place-items:center}.lp-mascot svg{width:100%;height:100%;overflow:visible;transition:opacity .45s ease,visibility 0s .45s}.lp-3d{position:absolute;top:-20%;right:-8%;bottom:-2%;left:-8%;z-index:2;opacity:0;transition:opacity .45s ease}.lp-3d canvas{width:100%;height:100%;display:block;touch-action:pan-y}.lp-art.is-3d .lp-mascot svg{opacity:0;visibility:hidden}.lp-art.is-3d .lp-mascot svg *{animation:none!important}.lp-art.is-3d .lp-3d{opacity:1}.lp-float{position:absolute;z-index:3;pointer-events:none;background:#fff;border:2px solid var(--ink);border-radius:12px;padding:5px 10px;font-weight:800;font-size:14px;box-shadow:3px 3px 0 var(--ink);white-space:nowrap;font-family:var(--f-d)}.fl1{top:8%;left:-2%;background:var(--sun)}.fl2{top:26%;right:-3%;font-size:22px;padding:4px 8px;border-radius:50%}.fl3{bottom:20%;right:-3%;background:#d8f8ee}.fl4{bottom:9%;left:-1%;background:#e9e7ff}.lp-spark{position:absolute;z-index:1;width:14px;height:14px;background:var(--ink);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}.sp1{top:30%;left:4%}.sp2{top:16%;right:26%;width:10px;height:10px;background:var(--orange)}.sp3{bottom:30%;right:8%;width:11px;height:11px}.lp-bubble{position:absolute;z-index:4;top:-3%;right:4%;pointer-events:none;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:5px 12px;font:800 14px/1.2 var(--f-d);box-shadow:3px 3px 0 var(--ink);white-space:nowrap;opacity:0}.lp-bubble:after{content:"";position:absolute;left:18px;bottom:-8px;width:12px;height:12px;background:#fff;border:2px solid var(--ink);border-top:0;border-left:0;transform:rotate(45deg)}.lp-bubble.on{opacity:1}.lp-conf{position:absolute;z-index:5;width:9px;height:12px;border:1.5px solid var(--ink);border-radius:2px;pointer-events:none}.lp-conf.round{width:10px;height:10px;border-radius:50%}.lp-conf.star{width:15px;height:15px;border:0;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}.lp-sec{padding:48px 0}.lp-alt{background:#fff;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.lp-sec h2{font-size:clamp(26px,5.5vw,40px);letter-spacing:-.02em;margin-bottom:8px}.lp-sub{color:var(--ink2);font-size:16px;margin-bottom:22px}.lp-steps{list-style:none;display:grid;gap:18px}.lp-step{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 18px 18px}.lp-step:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:3px solid var(--orange);border-radius:18px;opacity:0;pointer-events:none}.lp-num{position:absolute;top:-14px;left:16px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--orange);color:#fff;border:2px solid var(--ink);font-family:var(--f-d);font-weight:800;box-shadow:2px 2px 0 var(--ink)}.lp-ico{font-size:30px;line-height:1}.lp-step p,.lp-feat p{color:var(--ink2);font-size:14.5px}.lp-feats{display:grid;gap:14px;margin-top:20px}.lp-feat{position:relative;display:flex;flex-direction:column;gap:6px;overflow:hidden}.lp-feat .lp-ico{width:52px;height:52px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:14px;background:#fff;font-size:26px;box-shadow:2px 2px 0 var(--ink);margin-bottom:4px}.lp-shine{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.75),transparent 60%);transition:opacity .3s}.f-sun{background:#ffeddc}.f-indigo{background:#e9e7ff}.f-coral{background:#ffe5e6}.f-mint{background:#d8f8ee}.lp-flow{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:6px;margin:4px auto 30px;max-width:620px}.fl-node{display:flex;flex-direction:column;align-items:center;gap:6px;font:800 13px/1 var(--f-d)}.fl-box{position:relative;width:78px;height:78px;border:2px solid var(--ink);border-radius:18px;background:#fff;box-shadow:3px 3px 0 var(--ink);display:grid;place-items:center;font-size:30px}.fl-n1 .fl-box{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:0 12px;background:#ffeddc}.fl-n1 .fl-box i{display:block;height:6px;border-radius:9px;background:var(--ink);transform-origin:0 50%}.fl-n1 .fl-box i:nth-child(1){width:46px}.fl-n1 .fl-box i:nth-child(2){width:38px;background:var(--orange)}.fl-n1 .fl-box i:nth-child(3){width:28px}.fl-caret{position:absolute;right:10px;bottom:12px;width:3px;height:14px;background:var(--ink);opacity:0}.fl-ai{background:#e9e7ff;border-radius:50%}.fl-ring{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:3px solid var(--indigo);border-radius:50%;opacity:0}.fl-dots{position:absolute;bottom:9px;display:flex;gap:4px}.fl-dots i{width:6px;height:6px;border-radius:50%;background:var(--ink);opacity:.25}.fl-app{background:#d8f8ee;font-size:26px;align-content:center;gap:6px}.fl-bar{display:block;width:52px;height:8px;border:2px solid var(--ink);border-radius:9px;background:#fff;overflow:hidden}.fl-bar i{display:block;height:100%;background:var(--orange);transform-origin:0 50%;transform:scaleX(.15)}.fl-app em{position:absolute;top:-10px;right:-10px;width:26px;height:26px;border-radius:50%;background:var(--mint);color:#fff;border:2px solid var(--ink);font:900 14px/22px var(--f-b);text-align:center;font-style:normal;opacity:0;transform:scale(.3)}.fl-link{position:relative;height:4px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--ink) 0 6px,transparent 6px 11px);min-width:22px;margin-bottom:18px}.fl-link b{position:absolute;top:50%;left:0;width:calc(100% - 14px);height:14px;margin-top:-7px;opacity:0}.fl-link b:before{content:"";position:absolute;left:0;top:0;width:14px;height:14px;border-radius:50%;background:var(--orange);border:2px solid var(--ink);box-sizing:border-box}@media(max-width:400px){.fl-box{width:66px;height:66px;font-size:26px}.fl-n1 .fl-box i:nth-child(1){width:38px}.fl-n1 .fl-box i:nth-child(2){width:30px}}.lp-fmt{display:grid;gap:26px;align-items:center}.lp-fmt-txt p{color:var(--ink2);font-size:16px;max-width:46ch}.lp-fmt-vis{display:grid;grid-template-columns:1fr;gap:12px;align-items:center;justify-items:center}.lp-code{width:100%;background:var(--ink);color:#e8e6ff;border:2px solid var(--ink);border-radius:16px;padding:14px 16px;font:12.5px/1.55 ui-monospace,Consolas,monospace;box-shadow:4px 4px 0 var(--orange);overflow:auto;white-space:pre}.lp-arrow{justify-self:center;font-size:28px;font-weight:800;transform:rotate(90deg);color:var(--orange)}.lp-phone{width:214px;height:400px;flex:none;border:3px solid var(--ink);border-radius:34px;background:var(--ink);padding:9px;box-shadow:6px 6px 0 var(--orange);position:relative}.lp-phone:before{content:"";position:absolute;top:13px;left:50%;width:58px;height:14px;margin-left:-29px;border-radius:9px;background:var(--ink);z-index:3}.ph-scr{position:relative;height:100%;border-radius:26px;background:var(--paper);overflow:hidden;display:flex;flex-direction:column}.ph-top{padding:30px 12px 8px;display:flex;flex-direction:column;gap:6px;font:800 13px/1.2 var(--f-d)}.ph-xp{display:block;height:9px;border:2px solid var(--ink);border-radius:9px;background:#fff;overflow:hidden}.ph-xp i{display:block;height:100%;background:var(--orange);transform-origin:0 50%;transform:scaleX(.35)}.ph-stage{position:relative;flex:1}.ph-card{position:absolute;top:8px;right:12px;bottom:14px;left:12px;perspective:700px}.ph-flip{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d}.ph-face{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--ink);border-radius:16px;box-shadow:3px 3px 0 var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;text-align:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}.ph-face small{font:900 12px var(--f-d);color:#fff;background:var(--ink);border-radius:8px;padding:1px 8px}.ph-face p{font:800 15px/1.25 var(--f-d)}.ph-front{background:#fff}.ph-back{background:#ffeddc;transform:rotateY(180deg)}.ph-quiz{position:absolute;top:8px;right:12px;bottom:14px;left:12px;display:flex;flex-direction:column;gap:8px;opacity:0}.ph-quiz p{font:800 14px/1.25 var(--f-d);margin:4px 0 2px}.ph-opt{position:relative;display:block;border:2px solid var(--ink);border-radius:12px;background:#fff;padding:8px 10px;font-weight:700;font-size:13px;box-shadow:2px 2px 0 var(--ink);overflow:hidden}.ph-opt.ok:before{content:attr(data-ok) "  ✓";white-space:pre;position:absolute;top:0;right:0;bottom:0;left:0;padding:8px 10px;background:var(--mint);color:#fff;font-weight:800;opacity:0}.ph-tap{position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:#14163b47;border:2px solid #fff;opacity:0;pointer-events:none}.ph-plus{position:absolute;right:12px;top:-34px;z-index:2;font:900 14px var(--f-d);color:var(--orange);-webkit-text-stroke:.6px var(--ink);opacity:0}.ph-tabs{display:flex;justify-content:space-around;border-top:2px solid var(--ink);background:#fff;padding:6px 4px 10px}.ph-tabs span{display:flex;flex-direction:column;align-items:center;font-size:15px;line-height:1.1}.ph-tabs small{font-size:9.5px;font-weight:700;color:var(--ink2)}.lp-faq{max-width:760px}.lp-faq h2{margin-bottom:18px}.lp-faq details{margin-top:10px}.lp-faq details p{color:var(--ink2)}.lp-final{background:var(--orange);text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 18px;box-shadow:6px 6px 0 var(--ink)}.lp-final h2{color:#fff;text-shadow:2px 2px 0 var(--ink);margin:0}.lp-final p{color:#fff;font-weight:600;font-size:16px}.lp-final .lp-ctas{justify-content:center;margin-top:6px}.lp-final-face{width:84px;height:84px;display:block}.lp-final-face svg{width:100%;height:100%;display:block}.lp-foot{border-top:2px solid var(--ink);background:#fff;padding:26px 0 calc(26px + env(safe-area-inset-bottom))}.lp-foot .lp-in{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.lp-foot-brand{display:flex;flex-direction:column;align-items:center;gap:4px}.lp-foot-r{gap:12px;justify-content:center}.lp-foot .uilang{width:auto;padding:5px 8px;font-size:13px;font-weight:700}@media(min-width:720px){.lp-steps{grid-template-columns:repeat(3,1fr)}.lp-feats{grid-template-columns:repeat(2,1fr)}.lp-fmt-vis{grid-template-columns:1fr auto auto}.lp-arrow{transform:none}.lp-final{padding:40px 24px}.fl-box{width:92px;height:92px}}@media(min-width:960px){.lp-hero{padding:56px 0 72px}.lp-hero-grid{grid-template-columns:1.1fr .9fr;gap:40px}.lp-art{width:min(100%,480px)}.lp-feats{grid-template-columns:repeat(3,1fr)}.lp-fmt{grid-template-columns:.75fr 1.25fr;gap:40px}.lp-sec{padding:80px 0}.lp-foot .lp-in{flex-direction:row;justify-content:space-between;text-align:left}.lp-foot-brand{align-items:flex-start}}@media(prefers-reduced-motion:no-preference){.lp-hero h1 .w>span{animation:lp-word .95s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.12s + var(--i)*65ms)}.lp-kicker{animation:lp-up .7s cubic-bezier(.16,1,.3,1) both}.lp-lead{animation:lp-up .9s .45s cubic-bezier(.16,1,.3,1) both}.lp-hero .lp-ctas>*{animation:lp-up .9s cubic-bezier(.16,1,.3,1) both}.lp-hero .lp-ctas>:nth-child(1){animation-delay:.58s}.lp-hero .lp-ctas>:nth-child(2){animation-delay:.66s}.lp-squiggle path{stroke-dashoffset:340;animation:lp-draw 1s .7s cubic-bezier(.65,0,.35,1) forwards}.lp-blob{animation:lp-pop .9s .1s cubic-bezier(.2,1.4,.4,1) both,lp-morph 9s 1s ease-in-out infinite}.lp-mascot{animation:lp-pop .8s .2s cubic-bezier(.2,1.4,.4,1) both}.lp-float{animation:lp-pop .6s cubic-bezier(.2,1.6,.4,1) both,lp-float 4s ease-in-out infinite}.fl1{animation-delay:.9s,1.5s}.fl2{animation-delay:1s,.5s}.fl3{animation-delay:1.1s,-.5s}.fl4{animation-delay:1.2s,-1.5s}.lp-spark{animation:lp-twinkle 2.4s ease-in-out infinite}.sp2{animation-delay:-.8s}.sp3{animation-delay:-1.6s}.lp-bubble{transition:opacity .25s}.lp-bubble.pop{animation:lp-bubble .5s cubic-bezier(.2,1.6,.4,1)}.lp-mascot .rv-bot{transform-box:view-box;transform-origin:50% 95%;animation:lp-bob 3.4s ease-in-out infinite}.lp-mascot .rv-shadow{transform-box:fill-box;transform-origin:center;animation:lp-shadow 3.4s ease-in-out infinite}.lp-mascot .rv-head{transform-box:fill-box;transform-origin:50% 100%;animation:lp-tilt 7s ease-in-out infinite}.lp-mascot .rv-eyes{transform-box:fill-box;transform-origin:center;animation:rv-blink 4.5s infinite}.lp-mascot.hop svg{animation:lp-hop .7s cubic-bezier(.3,.7,.4,1)}.lp-sh{animation:lp-drift 9s ease-in-out infinite}.lp-sh:nth-child(2n){animation-duration:12s;animation-direction:reverse}.lp-sh:nth-child(3n){animation-duration:7s}.lp-hero:not(.play) *,.lp-flow:not(.play) *,.lp-phone:not(.play) *{animation-play-state:paused!important}.rv-anim .reveal{opacity:0;transform:translateY(34px) scale(.985);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0ms)}.rv-anim .reveal.in,.rv-anim .split.reveal,.rv-anim .reveal .split{opacity:1;transform:none}.rv-anim .split .w>span{transform:translateY(108%);transition:transform 1s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i)*70ms)}.rv-anim .reveal.in .w>span,.rv-anim .split.in .w>span{transform:none}.rv-anim .lp-step.reveal{transform:translateY(40px) rotate(-1.5deg)}.rv-anim .lp-step.reveal:nth-child(2){transform:translateY(40px) rotate(1.5deg)}.rv-anim .lp-step.reveal.in{transform:none}.rv-anim .lp-feat.reveal{transform:translateY(40px) scale(.96)}.rv-anim .lp-feat.reveal.in{transform:none}.lp-feat,.lp-step{transform-style:preserve-3d}.rv-anim .reveal.settled{transition:transform .55s cubic-bezier(.16,1,.3,1)}.rv-anim .reveal.in.tilt{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-4px);transition-duration:.15s}.lp-feat .lp-ico,.lp-step .lp-ico,.lp-feat h3{transition:transform .5s cubic-bezier(.16,1,.3,1)}.lp-feat.tilt .lp-ico{transform:translateZ(36px) scale(1.06) rotate(-4deg)}.lp-feat.tilt h3{transform:translateZ(18px)}.lp-feat.tilt .lp-shine{opacity:1}.lp-step.tilt .lp-ico{transform:translateZ(30px) scale(1.1)}.lp-flow .fl-n1 .fl-box i{animation:fl-type 6s infinite both}.lp-flow .fl-n1 .fl-box i:nth-child(2){animation-name:fl-type2}.lp-flow .fl-n1 .fl-box i:nth-child(3){animation-name:fl-type3}.lp-flow .fl-caret{animation:fl-caret 6s infinite steps(1)}.lp-flow .fl-node{animation:fl-act 6s infinite}.lp-flow .fl-n2{animation-delay:2s}.lp-flow .fl-n3{animation-delay:4s}.lp-flow .fl-l1 b{animation:fl-travel 6s 1.5s infinite}.lp-flow .fl-l2 b{animation:fl-travel 6s 3.5s infinite}.lp-flow .fl-ring{animation:fl-ring 6s infinite}.lp-flow .fl-dots i{animation:fl-dot 6s infinite}.lp-flow .fl-dots i:nth-child(2){animation-name:fl-dot2}.lp-flow .fl-dots i:nth-child(3){animation-name:fl-dot3}.lp-flow .fl-bar i{animation:fl-fill 6s infinite}.lp-flow .fl-app em{animation:fl-check 6s infinite}.lp-step:after{animation:fl-glow 6s infinite;animation-delay:calc(var(--n)*2s)}.lp-steps:has(.lp-step:hover) .lp-step:after{animation:none}.lp-phone{animation:ph-float 5s ease-in-out infinite}.lp-phone .ph-card{animation:ph-card 8s infinite cubic-bezier(.5,0,.2,1)}.lp-phone .ph-flip{animation:ph-flip 8s infinite cubic-bezier(.5,0,.2,1)}.lp-phone .ph-quiz{animation:ph-quiz 8s infinite cubic-bezier(.16,1,.3,1)}.lp-phone .ph-tap{animation:ph-tap 8s infinite cubic-bezier(.4,0,.2,1)}.lp-phone .ph-opt.ok{animation:ph-press 8s infinite}.lp-phone .ph-opt.ok:before{animation:ph-ok 8s infinite}.lp-phone .ph-plus{animation:ph-plus 8s infinite cubic-bezier(.16,1,.3,1)}.lp-phone .ph-xp i{animation:ph-xp 8s infinite cubic-bezier(.16,1,.3,1)}.lp-arrow{animation:lp-nudge 1.6s ease-in-out infinite}.lp-cta{transition:transform .15s,box-shadow .15s}}@keyframes lp-word{0%{transform:translateY(108%) rotate(4deg)}to{transform:none}}@keyframes lp-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes lp-draw{to{stroke-dashoffset:0}}@keyframes lp-pop{0%{opacity:0;transform:scale(.7) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes lp-morph{0%,to{border-radius:42% 58% 55% 45%/50% 42% 58% 50%}50%{border-radius:55% 45% 42% 58%/45% 58% 42% 55%}}@keyframes lp-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes lp-shadow{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.82);opacity:.6}}@keyframes lp-tilt{0%,70%,to{transform:rotate(0)}78%{transform:rotate(-4deg)}88%{transform:rotate(3deg)}}@keyframes lp-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}@keyframes lp-twinkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.4) rotate(45deg);opacity:.5}}@keyframes lp-nudge{0%,to{translate:0 0}50%{translate:6px 0}}@keyframes lp-bubble{0%{transform:scale(.4) translate(-20px,10px)}to{transform:none}}@keyframes lp-hop{0%,to{transform:none}20%{transform:scale(1.08,.9)}50%{transform:translateY(-14%) scale(.96,1.06)}80%{transform:scale(1.05,.95)}}@keyframes lp-drift{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(14deg)}}@keyframes fl-type{0%{transform:scaleX(0)}8%,92%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes fl-type2{0%,8%{transform:scaleX(0)}17%,92%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes fl-type3{0%,17%{transform:scaleX(0)}25%,92%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes fl-caret{0%,50%{opacity:0}8%,16%,24%{opacity:1}4%,12%,20%,28%{opacity:0}}@keyframes fl-act{0%,to{transform:none}5%{transform:translateY(-6px) scale(1.07)}28%{transform:translateY(-4px) scale(1.04)}36%{transform:none}}@keyframes fl-travel{0%{opacity:0;transform:translate(0)}2%{opacity:1}9%{opacity:1;transform:translate(100%)}11%,to{opacity:0;transform:translate(100%)}}@keyframes fl-ring{0%,33%{opacity:0;transform:scale(.8)}38%{opacity:1;transform:scale(1)}58%{opacity:0;transform:scale(1.25)}to{opacity:0}}@keyframes fl-dot{0%,34%,64%,to{opacity:.25;transform:none}40%,52%{opacity:1;transform:translateY(-4px)}46%,58%{opacity:.4;transform:none}}@keyframes fl-dot2{0%,36%,64%,to{opacity:.25;transform:none}42%,54%{opacity:1;transform:translateY(-4px)}48%,60%{opacity:.4;transform:none}}@keyframes fl-dot3{0%,38%,64%,to{opacity:.25;transform:none}44%,56%{opacity:1;transform:translateY(-4px)}50%,62%{opacity:.4;transform:none}}@keyframes fl-fill{0%,68%{transform:scaleX(.15)}88%,96%{transform:scaleX(1)}to{transform:scaleX(.15)}}@keyframes fl-check{0%,84%{opacity:0;transform:scale(.3)}89%{opacity:1;transform:scale(1.2)}93%,97%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.3)}}@keyframes fl-glow{0%,to{opacity:0}4%,28%{opacity:1}34%{opacity:0}}@keyframes ph-float{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-8px) rotate(1.5deg)}}@keyframes ph-card{0%,44%{transform:none;opacity:1}52%{transform:translate(-120%) rotate(-8deg);opacity:0}96%{transform:translate(-120%);opacity:0}97%{transform:translateY(20px) scale(.9);opacity:0}to{transform:none;opacity:1}}@keyframes ph-flip{0%,14%{transform:none}24%,96%{transform:rotateY(180deg)}97%,to{transform:none}}@keyframes ph-quiz{0%,47%{opacity:0;transform:translate(60%)}55%,90%{opacity:1;transform:none}96%,to{opacity:0;transform:translateY(-10px)}}@keyframes ph-tap{0%,56%{opacity:0;transform:translate(150px,190px) scale(1)}60%{opacity:1;transform:translate(150px,190px)}68%{opacity:1;transform:translate(120px,62px) scale(1)}70%{transform:translate(120px,62px) scale(.7)}73%{opacity:1;transform:translate(120px,62px) scale(1)}78%,to{opacity:0;transform:translate(130px,80px)}}@keyframes ph-press{0%,68%,74%,to{transform:none}70%{transform:translate(2px,2px)}}@keyframes ph-ok{0%,70%{opacity:0}72%,93%{opacity:1}97%,to{opacity:0}}@keyframes ph-plus{0%,72%{opacity:0;transform:translateY(16px) scale(.6)}76%{opacity:1;transform:translateY(0) scale(1.15)}86%{opacity:1;transform:translateY(-6px) scale(1)}92%,to{opacity:0;transform:translateY(-16px)}}@keyframes ph-xp{0%,74%{transform:scaleX(.35)}84%,96%{transform:scaleX(.62)}to{transform:scaleX(.35)}}.lp-top .btn{white-space:nowrap}@media(max-width:420px){.lp-top .btn{min-height:34px;padding:5px 10px;font-size:12.5px}.lp-top .logo{font-size:18px}.lp-top .logo-i{width:30px;height:30px}}.ai-card{background:linear-gradient(160deg,#ece9ff,#fff 60%)}.ai-card h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-bal{margin-left:auto;font-family:var(--f-b);font-size:13px;font-weight:700;background:var(--sun);border:2px solid var(--ink);border-radius:99px;padding:2px 10px;box-shadow:2px 2px 0 var(--ink);white-space:nowrap}.ai-bal.zero{background:var(--coral);color:#fff}.ai-eng{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ai-eng .model{min-height:64px}.ai-eng .model .ai-c{font-size:11px;font-weight:700;margin-top:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ai-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:110px;padding:14px;border:2px dashed var(--ink);border-radius:14px;background:#fff;text-align:center;cursor:pointer;font-weight:700}.ai-drop small{font-weight:400}.ai-drop .ai-di{font-size:28px;line-height:1}.ai-drop.over,.ai-drop:focus-within{background:#fff3c9;outline:3px solid var(--indigo);outline-offset:2px}.ai-files{list-style:none;display:flex;flex-direction:column;gap:6px}.ai-files li{display:flex;align-items:center;gap:8px;border:2px solid var(--ink);border-radius:12px;background:#fff;padding:6px 8px 6px 10px;font-size:13.5px}.ai-files li.bad{background:#ffe5e6}.ai-files .ai-fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-files small{white-space:nowrap}.ai-files button{flex:none;width:32px;height:32px;border:2px solid var(--ink);border-radius:10px;background:#fff;font-weight:700}.ai-prog{list-style:none;display:flex;flex-direction:column;gap:6px}.ai-prog li{display:flex;align-items:center;gap:8px;font-weight:700}.ai-prog li.cur{color:var(--indigo)}.ai-spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ai-spin{animation:none}}.ai-time{font-variant-numeric:tabular-nums;font-weight:700}.ai-msg{border:2px solid var(--ink);border-radius:12px;padding:8px 10px;background:#fff;font-size:13.5px}.ai-msg.err{background:#ffe5e6}.ai-msg.ok{background:#d8f8ee}.ai-or{display:flex;align-items:center;gap:10px;font-family:var(--f-d);font-weight:800;color:var(--ink2);font-size:15px}.ai-or:before,.ai-or:after{content:"";flex:1;border-top:2px dashed var(--ink2)}
