@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.1zrieox9119mb.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2whpih27xg_2r.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.1xlj4-0oa5zql.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1fxkn-ggzj93z.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.1ahvy37o8m5gt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.2ktx6yqc-sbf1.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0rpdhg_4ubdtf.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--brand-green:#2fd24a;--brand-lime:#8fe13a;--brand-navy:#0d1b2a;--brand-graphite:#151f27;--brand-silver:#d7dee2;--em-900:#0b3d32;--em-800:#0f5c4a;--em-700:#13795b;--em-600:#1f9d6e;--em-500:#2fbf86;--em-200:#bff3dc;--em-100:#e2f4ec;--em-50:#f1faf6;--ink:#15231f;--ink-2:#3d4f49;--muted:#5d706a;--line:#d9e3df;--line-2:#e9efed;--paper:#fff;--bg:#f3f6f5;--glass:#ffffffc7;--glass-dark:#0a2821b8;--bad:#b42318;--warn:#b54708;--good:#067647;--radius:14px;--shadow:0 10px 30px #0a28211f, 0 2px 6px #0a28210f;--focus:0 0 0 3px #fff, 0 0 0 5px #0f766e;color:var(--ink);font-family:Inter Variable,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);margin:0;padding:0}body{-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}a{color:var(--em-700)}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .4em;line-height:1.15}h1{font-size:clamp(28px,3.6vw,46px);font-weight:800}h2{font-size:22px;font-weight:750}h3{font-size:16px;font-weight:700}p{margin:0 0 .7em}:focus-visible{box-shadow:var(--focus);border-radius:6px;outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:11.5px}.bad{color:var(--bad)}.good{color:var(--good)}.grow{flex:1;min-width:0}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row.tight{align-items:center;gap:6px}.row.end{justify-content:flex-end}.stack{flex-direction:column;gap:14px;display:flex}.skip{z-index:100;background:#fff;border-radius:8px;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.btn{border:1px solid var(--line);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:650;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--em-600)}.btn.primary{color:#fff;background:linear-gradient(#3fd85e,#1e9e45);border-color:#1a8a3c;box-shadow:0 6px 16px #1f9d6e52}.btn.primary:hover{filter:brightness(1.05)}.btn.hero{min-height:48px;padding:0 26px;font-size:16px}.btn.glass{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff14;border:1.5px solid #ffffffb3}.btn.ghost{background:0 0}.btn.sm{border-radius:8px;min-height:30px;padding:0 10px;font-size:13px}.btn.danger{color:var(--bad)}.btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn{cursor:pointer;width:32px;height:32px;color:inherit;background:0 0;border:0;border-radius:8px;font-size:15px}.icon-btn:hover{background:#0000000f}.logo{color:#fff;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.logo.dark{color:var(--ink)}.logo-word{letter-spacing:-.02em;font-size:20px;font-style:italic;font-weight:850}.logo-word .x,.lockup-name .x{color:var(--brand-green);text-shadow:0 0 14px #2fd24a73;font-style:italic}.logo.dark .logo-word .x{color:#169c3a;text-shadow:none}.logo-word.two{flex-direction:column;font-size:21px;line-height:1;display:flex}.logo-word .ham{letter-spacing:.14em;text-transform:uppercase;opacity:.82;font-size:12.5px;font-style:normal;font-weight:700}.logo.small .logo-word{font-size:19px}.lockup{color:#fff;align-items:center;gap:22px;display:flex}.lockup-ham{letter-spacing:.16em;text-transform:uppercase;color:var(--brand-silver);font-size:22px;font-weight:700}.lockup-name{letter-spacing:-.03em;background:linear-gradient(#fff,#c9d3d8 60%,#9aa6ad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(44px,7vw,76px);font-style:italic;font-weight:900;line-height:.95}.lockup-name .x{-webkit-text-fill-color:var(--brand-green)}.lockup-tag{color:var(--brand-lime);margin-top:10px;font-size:clamp(18px,2.4vw,26px);font-style:italic;font-weight:800}@media (max-width:560px){.lockup{text-align:center;flex-direction:column}}.topnav{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:linear-gradient(#0a141ef0,#0d1b2adb);border-bottom:1px solid #ffffff14;align-items:center;gap:18px;padding:8px 22px;display:flex;position:sticky;top:0}.topnav.over{background:linear-gradient(#051612c7,#05161259);border-bottom:0;position:absolute;left:0;right:0}.navlinks{gap:4px;margin:0 auto;display:flex}.navlink{color:#ffffffd1;border-bottom:3px solid #0000;border-radius:8px 8px 0 0;flex-direction:column;align-items:center;gap:2px;min-width:82px;padding:6px 10px 8px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.navlink svg{width:22px;height:22px}.navlink:hover{color:#fff;background:#ffffff0f}.navlink.on{color:#fff;border-bottom-color:var(--brand-green)}.navright{align-items:center;gap:10px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#2fbf86,#0f5c4a);border:2px solid #ffffffbf;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.menu{position:relative}.menu>summary{cursor:pointer;list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu-pop{min-width:240px;color:var(--ink);box-shadow:var(--shadow);z-index:40;background:#fff;border-radius:12px;padding:8px;position:absolute;top:46px;right:0}.menu-pop a,.menu-pop button{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 10px;text-decoration:none;display:block}.menu-pop a:hover,.menu-pop button:hover{background:var(--em-50)}.demo-flag{color:#7a5a00;background:#fff3cd;border-radius:99px;padding:3px 8px;font-size:11px;font-weight:700}.page{max-width:1240px;margin:0 auto;padding:28px 22px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--em-700);font-size:12px;font-weight:750}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 1px 2px #0a28210a}.grid2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.grid3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.grid4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.pill{background:var(--em-100);color:var(--em-800);border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.pill.gray{color:var(--ink-2);background:#eef1f0}.pill.warn{color:#7a5a00;background:#fff3cd}.pill.bad{color:var(--bad);background:#fde8e7}.notice{background:var(--em-50);border:1px solid var(--em-200);border-radius:10px;padding:12px 14px;font-size:14px}.notice.warn{background:#fffaeb;border-color:#fedf89}.bar{background:#0f5c4a24;border-radius:99px;height:8px;overflow:hidden}.bar>span{border-radius:inherit;background:linear-gradient(90deg,#2fbf86,#1f9d6e);height:100%;transition:width .4s;display:block}.bar.thin{height:5px;margin-top:6px}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th,table.data td{border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top;padding:9px 10px}table.data th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12px}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}.lvl-Advanced{color:#05603a;font-weight:700}.lvl-Proficient{color:#067647;font-weight:650}.lvl-Developing{color:#b54708;font-weight:650}.lvl-Beginning{color:#b42318;font-weight:650}.field{color:var(--ink-2);flex-direction:column;gap:4px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.field input,.field select,.field textarea,.popmenu input,.popmenu select{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:8px;min-height:36px;padding:8px 10px;font-weight:400}.field input[aria-invalid=true]{border-color:var(--bad)}.check,.checks label{align-items:center;gap:8px;margin:4px 0;font-size:14px;display:flex}.checks{flex-wrap:wrap;gap:16px;margin:6px 0;display:flex}.hero{color:#fff;background:#0b2a24;min-height:min(78vh,760px);position:relative;overflow:hidden}.hero-scene,.hero-scene img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero:after{content:"";pointer-events:none;background:linear-gradient(90deg,#061a15d1 0%,#061a158c 38%,#061a1500 64%),linear-gradient(#061a1500 62%,#061a15b3 100%);position:absolute;inset:0}.hero-copy{z-index:2;max-width:620px;padding:140px 0 0 max(22px,50vw - 598px);position:relative}.hero-copy h1{text-shadow:0 2px 18px #00000059;margin-bottom:14px}.hero-copy p{color:#ffffffeb;max-width:540px;font-size:19px}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.scene-toggle{z-index:3;position:absolute;top:72px;right:18px}.envs{z-index:3;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:1240px;margin:-132px auto 0;padding:0 22px;display:grid;position:relative}.env{color:var(--ink);box-shadow:var(--shadow);background:#fff;border:1px solid #ffffffb3;border-radius:14px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:block;overflow:hidden}a.env:hover{transform:translateY(-3px);box-shadow:0 16px 36px #0a282138}.env img{aspect-ratio:16/8;object-fit:cover;background:#0f2f28;width:100%;display:block}.env .env-body{padding:12px 14px 14px}.env h3{margin:0 0 2px;font-size:18px}.env p{color:var(--ink-2);margin:0;font-size:14px}.env .pill{margin-top:8px}.home-below{grid-template-columns:2fr 1fr;gap:18px;max-width:1240px;margin:28px auto 0;padding:0 22px 60px;display:grid}@media (max-width:960px){.envs{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:-60px}.home-below{grid-template-columns:1fr}.hero-copy{padding-top:110px}.navlink{min-width:0}.navlink span{display:none}}@media (max-width:560px){.envs{grid-template-columns:1fr}}.office{background:#2a1d14;min-height:calc(100dvh - 78px);position:relative;overflow:hidden}.office-scene,.office-scene img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.glass-panel{z-index:2;color:#f2fbf7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(160deg,#125c48db,#09342adb);border:1px solid #bff3dc59;border-radius:18px;width:min(560px,100% - 32px);margin:48px 0 40px max(16px,5vw);padding:22px 26px 24px;position:relative;box-shadow:0 30px 60px #00000059,inset 0 1px #ffffff2e}.glass-panel h1{border-bottom:1px solid #bff3dc47;margin-bottom:14px;padding-bottom:12px;font-size:26px}.glass-panel .task{gap:12px;display:flex}.glass-panel .task-icon{background:var(--em-500);color:#053d2c;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;font-weight:900;display:grid}.glass-panel ul.ticks{margin:12px 0;padding:0;list-style:none}.glass-panel ul.ticks li{align-items:center;gap:10px;padding:5px 0;font-size:16px;display:flex}.glass-panel ul.ticks li:before{content:"✓";border:1.6px solid #ffffffd9;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:12px;display:grid}.glass-panel .meta{color:#f2fbf7e0;grid-template-columns:1fr 1fr;gap:10px 18px;margin:14px 0;font-size:13.5px;display:grid}.glass-panel .meta strong{color:#fff;text-transform:uppercase;letter-spacing:.06em;opacity:.8;font-size:12px;display:block}.glass-panel details{margin:8px 0;font-size:14px}.glass-panel summary{cursor:pointer;font-weight:700}.mode-pick{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 16px;display:grid}.mode-pick label{cursor:pointer;border:1px solid #ffffff4d;border-radius:10px;padding:10px;font-size:13px;display:block}.mode-pick label:has(input:checked){border-color:var(--em-200);background:#ffffff24}.mode-pick input{margin-right:6px}.mode-pick strong{font-size:14px}.office-side{z-index:2;flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex;position:absolute;bottom:22px;right:22px}@media (max-width:760px){.mode-pick,.glass-panel .meta{grid-template-columns:1fr}}.ws{background:#eef3f1;grid-template-rows:auto 1fr auto;height:100dvh;display:grid}.ws-head{color:#fff;background:linear-gradient(90deg,#0d1b2a,#0f4a33 70%,#13603a);align-items:center;gap:16px;padding:8px 16px;display:flex}.ws-title{font-size:15px;font-weight:650}.ws-title .muted{color:#ffffffbf}.ws-progress{align-items:center;gap:8px;margin-left:auto;font-size:13px;font-weight:700;display:flex}.ws-progress .bar{background:#fff3;width:120px}.ws-save{color:#fffc;min-width:90px;font-size:12.5px}.ws-head .btn.ghost{color:#fff;border-color:#fff6}.ws-body{grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.ws-main{min-width:0;min-height:0;display:flex}.ws-side{border-left:1px solid var(--line);background:linear-gradient(#f7faf9,#eef4f1);flex-direction:column;gap:12px;padding:12px;display:flex;overflow:auto}.ws-foot{border-top:1px solid var(--line);background:#fff;align-items:center;gap:12px;padding:10px 18px;display:flex}.ws-foot .grow>div:first-child{font-size:15px}@media (max-width:1000px){.ws-body{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr}.ws-side{border-left:0;border-top:1px solid var(--line);max-height:40vh}.ws-head{flex-wrap:wrap}}.ws-scene{border-radius:12px;height:120px;position:relative;overflow:hidden}.ws-scene img{object-fit:cover;width:100%;height:100%}.checklist{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:4px;padding:8px;display:flex}.ck{text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:7px 8px;font-size:14px;display:flex}.ck:hover{background:var(--em-50)}.ck.on{background:var(--em-100);font-weight:650}.ckmark{width:24px;height:24px;color:var(--ink-2);background:#eef1f0;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.ck.done .ckmark{background:var(--em-600);color:#fff}.coach{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:12px}.coach-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.coach-avatar{width:46px;height:46px;box-shadow:0 0 0 2px var(--em-200);background:url(/people/coach.jpg) 50%/cover,linear-gradient(135deg,#2fbf86,#0f5c4a);border:2px solid #fff;border-radius:50%;flex:none}.coach-avatar.sm{vertical-align:middle;width:26px;height:26px;display:inline-block}.coach-card{background:var(--em-50);border-radius:10px;margin-bottom:10px;padding:10px 12px}.coach-card h3{margin-bottom:4px;font-size:16px}.coach-card p{color:var(--ink-2);margin:0 0 4px;font-size:14px}.coach-btns{gap:7px;display:grid}.cbtn{min-height:36px;font:inherit;color:var(--ink);cursor:pointer;background:linear-gradient(#fbfdfc,#eef4f1);border:1px solid #c9d6d1;border-radius:9px;font-weight:650}.cbtn:hover:not(:disabled){border-color:var(--em-600);background:#fff}.cbtn:disabled{opacity:.5;cursor:not-allowed}.cbtn.quiet{background:0 0}.cbtn .lvl{color:var(--muted);font-size:12px;font-weight:500}.coach-hints{margin:10px 0 0;padding-left:20px;font-size:14px}.coach-hints li{margin-bottom:6px}.coach-context{background:#fffaeb;border:1px solid #fedf89;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:14px}.coach-explain{background:#f4f6ff;border:1px solid #d9def7;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:14px}.coach-explain p{margin:4px 0 0}.coach-demo{color:#fff;background:#0b3d32;border-radius:10px;margin-top:10px;padding:10px}.coach-demo .caption{margin:4px 0 8px;font-size:15px}.coach-demo .btn{color:#fff;border-color:#ffffff59}.coach-pill{border:1px solid var(--line);font:inherit;cursor:pointer;box-shadow:var(--shadow);background:#fff;border-radius:99px;align-self:flex-start;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-weight:650;display:inline-flex}.done-dot{color:var(--good)}.spot{z-index:5;border-radius:6px;animation:1.4s ease-in-out infinite spotpulse;position:relative;box-shadow:0 0 0 3px #fff,0 0 0 6px #f59e0b!important}@keyframes spotpulse{50%{box-shadow:0 0 0 3px #fff,0 0 0 9px #f59e0b73!important}}.editor{background:#fff;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.ribbon-tabs{border-bottom:1px solid var(--line-2);background:#fff;align-items:center;gap:2px;padding:4px 10px 0;display:flex}.rtab{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:7px 12px 8px;font-size:14px}.rtab.on{color:var(--em-800);border-bottom-color:var(--em-600);font-weight:700}.ribbon{border-bottom:1px solid var(--line);background:#f7f9f8;flex-wrap:wrap;align-items:center;gap:10px;min-height:48px;padding:6px 10px;display:flex}.rgroup{border-right:1px solid var(--line);align-items:center;gap:3px;padding-right:10px;display:flex}.rgroup:last-child{border-right:0}.rb{min-height:32px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:5px;padding:0 9px;font-size:13px;display:inline-flex}.rb:hover:not(:disabled){border-color:var(--line);background:#fff}.rb.pressed{background:var(--em-100);border-color:var(--em-200)}.rb:disabled{opacity:.45;cursor:not-allowed}.rbi{text-align:center;width:16px;font-size:15px}.rsel{font:inherit;border:1px solid var(--line);background:#fff;border-radius:7px;min-height:32px;padding:0 6px;font-size:13px}.colorpick{position:relative}.colorpick input{border:1px solid var(--line);background:0 0;border-radius:4px;width:22px;height:22px;padding:0}.fbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:4px;padding:6px 10px;display:flex}.namebox{width:96px;font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:14px}.fbtn{cursor:pointer;width:30px;height:30px;color:var(--ink-2);background:0 0;border:0;border-radius:6px;font-size:14px}.fbtn:disabled{opacity:.35}.fbtn.fx{font-family:Georgia,serif;font-style:italic;font-weight:700}.formula{border:1px solid var(--line);border-radius:6px;flex:1;padding:7px 10px;font:14px ui-monospace,SF Mono,Menlo,Consolas,monospace}.workarea{flex:1;min-height:0;display:flex;position:relative}.gridscroll{background:#fff;outline:none;flex:1;font-size:14px;position:relative;overflow:auto}.gridscroll:focus-visible{border-radius:0;box-shadow:inset 0 0 0 2px #0f766e}.gridinner{position:relative}.gridtop{z-index:4;position:sticky;top:0}.gr{height:26px;display:flex}.hdrrow{background:#f3f6f5}.corner{z-index:3;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;background:#e9efed;flex:none;width:48px;position:sticky;left:0}.colhdr,.rowhdr{color:var(--ink-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none;cursor:default;background:#f3f6f5;flex:none;justify-content:center;align-items:center;font-size:12.5px;display:flex;position:relative}.colhdr.on,.rowhdr.on{color:var(--em-800);background:#dcefe6;font-weight:700}.rowhdr{z-index:2;width:48px;position:sticky;left:0}.colresize{cursor:col-resize;z-index:2;width:6px;position:absolute;top:0;bottom:0;right:-3px}.cell{white-space:nowrap;font-variant-numeric:tabular-nums;cursor:cell;-webkit-user-select:none;user-select:none;background:#fff;border-bottom:1px solid #e6ece9;border-right:1px solid #e6ece9;flex:none;align-items:center;padding:0 6px;display:flex;position:relative;overflow:hidden}.cell.nogrid{border-color:#0000}.cell.stickycol{z-index:1;position:sticky}.cell .cv{text-overflow:clip;overflow:hidden}.cell.sel{background-image:linear-gradient(#1f9d6e21,#1f9d6e21)}.cell.active{box-shadow:inset 0 0 0 2px var(--em-700);z-index:2;overflow:visible}.cell.fillprev{box-shadow:inset 0 0 0 1px dashed;outline:1px dashed var(--em-700);outline-offset:-2px}.fillhandle{background:var(--em-700);cursor:crosshair;z-index:3;border:1.5px solid #fff;width:8px;height:8px;position:absolute;bottom:-4px;right:-4px}.numtext{border-top:6px solid #1f9d6e;border-bottom:0 solid #0000;border-left:0 solid #0000;border-right:6px solid #0000;position:absolute;top:0;left:0}.filterbtn{cursor:pointer;width:18px;height:18px;color:var(--ink);background:#fff;border:1px solid #b9c7c2;border-radius:4px;flex:none;margin-left:auto;padding:0;font-size:10px;line-height:1}.filterbtn.on{background:var(--em-700);color:#fff}.celledit{z-index:6;height:26px;font:inherit;border:2px solid var(--em-700);background:#fff;outline:none;padding:0 6px;font-size:14px;box-shadow:0 4px 12px #00000026}.chartdock{border-left:1px solid var(--line);background:#f7f9f8;flex-direction:column;flex:none;gap:10px;width:360px;padding:10px;display:flex;overflow:auto}.chartcard{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px}.chartcard.on{border-color:var(--em-600);box-shadow:0 0 0 2px var(--em-100)}.chartpick{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.chartpanel{border-top:1px solid var(--line-2);margin-top:8px;padding-top:8px}.chartpanel .field{margin-bottom:6px}.sheetbar{border-top:1px solid var(--line);background:#f7f9f8;align-items:center;gap:10px;min-height:36px;padding:0 8px;display:flex}.sheettabs{gap:2px;display:flex;overflow-x:auto}.sheettab{font:inherit;cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:1px solid #0000;border-top:0;border-radius:0 0 8px 8px;padding:7px 14px;font-size:13px}.sheettab.on{border-color:var(--line);color:var(--em-800);box-shadow:inset 0 3px 0 var(--em-600);background:#fff;font-weight:700}.sheettab.add{font-weight:700}.sheetrename{font:inherit;width:140px;padding:4px 6px;font-size:13px}.statusbar{color:var(--ink-2);white-space:nowrap;gap:14px;margin-left:auto;font-size:12.5px;display:flex}.toast{z-index:20;color:#fff;box-shadow:var(--shadow);background:#0b3d32;border-radius:10px;max-width:min(640px,90%);padding:10px 16px;font-size:14px;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.editor.compact .ribbon{min-height:40px}@media (max-width:760px){.chartdock{z-index:8;width:min(360px,92%);position:absolute;top:0;bottom:0;right:0}}.dlg-back{z-index:60;background:#061a156b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dlg-back.clear{background:0 0;display:block}.dlg{background:#fff;border-radius:16px;width:min(480px,100%);max-height:90vh;overflow:auto;box-shadow:0 30px 70px #0000004d}.dlg.wide{width:min(680px,100%)}.dlg-head{justify-content:space-between;align-items:center;padding:14px 18px 4px;display:flex}.dlg-head h2{margin:0;font-size:18px}.dlg-x{cursor:pointer;background:0 0;border:0;border-radius:8px;width:32px;height:32px;font-size:16px}.dlg-body{padding:8px 18px}.dlg-actions{justify-content:flex-end;gap:8px;padding:10px 18px 16px;display:flex}.colpick{border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:8px 12px}.colpick legend{padding:0 4px;font-size:13px;font-weight:650}.colpick label{align-items:center;gap:8px;padding:3px 0;font-size:14px;display:flex}.fnlist{border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px;max-height:220px;padding:6px;display:grid;overflow:auto}.fnlist button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 8px;font:13px ui-monospace,Menlo,monospace}.fnlist button.on,.fnlist button:hover{background:var(--em-100)}.fndoc{background:var(--em-50);border-radius:10px;margin-top:10px;padding:10px 12px}.fndoc code{font-size:13px}.rules{padding:0;list-style:none}.rules li{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;display:flex}.popmenu{z-index:61;background:#fff;border-radius:12px;flex-direction:column;gap:6px;width:290px;padding:8px;display:flex;position:fixed;box-shadow:0 20px 50px #00000040}.popmenu .mi{text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px;font-size:14px}.popmenu .mi:hover{background:var(--em-50)}.popmenu hr{border:0;border-top:1px solid var(--line-2);width:100%;margin:2px 0}.popmenu .vals{max-height:200px;padding:0 4px;overflow:auto}.kbd-table td{padding:5px 10px 5px 0;font-size:14px}kbd{border:1px solid var(--line);background:#f3f6f5;border-radius:5px;padding:2px 6px;font:12.5px ui-monospace,Menlo,monospace}.module{grid-template-columns:56px 1fr auto;align-items:start;gap:14px;display:grid}.module-n{background:var(--em-100);width:48px;height:48px;color:var(--em-800);border-radius:12px;place-items:center;font-size:18px;font-weight:800;display:grid}.module.locked .module-n{color:var(--muted);background:#eef1f0}.lessonlink{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;text-decoration:none;display:flex}.lessonlink:hover{border-color:var(--em-600)}.kpi{flex-direction:column;gap:2px;display:flex}.kpi .v{letter-spacing:-.02em;font-size:28px;font-weight:800}.kpi .l{color:var(--muted);font-size:13px;font-weight:600}.badge{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:10px;display:flex}.badge-icon{color:#fff;background:linear-gradient(135deg,#2fbf86,#0f5c4a);border-radius:12px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.badge.off{background:#f6f8f7;border-style:dashed}.badge.off .badge-icon{color:#4a5a55;background:#d6dedb}.badge.off strong{color:#3d4f49}.checkrow{border-bottom:1px solid var(--line-2);grid-template-columns:26px 1fr auto;gap:10px;padding:10px 0;display:grid}.checkrow .mark{color:#fff;background:var(--good);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:grid}.checkrow .mark.part{background:#d97706}.checkrow .mark.no{background:var(--bad)}.checkrow .mark.rev{background:#475467}.score-ring{--p:0;background:conic-gradient(var(--em-600) calc(var(--p) * 1%), #e3ebe8 0);border-radius:50%;place-items:center;width:132px;height:132px;display:grid}.score-ring>div{text-align:center;background:#fff;border-radius:50%;place-items:center;width:104px;height:104px;display:grid}.score-ring strong{font-size:30px;line-height:1;display:block}.boardroom{background:#120d0a;height:calc(100dvh - 78px);min-height:560px;position:relative;overflow:hidden}.boardroom-bar{z-index:3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.boardroom-bar .glass-note{color:#eaf7f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081e19c7;border:1px solid #bff3dc4d;border-radius:12px;max-width:640px;padding:10px 14px;font-size:14px}.dash{color:#eaf2fb;background:radial-gradient(1200px 600px at 50% -10%,#17406a,#0b1d33 60%,#08162a);border-radius:6px;grid-template-rows:auto auto 1fr;gap:22px;width:1600px;height:900px;padding:34px 40px;font-family:Inter Variable,system-ui,sans-serif;display:grid}.dash h2{text-align:center;margin:0;font-size:46px;font-weight:750}.dash .kpis{grid-template-columns:1.2fr 1.2fr 1fr;gap:22px;display:grid}.dash .kpi-card{color:#0d1b2a;background:linear-gradient(#fff,#e7eef6);border-radius:12px;padding:16px 22px}.dash .kpi-card .l{color:#24364b;font-size:22px;font-weight:650}.dash .kpi-card .v{letter-spacing:-.02em;font-size:64px;font-weight:800;line-height:1.05}.dash .kpi-card .d{margin-left:12px;font-size:24px;font-weight:700}.dash .d.up-bad,.dash .d.down-bad{color:#d92d20}.dash .d.up-good,.dash .d.down-good{color:#079455}.dash .charts{grid-template-columns:1.3fr 1.3fr 1fr;gap:22px;min-height:0;display:grid}.dash .chart-card{color:#0d1b2a;background:linear-gradient(#fff,#eef3f8);border-radius:12px;flex-direction:column;min-height:0;padding:14px;display:flex}.dash-2d{aspect-ratio:16/9;border-radius:12px;width:100%;position:relative;overflow:hidden}.dash-2d>.dash{transform-origin:0 0;position:absolute;top:0;left:0}.tabs{border-bottom:1px solid var(--line);gap:6px;margin-bottom:16px;display:flex}.tabs a{color:var(--ink-2);border-bottom:3px solid #0000;padding:9px 14px;font-weight:650;text-decoration:none}.tabs a.on{color:var(--em-800);border-bottom-color:var(--em-600)}.lvlcell{text-align:center;border-radius:6px;min-width:92px;padding:2px 8px;font-size:12px;display:inline-block}.lvlcell.Advanced{color:#05603a;background:#d1fadf}.lvlcell.Proficient{color:#067647;background:#e3f7ec}.lvlcell.Developing{color:#93370d;background:#fef0c7}.lvlcell.Beginning{color:#912018;background:#fee4e2}.lvlcell.none{color:var(--muted);background:#f2f4f3}.signin{background:radial-gradient(900px 500px at 50% 10%,#2fd24a38,#0000 70%),linear-gradient(#0a1622,#0d1b2a 55%,#0a1a14);align-content:center;place-items:center;gap:26px;min-height:100dvh;padding:24px 16px;display:grid}.signin .card{width:min(820px,100%)}.print-page{background:#fff;max-width:820px;margin:0 auto;padding:36px}@media print{.noprint{display:none!important}body{background:#fff}.print-page{padding:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.tour-back{z-index:80;position:fixed;inset:0}.tour-hole{pointer-events:none;border-radius:12px;transition:all .25s;position:fixed;box-shadow:0 0 0 9999px #061a158c,0 0 0 3px #f59e0b}.tour-card{background:#fff;border-radius:14px;outline:none;width:360px;max-width:calc(100vw - 24px);padding:14px 16px;position:fixed;box-shadow:0 24px 60px #00000059}.tour-card h3{margin:4px 0 6px}.tour-card p{color:var(--ink-2);font-size:14px}.ws-timer{font-variant-numeric:tabular-nums;background:#ffffff1f;border-radius:8px;padding:4px 10px;font-weight:800}.ws-timer.low{background:#b42318}.ws-team{background:#ffffff1f;border-radius:8px;padding:4px 10px;font-size:13px}.arch-narrow{max-width:980px}.arch-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px;display:grid}.arch-types{border:0;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin:0;padding:0;display:grid}.arch-types legend.h3{margin-bottom:8px;padding:0;font-size:16px;font-weight:700}.arch-type{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.arch-type>span{flex-direction:column;gap:2px;display:flex}.arch-type.on{border-color:var(--em-600);box-shadow:0 0 0 2px var(--em-200);background:var(--em-50)}.arch-type input{margin-top:3px}.arch-skills{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.arch-skills legend,.arch-skills p{grid-column:1/-1}.arch-confirm{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.arch-confirm input{margin-top:3px}.arch-dl{grid-template-columns:max-content 1fr;gap:4px 12px;margin:10px 0 14px;display:grid}.arch-dl dt{color:var(--muted);font-weight:650}.arch-dl dd{overflow-wrap:anywhere;margin:0}.arch-steps{margin:0;padding-left:22px}.arch-steps>li{border-bottom:1px solid var(--line-2);padding:10px 0}.arch-steps>li:last-child{border-bottom:0}.arch-hints{margin:4px 0 8px;padding-left:18px}.arch-rubric details summary{cursor:pointer;color:var(--em-700);margin-top:4px;font-size:12.5px}.arch-exp{columns:2 220px;margin:6px 0 0;padding-left:18px;font-size:12.5px}.arch-sample{font-size:12.5px}.arch-sample th,.arch-sample td{white-space:nowrap;padding:5px 8px}.arch-step-edit{gap:0;display:grid}.colpick.arch-step-edit label.field{flex-direction:column;align-items:stretch;padding:0;font-size:13px}
