:root {
  --bg:          #0d1117;
  --bg2:         #161b22;
  --bg3:         #1c2128;
  --added:       #1a3a2a;
  --removed:     #3a1a1f;
  --added-bar:   #2ea043;
  --removed-bar: #f85149;
  --yellow:      #e3b341;
  --cyan:        #79c0ff;
  --orange:      #ffa657;
  --purple:      #d2a8ff;
  --green-txt:   #3fb950;
  --comment:     #8b949e;
  --fg:          #e6edf3;
  --fg2:         #b1bac4;
  --border:      #30363d;
  --terminal:    #010409;
  --acid:        #b8ff3f;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  background:var(--bg);color:var(--fg);
  font-family:'JetBrains Mono',monospace;
  font-size:13px;line-height:1.6;overflow-x:hidden;
  min-height:100vh;padding-top:42px;
}
@media(pointer:fine){body{cursor:none;}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

.cur,.cur-r{position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);}
.cur{width:10px;height:10px;background:var(--acid);border-radius:50%;transition:transform .1s;}
.cur-r{width:32px;height:32px;border:1px solid rgba(184,255,63,.35);border-radius:50%;z-index:9998;transition:transform .3s;}
@media(pointer:coarse){.cur,.cur-r{display:none;}}

nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:var(--bg2);border-bottom:1px solid var(--border);
  display:flex;align-items:stretch;height:42px;
}
.nav-tabs{display:flex;align-items:stretch;flex:1;overflow-x:auto;}
.nav-tab{
  display:flex;align-items:center;gap:8px;padding:0 18px;
  font-size:11px;color:var(--comment);border-right:1px solid var(--border);
  cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;
  border-bottom:2px solid transparent;text-decoration:none;
}
.nav-tab:hover{background:var(--bg3);color:var(--fg2);}
.nav-tab.active{background:var(--bg);color:var(--fg);border-bottom-color:var(--acid);}
.tab-dot{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0;}
.nav-tab.active .tab-dot{background:var(--acid);}
.nav-right{display:flex;align-items:center;padding:0 16px;gap:12px;border-left:1px solid var(--border);}
.nav-badge{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--acid);border:1px solid rgba(184,255,63,.3);padding:3px 10px;}

main{min-height:calc(100vh - 42px);}

.file-header{
  background:var(--bg2);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;padding:10px 20px;
  flex-wrap:wrap;gap:8px;
}
.file-path{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--comment);}
.file-name{color:var(--fg2);}
.file-lang{background:rgba(184,255,63,.1);color:var(--acid);font-size:9px;padding:2px 8px;letter-spacing:.1em;}
.file-stats{display:flex;gap:16px;font-size:11px;}
.stat-a{color:var(--added-bar);}
.stat-r{color:var(--removed-bar);}

.diff-block{font-size:12px;line-height:1.7;}
.diff-line{display:flex;align-items:stretch;min-height:24px;border-bottom:1px solid rgba(48,54,61,.4);transition:filter .1s;}
.diff-line:hover{filter:brightness(1.08);}
.diff-gutter{display:flex;align-items:center;width:76px;flex-shrink:0;padding:0 10px;border-right:1px solid var(--border);color:var(--comment);font-size:10px;user-select:none;}
.diff-gutter span{width:28px;text-align:right;}
.diff-marker{width:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;user-select:none;}
.diff-content{flex:1;padding:4px 16px 4px 8px;display:flex;align-items:center;flex-wrap:wrap;}

.line-add{background:var(--added);}
.line-add .diff-marker{color:var(--added-bar);}
.line-add .diff-gutter{background:rgba(26,58,42,.6);border-right-color:var(--added-bar);}
.line-remove{background:var(--removed);}
.line-remove .diff-marker{color:var(--removed-bar);}
.line-remove .diff-gutter{background:rgba(58,26,31,.6);border-right-color:var(--removed-bar);}
.line-context{background:var(--bg);}
.line-hunk{background:rgba(121,192,255,.05);border-top:1px solid rgba(121,192,255,.15);border-bottom:1px solid rgba(121,192,255,.15);}
.line-hunk .diff-gutter{color:var(--cyan);}
.line-hunk .diff-content{color:var(--cyan);font-style:italic;font-size:11px;}

.t-key{color:var(--cyan);}
.t-val{color:var(--orange);}
.t-str{color:var(--green-txt);}
.t-fn{color:var(--purple);}
.t-kw{color:var(--yellow);}
.t-cm{color:var(--comment);font-style:italic;}
.t-br{color:var(--acid);font-weight:700;}
.t-op{color:var(--fg2);}

.eyebrow{font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--acid);margin-bottom:16px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:'';width:20px;height:1px;background:var(--acid);}

h1{font-family:'Outfit',sans-serif;font-size:clamp(38px,5vw,70px);font-weight:900;line-height:1.0;letter-spacing:-2px;color:var(--fg);}
h1 em{font-style:italic;color:var(--acid);font-weight:300;}
h2{font-family:'Outfit',sans-serif;font-size:clamp(30px,3.5vw,52px);font-weight:900;line-height:1.0;letter-spacing:-1.5px;color:var(--fg);}
h2 em{font-style:italic;color:var(--acid);font-weight:300;}
h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;color:var(--fg);margin-bottom:12px;}

.btn-p{background:var(--acid);color:var(--bg);border:none;padding:11px 28px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:none;display:inline-block;transition:transform .15s,box-shadow .15s;}
.btn-p:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--added-bar);}
.btn-g{background:transparent;color:var(--fg2);border:1px solid var(--border);padding:11px 28px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:none;display:inline-block;margin-left:12px;transition:border-color .15s,color .15s;}
.btn-g:hover{border-color:var(--fg2);color:var(--acid);}
.btn-row{margin-top:8px;}
.btn-row .btn-g{margin-left:0;margin-top:12px;display:block;width:fit-content;}
@media(min-width:769px){.btn-row .btn-g{margin-left:12px;margin-top:0;display:inline-block;}}

.site-footer{border-top:1px solid var(--border);background:var(--bg2);padding:24px 40px;}
.footer-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;}
.footer-logo{font-family:'Outfit',sans-serif;font-weight:900;font-size:16px;color:var(--fg);text-decoration:none;}
.footer-logo span{color:var(--acid);}
.footer-meta{font-size:10px;color:var(--comment);}
.footer-tag{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--acid);border:1px solid rgba(184,255,63,.25);padding:5px 12px;}
.footer-nav{display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:16px;border-top:1px solid var(--border);}
.footer-nav a{font-size:10px;color:var(--comment);text-decoration:none;transition:color .15s;}
.footer-nav a:hover{color:var(--acid);}
.footer-nav a.active{color:var(--fg2);}

::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg2);}
::-webkit-scrollbar-thumb{background:var(--border);}

.hero-wrap{padding:52px 40px 40px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.hero-sub{font-size:12px;color:var(--comment);margin-top:18px;margin-bottom:32px;line-height:1.9;max-width:420px;}
.hero-sub strong{color:var(--fg2);}

.terminal{background:var(--terminal);border:1px solid var(--border);overflow:hidden;}
.terminal-bar{background:var(--bg2);border-bottom:1px solid var(--border);padding:9px 14px;display:flex;align-items:center;gap:7px;}
.tbar-dot{width:10px;height:10px;border-radius:50%;}
.tbar-dot.r{background:#ff5f57;}.tbar-dot.y{background:#febc2e;}.tbar-dot.g{background:#28c840;}
.tbar-title{flex:1;text-align:center;font-size:10px;color:var(--comment);}
.terminal-body{padding:18px;font-size:11px;line-height:2;}
.t-prompt{color:var(--acid);}
.t-cmd{color:var(--fg);}
.t-out{color:var(--comment);}
.t-err{color:var(--removed-bar);}
.t-ok{color:var(--added-bar);}
.t-warn{color:var(--yellow);}
.blink{animation:blink 1s step-end infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

.gap-section{padding:40px;border-bottom:1px solid var(--border);background:rgba(248,81,73,.03);}
.gap-inner{max-width:780px;}
.gap-title{font-family:'Outfit',sans-serif;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--removed-bar);margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.gap-title::before{content:'';width:20px;height:1px;background:var(--removed-bar);}
.gap-body{font-size:13px;color:var(--fg2);line-height:2.0;}
.gap-body strong{color:var(--fg);}
.gap-body em{color:var(--acid);font-style:normal;}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border);}
.stat-cell{padding:26px 28px;border-right:1px solid var(--border);position:relative;text-decoration:none;color:inherit;transition:background .15s;}
.stat-cell:hover{background:var(--bg3);}
.stat-cell:last-child{border-right:none;}
.stat-cell::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;}
.s-add::before{background:var(--added-bar);}
.s-rem::before{background:var(--removed-bar);}
.s-mod::before{background:var(--yellow);}
.s-new::before{background:var(--acid);}
.stat-n{font-family:'Outfit',sans-serif;font-weight:900;font-size:40px;line-height:1;color:var(--fg);}
.stat-l{font-size:10px;color:var(--comment);letter-spacing:.12em;text-transform:uppercase;margin-top:6px;}

.cost-section{padding:0;border-bottom:1px solid var(--border);}
.cost-header{padding:28px 40px;border-bottom:1px solid var(--border);}
.cost-label{font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--removed-bar);margin-bottom:8px;}
.cost-title{font-family:'Outfit',sans-serif;font-weight:900;font-size:18px;color:var(--fg);}

.charter-wrap{padding:56px 40px;max-width:860px;}
.charter-section{margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid var(--border);}
.charter-section:last-child{border-bottom:none;}
.charter-label{font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--acid);margin-bottom:16px;}
.charter-heading{font-family:'Outfit',sans-serif;font-weight:900;font-size:24px;color:var(--fg);margin-bottom:20px;line-height:1.2;}
.charter-body{font-size:13px;color:var(--fg2);line-height:2.0;}
.charter-body p{margin-bottom:16px;}
.charter-body strong{color:var(--fg);}
.charter-body em{color:var(--acid);font-style:normal;}
.charter-body a{color:var(--acid);text-decoration:none;border-bottom:1px solid rgba(184,255,63,.3);}
.charter-quote{border-left:3px solid var(--acid);padding:20px 24px;margin:28px 0;background:rgba(184,255,63,.04);}
.charter-quote p{font-size:14px;color:var(--fg);line-height:1.8;font-style:italic;}
.charter-principles{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:28px;}
.principle{padding:20px 24px;border:1px solid var(--border);border-right:none;border-bottom:none;}
.principle:nth-child(even){border-right:1px solid var(--border);}
.principle:nth-last-child(-n+2){border-bottom:1px solid var(--border);}
.principle-num{font-size:10px;color:var(--acid);letter-spacing:.2em;margin-bottom:8px;}
.principle-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:14px;color:var(--fg);margin-bottom:6px;}
.principle-text{font-size:11px;color:var(--comment);line-height:1.7;}

.proto-header{padding:48px 40px 40px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.proto-desc{font-size:12px;color:var(--comment);line-height:1.9;align-self:end;}
.layer-row{display:grid;grid-template-columns:52px 1fr;border-bottom:1px solid var(--border);transition:background .15s;}
.layer-row:hover{background:rgba(184,255,63,.02);}
.layer-num-col{display:flex;flex-direction:column;align-items:center;padding:18px 0;border-right:1px solid var(--border);position:relative;}
.layer-num{font-size:10px;color:var(--comment);writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.15em;text-transform:uppercase;}
.layer-bar{position:absolute;left:0;top:0;bottom:0;width:3px;}
.layer-content{display:grid;grid-template-columns:210px 1fr;}
.layer-left{padding:22px;border-right:1px solid var(--border);}
.layer-name{font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;color:var(--fg);margin-bottom:6px;}
.layer-tag{font-size:9px;letter-spacing:.15em;text-transform:uppercase;padding:2px 8px;display:inline-block;}
.tag-prov{background:rgba(121,192,255,.1);color:var(--cyan);}
.tag-sec{background:rgba(248,81,73,.1);color:var(--removed-bar);}
.tag-perm{background:rgba(210,168,255,.1);color:var(--purple);}
.tag-gate{background:rgba(227,179,65,.1);color:var(--yellow);}
.tag-auth{background:rgba(63,185,80,.1);color:var(--added-bar);}
.tag-log{background:rgba(184,255,63,.1);color:var(--acid);}
.layer-right{padding:22px 28px;}
.layer-desc{font-size:12px;color:var(--comment);line-height:1.8;margin-bottom:12px;}
.layer-qs{display:flex;flex-direction:column;gap:5px;}
.layer-q{font-size:11px;background:var(--bg2);border-left:2px solid var(--border);padding:5px 10px;display:flex;gap:8px;align-items:flex-start;transition:border-color .2s;}
.layer-row:hover .layer-q{border-left-color:var(--acid);}
.layer-q .qa{color:var(--acid);flex-shrink:0;}
.layer-q span{color:var(--fg2);}

.diff-summary-bar{background:var(--bg2);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;gap:14px;font-size:11px;color:var(--comment);flex-wrap:wrap;}
.dsb-label{color:var(--fg2);}
.dsb-bar{flex:1;height:5px;background:var(--border);position:relative;max-width:280px;min-width:80px;}
.dsb-fill{height:100%;background:var(--added-bar);transition:width .4s ease;position:relative;}
.dsb-fill::after{content:'';position:absolute;right:0;top:-3px;bottom:-3px;width:2px;background:var(--acid);}
.dsb-count{color:var(--acid);font-weight:600;}

.scorecard-disclaimer{background:rgba(227,179,65,.06);border-bottom:1px solid var(--border);padding:14px 20px;font-size:11px;color:var(--comment);}
.scorecard-disclaimer strong{color:var(--yellow);}

.scorecard-output{margin:0 20px 0;border:1px solid var(--border);display:none;}
.scorecard-output.visible{display:block;}
.sc-bar{padding:20px 24px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--border);}
.sc-grade{
  font-family:'Outfit',sans-serif;font-weight:900;font-size:52px;line-height:1;
  width:72px;height:72px;display:flex;align-items:center;justify-content:center;
  border:2px solid;flex-shrink:0;
}
.grade-c{color:var(--removed-bar);border-color:var(--removed-bar);background:rgba(248,81,73,.08);}
.grade-b{color:var(--yellow);border-color:var(--yellow);background:rgba(227,179,65,.08);}
.grade-a{color:var(--added-bar);border-color:var(--added-bar);background:rgba(63,185,80,.08);}
.grade-ap{color:var(--acid);border-color:var(--acid);background:rgba(184,255,63,.08);}
.sc-info{flex:1;}
.sc-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;color:var(--fg);}
.sc-subtitle{font-size:11px;color:var(--comment);margin-top:4px;}
.sc-pct{font-family:'Outfit',sans-serif;font-weight:900;font-size:28px;color:var(--fg2);flex-shrink:0;}
.sc-details{padding:16px 24px;display:flex;flex-direction:column;gap:8px;}
.sc-detail{font-size:11px;color:var(--comment);display:flex;gap:8px;}
.sc-detail .sd-label{color:var(--yellow);flex-shrink:0;}
.sc-detail .sd-val{color:var(--fg2);}

.cl-file-group{border-bottom:1px solid var(--border);}
.cl-fg-header{background:var(--bg2);border-bottom:1px solid var(--border);padding:10px 20px;display:flex;align-items:center;gap:12px;font-size:11px;color:var(--comment);}
.cl-fg-name{color:var(--fg2);font-weight:600;}
.cl-fg-count{margin-left:auto;font-size:10px;background:var(--bg3);border:1px solid var(--border);padding:1px 8px;color:var(--comment);}
.cl-line{display:flex;align-items:center;min-height:34px;border-bottom:1px solid rgba(48,54,61,.4);cursor:pointer;transition:background .12s;position:relative;}
.cl-line:hover{background:rgba(255,255,255,.02);}
.cl-line.done{background:rgba(26,58,42,.25);}
.cl-line.done .cl-text{text-decoration:line-through;color:var(--comment);}
.cl-gutter{width:52px;flex-shrink:0;padding:0 10px;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--comment);font-size:10px;user-select:none;height:100%;}
.cl-line.done .cl-gutter{color:var(--added-bar);}
.cl-marker{width:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:transparent;font-size:12px;}
.cl-line.done .cl-marker{color:var(--added-bar);}
.cl-box{width:13px;height:13px;flex-shrink:0;border:1px solid var(--border);margin:0 11px;position:relative;transition:background .12s,border-color .12s;}
.cl-box.ticked{background:var(--added-bar);border-color:var(--added-bar);}
.cl-box.ticked::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:9px;color:var(--bg);font-weight:700;}
.cl-text{flex:1;font-size:11px;color:var(--fg2);padding:0 8px 0 0;}
.cl-sev{flex-shrink:0;font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:2px 8px;margin-right:14px;}
.sev-c{background:rgba(248,81,73,.12);color:var(--removed-bar);}
.sev-h{background:rgba(227,179,65,.12);color:var(--yellow);}
.sev-m{background:rgba(184,255,63,.08);color:var(--acid);}

.content-wrap{padding:48px 40px;max-width:900px;}
.content-section{margin-bottom:40px;padding-bottom:40px;border-bottom:1px solid var(--border);}
.content-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.content-body{font-size:13px;color:var(--fg2);line-height:2.0;}
.content-body p{margin-bottom:16px;}
.content-body strong{color:var(--fg);}
.content-body em{color:var(--acid);font-style:normal;}
.content-body a{color:var(--acid);text-decoration:none;border-bottom:1px solid rgba(184,255,63,.3);}

.buyer-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);margin-top:28px;}
.buyer-cell{padding:24px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
.buyer-cell:nth-child(even){border-right:none;}
.buyer-cell:nth-last-child(-n+2){border-bottom:none;}
.buyer-type{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--acid);margin-bottom:10px;}
.buyer-title{font-family:'Outfit',sans-serif;font-weight:700;font-size:15px;color:var(--fg);margin-bottom:10px;}
.buyer-text{font-size:11px;color:var(--comment);line-height:1.8;}

.internal-links{padding:32px 40px;border-top:1px solid var(--border);background:var(--bg2);}
.internal-links-title{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--comment);margin-bottom:16px;}
.internal-links-grid{display:flex;flex-wrap:wrap;gap:10px 24px;}
.internal-links-grid a{font-size:11px;color:var(--fg2);text-decoration:none;transition:color .15s;}
.internal-links-grid a:hover{color:var(--acid);}

@media(max-width:768px){
  .hero-wrap,.proto-header{grid-template-columns:1fr;gap:28px;padding:28px 20px;}
  .layer-content{grid-template-columns:1fr;}
  .layer-left{border-right:none;border-bottom:1px solid var(--border);}
  .stats-row{grid-template-columns:1fr 1fr;}
  .stat-cell{padding:18px;}
  .charter-principles,.buyer-grid{grid-template-columns:1fr;}
  .principle,.buyer-cell{border-right:1px solid var(--border)!important;}
  .principle:last-child,.buyer-cell:last-child{border-bottom:1px solid var(--border)!important;}
  .site-footer{padding:20px;}
  .footer-top{flex-direction:column;text-align:center;}
  .diff-gutter{width:44px;}
  .gap-section,.cost-header,.charter-wrap,.content-wrap{padding:24px 20px;}
  .internal-links{padding:24px 20px;}
}
