:root{--bg: #fbfcfb;--surface: rgba(255, 255, 255, .84);--surface-strong: rgba(255, 255, 255, .94);--surface-soft: rgba(246, 249, 247, .9);--border: rgba(16, 24, 20, .08);--border-strong: rgba(16, 24, 20, .14);--line: rgba(16, 24, 20, .06);--text: #111713;--text-soft: #3f4a43;--muted: #6d7770;--accent: #14945d;--accent-strong: #0f7b4c;--accent-soft: rgba(20, 148, 93, .1);--accent-glow: rgba(20, 148, 93, .18);--cyan: #2b8fbf;--violet: #8a63d2;--gold: #d99921;--shadow-sm: 0 12px 30px rgba(17, 23, 19, .04);--shadow-md: 0 22px 50px rgba(17, 23, 19, .06);--radius-xl: 28px;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 12px;--font-display: "Space Grotesk", "PingFang SC", "Noto Sans SC", sans-serif;--font-body: "IBM Plex Sans", "PingFang SC", "Noto Sans SC", sans-serif}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 82% 12%,rgba(43,143,191,.08),transparent 24rem),radial-gradient(circle at 18% 86%,rgba(20,148,93,.1),transparent 26rem),#fff;color:var(--text);font-family:var(--font-body);text-rendering:optimizeLegibility}button,input,select{font:inherit}button{color:inherit}.app-shell{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:28px;height:100vh;padding:28px 24px;border-right:1px solid var(--border);background:#fbfcfbc7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow-y:auto}.sidebar:after{content:"";position:absolute;inset:24px 0 24px auto;width:1px;background:linear-gradient(180deg,transparent,rgba(20,148,93,.16),transparent);pointer-events:none}.sidebar__eyebrow{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:600;line-height:1;letter-spacing:0;text-transform:uppercase}.sidebar__brand h1,.topbar h2{margin:0;font-family:var(--font-display);letter-spacing:0}.sidebar__brand h1{font-size:34px;font-weight:700;line-height:1}.sidebar__tagline{max-width:15rem;margin:14px 0 0;color:var(--text-soft);font-size:13px;line-height:1.65}.nav{display:grid;gap:10px}.nav__item{position:relative;display:flex;align-items:center;gap:12px;width:100%;border:1px solid transparent;border-radius:var(--radius-md);padding:13px 16px 13px 24px;background:transparent;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background-color .15s ease,box-shadow .15s ease,opacity .15s ease}.nav__item svg{flex:none;color:var(--muted)}.nav__item strong,.nav__item small{display:block}.nav__item strong{font-size:14px;font-weight:700}.nav__item small{margin-top:4px;color:var(--muted);font-size:12px}.nav__item:hover:not(:disabled){transform:translate(3px);border-color:var(--border);background:#ffffff8c}.nav__item.is-active{border-color:#14945d38;background:var(--surface-strong);box-shadow:var(--shadow-sm)}.nav__item.is-active:before{content:"";position:absolute;inset:10px auto 10px 10px;width:3px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 6px #14945d14}.nav__item.is-active svg{color:var(--accent)}.nav__item:disabled{cursor:default;opacity:.52}.content{padding:30px}.topbar{margin-bottom:24px;padding-bottom:0}.topbar h2{font-size:clamp(28px,3.4vw,40px);font-weight:600;line-height:1}.metrics-grid{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:30px}.metric-card{position:relative;display:flex;align-items:center;gap:10px;min-height:42px;border:1px solid var(--border);border-radius:999px;padding:9px 14px;background:#ffffffb8;box-shadow:none;animation:rise-in .42s ease both;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.metric-card:hover{transform:translateY(-2px);border-color:#14945d24;box-shadow:0 12px 28px #1117130a}.metric-card svg{flex:none;display:block}.metric-card__label{display:inline-flex;align-items:center;gap:7px;min-width:0}.metric-card__label span{color:var(--muted);font-size:14px;font-weight:600;line-height:1}.metric-card strong{flex:none;font-family:var(--font-display);font-size:18px;font-weight:700;line-height:1;white-space:nowrap}.metric-card--height{border-color:#2b8fbf29;background:#f6fbfdcc;color:var(--cyan)}.metric-card--leaf{border-color:#14945d29;background:#f6fbf8d1;color:var(--accent)}.metric-card--flower{border-color:#8a63d229;background:#faf7ffd1;color:var(--violet)}.metric-card--fruit{border-color:#d999212e;background:#fffaefd6;color:var(--gold)}.growth-board{position:relative;min-height:calc(100vh - 230px);border:1px solid var(--border);border-radius:var(--radius-xl);padding:26px;background:linear-gradient(115deg,#ffffffe6,#f6f9f7b8),radial-gradient(circle at 90% 10%,rgba(138,99,210,.08),transparent 24rem);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow:hidden}.growth-stage{position:relative;z-index:1;display:grid;gap:34px;padding:6px 0 8px}.domain-section{position:relative;display:grid;grid-template-columns:150px 42px minmax(0,1fr);align-items:start;gap:26px;min-height:96px;animation:rise-in .42s ease both;animation-delay:calc(var(--cluster-index) * 55ms)}.domain-section:before{content:"";position:absolute;top:21px;left:150px;width:47px;height:1px;background:linear-gradient(90deg,#14945d80,#2b8fbf1f)}.domain-section:after{content:"";position:absolute;top:49px;left:197px;width:2px;height:calc(100% - 22px);border-radius:999px;background:#14945d47}.domain-section:last-child:after{display:none}.domain-label{display:inline-grid;place-items:center;justify-self:end;min-width:104px;min-height:42px;border:1px solid rgba(16,24,20,.055);border-radius:999px;padding:9px 14px;background:#ffffff61;box-shadow:none;text-align:center}.domain-label strong{color:var(--muted);font-size:16px;font-weight:700;line-height:1.15}.domain-pin{position:relative;z-index:2;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(20,148,93,.18);border-radius:14px;background:#fff;color:var(--accent);box-shadow:var(--shadow-sm)}.domain-pin:before{display:none}.domain-pin svg{animation:slow-spin 8s linear infinite}.branch-list{position:relative;display:grid;gap:20px;min-width:0;padding-top:5px}.branch-list:before{content:"";position:absolute;top:21px;bottom:21px;left:-47px;width:2px;border-radius:999px;background:#14945d33;display:none}.domain-section:last-child .branch-list:before{display:block}.topic-branch{position:relative;display:flex;align-items:center;gap:14px}.topic-branch__title{position:relative;display:inline-flex;align-items:center;flex:none;width:160px;max-width:100%;border:1px solid rgba(16,24,20,.06);border-radius:999px;padding:7px 11px;background:#ffffffad;color:var(--text-soft);font-size:14px;font-weight:750}.topic-branch__title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-branch__title:before{content:"";position:absolute;top:50%;left:-47px;width:47px;height:1px;background:#14945d47}.growth-items{display:flex;flex-wrap:wrap;gap:7px;min-width:0;max-width:420px;padding-left:0}.growth-item{display:inline-flex;justify-content:center;align-items:center;width:28px;height:28px;border:1px solid rgba(16,24,20,.06);border-radius:10px;padding:0;background:#ffffffb8;color:var(--text-soft)}.growth-item svg{flex:none}.growth-item--leaf{border-color:#14945d2e;background:#14945d14;color:var(--accent-strong)}.growth-item--flower{border-color:#8a63d229;background:#faf7ffdb;color:var(--violet)}.growth-item--fruit{border-color:#d999212e;background:#fffaefdb;color:#8a6211}.skill-page{display:grid;align-content:start}.skill-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.skill-stat{display:inline-flex;align-items:center;gap:9px;min-height:38px;border:1px solid var(--border);border-radius:999px;padding:8px 12px;background:#ffffffb8;color:var(--muted);font-size:13px;font-weight:650}.skill-stat strong{color:var(--text);font-family:var(--font-display);font-size:17px;line-height:1}.skill-stat--level-0{background:#f6f9f7b8}.skill-stat--level-1{border-color:#14945d29;background:#f6fbf8d1}.skill-stat--level-2{border-color:#8a63d229;background:#faf7ffd1}.skill-stat--level-3{border-color:#d999212e;background:#fffaefd6}.skill-list-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.skill-list-panel,.skill-filter-panel{border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(115deg,#ffffffe0,#f6f9f7ad),radial-gradient(circle at 84% 14%,rgba(43,143,191,.06),transparent 18rem);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.skill-list-panel{display:grid;gap:8px;padding:12px}.skill-list-item{display:grid;grid-template-columns:34px minmax(180px,1fr) minmax(150px,220px) minmax(120px,220px) 54px;align-items:center;gap:16px;width:100%;min-height:58px;border:1px solid transparent;border-radius:var(--radius-md);padding:11px 14px;background:#ffffff75;text-align:left;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.skill-list-item:hover{transform:translateY(-1px);border-color:#14945d29;background:#ffffffdb;box-shadow:0 12px 30px #1117130b}.progress-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(16,24,20,.07);border-radius:12px;background:#ffffffb3;color:var(--muted)}.progress-mark--1{border-color:#14945d2e;background:#14945d14;color:var(--accent-strong)}.progress-mark--2{border-color:#8a63d229;background:#faf7ffdb;color:var(--violet)}.progress-mark--3{border-color:#d999212e;background:#fffaefdb;color:#8a6211}.skill-list-item__main{display:grid;min-width:0}.skill-list-item__main strong{overflow:hidden;color:var(--text);font-size:15px;font-weight:750;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.skill-list-item__scope,.skill-list-item__apps,.skill-degree{display:flex;align-items:center;min-width:0}.skill-list-item__scope{gap:7px}.scope-pill{overflow:hidden;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:750;line-height:1;text-overflow:ellipsis;white-space:nowrap}.scope-pill--topic{border:1px solid rgba(20,148,93,.16);background:#14945d13;color:var(--accent-strong)}.scope-pill--domain{border:1px solid rgba(16,24,20,.055);background:#ffffff6b;color:var(--muted)}.skill-list-item__apps{flex-wrap:wrap;gap:6px}.skill-list-item__apps span{max-width:100%;overflow:hidden;border:1px solid rgba(217,153,33,.14);border-radius:999px;padding:5px 8px;background:#fffaef9e;color:#8a6211;font-size:12px;font-weight:700;line-height:1;text-overflow:ellipsis;white-space:nowrap}.skill-degree{justify-content:flex-end;gap:5px;color:var(--gold)}.skill-degree strong{color:#8a6211;font-family:var(--font-display);font-size:15px;font-weight:750;line-height:1;white-space:nowrap}.skill-filter-panel{display:grid;align-content:start;gap:20px;padding:18px}.filter-group{display:grid;gap:10px}.filter-group h3{margin:0;color:var(--muted);font-size:12px;font-weight:750;line-height:1;text-transform:uppercase}.filter-chip-list{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{position:relative;display:inline-flex;align-items:center;gap:6px;max-width:100%;border:1px solid rgba(16,24,20,.06);border-radius:10px;padding:8px 10px;background:#ffffff6b;color:var(--text-soft);font-size:12px;font-weight:750;line-height:1;text-align:center;cursor:pointer;transition:transform .14s ease,border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.filter-chip:hover,.filter-chip.is-active{transform:translateY(-1px);border-color:#14945d24;background:#ffffffc2}.filter-chip.is-active{border-color:#14945d38;background:#14945d17;color:var(--accent-strong);box-shadow:0 12px 26px #1117130a}.filter-chip--domain{padding:8px 11px;background:#f6fbf89e}.filter-chip--status svg{flex:none}.empty-state{border:1px solid var(--border);border-radius:var(--radius-xl);padding:28px;background:#ffffffad;color:var(--muted);text-align:center}.achievement-page{display:grid;align-content:start}.achievement-hero{margin-bottom:22px}.achievement-section{display:grid;gap:14px}.achievement-section+.achievement-section{margin-top:26px}.achievement-section__header{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.achievement-section__header h3{margin:0;color:var(--text);font-family:var(--font-display);font-size:18px;font-weight:750;letter-spacing:0;line-height:1}.achievement-section__header>div{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.achievement-section__header span{color:var(--muted);font-size:13px;font-weight:650;line-height:1.35;text-align:right}.achievement-section__header strong{flex:none;border:1px solid rgba(16,24,20,.07);border-radius:999px;padding:7px 11px;background:#ffffff9e;color:var(--text-soft);font-family:var(--font-display);font-size:13px;font-weight:760;line-height:1;white-space:nowrap}.achievement-catalog{display:grid;gap:18px}.achievement-track{position:relative;display:grid;gap:18px;border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px;background:linear-gradient(135deg,#ffffffe8,#f6f9f7a8),radial-gradient(circle at 94% 12%,rgba(16,24,20,.035),transparent 14rem);box-shadow:var(--shadow-sm);overflow:hidden;animation:rise-in .42s ease both}.achievement-track__header{display:flex;align-items:center;justify-content:space-between;gap:18px}.achievement-track h3{margin:0;color:var(--muted);font-family:var(--font-display);font-size:13px;font-weight:650;letter-spacing:0;line-height:1}.achievement-track p{margin:8px 0 0;color:var(--muted);font-size:13px;font-weight:650;line-height:1.35}.achievement-track__header>strong{flex:none;border:1px solid rgba(16,24,20,.07);border-radius:999px;padding:7px 11px;background:#ffffff9e;color:var(--text-soft);font-family:var(--font-display);font-size:13px;font-weight:760;line-height:1;white-space:nowrap}.achievement-levels{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.achievement-levels:before{content:"";position:absolute;top:57px;right:7%;left:7%;height:2px;border-radius:999px;background:#1018140f}.achievement-level-card{--level-color: #14945d;position:relative;z-index:1;display:grid;justify-items:center;min-width:0;min-height:112px;border:1px solid transparent;border-radius:16px;padding:4px 8px 8px;background:transparent;color:inherit;text-align:center;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.achievement-level-card--level-2{--level-color: #2b8fbf}.achievement-level-card--level-3{--level-color: #d99921}.achievement-level-card--level-4{--level-color: #8a63d2}.achievement-level-card--level-5{--level-color: #e05f7e}.achievement-level-card:hover{transform:translateY(-2px)}.achievement-level-card__icon{position:relative;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(16,24,20,.08);border-radius:16px;background:#ffffffb8;color:var(--muted)}.achievement-level-card__icon em{position:absolute;top:-6px;left:-6px;display:grid;place-items:center;width:20px;height:20px;border:2px solid #ffffff;border-radius:999px;background:#10181414;color:var(--muted);font-family:var(--font-display);font-size:11px;font-style:normal;font-weight:800;line-height:1}.achievement-level-card__icon span{position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;width:20px;height:20px;border:2px solid #ffffff;border-radius:999px;background:var(--level-color);color:#fff}.achievement-level-card strong{display:block;min-height:16px;margin:0 0 8px;color:var(--muted);font-family:var(--font-display);font-size:11px;font-weight:760;line-height:1.15;white-space:nowrap}.achievement-level-card h4{margin:8px 0 0;color:var(--text-soft);font-size:14px;font-weight:800;letter-spacing:0;line-height:1.16}.achievement-level-card.is-unlocked{border-color:transparent;background:transparent;box-shadow:none}.achievement-level-card.is-unlocked .achievement-level-card__icon{border-color:color-mix(in srgb,var(--level-color) 28%,transparent);background:#fff;color:var(--level-color);box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--level-color) 6%,transparent)}.achievement-level-card.is-unlocked .achievement-level-card__icon em,.achievement-level-card.is-next .achievement-level-card__icon em{background:var(--level-color);color:#fff}.achievement-level-card.is-unlocked h4{color:var(--text-soft)}.achievement-level-card.is-next{border-color:transparent;background:transparent;box-shadow:none}.achievement-level-card.is-next .achievement-level-card__icon{border-color:color-mix(in srgb,var(--level-color) 22%,transparent);color:var(--level-color)}.achievement-level-card.is-locked{opacity:.6}.achievement-level-card__progress{width:42px;height:4px;margin-top:9px;border-radius:999px;background:#1018141f;overflow:hidden}.achievement-level-card__progress span{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--level-color) 42%,transparent)}.event-badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.event-badge-locked-group{display:grid;gap:14px;margin-top:6px}.event-badge-locked-group__header{display:flex;align-items:center;justify-content:flex-start}.event-badge-locked-group__header strong{margin:0;border:1px solid rgba(16,24,20,.07);border-radius:999px;padding:7px 11px;background:#ffffff9e;color:var(--text-soft);font-family:var(--font-display);font-size:13px;font-weight:760;line-height:1;white-space:nowrap}.event-badge{--event-color: var(--accent);display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:13px;min-height:98px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;background:#ffffffb3;box-shadow:var(--shadow-sm);animation:rise-in .42s ease both;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.event-badge:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--event-color) 18%,transparent);box-shadow:0 14px 34px #1117130b}.event-badge--cyan{--event-color: var(--cyan)}.event-badge--violet{--event-color: var(--violet)}.event-badge--gold{--event-color: var(--gold)}.event-badge__icon{position:relative;display:grid;place-items:center;width:52px;height:52px;border:1px solid color-mix(in srgb,var(--event-color) 22%,transparent);border-radius:18px;background:color-mix(in srgb,var(--event-color) 8%,white);color:var(--event-color);box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--event-color) 5%,transparent)}.event-badge__icon span{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:20px;height:20px;border:2px solid #ffffff;border-radius:999px;background:var(--event-color);color:#fff}.event-badge__content{display:grid;align-content:center;gap:7px;min-width:0}.event-badge__topline{display:flex;align-items:center}.event-badge__topline strong{overflow:hidden;color:var(--text);font-size:15px;font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.event-badge p{margin:0;color:var(--text-soft);font-size:13px;font-weight:600;line-height:1.45}.event-badge.is-locked{opacity:.52;box-shadow:none}.event-badge.is-locked .event-badge__icon{border-color:#10181414;background:#fff9;color:var(--muted);box-shadow:none}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slow-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--border)}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:24px}.metrics-grid{gap:16px}.skill-list-layout{grid-template-columns:1fr}.skill-filter-panel{min-height:auto}.achievement-levels{grid-template-columns:repeat(3,minmax(0,1fr))}.achievement-levels:before{display:none}.event-badge-grid{grid-template-columns:1fr}}@media(max-width:680px){.sidebar,.content{padding:20px 16px}.nav{grid-template-columns:1fr}.topbar{display:grid}.growth-board{border-radius:20px;padding:18px}.growth-stage{gap:24px}.domain-section{grid-template-columns:1fr 34px;gap:12px}.domain-section:after{top:41px;right:16px;left:auto;height:calc(100% - 24px)}.domain-section:before{top:17px;left:auto;right:17px;width:32px}.domain-pin{grid-column:2;grid-row:1;width:34px;height:34px;border-radius:12px}.domain-label{grid-column:1;grid-row:1;justify-self:stretch;min-width:0;text-align:left}.branch-list{grid-column:1 / -1}.branch-list:before{display:none}.topic-branch__title:before{left:-36px;width:36px}.metrics-grid{gap:12px}.skill-list-item{grid-template-columns:34px minmax(0,1fr)}.skill-list-item__scope,.skill-list-item__apps,.skill-degree{grid-column:2;justify-content:flex-start}.achievement-track{padding:16px}.achievement-track__header,.achievement-section__header{align-items:flex-start;flex-direction:column}.achievement-section__header span{text-align:left}.achievement-section__header>div{align-items:flex-start;flex-direction:column;justify-content:flex-start}.achievement-levels{grid-template-columns:repeat(2,minmax(0,1fr))}}
