:root{--paper:#faf8f5;--surface:#fff;--sunk:#f2efea;--line:#e3ded6;--line-2:#d9d3ca;--ink:#191919;--ink-2:#4a4641;--ink-3:#6b655e;--accent:#ff7e1b;--on-accent:#191919;--accent-ink:#a84a06;--accent-ring:#ffe3cc;--accent-tint:#fff4ea;--done:#15803d;--on-done:#fff;--practice:#1d4ed8;--on-practice:#fff;--warn-bg:#fdf0e1;--warn-ink:#5c2a04;--warn-icon:#b45309;--mark:#ffe9a8;--mark-ink:#191919;--chip:#ede9e3;--shadow:0 10px 30px #1919191f;--f-display:"Anek Bangla", "Noto Sans Bengali", system-ui, sans-serif;--f-body:"Atkinson Hyperlegible", "Noto Sans Bengali", system-ui, sans-serif;--radius:16px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#151412;--surface:#1e1c1a;--sunk:#26231f;--line:#3a3631;--line-2:#4a4540;--ink:#f3efe9;--ink-2:#c9c2b8;--ink-3:#a39c92;--accent:#ff8a33;--on-accent:#151412;--accent-ink:#ffa661;--accent-ring:#4a2a12;--accent-tint:#2a1d12;--done:#4ade80;--on-done:#0e2a17;--practice:#7aa2ff;--on-practice:#0b1633;--warn-bg:#33230f;--warn-ink:#f8d9b0;--warn-icon:#f59e0b;--mark:#5a4513;--mark-ink:#fff3d6;--chip:#2c2925;--shadow:0 10px 30px #00000080;color-scheme:dark}}:root[data-theme=dark]{--paper:#151412;--surface:#1e1c1a;--sunk:#26231f;--line:#3a3631;--line-2:#4a4540;--ink:#f3efe9;--ink-2:#c9c2b8;--ink-3:#a39c92;--accent:#ff8a33;--on-accent:#151412;--accent-ink:#ffa661;--accent-ring:#4a2a12;--accent-tint:#2a1d12;--done:#4ade80;--on-done:#0e2a17;--practice:#7aa2ff;--on-practice:#0b1633;--warn-bg:#33230f;--warn-ink:#f8d9b0;--warn-icon:#f59e0b;--mark:#5a4513;--mark-ink:#fff3d6;--chip:#2c2925;--shadow:0 10px 30px #00000080;color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:400 18px/1.75 var(--f-body);margin:0}a{color:var(--accent-ink);text-underline-offset:3px}a:hover{color:var(--ink)}img{max-width:100%}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.3}h1{font-size:clamp(28px,6vw,40px);font-weight:700}h2{font-size:22px;font-weight:600}h3{font-size:19px;font-weight:600}p{text-wrap:pretty;margin:0}.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}.stack{gap:var(--gap,16px);flex-direction:column;display:flex}.row{gap:var(--gap,8px);flex-wrap:wrap;align-items:center;display:flex}.muted{color:var(--ink-2)}.faint{color:var(--ink-3);font-size:14px}.top{z-index:20;background:color-mix(in srgb, var(--paper) 92%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.top .wrap{align-items:center;gap:12px;min-height:64px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand .wordmark{color:var(--ink);display:block}.brand .brand-by{padding-top:6px}.brand-by{color:var(--ink-3);font-size:12px}.top-nav{gap:4px;margin-left:auto;display:none}.top-nav a{min-height:44px;color:var(--ink-2);border-radius:10px;align-items:center;padding:0 12px;font-size:16px;text-decoration:none;display:flex}.top-nav a[aria-current=page]{color:var(--ink);background:var(--sunk);font-weight:700}.icon-btn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:22px;place-items:center;text-decoration:none;display:grid}.top-actions{gap:8px;margin-left:auto;display:flex}.bottom-nav{z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:4px 4px calc(6px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:54px;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:13px;line-height:1.2;text-decoration:none;display:flex}.bottom-nav a[aria-current=page]{color:var(--ink);font-weight:700}.bottom-nav a[aria-current=page] svg{color:var(--accent-ink)}main{padding-bottom:120px}@media (width>=900px){.top-nav{display:flex}.top-actions{margin-left:0}.bottom-nav{display:none}main{padding-bottom:64px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.list a{min-height:58px;color:var(--ink);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex}.list a:first-child{border-top:0}.list a:hover{background:var(--sunk)}.list .meta{color:var(--ink-3);font-size:13px;line-height:1.4;display:block}.chev{color:var(--ink-3);flex:none}.pill{background:var(--sunk);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:13px;line-height:1.7;display:inline-flex}.pill.solid{background:var(--ink);color:var(--paper);font:700 12px/1.9 var(--f-body);letter-spacing:.05em}.pill.draft{background:var(--warn-bg);color:var(--warn-ink)}.kbd,:not(pre)>code{background:var(--chip);border:1px solid var(--line-2);font:700 .85em/1.6 var(--f-body);color:var(--ink);white-space:nowrap;border-radius:6px;padding:1px 8px}.btn{min-height:50px;font:600 16px/1.2 var(--f-body);cursor:pointer;border:2px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn-accent{background:var(--accent);color:var(--on-accent)}.btn-accent:hover{color:var(--on-accent);filter:brightness(.96)}.btn-ink{background:var(--ink);color:var(--paper)}.btn-ink:hover{color:var(--paper)}.btn-line{background:var(--surface);color:var(--ink);border-color:var(--line-2)}.btn-practice{color:var(--practice);border-color:var(--practice);background:0 0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:12px;display:grid}.role-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);min-height:76px;color:var(--ink);flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;display:flex}.role-card:hover{border-color:var(--ink);color:var(--ink)}.role-card b{font-size:17px;font-weight:600;line-height:1.35}.role-card span{color:var(--ink-3);font-size:13px;line-height:1.4}.progress{grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;display:grid}.progress span{background:var(--line);border-radius:4px;height:8px}.progress span.on{background:var(--done)}.search-box{border-radius:var(--radius);background:var(--surface);border:2px solid var(--ink);align-items:center;gap:10px;min-height:56px;padding:0 8px 0 16px;display:flex}.search-box input{min-width:0;font:400 18px/1.4 var(--f-body);color:var(--ink);background:0 0;border:0;outline:0;flex:1}.search-box button{min-height:44px}.doc{gap:28px;padding-top:20px;display:grid}@media (width>=900px){.doc{grid-template-columns:240px minmax(0,1fr);gap:40px;padding-top:32px}}.doc-side{display:none}@media (width>=900px){.doc-side{flex-direction:column;align-self:start;gap:4px;display:flex;position:sticky;top:88px}}.doc-side a{min-height:40px;color:var(--ink);border-radius:10px;align-items:center;padding:4px 12px;font-size:15px;line-height:1.4;text-decoration:none;display:flex}.doc-side a[aria-current=page]{background:var(--ink);color:var(--paper);font-weight:600}.doc-side .label{color:var(--ink-2);padding:0 12px 6px;font-size:13px;font-weight:700}article.prose{flex-direction:column;gap:22px;max-width:680px;display:flex}.answer{color:var(--ink-2);font-size:19px;line-height:1.75}.prose .body{flex-direction:column;gap:16px;display:flex}.prose .body h2{margin-top:12px}.prose .body ul{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.prose .body table{border-collapse:collapse;width:100%;font-size:16px;display:block;overflow-x:auto}.prose .body th,.prose .body td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}.prose .body blockquote{border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-ink);gap:12px;margin:0;padding:14px 16px;display:flex}.prose .body blockquote p{font-size:17px}.prose .body ol{counter-reset:step;flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;display:flex}.prose .body ol>li{counter-increment:step;border-radius:12px;min-height:40px;padding:6px 0 0 56px;position:relative}.prose .body ol>li:before{content:counter(step, bengali);border:2px solid var(--ink);width:40px;height:40px;font:700 21px/1 var(--f-display);background:var(--surface);border-radius:20px;place-items:center;display:grid;position:absolute;top:0;left:0}.prose .body ol>li.done:before{background:var(--done);border-color:var(--done);color:var(--on-done)}.prose .body ol>li.now:before{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 0 0 5px var(--accent-ring)}.prose .body ol>li .step-done{border:1px solid var(--line-2);background:var(--surface);min-height:36px;color:var(--ink-2);font:500 14px/1 var(--f-body);cursor:pointer;border-radius:18px;align-items:center;gap:6px;margin-top:6px;padding:0 12px;display:inline-flex}.prose .body ol>li.done .step-done{border-color:var(--done);color:var(--done)}.speaking{background:var(--mark);color:var(--mark-ink);box-shadow:0 0 0 4px var(--mark);border-radius:4px}.doc-actions{flex-wrap:wrap;gap:8px;display:flex}.listen-bar{left:10px;right:10px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:15;background:var(--ink);color:var(--paper);box-shadow:var(--shadow);border-radius:22px;align-items:center;gap:12px;max-width:660px;margin:0 auto;padding:10px 12px;display:none;position:fixed}.listen-bar.on{display:flex}.listen-bar button{border:1px solid color-mix(in srgb, var(--paper) 30%, transparent);min-width:44px;min-height:44px;color:var(--paper);font:700 15px/1 var(--f-body);cursor:pointer;background:0 0;border-radius:22px}.listen-bar .play{background:var(--accent);width:50px;height:50px;color:var(--on-accent);border:0}@media (width>=900px){.listen-bar{bottom:20px}}.footnote{color:var(--ink-3);font-size:14px}.toast{background:var(--ink);color:var(--paper);z-index:30;opacity:0;pointer-events:none;border-radius:12px;padding:10px 16px;font-size:15px;transition:opacity .2s;position:fixed;bottom:150px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}footer.site{border-top:1px solid var(--line);color:var(--ink-2);background:var(--sunk);padding:32px 0 140px;font-size:15px}.footer-grid{flex-wrap:wrap;align-items:center;gap:20px 32px;display:flex}.footer-logo{flex:none;display:inline-flex}.footer-logo img{width:150px;height:auto}.made{font:600 18px/1.4 var(--f-body);color:var(--ink)}.logo-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-light{display:none}:root:not([data-theme=light]) .logo-dark{display:block}}:root[data-theme=dark] .logo-light{display:none}:root[data-theme=dark] .logo-dark{display:block}@media (width>=900px){footer.site{padding-bottom:32px}}.flow-map .flow-cell:hover,.flow-map .flow-cell:focus-visible{background:var(--accent-tint);outline-offset:-3px}.flow-map .flow-cell:hover span:nth-child(2){text-underline-offset:3px;text-decoration:underline}.hero{isolation:isolate;color:#fff;background:#111;align-items:flex-end;min-height:620px;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:-2;position:absolute;inset:0}.hero-bg img{object-fit:cover;object-position:72% center;transform-origin:70%;width:100%;height:100%;animation:24s ease-in-out infinite alternate hero-drift}@keyframes hero-drift{0%{transform:scale(1.02)}to{transform:scale(1.12)translate(-1.5%,-1%)}}@media (prefers-reduced-motion:reduce){.hero-bg img{animation:none;transform:none}}.hero-shade{z-index:-1;background:linear-gradient(#11111140 0%,#1111118c 45%,#111111eb 100%);position:absolute;inset:0}.hero-inner{flex-direction:column;gap:16px;padding-top:72px;padding-bottom:32px;display:flex}.hero-eyebrow{backdrop-filter:blur(8px);background:#ffffff24;border:1px solid #ffffff47;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:6px 14px;font-size:15px;font-weight:600;display:inline-flex}.hero-eyebrow .dot{background:#f80;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #ff880047}.hero h1{text-shadow:0 2px 24px #00000059;font-size:clamp(38px,9vw,68px);line-height:1.15}.hero-lead{color:#ffffffe6;max-width:560px;font-size:18px;line-height:1.7}.hero-search{color:#191919;background:#fffffff5;border-radius:18px;align-items:center;gap:10px;max-width:620px;min-height:60px;padding:0 8px 0 18px;display:flex;box-shadow:0 18px 50px #00000059}.hero-search input{min-width:0;font:400 18px/1.4 var(--f-body);color:#191919;background:0 0;border:0;outline:0;flex:1}.hero-search .btn-accent{color:#111;background:#f80}.hero-quick{flex-wrap:wrap;gap:8px;display:flex}.hero-quick a{color:#fff;backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff4d;border-radius:22px;align-items:center;min-height:44px;padding:0 16px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.hero-quick a:hover{color:#fff;background:#ffffff3d}.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:560px;margin:8px 0 0;display:grid}.hero-stats div{backdrop-filter:blur(10px);background:#11111173;border:1px solid #ffffff29;border-radius:16px;padding:12px 14px}.hero-stats dt{color:#ffffffbf;font-size:13px;line-height:1.3}.hero-stats dd{font:700 28px/1.1 var(--f-display);color:#fff;margin:2px 0 0}@media (width>=900px){.hero{align-items:center;min-height:680px}.hero-shade{background:linear-gradient(90deg,#111111e0 0%,#1111119e 42%,#1111111f 75%,#1110 100%),linear-gradient(#0000 60%,#11111180)}.hero-inner{padding-top:80px;padding-bottom:80px}}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}.js .reveal{opacity:0;transform:translateY(14px)}.reveal{transition:opacity .5s,transform .5s cubic-bezier(.2,.7,.2,1)}.js .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transition:none;transform:none}}.resume{z-index:25;opacity:0;pointer-events:none;width:min(380px,100vw - 24px);transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1);position:fixed;bottom:24px;right:20px;transform:translateY(24px)scale(.98)}.resume.show{opacity:1;pointer-events:auto;transform:none}.resume.leaving{opacity:0;transform:translateY(16px)scale(.98)}.resume-link{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:20px;align-items:center;gap:14px;padding:12px 48px 12px 12px;text-decoration:none;display:flex;box-shadow:0 18px 48px #1111112e,0 2px 6px #1111110f}.resume-link:hover{color:var(--ink);border-color:var(--line-2)}.resume-link:hover .resume-go{background:var(--accent);color:var(--on-accent);transform:translate(3px)}.ring{flex:none;width:52px;height:52px;position:relative}.ring svg{width:52px;height:52px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:3.5px}.ring .ring-track{stroke:var(--line)}.ring .ring-bar{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.2,.8,.2,1)}.ring-pct{font:700 13px/1 var(--f-display);place-items:center;display:grid;position:absolute;inset:0}.resume-text{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.resume-kicker{color:var(--accent-ink);letter-spacing:.02em;font-size:12px;font-weight:700}.resume-title{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.resume-meta{color:var(--ink-3);font-size:13px}.resume-go{background:var(--sunk);border-radius:18px;flex:none;place-items:center;width:36px;height:36px;transition:transform .2s,background .2s;display:grid}.resume-close{width:32px;height:32px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:16px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.resume-close:hover{background:var(--sunk);color:var(--ink)}@media (width<=899px){.resume{width:auto;left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}}body.listening .resume{display:none}.read-progress{z-index:19;pointer-events:none;background:0 0;height:3px;position:fixed;top:64px;left:0;right:0}.read-progress span{background:linear-gradient(90deg, var(--accent), #ffb066);border-radius:0 3px 3px 0;width:0;height:100%;transition:width .15s linear;display:block}.doc-actions .btn-line .lbl{display:inline}@media (width<=480px){.doc-actions .btn-line{width:50px;padding:0}.doc-actions .btn-line .lbl{display:none}}.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent-ink)}.btn[aria-pressed=true] svg{fill:currentColor}.prose .body ol>li{padding-right:56px;transition:background .3s}.prose .body ol>li .step-done{border:2px solid var(--line-2);background:var(--surface);width:40px;height:40px;color:var(--ink-3);cursor:pointer;border-radius:20px;place-items:center;margin:0;padding:0;transition:transform .2s,background .2s,border-color .2s,color .2s;display:grid;position:absolute;top:0;right:0}.prose .body ol>li .step-done:hover{border-color:var(--done);color:var(--done)}.prose .body ol>li.done .step-done{background:var(--done);border-color:var(--done);color:var(--on-done);animation:.35s cubic-bezier(.3,1.6,.5,1) pop}.prose .body ol>li.done>:not(.step-done){color:var(--ink-2)}.prose .body ol>li:before{transition:background .25s,border-color .25s,transform .25s}.prose .body ol>li.done:before{animation:.35s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.prose .body ol>li.done .step-done,.prose .body ol>li.done:before{animation:none}}.prose .body blockquote:before{content:"";background:var(--warn-icon);flex:none;width:22px;height:22px;margin-top:3px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l10 18H2zM12 10v5M12 18v.5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l10 18H2zM12 10v5M12 18v.5'/%3E%3C/svg%3E") 50%/contain no-repeat}.done-card{background:linear-gradient(135deg, var(--accent-tint), var(--surface));border:1px solid var(--accent-ring);border-radius:20px;flex-direction:column;gap:10px;padding:20px;display:flex;position:relative;overflow:hidden}.done-card[hidden]{display:none}.done-card.celebrate{animation:.5s cubic-bezier(.2,.8,.2,1) rise}.done-card h2{font-size:24px}.done-card .burst{width:10px;height:10px;position:absolute;top:18px;right:22px}.done-card .burst i{opacity:0;border-radius:2px;width:8px;height:8px;position:absolute}.done-card.celebrate .burst i{animation:.9s ease-out forwards burst}.done-card .burst i:nth-child(odd){background:var(--accent)}.done-card .burst i:nth-child(2n){background:var(--done);border-radius:50%}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes burst{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--x), var(--y)) rotate(160deg)}}@media (prefers-reduced-motion:reduce){.done-card.celebrate,.done-card.celebrate .burst i{animation:none}}@media (width>=1200px){.doc.has-rail{grid-template-columns:240px minmax(0,680px) 220px}}.doc-rail{display:none}@media (width>=1200px){.doc-rail{border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;align-self:start;gap:14px;padding:16px;display:flex;position:sticky;top:96px}}.doc-rail .rail-head{align-items:center;gap:12px;display:flex}.doc-rail .rail-head b{font:600 15px/1.3 var(--f-display)}.doc-rail ol{counter-reset:rail;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.doc-rail li a{counter-increment:rail;color:var(--ink-2);border-radius:10px;gap:10px;padding:6px 8px;font-size:14px;line-height:1.45;text-decoration:none;display:flex}.doc-rail li a:before{content:counter(rail, bengali);border:1.5px solid var(--line-2);width:22px;height:22px;font:700 12px/1 var(--f-display);border-radius:11px;flex:none;place-items:center;display:grid}.doc-rail li a:hover{background:var(--sunk);color:var(--ink)}.doc-rail li.done a{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-2)}.doc-rail li.done a:before{content:"✓";background:var(--done);border-color:var(--done);color:var(--on-done)}.tile{background:var(--sunk);width:40px;height:40px;color:var(--ink-2);border-radius:12px;flex:none;place-items:center;display:grid}.tile.t-task{color:#a84a06;background:#fff1e3}.tile.t-fix{color:#9f1d1d;background:#fdecec}.tile.t-device{color:#1e4e8c;background:#eaf1fb}.tile.t-screen{color:#3b3f9e;background:#eef0ff}.tile.t-concept,.tile.t-start{color:#1b6b3a;background:#eaf6ee}.tile.t-flow{color:#5b2c91;background:#f4eefb}:root[data-theme=dark] .tile{background:var(--sunk);color:var(--accent-ink)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tile{background:var(--sunk);color:var(--accent-ink)}}.list a .row-main{align-items:center;gap:14px;min-width:0;display:flex}.list a .row-main>span:last-child{min-width:0}.list a{transition:background .15s}.list a:hover .chev{color:var(--ink);transform:translate(3px)}.chev{transition:transform .15s}.mini-bar{background:var(--line);border-radius:2px;max-width:220px;height:4px;margin-top:6px;display:block;overflow:hidden}.mini-bar i{background:var(--accent);border-radius:2px;height:100%;display:block}.roles-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width>=900px){.roles-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}.role-card{gap:8px;min-height:118px;padding:14px;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative}.role-card .role-icon{background:var(--sunk);width:40px;height:40px;color:var(--ink);border-radius:12px;place-items:center;transition:background .2s,color .2s;display:grid}.role-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px #1111111a}.role-card:hover .role-icon{background:var(--accent);color:var(--on-accent)}.role-card .count{color:var(--ink-3);font-size:12px;position:absolute;top:12px;right:12px}.paths{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px;display:grid}.path-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:20px;flex-direction:column;gap:10px;padding:18px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.path-card:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 12px 32px #1111111a}.path-card .ph{align-items:center;gap:12px;display:flex}.path-card h3{font-size:19px}.path-card p{color:var(--ink-2);font-size:15px;line-height:1.6}.path-card .pf{color:var(--ink-3);justify-content:space-between;align-items:center;font-size:13px;display:flex}.gl-filter{z-index:5;position:sticky;top:72px}.gl-grid{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:10px;margin:0;display:grid}.gl-grid>div[hidden]{display:none}.flow{background:linear-gradient(160deg, var(--sunk), var(--surface));border:1px solid var(--line);border-radius:24px;flex-direction:column;gap:14px;padding:18px;display:flex}.flow-stage{align-items:center;gap:18px;display:grid}.flow-app .flow-stage{grid-template-columns:minmax(0,220px) minmax(0,1fr)}@media (width<=520px){.flow-app .flow-stage{grid-template-columns:minmax(0,150px) minmax(0,1fr);gap:12px}}.flow-erp .flow-stage{grid-template-columns:1fr}.device{cursor:zoom-in;background:#111;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.flow-app .device{aspect-ratio:1080/2400;border:6px solid #111;border-radius:26px;box-shadow:0 18px 40px #11111138}.flow-erp .device{aspect-ratio:16/10;border:1px solid var(--line-2);background:#fff;border-radius:12px;box-shadow:0 14px 34px #11111124}.flow-erp .device:before{content:"";height:0;position:absolute;inset:0 0 auto}.device .frame{object-fit:cover;object-position:top;opacity:0;width:100%;height:100%;transition:opacity .5s,transform 3.4s;position:absolute;inset:0;transform:scale(1.03)}.device .frame.on{opacity:1;transform:scale(1)}.flow-side{flex-direction:column;gap:10px;min-width:0;display:flex}.flow-kicker{color:var(--ink-3);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.flow-kicker b{font:700 18px/1 var(--f-display);color:var(--accent-ink)}.flow-where{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:1px 8px}.flow-cap{min-height:3.4em;font-size:18px;line-height:1.7;animation:.4s cap-in}.flow-cap code{font-size:.85em}@keyframes cap-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.flow-timer{background:var(--line);border-radius:2px;height:3px;display:block;overflow:hidden}.flow-timer i{background:var(--accent);width:0;height:100%;display:block}.flow-timer i.run{animation:timer var(--dur,4.2s) linear forwards}@keyframes timer{0%{width:0}to{width:100%}}.flow-ctl{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.flow-play{font:700 14px/1 var(--f-body)}.flow-map-link{margin-left:auto;font-size:14px}.flow-strip{scroll-snap-type:x proximity;gap:8px;margin:0;padding:4px 2px 2px;list-style:none;display:flex;overflow-x:auto}.flow-strip li{scroll-snap-align:start;flex:none;position:relative}.flow-strip li+li:before{content:"";background:var(--line-2);width:10px;height:2px;position:absolute;top:50%;left:-9px}.flow-strip button{background:var(--surface);cursor:pointer;border:2px solid #0000;border-radius:12px;padding:0;transition:border-color .2s,transform .2s;display:block;position:relative;overflow:hidden}.flow-app .flow-strip img{object-fit:cover;object-position:top;width:58px;height:120px;display:block}.flow-erp .flow-strip img{object-fit:cover;object-position:top left;width:132px;height:82px;display:block}.flow-strip button span{color:#fff;min-width:20px;height:20px;font:700 12px/20px var(--f-display);text-align:center;background:#111111bf;border-radius:10px;padding:0 5px;position:absolute;bottom:4px;left:4px}.flow-strip button.on{border-color:var(--accent);transform:translateY(-2px)}.flow-strip button.seen span{background:var(--done)}.prose .body ol>li.flow-on{background:var(--accent-tint);box-shadow:0 0 0 8px var(--accent-tint)}.zoom{background:var(--surface);border:0;border-radius:18px;max-width:min(96vw,1200px);max-height:94vh;padding:0;overflow:auto;box-shadow:0 30px 80px #00000073}.zoom::backdrop{backdrop-filter:blur(4px);background:#111111b8}.zoom img{max-width:100%;max-height:90vh;margin:0 auto;display:block}.zoom-close{float:right;z-index:2;margin:10px;position:sticky;top:10px}@media (prefers-reduced-motion:reduce){.device .frame{transition:opacity .2s;transform:none}.flow-cap{animation:none}}.shot-fig{flex-direction:column;gap:8px;margin:0;display:flex}.shot-fig .device{cursor:zoom-in}.shot-fig.app .device{aspect-ratio:1080/2400;border:6px solid #111;border-radius:26px;max-width:260px}.shot-fig.erp .device{aspect-ratio:16/10;border:1px solid var(--line-2);background:#fff;border-radius:12px}.shot-fig img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.shot-fig figcaption{color:var(--ink-3);font-size:14px}.redact-note{color:var(--ink-3);align-items:center;gap:6px;font-size:13px;display:flex}.redact-note i{background:#d9dce1;border-radius:5px;width:28px;height:10px;display:inline-block}.map-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px;display:grid}.map-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:22px;flex-direction:column;gap:14px;padding:18px;text-decoration:none;transition:transform .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.map-card:hover{color:var(--ink);transform:translateY(-3px);box-shadow:0 16px 40px #1111111f}.fan{height:210px;display:block;position:relative}.fan img{object-fit:cover;object-position:top;width:92px;height:196px;transform:translateX(calc(-50% + (var(--i) - 1) * 48px)) rotate(calc((var(--i) - 1) * 7deg));transform-origin:50% 110%;border:4px solid #111;border-radius:14px;transition:transform .45s cubic-bezier(.2,.8,.2,1);position:absolute;top:8px;left:50%;box-shadow:0 10px 24px #1113}.fan img:nth-child(2){z-index:2}.map-card:hover .fan img{transform:translateX(calc(-50% + (var(--i) - 1) * 76px)) rotate(calc((var(--i) - 1) * 10deg)) translateY(-4px)}.map-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.map-meta b{font:600 18px/1.35 var(--f-display)}.map-meta .tile{margin-bottom:6px}.erp-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px;display:grid}.erp-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:18px;flex-direction:column;gap:12px;padding:12px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.erp-card:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 12px 30px #1111111a}.erp-card img{aspect-ratio:16/10;object-fit:cover;object-position:top left;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%}.erp-card .map-meta .faint{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.fn-list{gap:14px;display:grid}.fn-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:20px;flex-direction:column;gap:12px;padding:16px;text-decoration:none;transition:box-shadow .2s,border-color .2s;display:flex}.fn-card:hover{color:var(--ink);border-color:var(--line-2);box-shadow:0 12px 30px #1111111a}.fn-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.fn-head b{font:600 19px/1.35 var(--f-display)}.fn-strip{gap:22px;padding:4px 2px 8px;display:flex;overflow-x:auto}.fn-shot{flex:none;position:relative}.fn-shot img{object-fit:cover;object-position:top;border:3px solid #111;border-radius:12px;width:74px;height:156px;display:block;box-shadow:0 6px 16px #11111126}.fn-shot em{background:var(--accent);width:24px;height:24px;color:var(--on-accent);font:700 13px/24px var(--f-display);text-align:center;border-radius:12px;font-style:normal;position:absolute;top:-6px;left:-6px}.fn-shot+.fn-shot:before{content:"→";color:var(--ink-3);font-size:16px;position:absolute;top:64px;left:-19px}.js .fn-card.reveal .fn-shot{opacity:0;transition:opacity .4s ease calc(var(--i) * 70ms), transform .4s ease calc(var(--i) * 70ms);transform:translate(-8px)}.js .fn-card.reveal.in .fn-shot{opacity:1;transform:none}.fn-card:hover .fn-shot img{transition:transform .2s ease calc(var(--i) * 40ms);transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.js .fn-card.reveal .fn-shot{opacity:1;transform:none}}.fn-sum{color:var(--ink-2);font-size:15px;line-height:1.6}.screen-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.screen-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:16px;flex-direction:column;gap:8px;padding:10px;text-decoration:none;transition:transform .2s;display:flex}.screen-card:hover{color:var(--ink);transform:translateY(-2px)}.screen-card img{aspect-ratio:1080/2000;object-fit:cover;object-position:top;border:3px solid #111;border-radius:10px;width:100%}.screen-card b{font-size:14px;line-height:1.4;display:block}.screen-card .faint{font-size:12px}.screen-detail{align-items:start;gap:28px;display:grid}.screen-detail.is-app{grid-template-columns:minmax(0,1fr)}@media (width>=900px){.screen-detail.is-app{grid-template-columns:minmax(0,560px) minmax(0,1fr)}.screen-detail.is-erp{grid-template-columns:minmax(0,1fr)}}.screen-shots{gap:14px;padding-bottom:6px;display:flex;overflow-x:auto}.is-app .screen-shots .device{aspect-ratio:1080/2400;border:6px solid #111;border-radius:26px;flex:none;width:min(260px,70vw)}.is-erp .screen-shots .device{border:1px solid var(--line-2);background:#fff;border-radius:12px;width:100%}.screen-shots img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.ocr{border:1px solid var(--line);background:var(--surface);border-radius:14px}.ocr summary{cursor:pointer;padding:12px 14px;font-weight:600}.ocr pre{white-space:pre-wrap;font:400 14px/1.7 var(--f-body);color:var(--ink-2);max-height:360px;margin:0;padding:0 14px 14px;overflow:auto}.course{gap:32px;width:100%;max-width:1260px;margin:0 auto;padding:24px 16px 0;display:grid}@media (width>=960px){.course{grid-template-columns:300px minmax(0,1fr)}}.course-rail{display:none}@media (width>=960px){.course-rail{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-self:start;gap:14px;max-height:calc(100vh - 100px);padding:16px;display:grid;position:sticky;top:84px;overflow-y:auto}}.cr-head{align-items:center;gap:10px;display:flex}.cr-head b{font:600 18px/1.3 var(--f-display)}.cr-progress{gap:6px;display:grid}.cr-count{font-size:15px;font-weight:700}.cr-progress .bar{background:var(--sunk);border-radius:99px;height:10px;display:block;overflow:hidden}.cr-progress .bar i{background:var(--done);border-radius:99px;width:0;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1);display:block}.cr-group{gap:2px;display:grid}.cr-group .label{color:var(--ink-3);padding:8px 4px 4px;font-size:12.5px;font-weight:700}.cr-item{color:var(--ink);border-radius:10px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 8px;font-size:15px;line-height:1.35;text-decoration:none;display:grid}.cr-item:hover{background:var(--sunk);color:var(--ink)}.cr-item .tick{border:2px solid var(--line-2);color:#0000;border-radius:7px;place-items:center;width:22px;height:22px;font-size:13px;display:grid}.cr-item.plain .tick{visibility:hidden}.cr-item[data-state=done] .tick{background:var(--done);border-color:var(--done);color:var(--on-done)}.cr-item[data-state=progress] .tick{border-color:var(--accent);background:linear-gradient(90deg, var(--accent-ring) 50%, transparent 50%)}.cr-item.optional{color:var(--ink-2);font-size:14px}.cr-n{font:700 12px/1 var(--f-display);color:var(--ink-3)}.course-top{z-index:12;background:var(--paper);border-bottom:1px solid var(--line);gap:8px;margin:0 -16px;padding:10px 16px;display:grid;position:sticky;top:64px}@media (width>=960px){.course-top{display:none}}.chips{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1.5px solid var(--line-2);background:var(--surface);min-width:34px;height:34px;color:var(--ink);font:700 14px/1 var(--f-display);border-radius:17px;flex:none;place-items:center;padding:0 10px;text-decoration:none;display:grid}.chip[data-state=done]{background:var(--done);border-color:var(--done);color:var(--on-done)}.chip[data-state=progress]{border-color:var(--accent);color:var(--accent-ink)}.course-main{gap:34px;min-width:0;padding-bottom:40px;display:grid}.course-hero{gap:14px;display:grid}.course-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:520px;display:grid}.course-stats div,.tally div{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:2px;padding:12px 14px;display:grid}.course-stats b,.tally b{font:700 30px/1 var(--f-display)}.course-stats span,.tally span{color:var(--ink-3);font-size:14px}.course-go{justify-self:start;min-height:56px;font-size:17px}.course-module{gap:12px;display:grid}.lessons{gap:10px;display:grid}.lesson{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px;scroll-margin-top:140px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid;position:relative}.lesson:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 10px 26px #11111114}.lesson[data-state=done]{border-color:color-mix(in srgb, var(--done) 45%, var(--line))}.lesson[data-state=progress]{border-color:var(--accent-ring)}.lesson-thumb.app{object-fit:cover;object-position:top;border:2.5px solid #111;border-radius:9px;width:46px;height:96px}.lesson-thumb.web,.lesson-thumb.pos,.lesson-thumb.any{object-fit:cover;object-position:top left;border:1px solid var(--line-2);border-radius:8px;width:92px;height:58px}.lesson-main{gap:2px;min-width:0;display:grid}.lesson-kicker{color:var(--ink-3);font-size:12.5px}.lesson-main b{font:600 17px/1.4 var(--f-display)}.lesson-sum{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.55;display:-webkit-box;overflow:hidden}.lesson-bar{background:var(--line);border-radius:2px;max-width:260px;height:4px;margin-top:6px;display:block;overflow:hidden}.lesson-bar i{background:var(--accent);width:0;height:100%;transition:width .8s;display:block}.lesson[data-state=done] .lesson-bar i{background:var(--done)}.lesson-status{background:var(--sunk);color:var(--ink-3);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.lesson[data-state=done] .lesson-status{background:color-mix(in srgb, var(--done) 15%, transparent);color:var(--done)}.lesson[data-state=progress] .lesson-status{background:var(--accent-tint);color:var(--accent-ink)}@media (width<=520px){.lesson{grid-template-columns:auto minmax(0,1fr)}.lesson-status{grid-column:2;justify-self:start}}.course-summary{gap:14px;display:grid}.tally{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.cert-locked{border:1px dashed var(--line-2);color:var(--ink-2);border-radius:16px;align-items:center;gap:12px;padding:16px;display:flex}.cert{gap:12px;display:grid}.cert-paper{text-align:center;color:#191919;background:linear-gradient(#fffdf8,#fff4e8);border:2px solid #ff7e1b;border-radius:20px;justify-items:center;gap:10px;padding:40px 24px;animation:.6s cubic-bezier(.2,.8,.2,1) rise;display:grid;position:relative;box-shadow:inset 0 0 0 8px #fffdf8,inset 0 0 0 10px #ffd2ae}.cert-kicker{letter-spacing:.06em;color:#a84a06;font-size:13px;font-weight:700}.cert-title{font:800 34px/1.2 var(--f-display)}.cert-line{color:#4a4641;font-size:17px}.cert-name{font:700 30px/1.3 var(--f-display);border-bottom:2px solid #191919;padding:0 18px 4px}.cert-meta{color:#6b655e;font-size:14px}.cert-by{font-weight:700}.cert-input{border:1px solid var(--line-2);background:var(--surface);min-width:220px;min-height:50px;color:var(--ink);font:400 17px/1.4 var(--f-body);border-radius:12px;flex:1;padding:0 14px}@media print{body *{visibility:hidden!important}#certificate,#certificate *{visibility:visible!important}#certificate{animation:none;position:fixed;inset:40px}}.course-bar{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.course-bar[hidden]{display:none}.course-bar .cb-title{font-size:15px;font-weight:700}.course-bar .cb-pos{color:var(--ink-3);font-size:14px}.course-bar .cb-bar{background:var(--sunk);border-radius:3px;flex:120px;height:6px;overflow:hidden}.course-bar .cb-bar i{background:var(--done);height:100%;display:block}.course-bar .cb-nav{gap:6px;margin-left:auto;display:flex}.course-bar .cb-nav a{border:1px solid var(--line-2);min-height:40px;color:var(--ink);border-radius:20px;align-items:center;gap:4px;padding:0 12px;font-size:14px;text-decoration:none;display:inline-flex}.course-bar .cb-nav a[aria-disabled=true]{opacity:.4;pointer-events:none}
