@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,400;0,8..60,600;0,8..60,700;1,8..60,300;1,8..60,400&family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}img{display:block;max-width:100%}
:root{--navy:#071b38;--blue:#1549a0;--sky:#2f78d4;--pale:#deeaf8;--ice:#f2f7fd;--text:#071b38;--mid:#3d5a7a;--line:#b8d0eb;--white:#ffffff;--teal:#0a7c5e;--teal-lt:#d0f0e8;--orange:#c45a00;--orange-lt:#fdecd8;--violet:#5b3fa0;--violet-lt:#ede8fb;--red:#b91c1c;--red-lt:#fee2e2;--red-bright:#dc2626;--font-body:'IBM Plex Sans',sans-serif;--font-display:'Source Serif 4',serif;--radius:3px;--shadow:0 2px 12px rgba(7,27,56,0.08)}
body{font-family:var(--font-body);background:var(--ice);color:var(--text);font-size:15px;line-height:1.65;min-height:100vh;display:flex;flex-direction:column}
nav.site-nav{background:var(--navy);display:flex;justify-content:space-between;align-items:center;padding:0 60px;height:64px;position:sticky;top:0;z-index:100;flex-shrink:0}
.wordmark{font-family:var(--font-body);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px}
.wordmark-sep{width:1px;height:18px;background:#4a6c96}.wordmark-sub{font-weight:300;color:#7eb8f7;font-size:13px;letter-spacing:.08em}
.nav-links{display:flex;gap:8px;align-items:center}
.nav-links a{text-decoration:none;font-size:12px;letter-spacing:.07em;font-weight:600;text-transform:uppercase;color:#7da8ce;padding:6px 12px;border-radius:var(--radius);transition:color .15s,background .15s}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.08)}.nav-links a.active{color:#fff}
.nav-links a.nav-code{color:#f87171;border:1.5px solid #7f1d1d}
.nav-links a.nav-code:hover{background:rgba(185,28,28,.18);color:#fca5a5;border-color:#b91c1c}
.nav-links a.nav-contact{border:1px solid #4a6c96;color:#a8cef0}
.nav-links a.nav-contact:hover{border-color:#7eb8f7;color:#fff;background:transparent}
.page-header{background:linear-gradient(135deg,var(--navy) 0%,#0f3060 60%,#1549a0 100%);padding:56px 60px 52px;position:relative;overflow:hidden}
.page-header-kicker{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7eb8f7;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.page-header-kicker::before{content:'';display:block;width:24px;height:2px;background:#7eb8f7}
.page-header h1{font-family:var(--font-display);font-size:42px;font-weight:700;color:#fff;line-height:1.12;letter-spacing:-.01em;max-width:600px}
.page-header p{font-size:16px;color:#99bcd8;max-width:520px;margin-top:14px;font-weight:300;line-height:1.75}
.page-header.code-header{background:linear-gradient(135deg,#1a0505 0%,#3b0a0a 60%,#7f1d1d 100%)}
.page-header.code-header .page-header-kicker,.page-header.code-header .page-header-kicker::before{color:#fca5a5;background:#fca5a5}
.sec-head{display:flex;align-items:center;gap:14px;margin-bottom:28px;padding-bottom:14px;border-bottom:2.5px solid var(--blue)}
.sec-title{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);white-space:nowrap}
.sec-line{flex:1;height:1px;background:var(--line)}.sec-head.red-head{border-bottom-color:var(--red)}.sec-head.red-head .sec-title{color:var(--red)}
.badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:2px;flex-shrink:0;white-space:nowrap}
.badge-jc{background:rgba(21,73,160,.12);color:var(--blue)}.badge-lx{background:var(--orange-lt);color:var(--orange)}.badge-ts{background:var(--teal-lt);color:var(--teal)}.badge-path{background:var(--violet-lt);color:var(--violet)}
.row-list{display:flex;flex-direction:column}
.row-item{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);align-items:flex-start;cursor:pointer;text-decoration:none;color:inherit;transition:background .1s}
.row-item:hover{background:var(--pale);margin:0 -16px;padding-left:16px;padding-right:16px}
.row-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:3px}.row-meta{font-size:12px;color:var(--mid);font-weight:400}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.card{background:var(--white);border-top:3px solid var(--blue);padding:24px;box-shadow:var(--shadow);cursor:pointer;transition:transform .15s,box-shadow .15s;text-decoration:none;color:inherit;display:block}
.card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(7,27,56,.12)}
.card.card-red{border-top-color:var(--red)}.card.card-teal{border-top-color:var(--teal)}.card.card-violet{border-top-color:var(--violet)}
.card-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.card.card-red .card-label{color:var(--red)}.card.card-teal .card-label{color:var(--teal)}.card.card-violet .card-label{color:var(--violet)}
.card-title{font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.4;margin-bottom:8px;color:var(--text)}.card-desc{font-size:13px;color:var(--mid);line-height:1.65}
.stats-bar{background:var(--white);border-bottom:3px solid var(--blue);display:flex;padding:0 60px;flex-wrap:wrap}
.stat{padding:26px 48px 26px 0;margin-right:48px;border-right:1px solid var(--line);flex-shrink:0}.stat:last-child{border-right:none}
.stat-num{font-size:34px;font-weight:700;color:var(--blue);line-height:1;margin-bottom:4px;letter-spacing:-.02em}
.stat-label{font-size:11px;color:var(--mid);letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.side-card{background:var(--white);border-top:3px solid var(--blue);padding:22px;box-shadow:var(--shadow)}.side-card+.side-card{margin-top:20px}
.side-card-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.link-list{display:flex;flex-direction:column;gap:10px}
.link-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);text-decoration:none;font-weight:500;padding:4px 0;border-bottom:1px solid var(--line);transition:color .12s}
.link-item:last-child{border-bottom:none}.link-item::before{content:'→';color:var(--sky);font-size:12px;flex-shrink:0}.link-item:hover{color:var(--blue)}
.btn{display:inline-block;padding:12px 26px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius);transition:opacity .15s,background .15s;cursor:pointer;border:none;font-family:var(--font-body)}
.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#0f3a80}
.btn-white{background:#fff;color:var(--navy)}.btn-white:hover{background:var(--pale)}
.btn-ghost{background:transparent;border:1.5px solid #4a6c96;color:#a8cef0}.btn-ghost:hover{border-color:#7eb8f7;color:#fff}
.content-wrap{max-width:1200px;margin:0 auto;padding:60px;flex:1}
.content-wrap.with-sidebar{display:grid;grid-template-columns:1fr 300px;gap:60px;align-items:start}
.sidebar{display:flex;flex-direction:column;gap:0}
.placeholder-box{border:2px dashed var(--line);border-radius:6px;padding:48px 32px;text-align:center;color:var(--mid)}
.placeholder-box .ph-icon{font-size:36px;margin-bottom:12px;opacity:.5}
.placeholder-box .ph-title{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px}
.placeholder-box .ph-sub{font-size:13px;line-height:1.7}
footer.site-footer{background:var(--navy);padding:28px 60px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;margin-top:auto}
.footer-word{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7eb8f7}
.footer-copy{font-size:12px;color:#4a6c96}.footer-email{font-size:13px;color:#7eb8f7;text-decoration:none}.footer-email:hover{color:#fff}
.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-48{margin-top:48px}
@media(max-width:900px){nav.site-nav{padding:0 24px}.content-wrap{padding:40px 24px}.content-wrap.with-sidebar{grid-template-columns:1fr}.page-header{padding:44px 24px 40px}.page-header h1{font-size:32px}.stats-bar{padding:0 24px}footer.site-footer{padding:24px;flex-direction:column;gap:8px;text-align:center}.wordmark-sub{display:none}.nav-links{gap:4px}.nav-links a{font-size:11px;padding:5px 8px}}
