:root{--bg:#ECEFF4;--surface:#FFFFFF;--surface-2:#F5F7FA;--ink:#14213A;--muted:#5A6478;--line:#D5DBE5;--alarm:#C9411A;--alarm-soft:#FBE9E2;--safe:#0D7F65;--safe-soft:#DDF3EC;--warn:#B7791F;--accent:#14213A;--on-accent:#FFFFFF;--bubble:#1C2740;--bubble-ink:#EEF2F8;--bubble-muted:#9AA6BC;--paper:#FFFDF8;--paper-ink:#1A2233;--gold:#9C7A2E;--guil:#2D4A7A;--f-display:"Bricolage Grotesque","Be Vietnam Pro","PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;--f-body:"Be Vietnam Pro","PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;--f-cert:"Cormorant Garamond","Songti SC","STSong","Noto Serif SC",Georgia,serif;--r:14px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0E1420;--surface:#161F30;--surface-2:#1C2639;--ink:#E6EBF4;--muted:#9AA6BC;--line:#2A3550;--alarm:#FF7D52;--alarm-soft:#3A2019;--safe:#43C9A2;--safe-soft:#14322B;--warn:#F2B84B;--accent:#E6EBF4;--on-accent:#0E1420;--bubble:#232F48;color-scheme:dark}}:root[data-theme=dark]{--bg:#0E1420;--surface:#161F30;--surface-2:#1C2639;--ink:#E6EBF4;--muted:#9AA6BC;--line:#2A3550;--alarm:#FF7D52;--alarm-soft:#3A2019;--safe:#43C9A2;--safe-soft:#14322B;--warn:#F2B84B;--accent:#E6EBF4;--on-accent:#0E1420;--bubble:#232F48;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}a,button{color:inherit}:focus-visible{outline:3px solid var(--alarm);outline-offset:2px}h1,h2,h3{font-family:var(--f-display);line-height:1.15;text-wrap:balance;margin:0}.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.narrow{max-width:760px}.muted{color:var(--muted)}.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--alarm)}.top{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:30;border-bottom:1px solid var(--line)}.top,body:before{background:var(--surface)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:40}.top .wrap{gap:14px;padding-block:10px}.brand,.top .wrap{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;min-width:0}.logo{flex:none;width:34px;height:34px;border-radius:9px;background:var(--alarm);display:grid;place-items:center;color:#fff;font-family:var(--f-mono);font-weight:700;font-size:11.5px;letter-spacing:.04em}.brand b{font-family:var(--f-display);font-size:16px;line-height:1.1}.brand b,.brand small{display:block;white-space:nowrap}.brand small{color:var(--muted);font-size:12px}.nav{display:flex;gap:4px;margin-left:8px}.nav a{text-decoration:none;padding:7px 11px;border-radius:9px;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap}.nav a.on,.nav a:hover{color:var(--ink);background:var(--surface-2)}.sp{flex:1 1}.langs{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px}.langs button{white-space:nowrap;border:0;background:none;padding:4px 9px;border-radius:7px;font-size:12.5px;font-weight:700;color:var(--muted)}.langs button.on{background:var(--ink);color:var(--surface)}.acct{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:14px;border:1px solid var(--line);border-radius:999px;padding:4px 12px 4px 4px;white-space:nowrap}.acct .av{width:26px;height:26px;border-radius:50%;background:var(--safe);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.acct.out{padding:6px 14px;background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.top .subnav{display:none}@media (max-width:820px){.nav{display:none}.top .subnav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line);padding-block:6px}.subnav a{text-decoration:none;padding:5px 10px;border-radius:8px;color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}.subnav a.on{background:var(--surface-2);color:var(--ink)}.acct .nm,.brand small{display:none}.acct{padding:4px}.acct.out{padding:6px 12px}}@media (max-width:480px){.brand>span:last-child{display:none}.top .wrap{gap:10px}}.demo{background:var(--alarm-soft);color:var(--ink);font-size:13px;border-bottom:1px solid var(--line)}.demo .wrap{padding-block:7px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:var(--accent);color:var(--on-accent);font-weight:700;padding:13px 24px;font-size:15.5px;text-decoration:none}.btn.alarm{background:var(--alarm);color:#fff}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.sm{padding:8px 14px;font-size:14px;border-radius:10px}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.row{display:flex;gap:10px;flex-wrap:wrap}.hero,.row{align-items:center}.hero{padding-block:48px 32px;display:grid;grid-template-columns:1.1fr 1fr;grid-gap:40px;gap:40px}.hero h1{font-size:clamp(36px,6vw,60px);font-weight:800;letter-spacing:-.02em;margin-top:12px}.hero .lead{color:var(--muted);font-size:17px;margin:16px 0 22px;max-width:44ch}.stats{display:grid;grid-template-columns:repeat(4,auto);grid-gap:22px;gap:22px;margin-top:26px;justify-content:start}.stats b{display:block;font-family:var(--f-display);font-size:28px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats span{font-size:13px;color:var(--muted)}.stack{position:relative;display:grid;grid-gap:10px;gap:10px;justify-items:start}.stack .bubble:first-child{transform:translateX(22px);opacity:.8}.stack .bubble:nth-child(3){transform:translateX(10px);opacity:.8}.stamp{position:absolute;right:0;top:50%;transform:translateY(-50%) rotate(-9deg);border:3px solid var(--alarm);color:var(--alarm);background:var(--surface);font-family:var(--f-mono);font-weight:700;font-size:13.5px;letter-spacing:.06em;padding:7px 12px;border-radius:6px;line-height:1.3;text-align:center;animation:stampIn .5s cubic-bezier(.2,1.6,.4,1) .4s both}@keyframes stampIn{0%{transform:translateY(-50%) rotate(-9deg) scale(1.8);opacity:.2}}section.block{padding-block:28px}section.block>h2{font-size:26px;margin-bottom:16px}.path{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.path li a{display:grid;grid-template-columns:72px 1fr auto;grid-gap:16px;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 16px 10px 10px;text-decoration:none}.path li a:hover{border-color:var(--ink)}.path .thumb{width:72px;height:52px;border-radius:9px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.path .thumb .art{width:100%;height:100%}.path b{display:block;font-weight:700}.path small{color:var(--muted);font-size:13px;display:block}.path .meta{font-size:12.5px;color:var(--muted);font-family:var(--f-mono);text-align:right;white-space:nowrap}.path .meta .ok{color:var(--safe);font-weight:700}.path li.exam a{border-style:dashed}.fmts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.fmts div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}.fmts i{font-style:normal;font-size:22px;display:block;margin-bottom:6px}.fmts b{display:block;font-size:14.5px}.fmts span{font-size:13px;color:var(--muted)}.books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.book{display:grid;grid-template-columns:10px 1fr;grid-gap:12px;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px 0;overflow:hidden}.book:before{content:"";background:var(--c,var(--ink));border-radius:0 4px 4px 0}.book b{display:block;font-size:14.5px;line-height:1.3}.book span{font-size:12.5px;color:var(--muted)}.certteaser{display:grid;grid-template-columns:1fr 1.1fr;grid-gap:28px;gap:28px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}.certteaser p{color:var(--muted);margin:10px 0 16px}footer{border-top:1px solid var(--line);margin-top:40px;padding-block:24px 40px;font-size:13px;color:var(--muted)}footer .wrap{display:grid;grid-gap:6px;gap:6px}footer b{color:var(--alarm)}@media (max-width:860px){.hero{grid-template-columns:1fr;padding-block:28px 18px;gap:28px}.fmts{grid-template-columns:repeat(2,minmax(0,1fr))}.books,.certteaser{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,auto);gap:16px 34px}}@media (max-width:520px){.path li a{grid-template-columns:52px 1fr}.path .thumb{width:52px;height:44px}.path .meta{grid-column:2;text-align:left}}.art{display:block;width:100%;height:auto}.art .f-surface{fill:var(--surface)}.art .f-soft{fill:var(--surface-2)}.art .f-ink{fill:var(--ink)}.art .f-alarm{fill:var(--alarm)}.art .f-safe{fill:var(--safe)}.art .f-alarm-soft{fill:var(--alarm-soft)}.art .f-safe-soft{fill:var(--safe-soft)}.art .f-none{fill:none}.art .s-ink{stroke:var(--ink)}.art .s-line{stroke:var(--line)}.art .s-alarm{stroke:var(--alarm)}.art .s-safe{stroke:var(--safe)}.art .s-surface{stroke:var(--surface)}.art text{text-anchor:middle;font-family:var(--f-display);font-weight:800}.art .t-icon{font-size:16px}.art .t-num{font-size:22px}.art .t-sm{font-size:13px}.art .t-xs{font-size:10px;font-family:var(--f-mono)}.art .f-surface-t{fill:var(--surface)}.art .f-alarm-t{fill:var(--alarm)}.art .f-safe-t{fill:var(--safe)}.art .f-ink-t{fill:var(--ink)}.bubble{background:var(--bubble);color:var(--bubble-ink);border-radius:16px;padding:12px 14px;box-shadow:0 6px 18px rgba(14,20,32,.18);max-width:520px;width:100%}.b-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--bubble-muted);min-width:0}.b-app{font-family:var(--f-mono);font-size:10.5px;font-weight:700;background:rgba(255,255,255,.12);padding:2px 6px;border-radius:5px;flex:none}.b-app,.b-head b{color:var(--bubble-ink)}.b-head b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.b-head time{margin-left:auto;font-family:var(--f-mono);flex:none}.bubble p{margin:6px 0 0;font-size:14.5px;line-height:1.5;overflow-wrap:anywhere}.prog{background:var(--surface);border-bottom:1px solid var(--line)}.prog .wrap{padding-block:10px}.prog-row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.bar{height:6px;background:var(--line);margin-top:6px;overflow:hidden}.bar,.bar i{border-radius:3px}.bar i{display:block;height:100%;background:var(--safe);transition:width .4s}.tabs{display:flex;gap:6px;overflow-x:auto;padding-top:10px;scrollbar-width:none}.tabs a{text-decoration:none;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 12px;font-size:13px;white-space:nowrap}.tabs a.on{background:var(--ink);color:var(--surface);border-color:var(--ink);font-weight:600}.tabs a.done:not(.on){border-color:var(--safe);color:var(--safe)}.tabs a.done:before{content:"✓ "}main.lesson{padding-block:22px 64px;display:grid;grid-gap:14px;gap:14px}.lmeta{display:flex;justify-content:space-between;gap:12px;font-size:13px;flex-wrap:wrap}.lmeta .k{color:var(--alarm);font-weight:700;font-family:var(--f-mono)}.lmeta .t{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;min-width:0}details.theory summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:1fr 150px;grid-gap:16px;gap:16px;align-items:center}details.theory summary::-webkit-details-marker{display:none}.theory .lbl{font-size:12px;color:var(--muted);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em}.theory h2{font-size:22px;margin:4px 0}.theory .src{font-size:13px;color:var(--muted)}.theory-body{margin-top:14px;border-top:1px solid var(--line);padding-top:14px;max-width:66ch}.theory-body p{margin:0 0 10px}.theory-body ul{margin:0 0 10px;padding-left:18px}.theory-body li{margin-bottom:4px}.lever{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin:10px 0}.lever div{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:14px}.lever b{display:block;font-family:var(--f-display);font-size:15px}.chain{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0;font-size:13px}.chain span{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px}.chain span.cut{border-color:var(--safe);color:var(--safe);font-weight:700}.chain em{font-style:normal;color:var(--muted)}.tree{display:grid;grid-gap:8px;gap:8px;margin:12px 0}.tree div{display:grid;grid-template-columns:auto 1fr;grid-gap:10px;gap:10px;align-items:start;background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:14px}.tree .q{font-family:var(--f-mono);font-weight:700;color:var(--alarm);white-space:nowrap}@media (max-width:600px){details.theory summary{grid-template-columns:1fr 90px}.lever{grid-template-columns:1fr}.card{padding:16px}}.step-k{font-size:12.5px;color:var(--muted);margin-bottom:8px;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.05em}.prompt{font-family:var(--f-body);font-size:17px;font-weight:700;margin:12px 0 14px;line-height:1.45}.opts{display:grid;grid-gap:9px;gap:9px}.opt{text-align:left;background:var(--surface-2);border:1.5px solid var(--line);border-radius:11px;padding:12px 15px;font-weight:500;width:100%}.opt:hover:not(:disabled){border-color:var(--ink)}.opt:disabled{cursor:default}.opt.right{border-color:var(--safe);background:var(--safe-soft)}.opt.wrong{border-color:var(--alarm);background:var(--alarm-soft)}.opt.sel{border-color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--ink)}.fb{margin-top:12px;border-radius:11px;padding:12px 15px;font-size:14.5px;border:1px solid}.fb.ok{background:var(--safe-soft);border-color:var(--safe)}.fb.no{background:var(--alarm-soft);border-color:var(--alarm)}.next{margin-top:14px}.hint{font-size:13px;color:var(--muted);margin:-4px 0 12px}.match{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);grid-gap:10px;gap:10px}.match .col{display:grid;grid-gap:8px;gap:8px;align-content:start}.mi{text-align:left;border:1.5px solid var(--line);background:var(--surface-2);border-radius:11px;padding:10px 12px;font-size:14px;line-height:1.45}.mi.l{font-weight:700;font-family:var(--f-display);font-size:15px}.mi.sel{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--surface)}.mi.ok{border-color:var(--safe);background:var(--safe-soft);cursor:default}.mi.bad{animation:shake .35s}.mi .tag{display:inline-block;font-family:var(--f-mono);font-size:11px;font-weight:700;color:var(--safe);margin-right:6px}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@media (max-width:600px){.match{grid-template-columns:1fr}}.judge-dots{display:flex;gap:6px;margin-bottom:12px}.judge-dots i{width:22px;height:5px;border-radius:3px;background:var(--line)}.judge-dots i.ok{background:var(--safe)}.judge-dots i.no{background:var(--alarm)}.judge-dots i.cur{background:var(--ink)}.judge-btns{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:14px}.judge-btns .opt{text-align:center;font-weight:700;padding:14px}.seg{border-radius:4px;padding:1px 2px;cursor:pointer;border-bottom:1.5px dashed rgba(255,255,255,.35)}.seg.marked{background:rgba(255,125,82,.35);border-bottom-color:#FF7D52}.seg.hit{background:rgba(67,201,162,.35);border-bottom:2px solid #43c9a2}.seg.miss{background:rgba(255,200,80,.25);border-bottom:2px solid #ffc850}.seg.fp{text-decoration:line-through}.flaglist{margin:12px 0 0;padding:0;list-style:none;display:grid;grid-gap:8px;gap:8px;font-size:14px}.flaglist li{background:var(--surface-2);border-radius:10px;padding:10px 12px}.flaglist li b{color:var(--alarm)}.flaglist li.not b{color:var(--ink)}.flaglist li .nf{font-size:12px;font-weight:600;color:var(--muted,#667);text-transform:uppercase;letter-spacing:.02em}.order-built{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px;counter-reset:o}.order-built .slot{display:flex;gap:10px;align-items:center;width:100%;text-align:left;font:inherit;color:var(--ink);background:transparent;border:1.5px dashed var(--line);border-radius:10px;padding:9px 12px;min-height:44px;font-size:14px}.order-built .slot:before{counter-increment:o;content:counter(o);flex:none;width:24px;height:24px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-family:var(--f-mono);font-size:12px;font-weight:700}.order-built .slot .txt{flex:1 1}.order-built .slot.filled{border-style:solid;border-color:var(--ink);cursor:pointer}.order-built .slot:disabled{cursor:default}.order-built .slot .rm{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:16px;line-height:1;color:var(--muted)}.order-built .slot.filled:not(:disabled):hover{background:var(--surface-2)}.order-built .slot.filled:not(:disabled):hover .rm{color:var(--alarm)}.order-built.ok .slot{border-color:var(--safe);background:var(--safe-soft)}.order-built.no .slot.filled{border-color:var(--alarm)}.order-pool{display:flex;flex-wrap:wrap;gap:8px}.order-pool .opt{width:auto}.outcome{border-radius:var(--r);padding:16px 18px;border:2px solid}.outcome.win{border-color:var(--safe);background:var(--safe-soft)}.outcome.lose{border-color:var(--alarm);background:var(--alarm-soft)}.outcome h3{font-size:19px;margin-bottom:6px}.trail{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-bottom:10px}.flipgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:10px;gap:10px}.flip{perspective:900px;border:0;background:none;padding:0;text-align:left}.flip,.flip .in{min-height:150px}.flip .in{position:relative;display:block;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.flip.on .in{transform:rotateY(180deg)}.flip .fa,.flip .fb2{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:12px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;border:1.5px solid var(--line)}.flip .fa{background:var(--ink);color:var(--surface);border-color:var(--ink)}.flip .fa b{font-family:var(--f-display);font-size:18px;line-height:1.2}.flip .fa small{font-size:12px;opacity:.7}.flip .fb2{background:var(--surface-2);transform:rotateY(180deg);font-size:14px;line-height:1.5;overflow:auto}@media (prefers-reduced-motion:reduce){.flip .in{transition:none}}.field{display:grid;grid-gap:6px;gap:6px;margin-bottom:14px}.field .lab,.field label{font-weight:600;font-size:14px}.field small{color:var(--muted);font-size:13px}.field input:not([type=checkbox]):not([type=radio]),.field select{font:inherit;color:var(--ink);background:var(--surface-2);border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;width:100%}.field input:focus{border-color:var(--ink);outline:none}.checks{display:grid;grid-gap:6px;gap:6px}.checks label{display:flex;gap:10px;align-items:flex-start;font-weight:500;background:var(--surface-2);border-radius:10px;padding:9px 12px;cursor:pointer}.checks input{flex:none;width:18px;height:18px;margin:2px 0 0;padding:0;accent-color:var(--safe)}.checks label:has(input:checked){background:color-mix(in srgb,var(--safe) 12%,var(--surface-2));box-shadow:inset 0 0 0 1.5px var(--safe)}.plan-out{margin-top:16px;border:2px solid var(--ink);border-radius:var(--r);padding:18px 20px;background:var(--surface)}.plan-out h3{font-size:20px;margin-bottom:8px}.plan-out ol{margin:0;padding-left:20px}.plan-out li{margin-bottom:6px}.err{color:var(--alarm);font-size:14px;margin:8px 0 0;min-height:1em}.auth{max-width:460px;margin:0 auto;padding-block:36px 64px}.auth .card{border-top:5px solid var(--alarm);padding:26px 26px 22px}.steps{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:14px}.steps i{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:700;font-family:var(--f-mono)}.steps i.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.steps i.done{background:var(--safe);border-color:var(--safe);color:#fff}.steps em{width:34px;height:2px;background:var(--line)}.auth h1{font-size:26px;text-align:center}.auth .sub{color:var(--muted);margin:8px 0 18px}.auth .sub,.sentbox{text-align:center;font-size:14px}.sentbox{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}.sentbox b{display:block;font-size:15px;overflow-wrap:anywhere}.code-in{font-family:var(--f-mono)!important;font-size:28px!important;letter-spacing:.5em;text-align:center;padding:14px 0 14px .5em!important}.small-c{text-align:center;color:var(--muted);margin-top:12px}.linkbtn,.small-c{font-size:13px}.devcode{background:var(--alarm-soft);border:1px dashed var(--alarm);border-radius:10px;padding:8px 12px;font-size:13.5px;margin-bottom:12px;text-align:center}.profile{display:grid;grid-template-columns:auto 1fr;grid-gap:22px;gap:22px;align-items:center}.bigav{width:84px;height:84px;background:var(--safe);color:#fff;place-items:center;font-family:var(--f-display);font-size:34px;font-weight:800;position:relative}.bigav,.bigav em{border-radius:50%;display:grid}.bigav em{position:absolute;right:-4px;bottom:-4px;background:var(--ink);color:var(--surface);font-style:normal;font-family:var(--f-mono);font-size:12px;width:26px;height:26px;place-items:center;border:2px solid var(--surface)}.profile h1{font-size:30px}.badge{display:inline-flex;gap:6px;align-items:center;background:var(--safe-soft);color:var(--safe);border:1px solid var(--safe);border-radius:999px;padding:3px 12px;font-size:13px;font-weight:700;margin:6px 0}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}.tile b{display:block;font-family:var(--f-display);font-size:30px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tile span{font-size:13px;color:var(--muted)}.certlist{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.certlist li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--surface-2);border-radius:10px;padding:10px 14px}.certlist code{font-family:var(--f-mono);font-weight:700}@media (max-width:640px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.profile{grid-template-columns:1fr}.profile h1{font-size:24px}}.exq{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.exq:first-of-type{border-top:0;margin-top:0;padding-top:0}.exq .qn{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.exq.r-ok .qn:after{content:" · ✓";color:var(--safe);font-weight:700}.exq.r-no .qn:after{content:" · ✗";color:var(--alarm);font-weight:700}.examfoot{position:-webkit-sticky;position:sticky;bottom:env(safe-area-inset-bottom,0);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:0 -6px 20px rgba(14,20,32,.08);flex-wrap:wrap}.score{font-family:var(--f-display);font-size:56px;font-weight:800;line-height:1}.result{display:grid;grid-gap:10px;gap:10px;justify-items:center}.result,.toast{text-align:center}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:10px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}.cert-wrap{container-type:inline-size;width:100%;max-width:1000px;margin:0 auto}.cert{position:relative;aspect-ratio:297/210;width:100%;background:var(--paper);color:var(--paper-ink);overflow:hidden;box-shadow:0 18px 50px rgba(14,20,32,.22);border-radius:4px}.cert .guilloche{position:absolute;inset:0;width:100%;height:100%}.cert .gframe{fill:none;stroke:var(--guil);stroke-width:.9}.cert .gframe.thin{stroke-width:.35}.cert .g0{fill:none;stroke:var(--guil);stroke-width:.22;opacity:.8}.cert .g1{fill:none;stroke:var(--gold);stroke-width:.22;opacity:.85}.cert .g2{fill:none;stroke:var(--guil);stroke-width:.16;opacity:.5}.cert .inner{position:absolute;inset:7.5% 8.5% 7% 8.5%;display:grid;grid-template-rows:auto auto 1fr auto;text-align:center}.cert .chead{display:flex;align-items:center;justify-content:center;gap:1.2cqw;font-family:var(--f-mono);font-size:1.25cqw;letter-spacing:.25em;text-transform:uppercase;color:var(--guil)}.cert .chead .mk{width:3cqw;height:3cqw;border-radius:.6cqw;background:#C9411A;color:#fff;display:grid;place-items:center;font-size:.85cqw;letter-spacing:.04em;font-weight:700}.cert .title{font-family:var(--f-cert);font-weight:600;font-size:4.6cqw;letter-spacing:.08em;margin-top:2.2cqw;line-height:1.05;color:var(--paper-ink)}.cert .title small{display:block;font-family:var(--f-mono);font-size:1.1cqw;letter-spacing:.3em;color:var(--gold);margin-top:.8cqw;font-weight:500}.cert .mid{display:flex;flex-direction:column;justify-content:center;gap:.6cqw}.cert .lbl{font-family:var(--f-cert);font-style:italic;font-size:1.9cqw;color:#4a5468}.cert .lbl .en{font-size:1.35cqw;display:block;font-style:italic;opacity:.75}.cert .name{font-family:var(--f-cert);font-weight:700;font-size:6cqw;line-height:1.1;color:var(--paper-ink);padding:0 4cqw .4cqw;border-bottom:.12cqw solid var(--gold);margin:0 auto .6cqw;max-width:88%;overflow-wrap:anywhere}.cert .course{font-family:var(--f-display);font-weight:800;font-size:3.1cqw;color:var(--guil);line-height:1.1}.cert .course small{display:block;font-family:var(--f-cert);font-weight:600;font-size:1.7cqw;color:#4a5468;margin-top:.3cqw}.cert .topics{font-size:1.15cqw;color:#5a6478;max-width:75%;margin:.6cqw auto 0;line-height:1.5}.cert .cfoot{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;grid-gap:2cqw;gap:2cqw;text-align:left}.cert .facts{display:grid;grid-gap:.5cqw;gap:.5cqw;font-size:1.1cqw;color:#4a5468}.cert .facts b{display:block;font-family:var(--f-mono);font-size:1.25cqw;color:var(--paper-ink);letter-spacing:.04em}.cert .seal{width:11cqw;height:11cqw}.cert .seal-bg,.cert .seal-edge{fill:var(--gold)}.cert .seal-ring{fill:none;stroke:#FFF6DD;stroke-width:1}.cert .seal-txt{font-family:var(--f-mono);font-size:7.2px;fill:#FFF6DD;letter-spacing:.9px;font-weight:700}.cert .seal-shield{fill:#FFF6DD}.cert .seal-check{fill:none;stroke:var(--gold);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.cert .sign{display:grid;grid-template-columns:1fr auto;grid-gap:1.6cqw;gap:1.6cqw;align-items:end}.cert .sigline{border-top:.1cqw solid #4a5468;padding-top:.5cqw;font-size:1.05cqw;color:#4a5468;text-align:center}.cert .sigline b{display:block;font-family:var(--f-cert);font-size:1.6cqw;color:var(--paper-ink)}.cert .sigmark{font-family:var(--f-cert);font-style:italic;font-size:2.4cqw;color:var(--guil);text-align:center;min-height:3cqw;line-height:1}.cert .qr{width:8.6cqw;text-align:center;font-size:.85cqw;color:#4a5468;line-height:1.3}.cert .qr svg{width:8.6cqw;height:8.6cqw;display:block;background:#fff;padding:.4cqw}.cert .qr svg path,.cert .qr svg rect[fill=black]{fill:var(--paper-ink)}.cert .watermark{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-family:var(--f-mono);font-weight:700;font-size:4cqw;color:rgba(201,65,26,.22);transform:rotate(-18deg);letter-spacing:.1em;text-align:center}.certbar{flex-wrap:wrap;margin:20px 0 6px}.certbar,.vstate{display:flex;gap:10px;justify-content:center}.vstate{align-items:center;border-radius:12px;padding:10px 14px;margin-bottom:16px;font-weight:600;font-size:14.5px;border:1px solid var(--line);background:var(--surface)}.vstate.ok{border-color:var(--safe);background:var(--safe-soft)}.vstate.no{border-color:var(--alarm);background:var(--alarm-soft)}.mini-cert{transform:rotate(-2deg)}@media print{@page{size:A4 landscape;margin:0}body,html{background:#fff!important}.certbar,.demo,.noprint,.toast,.vstate,body:before,footer,header.top{display:none!important}main{padding:0!important}.cert-wrap{max-width:none;width:297mm;margin:0}.cert{width:297mm;height:210mm;box-shadow:none;border-radius:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.phone{max-width:420px;margin:0 auto;border:3px solid var(--ink);border-radius:26px;overflow:hidden;background:var(--surface-2);box-shadow:0 10px 30px rgba(14,20,32,.14)}.ph-head{display:flex;gap:10px;align-items:center;padding:12px 14px;background:var(--bubble);color:var(--bubble-ink)}.ph-head b{display:block;font-size:14px;line-height:1.2}.ph-head small{font-size:11.5px;color:var(--bubble-muted);font-family:var(--f-mono)}.ph-av{width:34px;height:34px;border-radius:50%;background:var(--alarm);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.ph-body{display:flex;flex-direction:column;gap:8px;padding:14px;max-height:340px;overflow-y:auto;min-height:150px}.msg{max-width:82%;padding:9px 13px;border-radius:16px;font-size:14.5px;line-height:1.45;overflow-wrap:anywhere}.msg.new{animation:pop .35s ease both;animation-delay:var(--d,0s)}.msg.them{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px}.msg.me{align-self:flex-end;background:var(--ink);color:var(--surface);border-bottom-right-radius:5px}@keyframes pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ph-replies{display:grid;grid-gap:7px;gap:7px;padding:12px 14px 14px;border-top:1px solid var(--line);background:var(--surface)}.ph-replies .hint{margin:0 0 2px}.reply{text-align:left;border:1.5px solid var(--ink);background:var(--surface);border-radius:14px;padding:9px 13px;font-size:14px;font-weight:500}.reply:hover{background:var(--surface-2)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--line);background:var(--surface-2);border-radius:999px;padding:9px 16px;font-weight:600;font-size:14px}.chip.sel{border-color:var(--ink);background:var(--ink);color:var(--surface)}.chip.right{border-color:var(--safe);background:var(--safe-soft);color:var(--ink)}.chip.right:before{content:"✓ "}.chip.wrong{border-color:var(--alarm);background:var(--alarm-soft);color:var(--ink);text-decoration:line-through}.chip.miss{border-color:var(--warn);border-style:dashed;color:var(--ink)}.chip.miss:before{content:"＋ "}.timer-intro{display:flex;gap:16px;align-items:center;background:var(--alarm-soft);border-radius:12px;padding:14px 16px;margin-bottom:12px}.timer-intro p{margin:0}.clock{flex:none;width:58px;height:58px;border-radius:50%;border:4px solid var(--alarm);display:grid;place-items:center;font-family:var(--f-mono);font-weight:700;font-size:22px;color:var(--alarm)}.countdown{position:relative;height:26px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:10px}.countdown i{position:absolute;inset:0 auto 0 0;width:100%;background:var(--safe);transition:width .1s linear}.countdown.hot i{background:var(--alarm)}.countdown span{position:relative;display:block;text-align:center;font-family:var(--f-mono);font-weight:700;font-size:13px;line-height:24px}.reflect{display:flex;gap:12px;margin-top:12px;background:var(--surface-2);border-radius:12px;padding:12px 14px}.reflect b{font-size:22px}.reflect p{margin:0;font-size:14.5px}.chain-cut{flex-wrap:wrap;gap:6px}.chain-cut,.chain-cut .link{display:flex;align-items:center}.chain-cut .link{position:relative;gap:8px;border:2px solid var(--ink);background:var(--surface);border-radius:12px;padding:10px 12px;font-weight:600;font-size:14px;text-align:left}.chain-cut .link .n{width:22px;height:22px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-family:var(--f-mono);font-size:11.5px}.chain-cut .link:hover:not(:disabled){background:var(--surface-2)}.chain-cut .link.tried{border-style:dashed;opacity:.7}.chain-cut .link.cut-no{border-color:var(--alarm);background:var(--alarm-soft)}.chain-cut .link.cut-ok{border-color:var(--safe);background:var(--safe-soft)}.chain-cut .sc{position:absolute;top:-14px;right:-8px;font-size:20px;transform:rotate(-20deg)}.chain-cut .arrow{width:18px;height:2px;background:var(--ink);position:relative;flex:none}.chain-cut .arrow:after{content:"";position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left:5px solid var(--ink)}@media (max-width:600px){.chain-cut{flex-direction:column;align-items:stretch}.chain-cut .arrow{width:2px;height:12px;margin-left:22px}.chain-cut .arrow:after{right:-4px;top:auto;bottom:-6px;border-left-color:transparent;border-top-color:var(--ink)}}.tree-qs{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-gap:8px;gap:8px;counter-reset:tq}.tree-qs li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:6px 12px;gap:6px 12px;align-items:center;background:var(--surface-2);border:1.5px solid transparent;border-radius:12px;padding:10px 12px}.tree-qs li.ok{border-color:var(--safe)}.tree-qs li.no{border-color:var(--alarm)}.tree-qs .q{font-size:14px;font-weight:600}.tree-qs .why{grid-column:1/-1;font-size:13.5px;color:var(--muted)}.seg2{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.seg2 button{border:0;background:none;padding:7px 12px;font-size:13.5px;font-weight:600;white-space:nowrap}.seg2 button+button{border-left:1.5px solid var(--line)}.seg2 button.on{background:var(--ink);color:var(--surface)}.seg2 button.on.r{background:var(--alarm);color:#fff}.seg2 button.on.g{background:var(--safe);color:#fff}.seg2.wide{display:flex;margin-bottom:12px}.seg2.wide button{flex:1 1;padding:10px}.verdict{margin-top:12px;border-radius:12px;padding:14px;text-align:center;font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:.02em}.verdict.stop{background:var(--alarm);color:#fff}.verdict.go{background:var(--safe);color:#fff}@media (max-width:520px){.tree-qs li{grid-template-columns:1fr}}.acc{display:grid;grid-gap:16px;gap:16px;padding-block:28px 64px}.h-sm{font-size:20px;margin:0 0 12px}.lvbar-h{font-size:14.5px}.bar.big{height:10px;border-radius:5px;margin:8px 0 18px}.journey{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.journey li{display:grid;justify-items:center;text-align:center;grid-gap:2px;gap:2px;padding:10px 4px;border-radius:12px;background:var(--surface-2);opacity:.55}.journey li.on{opacity:1;background:var(--safe-soft)}.journey .ic{font-size:24px}.journey b{font-size:12.5px;line-height:1.25}.journey small{font-size:11px;color:var(--muted);font-family:var(--f-mono)}@media (max-width:560px){.journey{grid-template-columns:repeat(3,minmax(0,1fr))}}.needs{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-gap:6px;gap:6px;font-size:14.5px}.needs li.ok{color:var(--safe);font-weight:600}.board{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.board li{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;align-items:center;background:var(--surface-2);border-radius:10px;padding:9px 12px;font-size:14.5px}.board li.me{background:var(--safe-soft);box-shadow:inset 0 0 0 1.5px var(--safe)}.board li.sep{margin-top:8px}.board .rk{font-family:var(--f-mono);font-weight:700;text-align:center}.board .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.board .nm em{font-style:normal;font-size:11px;background:var(--safe);color:#fff;border-radius:6px;padding:1px 6px;margin-left:4px}.board .lv{font-size:12.5px;color:var(--muted);white-space:nowrap}.board b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width:520px){.board li{grid-template-columns:30px minmax(0,1fr) auto}.board .lv{display:none}}.help{display:grid;grid-gap:18px;gap:18px;padding-block:28px 64px}.help-hero{display:grid;grid-template-columns:200px minmax(0,1fr);grid-gap:22px;gap:22px;align-items:center}.help-hero h1{font-size:clamp(26px,4vw,36px);margin-top:6px}.help-hero .lead{color:var(--muted);margin:10px 0 0}@media (max-width:600px){.help-hero{grid-template-columns:1fr}.help-hero>div:first-child{max-width:200px}}.help-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.help-steps li{display:flex;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.help-steps .n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--alarm);color:#fff;display:grid;place-items:center;font-family:var(--f-mono);font-weight:700}.help-steps p{margin:4px 0 0;font-size:14px;color:var(--muted)}@media (max-width:600px){.help-steps{grid-template-columns:1fr}}.channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));grid-gap:10px;gap:10px}.ch{background:var(--surface-2);border-radius:12px;padding:14px;display:grid;grid-gap:4px;gap:4px;align-content:start;min-width:0}.ch .big{font-family:var(--f-display);font-weight:800;font-size:22px;color:var(--alarm)}.ch p{margin:0;font-size:13.5px;color:var(--muted);overflow-wrap:anywhere}.ch code{font-family:var(--f-mono);font-size:12.5px;background:var(--surface);padding:1px 5px;border-radius:5px;color:var(--ink)}.ch a{font-size:13.5px;overflow-wrap:anywhere}.ch a,footer a{font-weight:600;color:var(--ink)}.brand{flex:none}.ccards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));grid-gap:14px;gap:14px}.ccard{display:grid;grid-template-columns:120px minmax(0,1fr);grid-template-rows:1fr auto;grid-gap:6px 18px;gap:6px 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;text-decoration:none;transition:border-color .15s,transform .15s}.ccard:hover{border-color:var(--ink);transform:translateY(-2px)}.ccard .thumb{grid-row:1/3;display:grid;place-items:center;background:var(--surface-2);border-radius:12px;padding:6px}.ccard .body{display:grid;grid-gap:4px;gap:4px;min-width:0}.ccard b{font-family:var(--f-display);font-size:22px;line-height:1.15}.ccard small{color:var(--muted);font-size:14px;line-height:1.5}.ccard .facts{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-top:4px}.ccard .go{font-weight:700;font-size:14px;justify-self:start}@media (max-width:520px){.ccard{grid-template-columns:1fr}.ccard .thumb{grid-row:auto;max-width:160px}}.course-hero{padding-block:40px 8px;max-width:760px}.course-hero h1{font-size:clamp(32px,5.5vw,52px);font-weight:800;letter-spacing:-.02em;margin-top:10px}.course-hero .lead{color:var(--muted);font-size:17px;margin:14px 0 0}.cprog{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.cprog li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(80px,1fr) auto auto;grid-gap:12px;gap:12px;align-items:center}.cprog .nm{font-weight:600}.cprog .bar{margin:0}@media (max-width:560px){.cprog li{grid-template-columns:1fr auto}.cprog .bar{grid-column:1/-1;grid-row:2}}.linkbtn{background:none;border:0;padding:0;color:var(--ink);font-weight:600;text-decoration:underline;font-size:inherit}.subnav{overflow-x:auto;scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}@media (max-width:820px){.stack .bubble{transform:none!important}}.tools-filter{max-width:560px;margin-top:6px}.tools-group h2{display:flex;gap:8px;align-items:center}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));grid-gap:12px;gap:12px}.tool{display:grid;grid-gap:10px;gap:10px;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;min-width:0}.tool.soon{border-style:dashed;background:var(--surface-2)}.tool-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.tool h3{font-size:18px;overflow-wrap:anywhere}.tool .by{font-size:13px;color:var(--muted)}.badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.tb{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap;border:1px solid}.tb.free{color:var(--safe);border-color:var(--safe);background:var(--safe-soft)}.tb.off{color:var(--ink);border-color:var(--line);background:var(--surface-2)}.tb.soon{color:var(--alarm);border-color:var(--alarm);background:var(--alarm-soft)}.tool .does{margin:0;font-size:14.5px}.plats{display:flex;flex-wrap:wrap;gap:5px}.plats span{font-family:var(--f-mono);font-size:11.5px;border:1px solid var(--line);border-radius:6px;padding:1px 7px}.plats span,.tool .how{background:var(--surface-2)}.tool .how{font-size:13.5px;color:var(--muted);border-radius:10px;padding:9px 11px}.tool .how b{color:var(--ink)}.tool-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.tool .checked{font-size:12px;color:var(--muted);font-family:var(--f-mono)}.vet ol{margin:0;padding-left:20px;display:grid;grid-gap:8px;gap:8px;font-size:14.5px}.nav a.ext,.subnav a.ext{color:var(--alarm)}.game-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:20px;gap:20px;align-items:center;background:var(--bubble);color:var(--bubble-ink);border-radius:18px;padding:22px 24px;text-decoration:none}.game-band .ticket{display:grid;place-items:center;align-content:center;width:120px;height:84px;border:2px dashed var(--bubble-muted);border-radius:10px;transform:rotate(-4deg);font-family:var(--f-mono)}.game-band .ticket b{font-size:18px;letter-spacing:.08em;color:#FF7D52}.game-band .ticket small{font-size:9.5px;letter-spacing:.14em;color:var(--bubble-muted)}.game-band .gb-body{display:grid;grid-gap:4px;gap:4px;min-width:0}.game-band .gb-body .eyebrow{color:#FF7D52}.game-band .gb-body b{font-family:var(--f-display);font-size:24px;line-height:1.2}.game-band .gb-body small{color:var(--bubble-muted);font-size:14.5px;line-height:1.5}.game-band:hover .btn{filter:brightness(1.08)}@media (max-width:720px){.game-band{grid-template-columns:1fr}.game-band .btn{justify-self:start}}@media (max-width:1340px){.top .nav{display:none}.top .subnav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--line);padding-block:6px}.subnav a{text-decoration:none;padding:5px 10px;border-radius:8px;color:var(--muted);font-weight:600;font-size:13px;white-space:nowrap}.subnav a.on{background:var(--surface-2);color:var(--ink)}.subnav a.ext{color:var(--alarm)}}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--safe);box-shadow:0 0 0 0 var(--safe);animation:pulse 1.8s infinite;vertical-align:middle}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(13,127,101,.5)}70%{box-shadow:0 0 0 7px rgba(13,127,101,0)}to{box-shadow:0 0 0 0 rgba(13,127,101,0)}}.lb-dock{position:fixed;z-index:35;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:380px;max-height:min(640px,calc(100vh - 120px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(14,20,32,.22);overflow:hidden}.lb-head{display:flex;align-items:center;gap:8px;padding:14px 14px 14px 18px;background:var(--bubble);color:var(--bubble-ink)}.lb-head>div{flex:1 1}.lb-head b{display:block;font-family:var(--f-display);font-size:17px}.lb-head small{color:var(--bubble-muted);font-size:12.5px}.lb-head button{width:34px;height:34px;border-radius:10px;border:0;background:rgba(255,255,255,.12);color:var(--bubble-ink);font-size:20px;line-height:1}.lb-head button:hover{background:rgba(255,255,255,.22)}.lb-scroll{overflow-y:auto;padding:14px 16px 16px;overscroll-behavior:contain}.lb-pill{position:fixed;z-index:35;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:var(--bubble);color:var(--bubble-ink);padding:11px 18px;font-weight:700;font-size:14px;box-shadow:0 10px 30px rgba(14,20,32,.25)}.lb-body{display:grid;grid-gap:12px;gap:12px}.lb-body .seg2.wide{margin:0}.lb-league{display:flex;gap:12px;align-items:center;border:1.5px solid var(--safe);background:var(--safe-soft);border-radius:14px;padding:10px 14px}.lb-league .ic{font-size:26px}.lb-league b{display:block;color:var(--safe);font-size:15px}.lb-league small{display:block;color:var(--muted);font-size:12.5px}.lb-league .bar{display:block;height:7px;margin-top:6px}.lb-guest{gap:10px;background:var(--surface-2);border-radius:12px;padding:10px 12px;font-size:13.5px}.lb-guest,.lb-meta{display:flex;align-items:center;justify-content:space-between}.lb-meta{gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.lb-reset{background:var(--alarm-soft);color:var(--alarm);border-radius:999px;padding:3px 10px;font-weight:700;font-size:12.5px;white-space:nowrap}.podium{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;align-items:end;margin-top:6px}.pd,.podium{display:grid}.pd{justify-items:center;grid-gap:4px;gap:4px;text-align:center;min-width:0}.pd .medal{font-size:18px;line-height:1}.lb-av{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:#fff;font-weight:800;font-size:20px;font-family:var(--f-display);border:3px solid var(--surface);box-shadow:0 0 0 2px var(--line)}.lb-av.r1{width:64px;height:64px;font-size:24px;box-shadow:0 0 0 3px #D9A62E}.lb-av.r2{box-shadow:0 0 0 3px #A8B1BF}.lb-av.r3{box-shadow:0 0 0 3px #C07A45}.lb-av.c1{background:#2D4A7A}.lb-av.c2{background:#0D7F65}.lb-av.c3{background:#C9411A}.lb-av.c4{background:#7A4FB0}.lb-av.c5{background:#B7791F}.lb-av.c6{background:#1F7A99}.lb-av.c7{background:#8C3A1E}.lb-av.c8{background:#4E6B2E}.pd .pn{font-weight:700;font-size:13.5px;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pd .pn em{display:block;font-style:normal;font-size:10.5px;color:var(--safe);font-weight:700}.pd .px{font-size:11.5px;color:var(--muted)}.pd .px b{font-family:var(--f-display);font-size:18px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pd .step{width:100%;display:grid;place-items:center;border-radius:12px 12px 4px 4px;color:#fff;font-family:var(--f-display);font-weight:800;font-size:22px}.pd.p1 .step{height:72px;background:linear-gradient(180deg,#5B7FC4,#2D4A7A)}.pd.p2 .step{height:52px;background:linear-gradient(180deg,#7FB3C9,#3F7E99)}.pd.p3 .step{height:40px;background:linear-gradient(180deg,#6FC1A8,#0D7F65)}.pd.me .step{outline:3px solid var(--alarm);outline-offset:-3px}.pd.empty{visibility:hidden}.lb-rest li{grid-template-columns:30px minmax(0,1fr) auto}.lb-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;border-top:1px solid var(--line);padding-top:10px}.lb-ago{display:inline-flex;gap:6px;align-items:center;color:var(--safe);font-weight:600}.hide-opt{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin-top:10px;cursor:pointer}.hide-opt input{margin-top:4px;accent-color:var(--safe)}@media (max-width:600px){.lb-dock{left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));width:auto;bottom:calc(8px + env(safe-area-inset-bottom,0px));max-height:70vh}}@media (prefers-reduced-motion:reduce){.pulse{animation:none}}@media print{.lb-dock,.lb-pill{display:none!important}}.tile.goal b small{font-size:16px;color:var(--muted);font-weight:600}.tile.goal .bar{display:block;height:6px;margin-top:8px}.tile.goal.met{border-color:var(--safe);background:var(--safe-soft)}.tile.goal.met span:not(.bar){color:var(--safe);font-weight:700}.setting{display:flex;justify-content:space-between;align-items:center;gap:12px 16px;flex-wrap:wrap;padding-block:14px;border-top:1px solid var(--line)}.setting>div:first-child{display:grid;grid-gap:2px;gap:2px;min-width:0;flex:1 1 260px}.setting small{color:var(--muted);font-size:13px}.hist{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.hist li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-gap:12px;gap:12px;align-items:center;background:var(--surface-2);border-radius:10px;padding:9px 12px;font-size:14px}.hist .d{font-family:var(--f-mono);font-size:12px;color:var(--muted)}.hist .c,.hist .d{white-space:nowrap}.hist .c{overflow:hidden;text-overflow:ellipsis}.hist b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hist b.pass{color:var(--safe)}.hist b.fail{color:var(--alarm)}.hist .tag{font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px}.hist .tag.pass{background:var(--safe-soft);color:var(--safe)}.hist .tag.fail{background:var(--alarm-soft);color:var(--alarm)}@media (max-width:520px){.hist li{grid-template-columns:minmax(0,1fr) auto}.hist .d{grid-column:1/-1}}.weak{margin-top:14px;background:var(--alarm-soft);border-radius:12px;padding:12px 14px;font-size:14px}.weak ul{margin:6px 0 0;padding-left:18px;display:grid;grid-gap:4px;gap:4px}.weak a{color:var(--ink);font-weight:600}.plan-acc{display:grid;grid-gap:12px;gap:12px}.plan-acc ol{margin:0;padding-left:20px;display:grid;grid-gap:6px;gap:6px;font-size:14.5px}.plan-empty{justify-content:space-between;gap:12px}.plan-empty,.safe-word{display:flex;align-items:center;flex-wrap:wrap}.safe-word{gap:8px;background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:14px}.safe-word code{font-family:var(--f-mono);background:var(--surface);padding:2px 8px;border-radius:6px}.safe-word small{flex-basis:100%;font-size:12.5px}.btn.danger{background:var(--alarm);color:#fff}.setting.danger b{color:var(--alarm)}.del-confirm{display:grid;grid-gap:10px;gap:10px;border:1.5px solid var(--alarm);border-radius:12px;padding:14px;background:var(--alarm-soft)}.del-confirm p{margin:0;font-size:14px}.del-confirm input{font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sp-btn{z-index:35;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:11px 18px;font-weight:700;font-size:14px;box-shadow:0 10px 30px rgba(14,20,32,.18)}.sp-btn,.sp-dock{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--surface)}.sp-dock{z-index:36;width:380px;max-height:min(620px,calc(100vh - 120px));display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(14,20,32,.22);overflow:hidden}.sp-body{display:grid;grid-gap:12px;gap:12px}.sp-zalo{display:grid;grid-gap:10px;gap:10px;border:1.5px solid #0068ff;border-radius:14px;padding:12px 14px;background:color-mix(in srgb,#0068FF 7%,var(--surface))}.sp-zalo-top{display:flex;gap:10px;align-items:flex-start}.sp-zalo-top b{display:block;font-size:15px}.sp-zalo-top small{color:var(--muted);font-size:13px;line-height:1.45}.zl{flex:none;width:40px;height:40px;border-radius:12px;background:#0068FF;color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px}.sp-zalo-act{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sp-zalo-act .btn{background:#0068FF;color:#fff}.sp-qr{display:grid;justify-items:center;grid-gap:2px;gap:2px;width:92px}.sp-qr svg{width:84px;height:84px;background:#fff;padding:4px;border-radius:6px}.sp-qr small{font-size:10.5px;color:var(--muted);text-align:center;line-height:1.3}.sp-warn{margin:0;font-size:12.5px;line-height:1.5;background:var(--alarm-soft);border-radius:10px;padding:8px 10px}.sp-h{font-size:15px;margin:4px 0 0}.sp-faq{display:grid;grid-gap:6px;gap:6px}.sp-faq details{background:var(--surface-2);border-radius:10px;padding:2px 12px}.sp-faq summary{cursor:pointer;font-weight:600;font-size:14px;padding:9px 0;list-style:none}.sp-faq summary::-webkit-details-marker{display:none}.sp-faq summary:before{content:"+ ";color:var(--alarm);font-weight:800}.sp-faq details[open] summary:before{content:"– "}.sp-faq p{margin:0 0 10px;font-size:13.5px;color:var(--muted);line-height:1.55}@media (max-width:600px){.sp-dock{left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));width:auto;bottom:calc(8px + env(safe-area-inset-bottom,0px));max-height:75vh}.sp-qr{display:none}}@media print{.sp-btn,.sp-dock{display:none!important}}.today{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}@media (max-width:860px){.today{grid-template-columns:1fr}}.dc{border-top:5px solid var(--alarm)}.dc-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.dc-xp{font-family:var(--f-mono);font-size:12.5px;font-weight:700;color:var(--safe);background:var(--safe-soft);border-radius:999px;padding:3px 10px}.dc-q{font-size:21px;margin:10px 0 12px}.dc-note{margin:0 0 14px;font-size:14px}.dc-timer{display:flex;align-items:center;gap:10px;margin-bottom:12px}.dc-timer .bar{flex:1 1;margin:0;height:8px}.dc-timer .bar i{transition:width 1s linear}.dc-timer b{font-family:var(--f-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.dc-timer.low .bar i{background:var(--alarm)}.dc-timer.low b{color:var(--alarm)}.dc-opts{display:grid;grid-gap:8px;gap:8px}.dc-opt{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;border:1.5px solid var(--line);background:var(--surface-2);border-radius:12px;padding:11px 14px;font-size:15px;line-height:1.45}button.dc-opt:hover:not(:disabled){border-color:var(--ink)}.dc-opt .k{flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);font-family:var(--f-mono);font-size:12px;font-weight:700}.dc-opt.right{border-color:var(--safe);background:var(--safe-soft)}.dc-opt.right .k{background:var(--safe);color:#fff;border-color:var(--safe)}.dc-opt.wrong{border-color:var(--alarm);background:var(--alarm-soft)}.dc-opt.wrong .k{background:var(--alarm);color:#fff;border-color:var(--alarm)}.dc-res{margin-top:12px;border-radius:12px;padding:12px 14px;border-left:4px solid var(--safe);background:var(--surface-2)}.dc-res.no{border-left-color:var(--alarm)}.dc-res b{font-family:var(--f-display);font-size:17px}.dc-res p{margin:4px 0 0;font-size:14.5px}.dc-gain{margin-left:10px;font-family:var(--f-mono);font-weight:700;color:var(--safe);animation:dcpop .5s ease}@keyframes dcpop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15)}to{transform:none;opacity:1}}.dc-guest{margin:12px 0 0;font-size:14px;background:var(--alarm-soft);border-radius:10px;padding:9px 12px}.dc-guest a{font-weight:700;color:var(--alarm);white-space:nowrap}.dc-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:14px}.dc-cd{font-family:var(--f-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.td-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.td-hi{display:block;font-family:var(--f-display);font-size:19px;line-height:1.25}.td-top small{display:block;font-size:13px}.td-streak{display:flex;align-items:center;gap:10px;border-radius:12px;padding:10px 12px;background:var(--surface-2);margin-bottom:14px}.td-streak span{font-size:24px;filter:grayscale(1);opacity:.5}.td-streak.on{background:var(--alarm-soft)}.td-streak.on span{filter:none;opacity:1}.td-row{display:flex;justify-content:space-between;font-size:14px}.td-row b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.td .bar{height:8px}.td .bar.met i{background:var(--safe)}.td-badges{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:14px}.td-badges div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}.td-badges span{font-size:20px}.td-badges b{display:block;font-size:14px;line-height:1.3}.td-badges small{display:block;font-size:12px;color:var(--muted);line-height:1.35}.td.guest{border-top:5px solid var(--ink)}.td-list{list-style:none;padding:0;margin:12px 0 16px;display:grid;grid-gap:8px;gap:8px;font-size:14.5px}.sf-lead{margin:6px 0 14px}.sf-chips .chip{display:inline-flex;align-items:center;gap:6px}.chip.urgent{border-color:var(--alarm);color:var(--alarm);background:var(--alarm-soft)}.chip.urgent.sel{background:var(--alarm);color:#fff;border-color:var(--alarm)}.sf-panel{margin-top:14px;border-left:5px solid var(--ink);animation:fadein .25s ease}.sf-panel.urgent{border-left-color:var(--alarm)}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.sf-head{display:flex;align-items:center;gap:10px}.sf-ic{font-size:26px}.sf-head h3{font-size:20px}.sf-sign{margin:10px 0;font-size:14.5px}.sf-panel h4{margin:12px 0 6px;font-family:var(--f-display);font-size:15px}.sf-do{margin:0 0 14px;padding-left:22px;display:grid;grid-gap:6px;gap:6px}.sf-do li::marker{font-weight:700;color:var(--alarm)}.dc-rule{display:block;font-size:12px;margin-top:2px}.dc-prbtn{margin-top:12px}.dc-practice{margin-top:14px;padding-top:14px;border-top:1.5px dashed var(--line);display:grid;grid-gap:10px;gap:10px}.dc-prscore{font-size:13px;font-weight:600}