:root{--carbon:#102a43;--steel:#526b7a;--signal:#1479b8;--signal-dark:#0d5c91;--paper:#f4f7f9;--surface:#fff;--line:#c9d6df;--line-strong:#829ab1;--mist:#eaf2f8;--success:#dcebe5;--warning:#fff0cd;--danger:#f7dfda}
*{box-sizing:border-box}
body{margin:0;background-color:var(--paper);background-image:linear-gradient(#102a4308 1px,transparent 1px),linear-gradient(90deg,#102a4308 1px,transparent 1px);background-size:28px 28px;color:var(--carbon);font:16px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
header,main{max-width:1050px;margin:auto;padding:18px 28px}
header{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.brand{font-size:1.35rem;font-weight:800;letter-spacing:-.035em;text-decoration:none;color:var(--carbon)}
.brand span{color:var(--signal)}
.desktop-navigation{display:flex;align-items:center;gap:20px}
.desktop-navigation a{color:var(--carbon);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
.desktop-navigation a:not(.button):hover{color:var(--signal)}
.desktop-navigation a.button{color:#fff}
.primary-navigation{display:none}
h1,h2,h3{letter-spacing:-.03em}
h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.02;margin:0 0 20px}
h2{line-height:1.15}
a{color:var(--signal-dark)}
a:hover{color:var(--signal)}
:focus-visible{outline:3px solid #8bc5e8;outline-offset:3px}
.hero{padding:74px 0 50px;max-width:760px}
.hero p:not(.eyebrow){max-width:650px;font-size:1.15rem;color:var(--steel)}
.eyebrow{margin-bottom:13px;color:var(--signal);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.button,button{display:inline-block;border:1px solid var(--signal);border-radius:2px;background:var(--signal);color:#fff;padding:10px 16px;font:700 .78rem/1.2 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;cursor:pointer}
.button:hover,button:hover{background:var(--signal-dark);border-color:var(--signal-dark);color:#fff}
.small{padding:7px 10px;font-size:.72rem}
button:disabled{border-color:var(--line-strong);background:var(--line-strong);cursor:not-allowed}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:25px 0}
.cards article,.cards.links a,.form-card,.result,.example{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:20px;box-shadow:none}
.cards article::before,.cards.links a::before{position:absolute;top:-1px;left:-1px;width:42px;height:3px;background:var(--signal);content:""}
.cards.links a{color:inherit;text-decoration:none;transition:border-color .15s ease,transform .15s ease}
.cards.links a:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.cards h2{margin-top:0;font-size:1.25rem}
.module-link{display:block;margin-top:16px;color:var(--signal-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.training-module-content,.training-preview{max-width:820px;margin:30px 0;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:2px}
.training-summary{font-size:1.15rem;color:var(--steel)}
.markdown-content h1{font-size:2rem;margin-top:30px}.markdown-content h2{margin-top:28px}.markdown-content h3{margin-top:22px}.markdown-content pre{overflow:auto;padding:16px;border-left:3px solid var(--signal);background:var(--carbon);color:#eaf2f8;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.markdown-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.markdown-content :not(pre)>code{padding:2px 4px;background:var(--mist)}.markdown-content blockquote{margin:18px 0;padding:1px 16px;border-left:3px solid var(--line-strong);color:var(--steel)}
.math-notation{overflow:auto;margin:18px 0;padding:18px;border:1px solid var(--line);border-left:3px solid var(--signal);background:#fbfdff;color:var(--carbon);font-family:"Times New Roman",Times,serif;font-size:1.25rem;line-height:2;text-align:center}.inline-math{font-family:"Times New Roman",Times,serif;font-size:1.08em;white-space:nowrap}.math-notation sup,.math-notation sub,.inline-math sup,.inline-math sub{font-size:.72em;line-height:0}.math-fraction{display:inline-grid;vertical-align:middle;margin:0 .16em;text-align:center;line-height:1.05}.math-fraction>span:first-child{padding:0 .18em .1em;border-bottom:1px solid currentColor}.math-fraction>span:last-child{padding:.1em .18em 0}.math-root{display:inline-flex;align-items:flex-start}.math-root>span{padding-left:.08em;border-top:1px solid currentColor}.math-overbar{text-decoration:overline}
.tikz-diagram{margin:22px 0;padding:18px;border:1px solid var(--line);border-left:3px solid var(--signal);background:#fff;text-align:center}.tikz-diagram img{display:block;max-width:100%;height:auto;margin:auto}.tikz-diagram figcaption{margin-top:10px;color:var(--steel);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.tikz-unavailable{margin:18px 0;padding:14px;border:1px solid #dfbf70;border-left:3px solid #b97900;background:var(--warning)}
.training-editor{max-width:none}.training-editor textarea{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--carbon);font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;resize:vertical}.training-editor textarea:focus{border-color:var(--signal);outline:2px solid #8bc5e880;outline-offset:1px}
.project-form{max-width:500px}.project-form textarea{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--carbon);font:inherit;resize:vertical}.project-form textarea:focus{border-color:var(--signal);outline:2px solid #8bc5e880;outline-offset:1px}.project-card{margin:0 0 14px}.project-card h3{margin:.35rem 0}.project-status{color:var(--steel);font-size:.86rem}
.training-courses h3{margin:20px 0 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.training-modules{margin:0;padding-left:22px;color:var(--steel)}
.training-modules li{margin:8px 0;padding-left:3px}
.form-card{max-width:430px;margin:30px 0}
.form-card h1{font-size:2rem}
.form-card label{display:block;font-size:.86rem;font-weight:750;margin:14px 0;text-transform:none}
input,select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid var(--line-strong);border-radius:2px;background:#fff;color:var(--carbon);font:inherit}
input:focus,select:focus{border-color:var(--signal);outline:2px solid #8bc5e880;outline-offset:1px}
.consent{display:flex!important;align-items:flex-start;gap:9px;font-weight:500!important}
.consent input{display:inline-block;width:auto;margin:5px 0 0}
.delete-account{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.danger-button{margin-top:8px;border-color:#a33c35;background:#a33c35}
.danger-button:hover{border-color:#7f2924;background:#7f2924}
.columns{display:grid;grid-template-columns:minmax(280px,430px) 1fr;gap:28px;align-items:start}
.result{margin-top:30px}
.report-text{max-width:100%;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.simulation-chart{display:block;max-width:100%;height:auto;border:1px solid var(--line)}
.flash{margin:10px 0;padding:12px 15px;border:1px solid #aac9bc;border-left:4px solid #397b62;border-radius:2px;background:var(--success)}
.flash.danger{border-color:#db9d93;border-left-color:#b43d2c;background:var(--danger)}
.flash.warning{border-color:#dfbf70;border-left-color:#b97900;background:var(--warning)}
.example{margin:15px 0;background:#fbfcfa}
.example span{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;color:var(--signal-dark)}
table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line)}
th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}
th{background:var(--carbon);color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
tr:last-child td{border-bottom:0}
.done{opacity:.55;text-decoration:line-through}
.site-footer{background:var(--carbon);color:#c7d0d3;margin-top:55px;padding:38px max(28px,calc((100% - 994px)/2));font-size:.92rem}
.site-footer .brand{color:#fff}
.site-footer .brand span{color:#72bce5}
.site-footer a{color:#8bc5e8;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.footer-grid{max-width:994px;margin:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:35px}
.footer-grid h2{margin-top:0;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.footer-grid p{margin:7px 0}
.footer-grid section:last-child a{display:block;margin:6px 0}
.footer-bottom{max-width:994px;margin:25px auto 0;padding-top:15px;border-top:1px solid #ffffff2b;color:#9ca9ad}
.legal-page{max-width:760px}
.legal-page h1{font-size:2.4rem}
.legal-page h2{margin-top:30px}
@media(max-width:760px){
  header,main{padding:15px 18px}
  header{position:relative;align-items:center}
  .desktop-navigation{display:none}
  .primary-navigation{display:block;margin-left:auto}
  .primary-navigation summary{display:block;list-style:none;border:1px solid var(--line-strong);border-radius:2px;background:var(--surface);padding:8px 11px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
  .primary-navigation summary::-webkit-details-marker{display:none}
  .primary-navigation summary::after{content:"☰";margin-left:8px;color:var(--signal)}
  .primary-navigation[open] summary::after{content:"×"}
  .primary-navigation:not([open]) nav{display:none}
  .primary-navigation nav{position:absolute;z-index:10;top:calc(100% + 8px);right:0;min-width:215px;display:flex;flex-direction:column;align-items:stretch;gap:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:2px;padding:7px;box-shadow:5px 5px 0 #102a431a}
  .primary-navigation nav a{padding:10px 12px;color:var(--carbon);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
  .primary-navigation nav a:hover,.primary-navigation nav a:focus-visible{background:var(--mist)}
  .primary-navigation nav a.button{text-align:center;margin:4px 0;color:#fff}
  .hero{padding:52px 0 36px}
  .columns{grid-template-columns:1fr}
  table{font-size:.85rem}
  .site-footer{padding:30px 18px}
  .footer-grid{grid-template-columns:1fr;gap:22px}
}
