.practicum{--primary:#cc785c;--primary-active:#a9583e;--primary-disabled:#e6dfd8;--primary-ink:#9c4f37;--ink:#141413;--body:#3d3d3a;--body-strong:#252523;--muted:#6c6a64;--muted-ink:#696761;--muted-soft:#8e8b82;--hairline:#e6dfd8;--hairline-soft:#ebe6df;--canvas:#faf9f5;--surface-soft:#f5f0e8;--surface-card:#efe9de;--surface-cream-strong:#e8e0d2;--surface-dark:#181715;--surface-dark-elevated:#252320;--surface-dark-soft:#1f1e1b;--on-primary:#ffffff;--on-dark:#faf9f5;--on-dark-soft:#a09d96;--accent-teal:#5db8a6;--accent-amber:#e8a55a;--success:#5db872;--warning:#d4a017;--error:#c64545;--dark-hairline:#2f2d29;--r-xs:4px;--r-sm:8px;--r-md:10px;--r-lg:12px;--r-xl:16px;--r-2xl:20px;--r-pill:9999px;--r-full:9999px;--sp-xxs:4px;--sp-xs:8px;--sp-sm:12px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--sp-xxl:48px;--sp-section:96px;--font-display:var(--font-unbounded),system-ui,sans-serif;--font-body:var(--font-manrope),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-code:var(--font-jetbrains),ui-monospace,SFMono-Regular,Menlo,monospace;--primary-bg:color-mix(in srgb,var(--primary) 8%,transparent);--primary-border:color-mix(in srgb,var(--primary) 28%,transparent);--primary-glow:color-mix(in srgb,var(--primary) 22%,transparent);--surface-raised:color-mix(in srgb,var(--ink) 4%,transparent);--hairline-strong:color-mix(in srgb,var(--hairline) 60%,var(--muted));--glow-sm:0 4px 16px var(--primary-glow);--glow-md:0 8px 28px var(--primary-glow);--shadow-card:0 1px 3px rgba(20,20,19,0.06),0 8px 24px rgba(20,20,19,0.05);--ease:cubic-bezier(0.16,1,0.3,1);--text-scale:1;--column:65ch;--nav-h:64px;--content-max:1200px;color-scheme:light}.practicum[data-theme=dark]{--primary:#f09b7d;--primary-active:#f09b7d;--primary-ink:#f09b7d;--on-primary:#140f0d;--canvas:#140f0d;--surface-soft:#241a16;--surface-card:#1a1210;--surface-cream-strong:#2b2925;--ink:#ffffff;--body:rgba(255,255,255,0.7);--body-strong:#ece8e0;--muted:rgba(255,255,255,0.55);--muted-ink:rgba(255,255,255,0.7);--muted-soft:#8a877f;--hairline:rgba(255,255,255,0.07);--hairline-soft:rgba(255,255,255,0.05);--primary-disabled:#3a3630;--surface-dark:#0f0b09;--surface-dark-elevated:#1c1b18;--surface-dark-soft:#151412;--surface-raised:rgba(255,255,255,0.06);--primary-bg:color-mix(in srgb,var(--primary) 10%,transparent);--primary-border:color-mix(in srgb,var(--primary) 20%,transparent);--primary-glow:color-mix(in srgb,var(--primary) 30%,transparent);--glow-sm:0 0 20px var(--primary-glow);--glow-md:0 0 30px var(--primary-glow);--shadow-card:0 8px 32px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,255,255,0.05);color-scheme:dark}.practicum[data-text=s]{--text-scale:0.92}.practicum[data-text=l]{--text-scale:1.12}.practicum[data-width=wide]{--column:80ch;--content-max:1440px}.practicum .landing{--bg:var(--canvas);--surface:var(--surface-soft);--surface-sunken:var(--surface-card);--surface-code:var(--surface-dark);--text:var(--ink);--text-body:var(--body);--text-muted:var(--muted);--accent:var(--primary);--accent-ink:var(--primary-ink);--accent-solid:var(--primary-active);--on-accent:var(--on-primary);--accent-bg:var(--primary-bg);--accent-border:var(--primary-border);--accent-glow:var(--primary-glow);--border:var(--hairline);--border-strong:var(--hairline-strong);--font-heading:var(--font-body);--font-mono:var(--font-code);--fs-h1:calc(clamp(30px, 3.4vw, 46px) * var(--text-scale));--fs-h2:calc(clamp(26px, 3vw, 38px) * var(--text-scale));--fs-h3:calc(clamp(21px, 2.2vw, 26px) * var(--text-scale));--fs-lead:calc(18px * var(--text-scale));--fs-body:calc(16px * var(--text-scale));--fs-small:calc(14px * var(--text-scale));--fs-label:calc(12px * var(--text-scale));--fs-micro:calc(11px * var(--text-scale));--lh-tight:1.3;--lh-relaxed:1.7;--ls-tight:-0.02em;--ls-label:0.06em;--ls-wide:0.1em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--dur-base:0.25s;--measure:680px;background:var(--bg);color:var(--text-body);font-size:var(--fs-body)}.practicum .landing h1,.practicum .landing h2{font-family:var(--font-display);font-weight:700;letter-spacing:var(--ls-tight);line-height:var(--lh-tight);color:var(--text);margin:0}.practicum .landing h1{font-size:var(--fs-h1)}.practicum .landing h2{font-size:var(--fs-h2)}.practicum .landing h3{font-family:var(--font-heading);font-size:var(--fs-h3);font-weight:600;line-height:var(--lh-tight);color:var(--text);margin:0}.practicum .landing p{line-height:1.6}.practicum .landing a:not(.ds-btn):not(.ds-head__logo){color:var(--accent-ink)}.practicum .landing :where(a,button,summary):focus-visible{outline:2px solid var(--text);outline-offset:4px}.practicum .landing [id]{scroll-margin-top:84px}.practicum .ds-totop{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:30;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);cursor:pointer;box-shadow:0 6px 20px rgb(0 0 0/.12);transition:background var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.practicum .ds-totop:hover{background:var(--surface)}.practicum .ds-totop:active{transform:translateY(1px)}.practicum .ds-langbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);padding:10px max(20px,min(48px,5vw));background:var(--accent-bg);border-bottom:1px solid var(--accent-border);font-size:var(--fs-small);color:var(--text)}.practicum .landing .ds-langbar__go{font-weight:600;color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}.practicum .ds-langbar__stay{margin-inline-start:auto;background:transparent;border:0;padding:6px 0;color:var(--text-muted);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}@media (max-width:560px){.practicum .ds-langbar{padding-inline:14px;gap:var(--s-2)}}@media (pointer:coarse){.practicum .ds-bento__card>a,.practicum .ds-footer__inner a,.practicum .ds-head__logo,.practicum .ds-langbar__stay,.practicum .landing .ds-langbar__go{display:inline-flex;align-items:center;min-height:44px}}.practicum .ds-sec{padding:72px max(20px,min(48px,5vw))}.practicum .ds-sec>.ds-inner{max-width:1280px;margin:0 auto}.practicum .ds-sec--tight{padding-top:0}@media (max-width:860px){.practicum .ds-sec{padding:44px 20px}}.practicum .ds-eyebrow{display:block;font-size:var(--fs-label);letter-spacing:var(--ls-wide);color:var(--accent-ink)}.practicum .ds-eyebrow,.practicum .ds-label{font-family:var(--font-mono);font-weight:500;text-transform:uppercase}.practicum .ds-label{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-muted)}.practicum[lang=vi] .ds-eyebrow,.practicum[lang=vi] .ds-label{text-transform:none;font-size:calc(13px * var(--text-scale));letter-spacing:.02em}.practicum .ds-paren{font-family:var(--font-body);font-size:var(--fs-small);font-weight:500;color:var(--text-muted)}.practicum .ds-paren:before{content:"("}.practicum .ds-paren:after{content:")"}.practicum .ds-badge,.practicum .ds-h-accent{color:var(--accent-ink)}.practicum .ds-badge{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:500;letter-spacing:.04em;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:4px;padding:6px 14px}.practicum .ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);font-family:var(--font-body);font-size:var(--fs-body);font-weight:600;padding:16px 36px;border-radius:8px;border:none;cursor:pointer;background:var(--accent-solid);color:var(--on-accent);text-decoration:none;transition:box-shadow var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.practicum .ds-btn:hover{box-shadow:var(--glow-sm);transform:translateY(-1px)}.practicum .ds-btn:active{box-shadow:none;transform:translateY(0)}.practicum .ds-btn:disabled{cursor:not-allowed;opacity:.65;transform:none;box-shadow:none}.practicum .ds-btn--secondary{background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);font-size:var(--fs-small);padding:12px 24px;border-radius:10px}.practicum .ds-btn--secondary:hover{box-shadow:none;border-color:var(--accent-border)}.practicum .ds-btn--sm{padding:10px 16px;font-size:calc(13px * var(--text-scale));border-radius:8px}.practicum .ds-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl);padding:var(--s-8)}.practicum .ds-card--filled{background:var(--accent-solid);color:var(--on-accent);border-color:transparent}.practicum .ds-card--filled .ds-label,.practicum .ds-card--filled h3{color:var(--on-accent)}.practicum .ds-divider{height:1px;border:0;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}.practicum .ds-illo{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl);aspect-ratio:16/9}.practicum .ds-illo--square{aspect-ratio:1/1}.practicum .ds-illo--tall{aspect-ratio:3/4}.practicum .ds-illo--bare{background:transparent;border:0;border-radius:0}.practicum .ds-illo img{width:100%;height:100%;object-fit:contain}.practicum .ds-illo--tilt{transform:rotate(-6deg);box-shadow:var(--shadow-card,0 8px 24px rgba(20,20,19,.08))}.practicum .illo-motion{--illo-ink:var(--ink);--illo-coral:var(--primary);--illo-pulse:#f6b394;--illo-ease:cubic-bezier(0.16,1,0.3,1);display:block}.practicum[data-theme=dark] .illo-motion{--illo-pulse:#ffd0b8}.practicum .illo-motion svg{display:block;width:100%;height:auto}.practicum .illo-motion .p,.practicum .illo-motion .pulse{stroke-dasharray:1000;stroke-dashoffset:1000}.practicum .illo-motion .dot,.practicum .illo-motion .g-pulse,.practicum .illo-motion .ink-fill,.practicum .illo-motion .unit{opacity:0}.practicum .illo-motion .unit{transform-box:fill-box;transform-origin:center}.practicum .illo-motion .g-coral,.practicum .illo-motion .g-unit{transform-box:view-box}@keyframes practicum-illo-draw{to{stroke-dashoffset:0}}@keyframes practicum-illo-run{0%{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes practicum-illo-wink{0%,92%,to{stroke-width:var(--eye)}95%{stroke-width:3px}}@keyframes practicum-illo-show{to{opacity:1}}@keyframes practicum-illo-rise{0%{opacity:0;transform:translateY(5%)}to{opacity:1;transform:none}}@keyframes practicum-illo-stamp{0%{opacity:0;transform:scale(1.9) rotate(-14deg)}55%{opacity:1;transform:scale(.94) rotate(1.5deg)}78%{transform:scale(1.03) rotate(-.5deg)}to{opacity:1;transform:none}}@keyframes practicum-illo-present{0%{transform:translateY(4%) scale(.985)}to{transform:none}}@keyframes practicum-illo-dot{0%,to{opacity:.25}30%{opacity:1}}@keyframes practicum-illo-wave{0%,to{opacity:0}50%{opacity:1}}.practicum .illo-motion.go .ink{animation:practicum-illo-draw .9s var(--illo-ease) both;animation-delay:calc(var(--i) * 9ms)}.practicum .illo-motion.go .ink-fill{animation:practicum-illo-show .7s ease both;animation-delay:calc(.5s + var(--i) * 60ms)}.practicum .illo-motion.go .body{animation:practicum-illo-draw .62s var(--illo-ease) both;animation-delay:calc(.7s + var(--i) * 22ms)}.practicum .illo-motion.go .flow{animation:practicum-illo-draw .9s var(--illo-ease) both;animation-delay:calc(1s + var(--i) * .14s)}.practicum .illo-motion.go .trail{animation:practicum-illo-draw .22s linear both;animation-delay:calc(.9s + var(--i) * 90ms)}.practicum .illo-motion.go .eye{animation:practicum-illo-draw .2s linear both;animation-delay:1.75s}.practicum .illo-motion.go .unit.rise{animation:practicum-illo-rise 1.2s var(--illo-ease) both;animation-delay:1.1s}.practicum .illo-motion.go .unit.stamp{animation:practicum-illo-stamp .65s cubic-bezier(.2,.9,.3,1.1) both;animation-delay:1.5s}.practicum .illo-motion .g-ink{transform-box:view-box}.practicum .illo-motion.go:has(.unit.stamp) .g-ink{animation:practicum-illo-present 1.4s var(--illo-ease) both}.practicum .illo-motion.go .check{animation:practicum-illo-draw .42s var(--illo-ease) both;animation-delay:2.5s}.practicum .illo-motion.go .dot{animation:practicum-illo-show .4s ease both;animation-delay:calc(2.3s + var(--i) * .35s)}.practicum .illo-motion[data-motion=flow].go .g-pulse{opacity:1;transition:opacity .6s linear 3s}.practicum .illo-motion[data-motion=flow].go .pulse{stroke-dasharray:60 940;animation:practicum-illo-run 9s linear infinite;animation-delay:calc(3s + var(--i) * 1.5s)}.practicum .illo-motion[data-motion=flow].go .pulse-trail{stroke-dasharray:1000;stroke-dashoffset:0;animation:practicum-illo-wave 6s ease-in-out infinite;animation-delay:calc(3s + var(--i) * .18s)}.practicum .illo-motion[data-motion=flow].go .eye{animation:practicum-illo-draw .2s linear both,practicum-illo-wink 7s ease-in-out 2.4s infinite}.practicum .illo-motion[data-motion=flow].go .dot{animation:practicum-illo-dot 4.2s ease-in-out infinite;animation-delay:calc(2.3s + var(--i) * .35s)}.practicum .illo-motion[data-motion=draw].go .ink{animation-duration:1.5s;animation-delay:calc(var(--i) * 14ms)}.practicum .illo-motion[data-motion=draw].go .ink-fill{animation-delay:calc(.9s + var(--i) * 80ms)}.practicum .illo-motion[data-motion=draw].go .body{animation-delay:calc(1.5s + var(--i) * 30ms)}.practicum .illo-motion[data-motion=draw].go .flow{animation-delay:calc(1.9s + var(--i) * .2s)}.practicum .illo-motion[data-motion=draw].go .trail{animation-delay:calc(1.7s + var(--i) * .12s)}.practicum .illo-motion[data-motion=draw].go .eye{animation-delay:2.9s}.practicum .illo-motion[data-motion=draw].go .unit.rise{animation-duration:1.6s;animation-delay:1.9s}.practicum .illo-motion[data-motion=draw].go .unit.stamp{animation-delay:2.4s}.practicum .illo-motion[data-motion=draw].go .check{animation-delay:3.6s}.practicum .illo-motion[data-motion=draw].go .dot{animation-delay:calc(3.2s + var(--i) * .45s)}.practicum .illo-motion[data-motion=notice] .g-coral,.practicum .illo-motion[data-motion=notice] .g-unit{transform:translate(calc(var(--nx, 0) * 1.4%),calc(var(--ny, 0) * 1.6%));transition:transform .5s var(--illo-ease)}.practicum .illo-motion[data-motion=notice].go .eye{animation:practicum-illo-draw .2s linear both,practicum-illo-wink 5s ease-in-out 2.4s infinite}@media (prefers-reduced-motion:reduce){.practicum .illo-motion .p,.practicum .illo-motion .pulse{stroke-dashoffset:0!important;animation:none!important}.practicum .illo-motion .dot,.practicum .illo-motion .ink-fill,.practicum .illo-motion .unit{opacity:1!important;animation:none!important;transform:none!important}.practicum .illo-motion .g-pulse{display:none}.practicum .illo-motion .g-coral,.practicum .illo-motion .g-ink,.practicum .illo-motion .g-unit{transform:none!important;transition:none!important;animation:none!important}}@media (max-width:860px){.practicum .cols>div>span:first-child{display:block;max-width:200px}.practicum .cols--2>div>span:first-child{max-width:300px}.practicum .cols--2>span{max-width:220px;margin-inline:auto}.practicum .ds-bento__illo{min-height:0;padding:var(--s-5)}.practicum .ds-bento__illo>span{width:52%;max-width:200px}.practicum .ds-side>span:first-child{max-width:220px}.practicum .ds-side .ds-illo--tall{aspect-ratio:1/1}}.practicum .illo-video{display:block}.practicum .illo-video video{display:block;max-width:100%;height:auto;background:transparent}.practicum .illo-video .illo-still,.practicum[data-theme=dark] .illo-video video{display:none}@media (prefers-reduced-motion:reduce){.practicum .illo-video video{display:none!important}.practicum .illo-video .illo-still{display:block}.practicum[data-theme=dark] .illo-video .illo-still{display:none}}.practicum .ds-head{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--s-6);padding:14px max(20px,min(48px,5vw));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px)}.practicum .ds-head__logo{font-family:var(--font-mono);font-size:var(--fs-small);font-weight:500;letter-spacing:.04em;color:var(--text);text-decoration:none;white-space:nowrap}.practicum .ds-head__logo b{color:var(--accent-ink);font-weight:500}@media (max-width:560px){.practicum .ds-head__tail{display:none}}.practicum .ds-footer .ds-head__logo{white-space:normal;overflow-wrap:anywhere}.practicum .ds-head__menu{display:flex;gap:var(--s-5);margin-inline-start:auto;font-size:var(--fs-small)}.practicum .ds-head__menu a{display:inline-flex;align-items:center;min-height:44px;color:var(--text-body);text-decoration:none;text-underline-offset:5px}.practicum .ds-head__menu a:hover{color:var(--accent-ink);text-decoration:underline}.practicum .ds-head__acts{display:flex;gap:var(--s-3);align-items:center}.practicum .ds-head .seg-item{padding:9px 11px;font-size:var(--fs-label)}@media (max-width:1100px){.practicum .ds-head__menu{display:none}.practicum .ds-head__acts{margin-inline-start:auto}.practicum .ds-head__signin{display:none}}@media (max-width:560px){.practicum .ds-head{gap:var(--s-2);row-gap:4px;padding:8px 14px;flex-wrap:wrap}.practicum .ds-head__logo{font-size:calc(11px * var(--text-scale));letter-spacing:0;flex:1 1 auto;min-width:max-content}.practicum .ds-head__acts{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;margin-inline-start:auto;gap:var(--s-2);min-width:0}.practicum .ds-head .seg-item{padding:9px 7px}.practicum .ds-head .ds-btn--sm{padding-inline:14px}}.practicum .ds-mobile-nav{display:none}.practicum .ds-mobile-nav__toggle{display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:44px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg);color:var(--text);font-size:var(--fs-label);font-weight:600;list-style:none;cursor:pointer;user-select:none;transition:background var(--dur-base) var(--ease)}.practicum .ds-mobile-nav__toggle::-webkit-details-marker{display:none}.practicum .ds-mobile-nav[open]>summary,.practicum .ds-mobile-nav__toggle:hover{background:var(--surface)}.practicum .ds-mobile-nav__toggle:active{background:var(--surface-sunken)}.practicum .ds-mobile-nav__icon{position:relative;width:14px;height:14px}.practicum .ds-mobile-nav__icon:after,.practicum .ds-mobile-nav__icon:before{content:"";position:absolute;inset-inline:0;top:4px;height:1.5px;background:currentColor;transition:transform .15s var(--ease)}.practicum .ds-mobile-nav__icon:after{top:9px}.practicum .ds-mobile-nav[open] .ds-mobile-nav__icon:before{transform:translateY(2.5px) rotate(45deg)}.practicum .ds-mobile-nav[open] .ds-mobile-nav__icon:after{transform:translateY(-2.5px) rotate(-45deg)}.practicum .ds-mobile-nav__panel{position:absolute;top:100%;inset-inline:0;padding:16px 20px 20px;max-height:calc(100dvh - 120px);overflow-y:auto;background:var(--bg);border-bottom:1px solid var(--border-strong);box-shadow:0 12px 20px rgb(0 0 0/.08)}.practicum .ds-mobile-nav__links{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}.practicum .ds-mobile-nav__links a{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);min-height:48px;padding:10px 0;border-bottom:1px solid var(--border);text-decoration:none;font-size:var(--fs-small)}.practicum .ds-mobile-nav__links a span{color:var(--text-muted)}.practicum .ds-mobile-nav__links a:hover{text-decoration:underline;text-underline-offset:4px}.practicum .ds-mobile-nav__panel>.ds-btn{margin-top:16px;width:100%}@media (max-width:1100px){.practicum .ds-mobile-nav{display:block}}@media (max-width:380px){.practicum .ds-head .seg-item{padding-inline:6px}}.practicum .ds-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);align-items:center;max-width:1280px;margin:0 auto;padding:56px max(20px,min(48px,5vw)) 0}.practicum .landing .ds-hero__title{margin:22px 0 16px}.practicum .ds-hero__lead{font-size:var(--fs-lead);color:var(--text-body);max-width:480px;margin:0 0 24px}.practicum .ds-hero__acts{display:flex;gap:14px;flex-wrap:wrap}@media (max-width:860px){.practicum .ds-hero{grid-template-columns:1fr;gap:20px;padding:28px 20px 0}.practicum .ds-hero>span{width:min(100%,320px);justify-self:center}.practicum .landing .ds-hero__title{margin-top:18px}.practicum .ds-hero__lead{max-width:620px}.practicum .ds-hero__acts{gap:10px;align-items:center}.practicum .ds-hero__acts .ds-btn{padding:14px 22px}.practicum .ds-hero__acts .ds-btn--secondary{padding:12px 14px}.practicum .ds-hero .ds-badge{max-width:100%;line-height:1.5;padding:6px 10px}}.practicum .trust{display:flex;border-top:1px solid var(--border);margin:56px auto 0;max-width:1280px}.practicum .trust>div{flex:1;padding:22px max(20px,min(24px,3vw));border-right:1px solid var(--border)}.practicum .trust>div:last-child{border-right:0}.practicum .trust b{display:block;font:700 calc(20px * var(--text-scale)) /1.2 var(--font-heading);color:var(--accent-ink);font-variant-numeric:tabular-nums;margin-bottom:2px}@media (max-width:860px){.practicum .trust{flex-wrap:wrap;margin-top:36px}.practicum .trust>div{flex:1 1 45%;border-bottom:1px solid var(--border)}}.practicum .ds-meta{display:flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.practicum .ds-meta>div{flex:1 1 160px;padding:16px 20px;border-right:1px solid var(--border)}.practicum .ds-meta>div:last-child{border-right:0}.practicum .ds-meta b{display:block;font:600 calc(15px * var(--text-scale)) /1.4 var(--font-heading);color:var(--text);margin-top:4px}.practicum .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-8);margin-top:var(--s-10)}.practicum .cols--2{grid-template-columns:1fr 1fr}.practicum .ds-who-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practicum .ds-who-grid>div{min-width:0}.practicum .ds-who__item{display:grid;grid-template-columns:minmax(112px,.65fr) minmax(0,1fr);gap:20px;align-items:center;padding-top:20px;border-top:1px solid var(--border)}.practicum .ds-who-grid .ds-illo--square{width:100%;max-width:200px;margin-inline:auto}.practicum .ds-who__copy{min-width:0}.practicum .ds-who__copy .ds-paren{margin-bottom:8px}@media (max-width:860px){.practicum .cols,.practicum .cols--2{grid-template-columns:1fr;gap:var(--s-6)}.practicum .ds-who-grid{gap:28px}.practicum .ds-who__item{grid-template-columns:140px minmax(0,1fr);gap:20px}}@media (max-width:560px){.practicum .ds-who__item{grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start}.practicum .ds-who-grid .ds-illo--square{max-width:96px}}.practicum .ds-who__name{font:600 calc(20px * var(--text-scale)) /1.35 var(--font-heading);color:var(--text);padding-bottom:10px}.practicum .ds-how__lead{margin:20px 0 28px;max-width:68ch}.practicum .ds-bento{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4);margin-top:var(--s-10)}.practicum .ds-bento>*{min-height:190px}.practicum .ds-bento .span-2{grid-column:span 2}@media (max-width:860px){.practicum .ds-bento{grid-template-columns:1fr 1fr}.practicum .ds-bento .span-2{grid-column:span 2}}@media (max-width:560px){.practicum .ds-bento{grid-template-columns:1fr}.practicum .ds-bento .span-2{grid-column:auto}}.practicum .ds-bento__card{display:flex;flex-direction:column;gap:var(--s-2)}.practicum .ds-bento__card p{margin:0;font-size:var(--fs-small);color:var(--text-body)}.practicum .ds-card--filled p{color:var(--on-accent)}.practicum .ds-bento__illo{display:grid;place-items:center;padding:var(--s-6)}.practicum .ds-bento__illo .ds-illo{width:82%}.practicum .ds-compare{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-4);margin-top:var(--s-10);max-width:900px}.practicum .ds-compare__row{display:grid;grid-template-columns:190px 1fr;gap:var(--s-4);align-items:center;font-size:var(--fs-small);color:var(--text-body)}.practicum .ds-compare__bar{display:flex;height:40px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.practicum .ds-compare__bar span{display:grid;place-items:center;font-family:var(--font-mono);font-size:var(--fs-micro);border-right:1px solid var(--border);white-space:nowrap;overflow:hidden}.practicum .ds-compare__bar span:last-child{border-right:0}.practicum .ds-compare__bar .agent{background:var(--accent-solid);color:var(--on-accent)}.practicum .ds-compare__bar .you{background:var(--surface);color:var(--text-muted)}@media (max-width:700px){.practicum .ds-compare__row{grid-template-columns:1fr;gap:var(--s-2)}}.practicum .ds-author{display:grid;grid-template-columns:minmax(220px,max-content) 1fr;gap:var(--s-10);align-items:start}@media (max-width:860px){.practicum .ds-author{grid-template-columns:1fr;gap:var(--s-6)}.practicum .ds-author .ds-illo{max-width:220px}}.practicum .ds-program-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--s-12);align-items:start;margin-top:var(--s-10)}.practicum .ds-program-layout>.ds-side{position:sticky;top:110px;display:grid;gap:var(--s-4)}@media (max-width:1000px){.practicum .ds-program-layout{grid-template-columns:1fr}.practicum .ds-program-layout>.ds-side{position:static}}.practicum .ds-lessons,.practicum .ds-price ul,.practicum .ds-program,.practicum .ds-program-layout>.ds-side{grid-template-columns:minmax(0,1fr)}.practicum .ds-program{display:grid;gap:var(--s-3)}.practicum .ds-program__summary{display:flex;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-6)}.practicum .ds-program__summary b{font:700 calc(22px * var(--text-scale)) /1.2 var(--font-heading);color:var(--accent-ink);font-variant-numeric:tabular-nums}.practicum .ds-mod{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:border-color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease)}.practicum .ds-mod:hover{border-color:var(--border-strong)}.practicum .ds-mod[open]{border-color:var(--accent-border);box-shadow:var(--glow-md)}.practicum .ds-mod>summary{display:flex;align-items:center;gap:var(--s-4);padding:20px 24px;cursor:pointer;list-style:none}.practicum .ds-mod>summary::-webkit-details-marker{display:none}.practicum .ds-mod__index{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--text-muted);letter-spacing:.04em}.practicum .ds-mod[open] .ds-mod__index{color:var(--accent-ink)}.practicum .ds-mod__title{font:600 calc(18px * var(--text-scale)) /1.35 var(--font-heading);color:var(--text)}.practicum .ds-mod__meta{display:block;margin-top:4px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-muted);letter-spacing:.04em}.practicum .ds-mod__grow{flex:1;min-width:0}.practicum .ds-plus{position:relative;flex:none;width:28px;height:28px;border:1px solid var(--border-strong);border-radius:999px;transition:transform var(--dur-base) var(--ease),border-color var(--dur-base) var(--ease)}.practicum .ds-plus:after,.practicum .ds-plus:before{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--text-muted);transform:translate(-50%,-50%)}.practicum .ds-plus:after{transform:translate(-50%,-50%) rotate(90deg)}.practicum .ds-faq__item[open] .ds-plus,.practicum .ds-mod[open] .ds-plus{transform:rotate(45deg);border-color:var(--accent)}.practicum .ds-faq__item[open] .ds-plus:after,.practicum .ds-faq__item[open] .ds-plus:before,.practicum .ds-mod[open] .ds-plus:after,.practicum .ds-mod[open] .ds-plus:before{background:var(--accent-ink)}.practicum .ds-mod::details-content{block-size:0;overflow:hidden;transition:block-size var(--dur-base) var(--ease),content-visibility var(--dur-base) allow-discrete;interpolate-size:allow-keywords}.practicum .ds-mod[open]::details-content{block-size:auto}.practicum .ds-mod__body{padding:0 24px 22px}.practicum .ds-mod__body>.ds-divider{margin:0 0 18px}.practicum .ds-lessons{list-style:none;margin:0;padding:0;display:grid;gap:2px;--n-col:4ch}.practicum .ds-lessons li{display:flex;align-items:center;gap:var(--s-3);padding:9px 10px;border-radius:8px;font-size:var(--fs-small);color:var(--text-body)}.practicum .ds-lessons li:hover{background:var(--surface-raised)}.practicum .ds-lessons .n{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;width:var(--n-col);min-width:0}.practicum .ds-lessons .ttl{flex:1;min-width:0}.practicum[lang=vi] .ds-lessons .tag{text-transform:none;letter-spacing:.02em}.practicum .ds-lessons .tag{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:4px;padding:2px 7px}.practicum .ds-lessons .dur,.practicum .ds-lessons .tag{font-family:var(--font-mono);font-size:calc(10px * var(--text-scale));flex:none}.practicum .ds-lessons .dur{color:var(--text-muted)}@media (max-width:768px){.practicum .ds-lessons li{flex-wrap:wrap;row-gap:4px}.practicum .ds-lessons .ttl{flex:1 1 calc(100% - var(--n-col) - var(--s-3))}.practicum .ds-lessons .tag{margin-left:calc(var(--n-col) + var(--s-3))}}.practicum .ds-mod[open] .ds-lessons li{animation:practicum-ds-rise .45s var(--ease) both;animation-delay:calc(var(--i, 0) * 35ms)}@keyframes practicum-ds-rise{0%{opacity:0;transform:translateY(6px)}}.practicum .ds-route{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:var(--s-10);align-items:start;margin-top:var(--s-4)}@media (max-width:860px){.practicum .ds-route{grid-template-columns:1fr;gap:var(--s-6)}}.practicum .ds-quiz{position:relative;padding:var(--s-6) var(--s-6) var(--s-6);scroll-margin-top:100px}.practicum .ds-quiz .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media (max-width:860px){.practicum .ds-card.ds-quiz{padding:var(--s-5) var(--s-4);border-radius:20px}}.practicum .ds-quiz__step{display:grid;gap:var(--s-4);animation:practicum-ds-rise .4s var(--ease) both}.practicum .ds-quiz__step>p{margin:0;color:var(--text-body)}.practicum .ds-quiz__title{margin:0;font:600 calc(clamp(19px, 2vw, 22px) * var(--text-scale)) /1.3 var(--font-heading);color:var(--text);letter-spacing:-.01em}.practicum .ds-quiz__q{display:grid;gap:6px}.practicum .ds-quiz__hint{margin:0;font-size:var(--fs-small);color:var(--text-muted)}.practicum .ds-quiz__lead{font-size:var(--fs-small)}.practicum .ds-quiz__bar{display:flex;align-items:center;gap:var(--s-4)}.practicum .ds-quiz__segs{display:flex;gap:5px;flex:1}.practicum .ds-quiz__seg{position:relative;flex:1;height:4px;border-radius:999px;background:var(--border);overflow:hidden}.practicum .ds-quiz__seg:after{content:"";position:absolute;inset:0;background:var(--accent-solid);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.practicum .ds-quiz__seg[data-on="1"]:after{transform:scaleX(1)}.practicum .ds-quiz__seg[data-on=half]:after{transform:scaleX(.5)}.practicum .ds-quiz__count{flex:none;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}.practicum[lang=vi] .ds-quiz__count{text-transform:none}.practicum .ds-quiz__options{display:grid;gap:8px}.practicum .ds-quiz__opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;align-items:start;text-align:left;padding:13px 14px 13px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-raised);color:var(--text);font-family:var(--font-body);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),transform .15s var(--ease),box-shadow .2s var(--ease)}.practicum .ds-quiz__opt>i{font:500 var(--fs-micro) /1 var(--font-mono);letter-spacing:var(--ls-label);color:var(--text-muted);padding-top:5px;font-style:normal}.practicum .ds-quiz__opt-text{display:grid;gap:3px;min-width:0}.practicum .ds-quiz__opt-text b{font-size:var(--fs-body);font-weight:600;line-height:1.35}.practicum .ds-quiz__opt-text span{font-size:var(--fs-small);line-height:1.45;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (min-width:861px){.practicum .ds-quiz__opt-text span{-webkit-line-clamp:3}}.practicum .ds-quiz__radio{position:relative;width:20px;height:20px;margin-top:1px;border-radius:50%;border:1.5px solid var(--border-strong);transition:border-color .2s var(--ease),background .2s var(--ease)}.practicum .ds-quiz__radio:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--accent-solid);transform:scale(0);transition:transform .2s var(--ease)}@media (hover:hover){.practicum .ds-quiz__opt:hover{border-color:var(--accent-border);transform:translateY(-1px);box-shadow:0 10px 24px -18px rgba(0,0,0,.35)}.practicum .ds-quiz__opt:hover .ds-quiz__radio{border-color:var(--accent-solid)}}.practicum .ds-quiz__opt:active{transform:scale(.985)}.practicum .ds-quiz__opt[aria-pressed=true]{border-color:var(--accent-solid);background:var(--accent-bg)}.practicum .ds-quiz__opt[aria-pressed=true] .ds-quiz__radio{border-color:var(--accent-solid)}.practicum .ds-quiz__opt[aria-pressed=true] .ds-quiz__radio:after{transform:scale(1)}.practicum .ds-quiz__opt:disabled{cursor:default;opacity:.55}.practicum .ds-quiz__opt[aria-pressed=true]:disabled{opacity:1}.practicum .ds-quiz__opt:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.practicum .ds-quiz__foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);flex-wrap:wrap}.practicum .ds-quiz__link{background:none;border:none;padding:0;font:600 var(--fs-small) /1.4 var(--font-body);color:var(--accent-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-align:left}.practicum .ds-quiz__link:hover{color:var(--text)}.practicum .ds-quiz__link{min-height:44px;display:inline-flex;align-items:center}.practicum .ds-quiz__link:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}.practicum .ds-quiz__link:disabled{opacity:.6;cursor:wait}.practicum .ds-quiz__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.practicum .ds-quiz__stat{display:grid;gap:4px;align-content:start;padding:14px 14px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface-raised);min-width:0}.practicum .ds-quiz__stat b{font:700 calc(clamp(24px, 3vw, 34px) * var(--text-scale)) /1.05 var(--font-display);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.practicum .ds-quiz__stat span{font-size:var(--fs-micro);line-height:1.3;color:var(--text-muted)}.practicum .ds-quiz__stat--accent{background:var(--accent-solid);border-color:transparent}.practicum .ds-quiz__stat--accent b,.practicum .ds-quiz__stat--accent span{color:var(--on-accent)}@media (max-width:400px){.practicum .ds-quiz__stat{padding:12px 10px 10px}.practicum .ds-quiz__stat b{font-size:calc(22px * var(--text-scale))}}.practicum .ds-quiz__track{display:flex;gap:3px;height:12px;border-radius:999px;overflow:hidden;background:var(--border)}.practicum .ds-quiz__track>span{display:block;height:100%;width:0;transition:width .9s var(--ease)}.practicum .ds-quiz__legend>li>.core,.practicum .ds-quiz__track>.core{background:var(--accent-solid)}.practicum .ds-quiz__legend>li>.week,.practicum .ds-quiz__track>.week{background:color-mix(in srgb,var(--accent-solid) 40%,var(--bg))}.practicum .ds-quiz__legend>li>.skip,.practicum .ds-quiz__track>.skip{background:repeating-linear-gradient(135deg,var(--accent-solid) 0 3px,var(--accent-bg) 3px 7px)}.practicum .ds-quiz__legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:var(--fs-small);color:var(--text-body)}.practicum .ds-quiz__legend li{display:flex;align-items:center;gap:8px}.practicum .ds-quiz__legend b{color:var(--text);font-weight:600}.practicum .ds-quiz__legend i{flex:none;width:10px;height:10px;border-radius:3px}.practicum .ds-quiz__note{margin:0;font-size:var(--fs-small);color:var(--text-muted)}.practicum .ds-quiz__chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 12px;justify-self:start;padding:8px 14px 8px 12px;border-radius:999px;background:var(--accent-bg);border:1px solid var(--accent-border);font-size:var(--fs-small);font-weight:600;color:var(--text)}.practicum .ds-quiz__chip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-solid)}.practicum .ds-quiz__fields{display:grid;gap:14px}.practicum .ds-quiz__field{display:grid;gap:6px}.practicum .ds-quiz__field>span{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:var(--fs-small);font-weight:600;color:var(--text)}.practicum .ds-quiz__field small{font:500 var(--fs-micro) /1 var(--font-mono);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}.practicum[lang=vi] .ds-quiz__field small{text-transform:none}.practicum .ds-quiz__field input,.practicum .ds-quiz__field select,.practicum .ds-quiz__field textarea{width:100%;box-sizing:border-box;min-height:48px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-raised);color:var(--text);font:400 var(--fs-body) /1.5 var(--font-body);transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}.practicum .ds-quiz__field textarea{resize:vertical}.practicum .ds-quiz__field input:focus,.practicum .ds-quiz__field select:focus,.practicum .ds-quiz__field textarea:focus{outline:none;border-color:var(--accent-solid);background:var(--bg);box-shadow:0 0 0 4px var(--accent-bg)}.practicum .ds-quiz__field[data-invalid] input{border-color:var(--error);box-shadow:0 0 0 4px color-mix(in srgb,var(--error) 12%,transparent)}.practicum .ds-quiz__field em,.practicum .ds-quiz__privacy em{font-style:normal;font-size:var(--fs-small);color:color-mix(in srgb,var(--error) 75%,var(--text))}.practicum .ds-quiz__hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.practicum .ds-quiz__acts{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px 20px;margin-top:var(--s-2)}.practicum .ds-quiz__privacy{margin:0;font-size:var(--fs-micro);line-height:1.45;color:var(--text-muted)}.practicum .ds-quiz__submit[data-busy]{opacity:.7;cursor:progress}@media (max-width:600px){.practicum .ds-quiz__acts{grid-template-columns:1fr}.practicum .ds-quiz__submit{width:100%}}.practicum .ds-quiz__check{width:56px;height:56px;fill:none;stroke:var(--accent-solid);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.practicum .ds-quiz__check circle{stroke-dasharray:160;stroke-dashoffset:160;animation:practicum-ds-draw .7s var(--ease) forwards}.practicum .ds-quiz__check path{stroke-dasharray:40;stroke-dashoffset:40;animation:practicum-ds-draw .4s var(--ease) .5s forwards}@keyframes practicum-ds-draw{to{stroke-dashoffset:0}}.practicum .ds-quiz__bonus{display:grid;gap:10px;justify-items:start;margin-top:var(--s-2);padding:var(--s-5);border-radius:16px;background:var(--accent-solid);color:var(--on-accent)}.practicum .ds-quiz__bonus .ds-label,.practicum .ds-quiz__bonus h4,.practicum .ds-quiz__bonus p{color:var(--on-accent)}.practicum .ds-quiz__bonus h4{margin:0;font:600 calc(18px * var(--text-scale)) /1.35 var(--font-heading)}.practicum .ds-quiz__bonus p{margin:0;font-size:var(--fs-small);opacity:.92}.practicum .ds-quiz__bonus .ds-btn{background:var(--bg);color:var(--text);margin-top:4px}@media (prefers-reduced-motion:reduce){.practicum .ds-quiz *,.practicum .ds-quiz :after{animation:none!important;transition:none!important}.practicum .ds-quiz__check circle,.practicum .ds-quiz__check path{stroke-dashoffset:0}}.practicum .ds-price{display:flex;flex-direction:column;gap:var(--s-4)}.practicum .ds-price__amount{font:700 calc(clamp(26px, 3vw, 34px) * var(--text-scale)) /1.15 var(--font-display);color:var(--text);letter-spacing:-.02em}.practicum .ds-price ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:var(--fs-body);color:var(--text-body)}.practicum .ds-price li:before{content:"—";color:var(--accent-ink);margin-right:10px}.practicum .ds-certificate{display:grid;justify-items:center;gap:16px;margin:0}.practicum .ds-certificate>span{width:min(100%,340px)}.practicum .ds-certificate figcaption{max-width:34ch;padding-top:16px;border-top:1px solid var(--border);text-align:center;font:400 var(--fs-small) /1.6 var(--font-body);color:var(--text-muted)}@media (max-width:860px){.practicum .ds-access>.ds-certificate{order:-1}.practicum .ds-certificate>span{max-width:220px}}.practicum .ds-faq{max-width:820px;margin:var(--s-10) auto 0}.practicum .ds-faq__item{border-bottom:1px solid var(--border)}.practicum .ds-faq__item>summary{display:flex;align-items:center;gap:var(--s-4);padding:22px 0;cursor:pointer;list-style:none;font:600 calc(17px * var(--text-scale)) /1.4 var(--font-heading);color:var(--text)}.practicum .ds-faq__item>summary::-webkit-details-marker{display:none}.practicum .ds-faq__item>summary:hover{color:var(--accent-ink)}.practicum .ds-faq__item>summary>span:not(.ds-plus){flex:1;min-width:0}.practicum .ds-faq__item::details-content{block-size:0;overflow:hidden;transition:block-size var(--dur-base) var(--ease),content-visibility var(--dur-base) allow-discrete;interpolate-size:allow-keywords}.practicum .ds-faq__item[open]::details-content{block-size:auto}.practicum .ds-faq__a{margin:0 0 24px;padding-right:44px;color:var(--text-body)}.practicum .ds-faq__item[open] .ds-faq__a{animation:practicum-ds-rise .45s var(--ease) both;animation-delay:35ms}.practicum .ds-banner{background:var(--accent-solid);border-radius:var(--r-2xl);padding:var(--s-12);display:grid;gap:var(--s-5);justify-items:start}.practicum .ds-banner,.practicum .ds-banner h2{color:var(--on-accent)}.practicum .ds-banner p{margin:0;max-width:var(--measure)}.practicum .ds-banner .ds-btn{background:var(--bg);color:var(--text)}.practicum .ds-footer{border-top:1px solid var(--border);padding:var(--s-12) max(20px,min(48px,5vw));background:var(--surface)}.practicum .ds-footer__inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-8)}.practicum .ds-footer .ds-label{margin-bottom:12px;display:block}.practicum .ds-footer a{display:block;color:var(--text-body);text-decoration:none;margin-bottom:8px;font-size:var(--fs-small)}.practicum .ds-footer a:hover{color:var(--accent-ink)}.practicum .ds-footer__bottom{max-width:1280px;margin:var(--s-8) auto 0;padding-top:var(--s-5);border-top:1px solid var(--border);font-size:var(--fs-micro);color:var(--text-muted);font-family:var(--font-mono)}@media (max-width:860px){.practicum .ds-footer__inner{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.practicum .ds-faq__item[open] .ds-faq__a,.practicum .ds-mod[open] .ds-lessons li{animation:none}.practicum .ds-mobile-nav__icon:after,.practicum .ds-mobile-nav__icon:before,.practicum .ds-plus,.practicum .landing :where(a,button,summary){transition:none}.practicum .ds-btn:active,.practicum .ds-btn:hover,.practicum .ds-totop:active{transform:none}}.practicum *{box-sizing:border-box}.practicum{margin:0;background:var(--canvas);color:var(--body);font-family:var(--font-body);font-size:calc(16px * var(--text-scale));line-height:1.55;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}.practicum a{color:var(--primary-ink);text-decoration:none}.practicum .body-md a,.practicum .body-sm a,.practicum li a,.practicum p a{text-decoration:underline;text-underline-offset:3px}.practicum .module-lessons a,.practicum li a.badge,.practicum li a.btn,.practicum p a.badge,.practicum p a.btn{text-decoration:none}.practicum .footer a{color:var(--primary)}.practicum a:hover{text-decoration:underline}.practicum :focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px;border-radius:var(--r-xs)}@media (prefers-reduced-motion:reduce){.practicum *,.practicum :after,.practicum :before{transition:none!important;animation:none!important}}.practicum .display-lg,.practicum .display-md,.practicum .display-sm,.practicum .display-xl{font-family:var(--font-display);font-weight:700;color:var(--ink);margin:0;text-wrap:balance;line-height:1.3;letter-spacing:-.02em;overflow-wrap:break-word}.practicum .display-xl{font-size:calc(clamp(34px, 4.6vw, 56px) * var(--text-scale))}.practicum .display-lg{font-size:calc(clamp(30px, 3.4vw, 46px) * var(--text-scale))}.practicum .display-md{font-size:calc(clamp(26px, 3vw, 38px) * var(--text-scale))}.practicum .display-sm{font-size:calc(clamp(21px, 2.2vw, 26px) * var(--text-scale))}.practicum .title-lg,.practicum .title-md,.practicum .title-sm{overflow-wrap:break-word}.practicum .title-lg{font-size:calc(21px * var(--text-scale));font-weight:600;line-height:1.35;color:var(--ink);margin:0}.practicum .title-md{font-size:calc(18px * var(--text-scale))}.practicum .title-md,.practicum .title-sm{font-weight:600;line-height:1.4;color:var(--ink);margin:0}.practicum .body-md,.practicum .title-sm{font-size:calc(16px * var(--text-scale))}.practicum .body-md{line-height:1.6}.practicum .body-sm{font-size:calc(14px * var(--text-scale));line-height:1.6}.practicum .caption{font-size:calc(13px * var(--text-scale));font-weight:500;line-height:1.45}.practicum .eyebrow{font-family:var(--font-code);font-size:calc(12px * var(--text-scale));font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--primary-ink)}.practicum[lang=vi] .eyebrow{text-transform:none;letter-spacing:.02em;font-size:calc(13px * var(--text-scale))}.practicum .code{font-family:var(--font-code);font-size:calc(14px * var(--text-scale));line-height:1.6}.practicum .lead{font-size:calc(18px * var(--text-scale));line-height:1.5;color:var(--body-strong);max-width:62ch}.practicum .prose{max-width:var(--column)}.practicum .prose p+p{margin-top:var(--sp-md)}.practicum p{margin:0}.practicum .wrap{max-width:var(--content-max);margin:0 auto;padding:0 var(--sp-lg)}.practicum .section{padding:var(--sp-section) 0}.practicum .section+.section{padding-top:0}@media (max-width:768px){.practicum .section{padding:48px 0}}.practicum .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:12px 22px;border-radius:var(--r-sm);font:600 calc(14px * var(--text-scale))/1.4 var(--font-body);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:box-shadow .25s var(--ease),transform .25s var(--ease),background .16s ease,border-color .16s ease}.practicum .btn,.practicum .btn:hover{text-decoration:none}.practicum .btn:not(.btn-icon){white-space:normal;height:auto;min-height:40px;padding-block:10px;text-align:center}.practicum .btn-primary{background:var(--primary-active);color:var(--on-primary)}.practicum .btn-primary:hover{box-shadow:var(--glow-sm);transform:translateY(-1px)}.practicum .btn-primary:active{transform:none;box-shadow:none}.practicum .btn-primary:disabled{background:var(--primary-disabled);color:var(--muted);cursor:default;box-shadow:none;transform:none}.practicum .btn-secondary{background:var(--surface-raised);color:var(--ink);border-color:var(--hairline-strong);border-radius:var(--r-md)}.practicum .btn-secondary:hover{border-color:var(--primary-border)}.practicum .btn-on-dark{background:var(--surface-dark-elevated);color:var(--on-dark);border-color:var(--dark-hairline)}.practicum .btn-text{background:transparent;color:var(--ink);padding:0;height:auto}.practicum .btn-icon{width:36px;height:36px;padding:0;border-radius:var(--r-full);background:var(--canvas);border-color:var(--hairline);color:var(--ink)}.practicum .badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:4px 11px;border-radius:var(--r-xs);font:500 calc(12px * var(--text-scale))/1.35 var(--font-code);letter-spacing:.04em;background:var(--surface-card);color:var(--ink)}.practicum .badge-coral{background:var(--primary-bg);border:1px solid var(--primary-border);color:var(--primary-ink);text-transform:uppercase}.practicum .badge-outline{background:transparent;border:1px solid var(--hairline);color:var(--muted)}.practicum[lang=vi] .badge-coral{text-transform:none}.practicum .card{background:var(--surface-soft);border-radius:var(--r-2xl);padding:var(--sp-xl)}.practicum .card-outline{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-2xl);padding:var(--sp-xl)}.practicum .card-dark{background:var(--surface-dark);color:var(--on-dark);border-radius:var(--r-xl);padding:var(--sp-lg);border:1px solid var(--dark-hairline)}.practicum .card-dark-xl{border-radius:var(--r-2xl)}.practicum .card-fit{container-type:inline-size}.practicum .card-fit .display-md{font-size:calc(min(clamp(26px, 3vw, 38px), 9.5cqi) * var(--text-scale))}.practicum .card-fit .display-lg{font-size:calc(min(clamp(30px, 3.4vw, 46px), 11.5cqi) * var(--text-scale))}.practicum .callout-coral{background:var(--primary-active);color:var(--on-primary);border-radius:var(--r-2xl);padding:var(--sp-xxl)}.practicum .input{min-height:44px;padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--canvas);color:var(--ink);font:400 calc(16px * var(--text-scale))/1.4 var(--font-body);width:100%}.practicum .input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-border)}.practicum .input:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.practicum textarea.input{height:auto;line-height:1.5;resize:vertical}.practicum .tab{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--muted);padding:8px 12px;border-radius:var(--r-md);font:500 calc(14px * var(--text-scale))/1.4 var(--font-body);border:0;cursor:pointer;text-decoration:none;white-space:nowrap}.practicum .skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:10px 16px;border-radius:var(--r-sm);background:var(--surface-card);color:var(--ink);border:1px solid var(--primary);font:600 14px/1 var(--font-body);text-decoration:none;transform:translateY(-200%)}.practicum .skip-link:focus-visible{transform:none}@media (pointer:coarse){.practicum .tab{min-height:44px;padding-block:10px}.practicum .seg-item{min-height:40px;padding:10px 14px}.practicum .rail-more{min-width:44px;min-height:44px;justify-content:center}.practicum .between>button,.practicum .module-toggle,.practicum .term,.practicum button.between{min-height:44px}.practicum input[type=checkbox],.practicum input[type=radio]{width:24px;height:24px;flex:none}.practicum .footer a,.practicum .module-lessons a,.practicum .topnav .wrap>a,.practicum li.row>a{display:inline-flex;align-items:center;min-height:24px}}.practicum .tab[aria-current=page],.practicum .tab[aria-selected=true]{background:var(--surface-card);color:var(--ink)}.practicum .seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden}.practicum .seg-item{flex:1 1 auto;min-width:0;background:transparent;border:0;padding:6px 10px;font:500 calc(12px * var(--text-scale))/1.35 var(--font-body);color:var(--muted);cursor:pointer}.practicum .seg-item[aria-checked=true]{background:var(--surface-card);color:var(--ink)}.practicum .seg-dark{border-color:var(--dark-hairline)}.practicum .seg-dark .seg-item{color:var(--on-dark-soft)}.practicum .seg-dark .seg-item[aria-checked=true]{background:var(--surface-dark-elevated);color:var(--on-dark)}.practicum .dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.practicum .dot-teal{background:var(--accent-teal)}.practicum .dot-amber{background:var(--accent-amber)}.practicum .dot-ok{background:var(--success)}.practicum .dot-err{background:var(--error)}.practicum .dot-square{border-radius:2px}.practicum .dot-diamond{border-radius:1px;transform:rotate(45deg)}.practicum .hairline-top{border-top:1px solid var(--hairline)}.practicum .muted{color:var(--muted)}.practicum .on-dark-soft{color:var(--on-dark-soft)}.practicum .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-lg)}.practicum .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-lg)}@media (max-width:1024px){.practicum .grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.practicum .grid-2,.practicum .grid-3{grid-template-columns:1fr}}.practicum .stack{display:grid;gap:var(--sp-md)}.practicum .account-nav,.practicum .account-stat,.practicum .ctx,.practicum .dialog,.practicum .empty,.practicum .msg,.practicum .pane,.practicum .rail-list,.practicum .stack,.practicum .steplist,.practicum .term-pop,.practicum .toasts{grid-template-columns:minmax(0,1fr)}.practicum .between,.practicum .row{display:flex;align-items:center;gap:var(--sp-sm);flex-wrap:wrap}.practicum .between{justify-content:space-between}.practicum .scroll-x{overflow-x:auto}.practicum{--nav-total:var(--nav-h)}.practicum .topnav{background:var(--canvas);border-bottom:1px solid var(--hairline-soft);position:sticky;top:0;z-index:10}.practicum .topnav-bar{min-height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:16px}.practicum .topnav-bar>a{min-width:0}.practicum .topnav-primary{display:flex;align-items:center;gap:4px;margin-left:auto}.practicum .topnav-menu-toggle{min-height:44px;flex:none;color:var(--ink);border:1px solid var(--hairline)}.practicum .topnav-menu-toggle[aria-expanded=true]{background:var(--surface-card)}.practicum .topnav-panel{border-top:1px solid var(--hairline-soft);max-height:calc(100dvh - var(--nav-h));overflow-y:auto;overscroll-behavior:contain;animation:practicum-panel-enter .18s ease-out}.practicum .topnav-panel[hidden]{display:none}.practicum .topnav-panel-inner{padding-block:20px;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;justify-items:start}.practicum .topnav-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}.practicum .topnav-links .tab{white-space:normal;min-width:0;max-width:100%;min-height:44px;overflow-wrap:anywhere;color:var(--body)}.practicum .topnav-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;min-width:0;max-width:100%}.practicum .topnav-controls .seg,.practicum .topnav-controls>*{min-width:0;max-width:100%}.practicum .topnav-controls .seg-item,.practicum .topnav-panel-inner>.tab{white-space:normal;overflow-wrap:anywhere}.practicum .topnav-panel-inner>.tab{min-width:0;max-width:100%;text-align:left}.practicum .topnav-secondary-primary{display:none}.practicum .topnav svg{flex:none}@keyframes practicum-panel-enter{0%{opacity:0;transform:translateY(-6px)}}.practicum [id]{scroll-margin-top:calc(var(--nav-total) + 16px)}@media (max-width:1024px){.practicum .topnav-primary{display:none}.practicum .topnav-secondary-primary{display:inline-flex}}@media (max-width:768px){.practicum .topnav-bar{padding-block:8px;gap:12px}.practicum .topnav-panel-inner{padding-block:16px}.practicum .topnav-links{grid-template-columns:repeat(2,minmax(0,1fr))}.practicum .topnav-controls{align-items:flex-start;gap:12px}}@media (max-width:359px){.practicum .topnav-links{grid-template-columns:minmax(0,1fr)}}@media (max-width:420px){.practicum[data-text=l] .topnav-links{grid-template-columns:minmax(0,1fr)}}.practicum .footer{background:var(--surface-dark);color:var(--on-dark-soft);padding:40px 0;margin-top:var(--sp-section);font-size:14px}.practicum .footer b{color:var(--on-dark);font-weight:500}@media (max-width:768px){.practicum .footer{margin-top:48px}}.practicum .skills{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.practicum .skill{border:1px solid var(--hairline);border-radius:var(--r-lg);padding:16px;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.practicum .pip{width:10px;height:10px;border-radius:50%;background:var(--surface-cream-strong);display:inline-block}.practicum .pip-on{background:var(--primary)}.practicum .modules{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.practicum .module{display:grid;grid-template-columns:72px 200px minmax(0,1fr);gap:20px;align-items:center;padding:18px 16px;margin:0 -16px;border-top:1px solid var(--hairline);border-radius:var(--r-lg);position:relative;transition:background .2s ease;animation:practicum-module-in .56s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(var(--i, 0) * 45ms)}.practicum .module:hover{background:var(--surface-soft)}.practicum .module:first-child{border-top:0}@keyframes practicum-module-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.practicum .module--bare{grid-template-columns:72px minmax(0,1fr)}.practicum .module-n{white-space:nowrap;font-family:var(--font-display);font-size:46px;line-height:.9;font-weight:500;color:var(--primary);text-align:right;font-variant-numeric:lining-nums tabular-nums;transition:transform .2s cubic-bezier(.22,.61,.36,1),opacity .2s ease}.practicum .module:hover .module-n{transform:translateX(3px)}.practicum .module-locked .module-n{color:var(--muted-soft);opacity:.55}.practicum .module-plate{overflow:hidden;border-radius:var(--r-lg);line-height:0;background:var(--surface-soft);border:1px solid var(--hairline)}.practicum .module-art{display:block;width:200px;height:118px;transition:transform .32s var(--ease)}.practicum .module-art img{width:100%;height:100%;object-fit:contain}.practicum .module:hover .module-art{transform:scale(1.04)}.practicum .module-progress{display:flex;align-items:center;gap:10px}.practicum .bar{height:3px;background:var(--hairline);overflow:hidden;flex:1;max-width:200px}.practicum .bar,.practicum .bar i{display:block;border-radius:9999px}.practicum .bar i{height:100%;background:var(--primary);transition:width .48s cubic-bezier(.22,.61,.36,1)}.practicum .module-toggle{display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;cursor:pointer;color:inherit;text-align:left;font:inherit}.practicum .module-toggle .title-sm{transition:color .16s ease}.practicum .module-toggle:hover .title-sm{color:var(--primary-ink)}.practicum .module-chevron{display:inline-flex;color:var(--muted-soft);transition:transform .22s cubic-bezier(.22,.61,.36,1),color .16s ease}.practicum .module-toggle[aria-expanded=true] .module-chevron{transform:rotate(180deg)}.practicum .module-toggle:hover .module-chevron{color:var(--primary)}.practicum .module-lessons{animation:practicum-module-list-in .26s cubic-bezier(.22,.61,.36,1) both}@keyframes practicum-module-list-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.practicum .module-lessons li{padding:3px 0 3px 10px;border-left:2px solid transparent;border-radius:0 var(--r-xs) var(--r-xs) 0;transition:border-color .16s ease,padding-left .16s ease,background .16s ease}.practicum .module-lessons li:hover{border-left-color:var(--primary);padding-left:14px;background:var(--surface-soft)}@media (max-width:1024px){.practicum .skills{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.practicum .skills{grid-template-columns:repeat(2,1fr);gap:8px}.practicum .skill{padding:12px}.practicum .module,.practicum .module--bare{grid-template-columns:52px minmax(0,1fr);gap:14px;padding:14px 12px;margin:0 -12px}.practicum .module-n{font-size:34px}}@media (max-width:420px){.practicum .skills{grid-template-columns:1fr}.practicum .map-skills{order:2}}.practicum .replay{color:var(--on-dark)}.practicum .viewer{display:grid;grid-template-columns:1.1fr 1.4fr 1fr;gap:12px}.practicum .replay-compact .viewer{grid-template-columns:1fr 1.4fr}.practicum .viewer-2{grid-template-columns:1.2fr 1.4fr}.practicum .pane{background:var(--surface-dark-soft);border:1px solid var(--dark-hairline);border-radius:var(--r-lg);padding:16px;display:grid;gap:10px;align-content:start;min-width:0}.practicum .ph{font-size:calc(12px * var(--text-scale));letter-spacing:1.5px;text-transform:uppercase;color:var(--on-dark-soft)}.practicum[lang=vi] .ph{text-transform:none;letter-spacing:.02em}.practicum .line{font-size:calc(14px * var(--text-scale));line-height:1.6;color:var(--on-dark);white-space:pre-wrap;word-break:break-word;margin:0}.practicum .line.res{color:#d9c9a3}.practicum .line.res-err{color:#ef8a8a}.practicum .card-dark .badge-coral,.practicum .pane .badge-coral,.practicum .steprow .badge-coral{color:var(--primary);background:var(--surface-dark-elevated);border-color:var(--dark-hairline)}.practicum .line.hl{background:color-mix(in srgb,var(--accent-teal) 12%,transparent);border-left:2px solid var(--accent-teal);padding-left:8px}.practicum .line.chg{background:color-mix(in srgb,var(--accent-amber) 12%,transparent);border-left:2px solid var(--accent-amber);padding-left:8px}.practicum .steplist{list-style:none;margin:0;padding:0;display:grid;gap:6px;align-content:start}.practicum .steprow{width:100%;min-height:44px;text-align:left;display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;gap:8px;align-items:center;font:400 calc(14px * var(--text-scale))/1.45 var(--font-body);padding:8px;border-radius:6px;color:var(--on-dark-soft);background:transparent;border:1px solid transparent;cursor:pointer;transition:background .14s ease,border-color .14s ease}.practicum .steprow.on{background:var(--surface-dark-elevated);color:var(--on-dark);border-left-color:var(--on-dark)}.practicum .step-number{font-size:calc(12px * var(--text-scale))}.practicum .opt{text-align:left;border:1px solid var(--dark-hairline);background:transparent;color:var(--on-dark);border-radius:6px;padding:10px 12px;font:400 calc(14px * var(--text-scale))/1.45 var(--font-body);cursor:pointer;transition:background .14s ease,border-color .14s ease}.practicum .opt.pick{border-color:var(--accent-teal);background:color-mix(in srgb,var(--accent-teal) 12%,transparent)}.practicum .thumbs{display:flex;gap:6px;flex-wrap:wrap}.practicum .thumb{display:grid;place-items:center;width:56px;height:56px;border-radius:4px;border:1px solid var(--dark-hairline);background:linear-gradient(135deg,#3a352d,#2a2723);font:500 11px/1 var(--font-code);color:var(--on-dark-soft);font-style:normal}.practicum .thumb.bad{border-color:var(--error);color:#ef8a8a}.practicum .thumb.good{border-color:var(--success);color:var(--success)}.practicum .step-title{font:500 calc(15px * var(--text-scale))/1.5 var(--font-body);color:var(--on-dark)}.practicum .replay-current,.practicum .replay-history,.practicum .replay-studio{min-width:0}.practicum .replay-history>summary{padding:8px;cursor:pointer;min-height:40px}.practicum .replay-history>summary span{margin-left:8px;font-variant-numeric:tabular-nums}.practicum .replay-history[open]>summary{margin-bottom:6px}.practicum .replay-current .line.res,.practicum .replay-current .line.res-err{font-size:calc(15px * var(--text-scale))}.practicum .ctx{margin-top:14px;display:grid;gap:6px}.practicum .bar-dark{height:8px;border-radius:9999px;background:var(--surface-dark-elevated);overflow:hidden;display:flex}.practicum .bar-dark i{display:block;height:100%}.practicum .legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--on-dark-soft);align-items:center}@media (max-width:1024px){.practicum .viewer{grid-template-columns:1fr 1fr}}@media (max-width:768px){.practicum .replay-compact .viewer,.practicum .viewer,.practicum .viewer-2{grid-template-columns:1fr}.practicum .replay-current{order:-1}.practicum .replay-history .steplist{max-height:13rem;overflow-y:auto;overscroll-behavior:contain;padding:3px}}.practicum .scrim{position:fixed;inset:0;background:rgba(20,20,19,.45);display:grid;place-items:center;padding:16px;z-index:20}.practicum .dialog,.practicum .scrim{overflow-y:auto;overscroll-behavior:contain}.practicum .dialog{background:var(--canvas);color:var(--body);border-radius:var(--r-lg);padding:28px;width:min(560px,100%);max-height:calc(100dvh - 32px);min-height:0;display:grid;gap:16px;border:1px solid var(--hairline);animation:practicum-dialog-enter .18s ease-out}@keyframes practicum-dialog-enter{0%{opacity:0;transform:translateY(8px)}}@media (max-width:640px){.practicum .dialog{padding:20px}}.practicum .lesson-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start}.practicum .lesson-side{position:sticky;top:calc(var(--nav-total) + 24px)}.practicum .mentor{border:1px solid var(--hairline);border-radius:var(--r-lg);padding:20px;gap:12px;background:var(--canvas)}.practicum .mentor-toggle{display:none;width:100%;min-height:44px;padding:0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;align-items:center;justify-content:space-between;gap:12px}.practicum .mentor-toggle:focus-visible{outline:2px solid var(--primary-active);outline-offset:4px;border-radius:var(--r-sm)}.practicum .rail{border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--canvas);overflow:hidden}.practicum .rail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 16px;background:var(--surface-soft);border:0;border-bottom:1px solid var(--hairline);cursor:default;text-align:left;font:inherit;color:inherit}.practicum .rail-back{text-decoration:none;color:inherit}.practicum .rail-back:hover .title-sm{color:var(--primary-ink);text-decoration:none}.practicum .rail-more{display:none;background:none;border:0;padding:4px;color:var(--muted);cursor:pointer}.practicum .rail-more[aria-expanded=true] svg{transform:rotate(180deg)}.practicum .rail-more svg{transition:transform .2s ease}.practicum .module-lessons li.is-here{background:var(--surface-card);border-left-color:var(--primary);padding-left:14px}.practicum .is-here .badge-outline,.practicum .is-here .muted,.practicum .rail-item.is-current .muted{color:var(--muted-ink)}.practicum .is-here .badge-coral{background:var(--canvas)}.practicum .rail-list{list-style:none;margin:0;padding:6px;display:grid;gap:1px}.practicum .rail-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:baseline;gap:8px;padding:7px 10px;border-radius:var(--r-sm);color:var(--body);text-decoration:none;transition:background .14s ease,color .14s ease}.practicum .rail-item:hover{background:var(--surface-soft);text-decoration:none;color:var(--ink)}.practicum .rail-item.is-current{background:var(--surface-card);color:var(--ink);font-weight:500}.practicum .rail-text{font-size:calc(13.5px * var(--text-scale));line-height:1.4}.practicum .rail-number{color:var(--muted);font-variant-numeric:tabular-nums}.practicum .rail-item.is-current .rail-number{color:var(--primary-ink)}.practicum .rail-min{font-size:calc(11px * var(--text-scale))}.practicum .rail-mark{width:8px;height:8px;border-radius:50%;border:1px solid var(--hairline);display:inline-block;align-self:center;justify-self:center;font-size:10px;line-height:1;text-align:center}.practicum .rail-mark-done{background:var(--primary);border-color:var(--primary);color:var(--on-primary);width:14px;height:14px;line-height:13px}.practicum .rail-mark-started{background:var(--accent-amber);border-color:var(--accent-amber)}.practicum .rail-mark-now{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.practicum .rail-foot{display:block;padding:4px 16px 12px}.practicum .nextup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;align-items:stretch;margin-top:8px}.practicum .nextup-end,.practicum .nextup-next,.practicum .nextup-prev{display:flex;flex-direction:column;gap:3px;padding:16px 20px;border-radius:var(--r-lg);text-decoration:none;transition:transform .16s cubic-bezier(.22,.61,.36,1),background .16s ease}.practicum .nextup-prev{border:1px solid var(--hairline);color:var(--body)}.practicum .nextup-prev:hover{background:var(--surface-soft);text-decoration:none;transform:translateX(-2px)}.practicum .nextup-next{background:var(--primary-active);color:var(--on-primary);align-items:flex-end;text-align:right;border-radius:var(--r-xl)}.practicum .nextup-next .caption,.practicum .nextup-next .title-sm{color:var(--on-primary)}.practicum .nextup-next:hover{text-decoration:none;transform:translateX(2px);box-shadow:var(--glow-sm)}.practicum .nextup-end{border:1px dashed var(--hairline);align-items:flex-end;text-align:right}@media (max-width:1024px){.practicum .lesson-grid{grid-template-columns:1fr}.practicum .lesson-side{position:static;order:-1}.practicum .lesson-side .mentor{padding:8px 20px}.practicum .mentor-toggle{display:flex}.practicum .mentor-body,.practicum .mentor-desktop-heading{display:none}.practicum .mentor-body.is-open{display:grid;padding-bottom:12px}.practicum .rail-more{display:inline-flex}.practicum .rail-list{display:none}.practicum .rail-list.is-open{display:grid}.practicum .nextup{grid-template-columns:1fr}}.practicum .term-wrap{position:relative;display:inline}.practicum .term{background:none;border:0;padding:0;font:inherit;color:var(--ink);border-bottom:1px dotted var(--primary);cursor:pointer}.practicum .term-pop{position:absolute;left:0;top:1.6em;z-index:5;width:min(360px,80vw);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:0 1px 3px rgba(20,20,19,.08)}.practicum .msg,.practicum .term-pop{display:grid;gap:4px;padding:12px 14px;background:var(--canvas)}.practicum .msg{border-radius:8px;border:1px solid var(--hairline)}.practicum .msg-ai{border-style:dashed}.practicum .msg-teacher{border-color:var(--primary)}@media (max-width:767px){.practicum .replay .controls-sticky{position:sticky;bottom:8px;z-index:4;background:var(--surface-dark);padding:8px 0;border-top:1px solid var(--dark-hairline)}.practicum .topnav .tab{padding:8px 10px}.practicum .lesson-side{position:static}}.practicum .thumb-img{width:auto;height:96px;padding:0;overflow:hidden;position:relative;text-decoration:none}.practicum .thumb-img img{height:100%;width:auto;display:block;border-radius:3px}.practicum .thumb-img span{position:absolute;left:4px;bottom:4px;padding:2px 6px;border-radius:3px;background:rgba(20,20,19,.7);color:var(--on-dark);font:500 11px/1 var(--font-code)}.practicum .thumb-img.bad span{color:var(--error)}.practicum .thumb-img.good span{color:var(--success)}@media (max-width:768px){.practicum .module-plate{display:none}}@media print{.practicum .mentor,.practicum .no-print,.practicum .topnav,.practicum footer{display:none!important}.practicum .sheet{padding:0}.practicum .sheet .wrap{max-width:none;padding:0;gap:20px!important}.practicum .sheet .scroll-x{overflow:visible}.practicum .sheet table{min-width:0!important}.practicum .sheet .grid-3{display:block}.practicum .sheet .grid-3>div{break-inside:avoid;margin-bottom:6px;border:0;border-bottom:1px solid #ddd;border-radius:0;padding:6px 0}.practicum .sheet h2{break-after:avoid}.practicum .sheet li,.practicum .sheet tr{break-inside:avoid}.practicum,.practicum[data-theme=dark]{--canvas:#fff;--surface:#fff;--surface-soft:#fff;--surface-card:#fff;--ink:#000;--body:#222;--body-strong:#000;--muted:#555;--hairline:#ddd}.practicum{background:#fff;color:#000}}.practicum .account-grid{display:grid;grid-template-columns:232px minmax(0,1fr);gap:48px;align-items:start}.practicum .account-nav{position:sticky;top:calc(var(--nav-total) + 24px);display:grid;gap:10px;padding:18px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--canvas)}.practicum .account-nav-head{color:var(--ink)}.practicum .account-nav-role{margin-top:-6px}.practicum .account-nav-item{display:block;padding:8px 12px;border-radius:var(--r-sm);color:var(--body);text-decoration:none;font-size:calc(14px * var(--text-scale));transition:background .14s ease,color .14s ease}.practicum .account-nav-item:hover{background:var(--surface-soft);color:var(--ink);text-decoration:none}.practicum .account-nav-item.is-current{background:var(--surface-card);color:var(--ink);font-weight:500}.practicum .account-nav-foot{padding-top:12px;border-top:1px solid var(--hairline)}.practicum .account-signout{justify-self:start;padding:0;height:auto;font-size:calc(13px * var(--text-scale))}.practicum .account-course{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;padding:24px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-soft)}.practicum .account-course-next{border-left:1px solid var(--hairline);padding-left:24px;align-content:start}.practicum .account-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px 24px}.practicum .account-facts,.practicum .account-stat{display:grid;border:1px solid var(--hairline);border-radius:var(--r-lg)}.practicum .account-stat{gap:2px;padding:20px}@media (max-width:1024px){.practicum .account-grid{grid-template-columns:1fr;gap:24px}.practicum .account-nav{position:static}.practicum .account-nav ul{display:flex;flex-wrap:wrap;gap:4px}.practicum .account-course{grid-template-columns:1fr}.practicum .account-course-next{border-left:0;border-top:1px solid var(--hairline);padding-left:0;padding-top:16px}}@media (max-width:640px){.practicum .account-facts{grid-template-columns:1fr;gap:12px}}.practicum .certificate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;padding:44px 48px;border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--surface-soft)}.practicum .certificate-qr{text-align:center;justify-items:center}.practicum .certificate-qr svg{width:132px;height:132px;display:block}@media (max-width:700px){.practicum .certificate{grid-template-columns:1fr;gap:24px;padding:28px}.practicum .certificate-qr{justify-self:start;text-align:left;justify-items:start}}@media print{.practicum .certificate{border-color:#ddd;background:#fff;break-inside:avoid}}.practicum .icon{flex:none;vertical-align:-.125em}.practicum .icon-agent{color:var(--primary-ink)}.practicum .bar-dark .icon-agent,.practicum .card-dark .icon-agent,.practicum .on-dark .icon-agent{color:var(--primary)}.practicum .sk{background:var(--surface-card);border-radius:var(--r-xs);position:relative;overflow:hidden}.practicum .sk:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--canvas) 60%,transparent),transparent);animation:practicum-sk-sweep 1.4s ease-in-out infinite}.practicum .sk-line{height:1em;margin:6px 0}.practicum .sk-line:last-child{width:62%}.practicum .sk-title{height:1.6em;width:45%;margin-bottom:14px}.practicum .sk-block{height:120px;border-radius:var(--r-md)}.practicum .sk-circle{border-radius:50%;width:40px;height:40px}@keyframes practicum-sk-sweep{to{transform:translateX(100%)}}.practicum .thinking{display:inline-flex;gap:5px;align-items:center}.practicum .thinking i{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:practicum-thinking-pulse 1.2s ease-in-out infinite}.practicum .thinking i:nth-child(2){animation-delay:.16s}.practicum .thinking i:nth-child(3){animation-delay:.32s}@keyframes practicum-thinking-pulse{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.practicum .field{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.practicum .field-hint{font:400 13px/1.4 var(--font-body);color:var(--muted)}.practicum .field-error{display:flex;align-items:center;gap:6px;font:500 13px/1.4 var(--font-body);color:var(--error)}.practicum .input[aria-invalid=true]{border-color:var(--error)}.practicum .input[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--error) 18%,transparent)}.practicum .input:disabled{background:var(--surface-soft);color:var(--muted-soft);cursor:not-allowed}.practicum .field-ok{display:flex;align-items:center;gap:6px;font:500 13px/1.4 var(--font-body);color:var(--success)}.practicum .table-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--r-md)}.practicum .table{width:100%;border-collapse:collapse;font:400 14px/1.5 var(--font-body)}.practicum .table td,.practicum .table th{padding:12px 16px;text-align:left;border-bottom:1px solid var(--hairline-soft)}.practicum .table th{font:500 11px/1.4 var(--font-code);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface-soft);white-space:nowrap}.practicum .table tbody tr:last-child td{border-bottom:0}.practicum .table tbody tr:hover{background:var(--surface-soft)}.practicum .table .num{text-align:right;font-variant-numeric:tabular-nums}.practicum .empty{display:grid;justify-items:center;text-align:center;gap:16px;padding:clamp(28px,6vw,56px) 20px}.practicum .empty svg{width:min(220px,60%);height:auto}.practicum .empty-illo{display:block;width:min(240px,62%)}.practicum .empty-illo img{width:100%;height:auto}.practicum .illo-dark,.practicum .illo-light{display:block;max-width:100%;height:auto}.practicum .illo-dark,.practicum[data-theme=dark] .illo-light{display:none}.practicum[data-theme=dark] .illo-dark{display:block}.practicum .empty p{margin:0;color:var(--muted);max-width:42ch}.practicum .toasts{position:fixed;right:20px;bottom:20px;z-index:30;display:grid;gap:10px;width:min(360px,calc(100vw - 40px))}.practicum .toast{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:var(--surface-dark);color:var(--on-dark);border-radius:var(--r-md);box-shadow:0 8px 28px rgba(20,20,19,.22);font:400 14px/1.45 var(--font-body);animation:practicum-toast-in .26s cubic-bezier(.22,.61,.36,1) both}.practicum .toast-ok .icon{color:var(--success)}.practicum .toast-err .icon{color:var(--error)}@keyframes practicum-toast-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.practicum .sk:after,.practicum .thinking i{animation:none}.practicum .sk:after{opacity:.5;transform:none}.practicum .toast{animation:none}}.practicum[data-theme=dark]{--primary:#f59f3c;--primary-active:#f59f3c;--primary-ink:#ffb35c;--primary-disabled:#443323;--canvas:#0a0a0b;--surface-soft:#131316;--surface-card:#1c1c20;--surface-cream-strong:#232328;--surface-dark:#0f0f11;--surface-dark-elevated:#1c1c20;--surface-dark-soft:#131316;--ink:#fafafa;--body:#d4d4d8;--body-strong:#fafafa;--muted:#a1a1aa;--muted-ink:#a1a1aa;--muted-soft:#8b8b94;--hairline:#27272a;--hairline-soft:#1f1f22;--dark-hairline:#27272a;--on-primary:#0a0a0b;--on-dark:#fafafa;--font-display:"Unbounded",var(--font-geist-sans),sans-serif;--font-body:var(--font-geist-sans),sans-serif;--font-code:var(--font-geist-mono),monospace;background:var(--canvas);color:var(--body);font-family:var(--font-body);min-height:100vh}.practicum .btn-primary,.practicum .button-primary{color:var(--on-primary)}.practicum main{background:var(--canvas)}@media print{body:has(.practicum),html:has(.practicum){background:#fff!important;color:#111!important;color-scheme:light}.practicum,.practicum[data-theme=dark]{--canvas:#fff;--surface-soft:#fff;--surface-card:#fff;--ink:#111;--body:#222;--body-strong:#111;--muted:#555;--muted-ink:#555;--muted-soft:#555;--hairline:#ddd;background:#fff;color:#222;min-height:auto;color-scheme:light}.practicum .account-nav{display:none!important}.practicum .account-grid{display:block}.practicum .section{padding:0}.practicum .certificate{grid-template-columns:minmax(0,1fr) auto}}