:root { color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.academy-header { position: sticky; top: 0; z-index: 30; padding: 14px clamp(14px, 4vw, 32px); background: color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter: blur(14px); }
.academy-nav { max-width: 1312px; min-height: 56px; margin: auto; display: flex; align-items: center; gap: 14px; }
.academy-brand { min-height: 56px; display: inline-flex; align-items: center; gap: 9px; padding: 0 17px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-soft); text-decoration: none; flex: none; }
.academy-brand svg { flex: none; }
.academy-brand span { display: flex; align-items: baseline; color: var(--ink); font-family: var(--font-display); font-size: 20px; letter-spacing: -.04em; }
.academy-brand b { font-weight: 600; }.academy-brand strong { font-weight: 800; }.academy-brand em { margin-left: 7px; padding-left: 7px; border-left: 1px solid var(--line); color: var(--blue-text); font-family: var(--font-body); font-size: 10px; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.academy-nav > nav { display: flex; align-items: center; gap: 3px; min-height: 56px; padding: 0 8px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-soft); }
.academy-nav > nav a, .academy-nav-actions > .ws-nav-login { padding: 9px 13px; color: var(--ink-soft); font-size: 14px; font-weight: 750; text-decoration: none; }
.academy-nav > nav a[aria-current] { color: var(--ink); background: var(--ink-tint); border-radius: 10px; }
.academy-nav-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; padding: 8px 8px 8px 13px; min-height: 56px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-soft); }
.academy-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 50px; padding: 0 19px; border-radius: 13px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 800; text-decoration: none; }
.academy-button-small { min-height: 39px; padding: 0 14px; border-radius: 10px; font-size: 13px; }
main { overflow: hidden; }
.academy-hero { min-height: 420px; padding: clamp(72px, 9vw, 130px) clamp(18px, 5vw, 48px) clamp(76px, 10vw, 136px); text-align: center; background-color: var(--paper); background-image: radial-gradient(rgba(8,4,54,.13) 1.35px, transparent 1.35px); background-size: 26px 26px; }
.academy-hero-copy { max-width: 800px; margin: auto; }
.academy-eyebrow { margin: 0 0 17px; color: var(--muted-warm); font-size: 11px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.academy-hero h1, .academy-section h2, .academy-popular h2, .academy-contact h2 { margin: 0; font-family: var(--font-display); font-size: clamp(38px, 5.8vw, 64px); font-weight: 800; letter-spacing: -.045em; line-height: 1.03; }
.academy-hero h1 { text-decoration: underline; text-decoration-color: var(--amber); text-decoration-thickness: 3px; text-underline-offset: 10px; }
.academy-hero-copy > p:last-child { max-width: 660px; margin: 24px auto 0; color: var(--ink-soft); font-size: clamp(16px, 2vw, 19px); font-weight: 500; line-height: 1.55; }
.academy-search { width: min(720px, 100%); margin: 36px auto 0; text-align: left; }.academy-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }.academy-search > div { display: flex; align-items: center; gap: 10px; min-height: 62px; padding: 7px 7px 7px 19px; background: var(--card); border: 1px solid var(--line); border-radius: 17px; box-shadow: 0 14px 35px rgba(8,4,54,.09); }.academy-search svg { width: 21px; height: 21px; fill: none; stroke: var(--muted); stroke-width: 2; flex: none; }.academy-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: 600 16px var(--font-body); }.academy-search input::placeholder { color: var(--muted); }.academy-search button { flex: none; min-height: 46px; padding: 0 17px; border: 0; border-radius: 12px; background: var(--ink); color: #fff; font: 800 14px var(--font-body); cursor: pointer; }
.academy-results { width: min(1116px, calc(100% - 36px)); margin: -44px auto 0; position: relative; z-index: 2; }.academy-results:empty { display: none; }.academy-results > div { padding: 26px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-surf); }.academy-results h2 { margin: 0 0 18px; font: 800 19px var(--font-display); }.academy-result-list { display: grid; gap: 9px; }.academy-result { display: block; padding: 15px 16px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; }.academy-result:hover { border-color: var(--blue-border); background: var(--blue-soft); }.academy-result small { display: block; color: var(--blue-text); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.academy-result strong { display: block; margin-top: 4px; font-size: 15px; }.academy-result p { margin: 6px 0 0; color: var(--ink-soft); font-size: 13px; line-height: 1.45; }
.academy-section { max-width: 1212px; margin: auto; padding: clamp(80px, 11vw, 138px) clamp(18px, 5vw, 48px); }.academy-section-heading { max-width: 680px; margin-bottom: 36px; }.academy-section h2, .academy-popular h2, .academy-contact h2 { font-size: clamp(31px, 4vw, 47px); }.academy-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }.academy-category-card { padding: 27px; background: var(--card); border: 1px solid var(--line); border-radius: 17px; }.academy-category-card:nth-child(3n+2) { background: var(--blue-soft); border-color: var(--blue-border); }.academy-category-card:nth-child(3n) { background: var(--amber-soft); border-color: var(--amber-border); }.academy-category-label { color: var(--ink); font-family: var(--font-display); font-size: 22px; font-weight: 800; letter-spacing: -.03em; }.academy-category-card p { max-width: 48ch; margin: 10px 0 20px; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }.academy-category-card ul { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 22px; }.academy-category-card li { break-inside: avoid; }.academy-category-card a { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; color: var(--ink-soft); font-size: 13px; font-weight: 700; text-decoration: none; }.academy-category-card a:hover { color: var(--blue-text); }.academy-category-card a span { color: var(--blue); }
.academy-popular { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(30px, 7vw, 110px); padding: clamp(60px, 8vw, 104px) max(18px, calc((100vw - 1116px) / 2)); background: var(--paper-deep); }.academy-popular-list { border-top: 1px solid var(--border); }.academy-popular-list a { display: grid; grid-template-columns: 44px 1fr 22px; gap: 13px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--border); text-decoration: none; }.academy-popular-list a > span { color: var(--blue-text); font: 800 13px var(--font-mono); }.academy-popular-list strong { font-size: 16px; }.academy-popular-list p { margin: 5px 0 0; color: var(--ink-soft); font-size: 13px; line-height: 1.4; }.academy-popular-list a > b { font-size: 20px; }.academy-contact { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: clamp(54px, 8vw, 94px) max(18px, calc((100vw - 1116px) / 2)); color: #fff; background: var(--slate); background-image: radial-gradient(rgba(255,255,255,.12) 1.2px, transparent 1.2px); background-size: 21px 21px; }.academy-contact p:not(.academy-eyebrow) { max-width: 520px; margin: 14px 0 0; color: rgba(255,255,255,.72); line-height: 1.5; }.academy-contact .academy-eyebrow { color: var(--amber); }.academy-button-light { flex: none; background: var(--amber); color: var(--ink); }
.academy-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px max(18px, calc((100vw - 1212px) / 2)); background: var(--paper); }.academy-footer-brand { min-height: 0; padding: 0; background: transparent; border: 0; box-shadow: none; }.academy-footer p { margin: 7px 0 0; color: var(--muted); font-size: 13px; }.academy-footer nav { display: flex; flex-wrap: wrap; gap: 6px; }.academy-footer nav a { padding: 6px 8px; color: var(--muted); font-size: 13px; font-weight: 700; text-decoration: none; }.academy-footer nav a:hover { color: var(--ink); }
.academy-article-search { max-width: 1116px; margin: 0 auto; padding: 12px clamp(18px, 5vw, 48px) 0; }.academy-search-compact { width: 100%; margin: 0; }.academy-search-compact > div { min-height: 48px; border-radius: 13px; box-shadow: none; }.academy-search-compact input { font-size: 14px; }.academy-search-compact button { min-height: 34px; padding: 0 12px; border-radius: 9px; font-size: 12px; }.academy-layout { display: grid; grid-template-columns: 228px minmax(0, 680px) 190px; gap: clamp(24px, 4vw, 54px); max-width: 1198px; margin: 0 auto; padding: 38px clamp(18px, 5vw, 48px) 92px; }.academy-sidebar { padding-top: 14px; }.academy-sidebar-home { display: block; margin-bottom: 24px; color: var(--ink-soft); font-size: 13px; font-weight: 800; text-decoration: none; }.academy-sidebar section { margin: 0 0 22px; }.academy-sidebar h2 { margin: 0 0 6px; color: var(--muted-warm); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.academy-sidebar ul { margin: 0; padding: 0; list-style: none; }.academy-sidebar a:not(.academy-sidebar-home) { display: block; padding: 5px 7px; margin-left: -7px; color: var(--ink-soft); border-radius: 7px; font-size: 12px; font-weight: 650; line-height: 1.35; text-decoration: none; }.academy-sidebar a:hover { color: var(--ink); background: var(--ink-tint); }.academy-sidebar a[aria-current] { color: var(--blue-text); background: var(--blue-soft); }.academy-breadcrumbs { display: flex; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 700; }.academy-breadcrumbs a { color: var(--blue-text); text-decoration: none; }.academy-article-heading { margin: 28px 0 39px; }.academy-article-heading p { margin: 0 0 10px; color: var(--blue-text); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.academy-article h1 { margin: 0; font-family: var(--font-display); font-size: clamp(36px, 4vw, 51px); font-weight: 800; letter-spacing: -.045em; line-height: 1.06; }.academy-article-content { color: var(--ink-soft); font-size: 16px; font-weight: 500; line-height: 1.7; }.academy-article-content h2, .academy-article-content h3 { position: relative; margin: 48px 0 15px; color: var(--ink); font-family: var(--font-display); font-weight: 800; letter-spacing: -.03em; line-height: 1.16; }.academy-article-content h2 { font-size: 27px; }.academy-article-content h3 { font-size: 20px; }.academy-article-content p { margin: 0 0 18px; }.academy-article-content ul, .academy-article-content ol { margin: 0 0 20px; padding-left: 23px; }.academy-article-content li { margin: 6px 0; padding-left: 3px; }.academy-article-content a { color: var(--blue-text); font-weight: 700; text-decoration-color: var(--blue-border); text-underline-offset: 2px; }.academy-article-content strong { color: var(--ink); font-weight: 800; }.academy-article-content code { padding: 2px 5px; background: var(--ink-tint); border-radius: 4px; color: var(--ink); font: .88em var(--font-mono); }.academy-article-content pre { overflow-x: auto; padding: 17px; margin: 22px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--node-card); color: var(--ink); line-height: 1.45; }.academy-article-content pre code { padding: 0; background: transparent; white-space: pre; }.academy-table-wrap { overflow-x: auto; margin: 22px 0; border: 1px solid var(--line); border-radius: 12px; }.academy-table-wrap table { width: 100%; border-collapse: collapse; font-size: 14px; }.academy-table-wrap th, .academy-table-wrap td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }.academy-table-wrap th { color: var(--ink); background: var(--ink-tint); font-weight: 800; }.academy-table-wrap tr:last-child td { border-bottom: 0; }.academy-anchor { margin-left: 8px; color: var(--muted) !important; font-size: .65em; opacity: 0; text-decoration: none !important; }.academy-article-content h2:hover .academy-anchor, .academy-article-content h3:hover .academy-anchor { opacity: 1; }.academy-toc { align-self: start; position: sticky; top: 92px; padding: 14px 0 14px 16px; border-left: 1px solid var(--line); }.academy-toc p { margin: 0 0 9px; color: var(--muted-warm); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.academy-toc ol { margin: 0; padding: 0; list-style: none; }.academy-toc li { margin: 7px 0; }.academy-toc a { color: var(--ink-soft); font-size: 12px; font-weight: 650; line-height: 1.35; text-decoration: none; }.academy-toc a:hover { color: var(--blue-text); }.academy-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 58px; padding-top: 23px; border-top: 1px solid var(--line); }.academy-pager a:last-child { text-align: right; }.academy-pager a { color: var(--ink); text-decoration: none; }.academy-pager small { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.academy-pager span { color: var(--blue-text); font-size: 13px; font-weight: 800; }
@media (max-width: 950px) { .academy-layout { grid-template-columns: 190px minmax(0, 1fr); }.academy-toc { display: none; }.academy-category-card ul { columns: 1; }.academy-nav > nav { display: none; } }
@media (max-width: 690px) { .academy-header { padding: 10px 12px; }.academy-nav { gap: 8px; }.academy-brand { min-height: 48px; padding: 0 11px; border-radius: 13px; }.academy-brand span { font-size: 18px; }.academy-brand em { display: none; }.academy-nav-actions { min-height: 48px; padding: 4px; border-radius: 13px; }.academy-nav-actions > .ws-nav-login { display: none; }.academy-button-small { min-height: 38px; padding: 0 11px; }.academy-hero { padding-top: 68px; }.academy-hero h1 { font-size: 39px; }.academy-search > div { min-height: 56px; padding-left: 14px; }.academy-search button { min-height: 40px; padding: 0 12px; }.academy-category-grid, .academy-popular { grid-template-columns: 1fr; }.academy-category-card { padding: 22px; }.academy-popular { gap: 30px; }.academy-contact, .academy-footer { align-items: flex-start; flex-direction: column; }.academy-contact { padding-top: 54px; padding-bottom: 54px; }.academy-layout { display: block; padding-top: 24px; }.academy-sidebar { display: none; }.academy-article-heading { margin: 22px 0 30px; }.academy-article-content { font-size: 15px; line-height: 1.65; }.academy-article-content h2 { margin-top: 39px; font-size: 24px; }.academy-pager { gap: 9px; }.academy-pager span { font-size: 12px; } }
.academy-callout { margin: 28px 0 30px; padding: 24px 25px 20px; border: 1px solid var(--blue-border); border-left: 5px solid var(--blue); border-radius: 15px; background: var(--blue-soft); box-shadow: 0 12px 30px rgba(8,4,54,.06); }.academy-callout p:first-child { margin-top: 0; }.academy-callout p:last-child, .academy-callout ul:last-child, .academy-callout ol:last-child, .academy-callout pre:last-child { margin-bottom: 0; }.academy-callout pre { background: var(--card); }.academy-callout strong { color: var(--ink); }.academy-callout-intro { border-color: var(--red-border); border-left-color: var(--red); background: var(--red-soft); }.academy-callout-verify { border-color: var(--amber-border); border-left-color: var(--amber); background: var(--amber-soft); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
