/* oQueo Design System v3 */
:root {
  --bg:      #06060F;
  --bg2:     #0B0B1C;
  --sf:      #101024;
  --sf2:     #17172C;
  --border:  rgba(255,255,255,0.07);
  --b-acc:   rgba(255,91,46,0.22);
  --b-blue:  rgba(75,107,255,0.22);
  --b-grn:   rgba(0,220,160,0.22);
  --text:    #E8E8F5;
  --muted:   #8484C4;
  --muted2:  #33334C;
  --accent:  #FF5B2E;
  --acc-lt:  #FF8A6B;
  --blue:    #4B6BFF;
  --blue-lt: #7B9BFF;
  --purple:  #9B5BFF;
  --green:   #00DCA0;
  --mono:    'JetBrains Mono', monospace;
  --r:       16px;
  --r-sm:    10px;
  --r-lg:    24px;
  --ease:    cubic-bezier(.23,1,.32,1);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .4s,color .3s}
::selection{background:rgba(255,91,46,.25);color:var(--text)}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px}

/* ── Cursor glow ── */
.cursor-glow{position:fixed;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(255,91,46,.07) 0%,transparent 65%);pointer-events:none;left:0;top:0;transform:translate(-50%,-50%);z-index:0;will-change:left,top;transition:left .08s var(--ease),top .08s var(--ease)}

/* ── NAV ── */
nav{position:fixed;inset:0 0 auto;z-index:100;padding:22px 52px;display:flex;align-items:center;justify-content:space-between;transition:padding .3s,background .4s,border-color .4s}
nav.scrolled{background:rgba(6,6,15,.93);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);padding:14px 52px}
.logo{font-size:22px;font-weight:900;letter-spacing:-1px;color:var(--text);text-decoration:none}
.logo-o{color:var(--accent)}
.lang-sw{display:flex;align-items:center;gap:6px}
.lang-btn{background:none;border:1px solid transparent;color:var(--muted);font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.7px;padding:5px 11px;border-radius:100px;cursor:pointer;transition:all .2s}
.lang-btn:hover{color:var(--text);border-color:var(--border)}
.lang-btn.active{color:var(--accent);border-color:var(--accent);background:rgba(255,91,46,.1)}

/* ── Layout ── */
.wrap{max-width:1200px;margin:0 auto;padding:100px 52px}
.bg2{background:var(--bg2)}

/* ── Type ── */
.sec-label{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-family:var(--mono)}
h1,h2{font-family:'Inter',sans-serif}
h2{font-size:clamp(28px,4.5vw,54px);font-weight:800;letter-spacing:-1.5px;line-height:1.07;margin-bottom:16px}
.sec-sub{font-size:17px;color:var(--muted);max-width:560px;line-height:1.8;margin-bottom:60px;text-wrap:balance;hyphens:none}

/* ── Buttons ── */
.btn-p{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-family:inherit;font-size:14px;font-weight:700;padding:15px 32px;border-radius:100px;border:none;cursor:pointer;text-decoration:none;transition:all .25s var(--ease)}
.btn-p:hover{background:var(--acc-lt);transform:translateY(-2px);box-shadow:0 16px 48px rgba(255,91,46,.3)}
.btn-s{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-family:inherit;font-size:14px;font-weight:500;padding:15px 20px;text-decoration:none;transition:color .2s}
.btn-s:hover{color:var(--text)}
.btn-ghost{display:inline-flex;align-items:center;gap:7px;color:var(--text);background:transparent;border:1px solid var(--border);font-family:inherit;font-size:14px;font-weight:600;padding:14px 28px;border-radius:100px;cursor:pointer;text-decoration:none;transition:all .25s}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 24px rgba(255,91,46,.12)}
/* WCAG AA: #FF5B2E on white = 2.8:1 — darken btn-p in dark mode to #C04020 = 5.4:1 */
html:not(.light-mode) .btn-p{background:#C04020}
html:not(.light-mode) .btn-p:hover{background:#D44020;box-shadow:0 16px 48px rgba(192,64,32,.35)}

/* ── Badge ── */
.badge{display:inline-flex;align-items:center;gap:9px;background:rgba(255,91,46,.08);border:1px solid rgba(255,91,46,.18);border-radius:100px;padding:7px 18px;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--acc-lt);margin-bottom:32px}
.badge-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 2.2s ease-in-out infinite;flex-shrink:0}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.8)}}

/* ── Grad text ── */
.grad-text{background:linear-gradient(90deg,var(--accent) 0%,var(--acc-lt) 30%,#c084fc 60%,var(--accent) 100%);background-size:250%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradShift 4.5s linear infinite}
@keyframes gradShift{0%{background-position:0%}100%{background-position:250%}}

/* ── Spotlight card ── */
.spotlight{position:relative;--mx:50%;--my:50%}
.spotlight::after{content:'';position:absolute;inset:0;background:radial-gradient(380px circle at var(--mx) var(--my),rgba(255,91,46,.09),transparent 70%);opacity:0;transition:opacity .35s;border-radius:inherit;pointer-events:none;z-index:1}
.spotlight:hover::after{opacity:1}

/* ── Marquee ── */
.marquee-wrap{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0;background:var(--bg2)}
.marquee-inner{display:flex;width:max-content;animation:marquee 32s linear infinite}
.marquee-inner:hover{animation-play-state:paused}
.m-item{display:flex;align-items:center;gap:36px;padding:0 18px;font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.5px;white-space:nowrap}
.m-sep{color:var(--accent);opacity:.35}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── Terminal ── */
.terminal{background:#08081A;border:1px solid rgba(255,255,255,.07);border-radius:12px;overflow:hidden;font-family:var(--mono);color:#E8E8F5}
.term-bar{background:rgba(255,255,255,.04);padding:11px 16px;display:flex;align-items:center;gap:7px;border-bottom:1px solid rgba(255,255,255,.05)}
.term-dot{width:10px;height:10px;border-radius:50%}
.term-dot.r{background:#FF5F57}.term-dot.y{background:#FFBD2E}.term-dot.g{background:#28CA41}
.term-title{font-size:11px;color:var(--muted);margin-left:6px;flex:1;text-align:center}
.term-body{padding:18px;display:flex;flex-direction:column;gap:5px}
.term-line{font-size:12px;line-height:1.6;display:flex;align-items:center;justify-content:space-between}
.t-cmd{color:var(--acc-lt)}.t-ok{color:var(--green);font-size:10px;margin-right:6px}.t-status{color:var(--muted);font-size:10px}
.t-cursor{animation:cur 1s step-end infinite}
@keyframes cur{0%,100%{opacity:1}50%{opacity:0}}

/* ── Lighthouse widget ── */
.lighthouse{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:22px;background:#08081A;border:1px solid rgba(255,255,255,.06);border-radius:12px}
.lh-item{text-align:center}
.lh-score{width:50px;height:50px;border-radius:50%;border:2px solid var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:16px;font-weight:700;color:var(--green);margin:0 auto 7px}
.lh-label{font-size:10px;color:var(--muted);font-family:var(--mono)}

/* ── AEGIS arch widget ── */
.arch-flow{display:flex;align-items:center;gap:8px;padding:22px;background:#08081A;border:1px solid rgba(0,220,160,.1);border-radius:12px}
.arch-node{flex:1;text-align:center;padding:14px 8px;background:rgba(0,220,160,.06);border:1px solid rgba(0,220,160,.12);border-radius:10px}
.arch-name{font-size:13px;font-weight:700;color:var(--green);font-family:var(--mono)}
.arch-role{font-size:10px;color:var(--muted);margin-top:4px;font-family:var(--mono)}
.arch-arrow{color:var(--muted);font-size:16px;flex-shrink:0}

/* ── Footer ── */
footer{border-top:1px solid var(--border);padding:52px}
.foot-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}
.foot-logo{font-size:20px;font-weight:900;letter-spacing:-1px;color:var(--text);text-decoration:none}
.foot-o{color:var(--accent)}
.foot-right{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.foot-tag{font-size:12px;color:var(--muted);font-family:var(--mono)}
.foot-copy{font-size:12px;color:var(--muted)}
.foot-back{font-size:12px;color:var(--muted);text-decoration:none;font-family:var(--mono);transition:color .2s}
.foot-back:hover{color:var(--accent)}

/* ── Animations ── */
.fade-up{opacity:0;transform:translateY(22px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.fade-up.vis{opacity:1;transform:translateY(0)}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.40s}

/* ── Shared JS snippet ── */
/* nav-scroll, cursor-glow, spotlight, magnetic, fade-up observer — loaded per page */

/* ── Responsive ── */
@media(max-width:768px){
  nav,nav.scrolled{padding:14px 20px}
  .wrap{padding:72px 20px}
  footer{padding:44px 20px}
  .foot-inner{flex-direction:column;align-items:flex-start}
  .lang-btn{padding:4px 8px;font-size:10px}
  .cursor-glow{display:none}
}
@media(max-width:520px){
  .btn-p,.btn-s,.btn-ghost{font-size:13px;padding:12px 22px}
}

/* ── Logo image ── */
.logo-link{display:flex;align-items:center;text-decoration:none}
.logo-img{height:32px;width:auto;display:block;filter:brightness(0) invert(1);transition:filter .3s}
.logo-img-sm{height:26px}

/* ── Theme toggle ── */
.nav-right{display:flex;align-items:center;gap:12px}
.theme-toggle{background:none;border:1px solid var(--border);color:var(--muted);font-size:14px;width:36px;height:36px;border-radius:100px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;padding:0;line-height:1}
.theme-toggle:hover{border-color:var(--accent)}
.theme-toggle{font-size:16px}

/* ── Light mode ── */
html.light-mode{
  --bg:#edeae3;--bg2:#e5e1d9;--sf:#dcd8cf;--sf2:#d2cdc3;
  --border:rgba(80,60,20,.1);--b-acc:rgba(180,90,10,.18);--b-blue:rgba(40,60,180,.18);--b-grn:rgba(15,100,50,.18);
  --text:#1e1810;--muted:#6b5d40;--muted2:#a89880;
  --accent:#923f10;--acc-lt:#c85b1a;--blue:#2d4db8;--blue-lt:#4a68d4;--purple:#6b3ab8;--green:#1a6a40;
}
html.light-mode body{background:var(--bg);color:var(--text)}
html.light-mode .logo-img{filter:none}
html.light-mode .cursor-glow{background:radial-gradient(circle,rgba(200,91,26,.10) 0%,transparent 65%)}
html.light-mode nav.scrolled{background:rgba(237,234,227,.95);border-color:rgba(80,60,20,.1)}
html.light-mode ::selection{background:rgba(200,91,26,.2);color:var(--text)}
html.light-mode ::-webkit-scrollbar-track{background:var(--bg)}
html.light-mode .marquee-wrap{background:var(--bg2)}
html.light-mode .btt{background:var(--sf)}
html.light-mode .btt:hover{background:var(--bg2)}

/* ── Terminal: always dark-palette regardless of theme ── */
html.light-mode .terminal{color:#E8E8F5}
html.light-mode .t-ok{color:#00DCA0!important}
html.light-mode .t-cmd{color:#FF8A6B!important}
html.light-mode .t-status{color:#8484C4!important}

/* ── Light-mode contrast fixes (WCAG AA ≥4.5:1 for small text) ── */
html.light-mode .prod-tag.purple{color:#6b3ab8!important}
html.light-mode .prod-tag.blue{color:#2d4db8!important}
html.light-mode .badge{color:var(--accent)}
html.light-mode .chip{color:var(--text)}
html.light-mode .lh-label{color:var(--text)}
html.light-mode .lh-score{color:#1a6a40}
html.light-mode .m-item{color:var(--text)}

/* ── About logo image ── */
.about-logo-img{width:120px;height:120px;object-fit:contain;margin-bottom:18px;filter:brightness(0) invert(1);transition:filter .3s}
html.light-mode .about-logo-img{filter:none}

/* ── Back to top ── */
.btt-wrap{position:fixed;right:28px;bottom:28px;z-index:89;width:54px;height:54px;border-radius:50%;padding:2px;background:conic-gradient(var(--accent),var(--blue),var(--purple),var(--green),var(--accent));transform:translateY(120%);opacity:0;will-change:transform,opacity;animation:bttSpin 4s linear infinite}
@keyframes bttSpin{to{filter:hue-rotate(360deg)}}
.btt{width:100%;height:100%;border-radius:50%;border:none;background:var(--sf);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.btt:hover{background:var(--bg2)}
.btt-icon{width:18px;height:18px;stroke:var(--text);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;fill:none;animation:bttArrow 2s ease-in-out infinite}
@keyframes bttArrow{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
