*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --c:#4457c4;--cl:#6b7de0;--bg:#040710;
  --w:#fff;--t1:#c8cee0;--t2:#555e78;--b:rgba(255,255,255,0.06);
  --hf:'Instrument Serif',serif;--bf:'Bricolage Grotesque',sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--bf);background:var(--bg);color:var(--t1);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:none}
a{color:inherit;text-decoration:none;cursor:none}
img{max-width:100%;display:block}
.wide{max-width:1100px;margin:0 auto;padding:0 40px}
.over{font-size:0.7rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--cl);margin-bottom:24px}

#bg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}

/* Cursor glow */
.cursor-glow{position:fixed;width:400px;height:400px;border-radius:50%;pointer-events:none;z-index:1;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(68,87,196,0.06) 0%,transparent 70%);transition:left 0.15s ease-out,top 0.15s ease-out;mix-blend-mode:screen}

/* Loader */
.lo{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center}
.lo-svg{width:400px;height:400px}

/* Nav */
.n{position:sticky;top:0;left:0;right:0;z-index:200;padding:0 40px;height:64px;display:flex;align-items:center;justify-content:space-between;background:var(--bg)}
.n--vis{opacity:1}
.n--s{background:var(--bg)}
.n-logo{font-family:var(--hf);font-size:1.3rem;color:var(--w);letter-spacing:-0.01em}
.n-r{display:flex;gap:28px;align-items:center}
.n-link{font-size:0.82rem;color:var(--t2);font-weight:450;transition:color 0.2s;letter-spacing:0.02em}
.n-link:hover{color:var(--w)}

@media(max-width:640px){
  .n{padding:0 16px;height:56px}
  .n-logo{font-size:1.1rem}
  .n-r{gap:14px}
  .n-link{font-size:0.72rem;letter-spacing:0}
}
@media(max-width:380px){
  .n-r{gap:10px}
  .n-link{font-size:0.68rem}
}

/* Buttons */
.btn-main{display:inline-flex;align-items:center;gap:8px;font-family:var(--bf);font-weight:500;font-size:0.9rem;color:var(--w);background:var(--c);padding:14px 32px;border-radius:100px;border:none;cursor:none;transition:all 0.3s;box-shadow:0 4px 20px rgba(68,87,196,0.25)}
.btn-main:hover{background:var(--cl);box-shadow:0 0 50px rgba(68,87,196,0.4),0 4px 30px rgba(68,87,196,0.3);transform:translateY(-2px)}
.btn-sec{display:inline-flex;align-items:center;font-family:var(--bf);font-weight:500;font-size:0.9rem;color:var(--t2);padding:14px 32px;border-radius:100px;border:1px solid var(--b);cursor:none;transition:all 0.3s;background:none}
.btn-sec:hover{color:var(--w);border-color:rgba(255,255,255,0.15)}

/* Hero */
.hero{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;align-items:center;padding:0 40px;overflow:hidden;margin-top:-64px;padding-top:64px}
.hero-sigil-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.hero-inner{max-width:1100px;width:100%;position:relative;z-index:2}
.hero-kicker{display:flex;align-items:center;gap:10px;margin-bottom:40px;opacity:0}
.kicker-dot{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c);animation:kdot 2.5s infinite}
@keyframes kdot{0%,100%{opacity:1}50%{opacity:0.3}}
.hero-kicker span:last-child{font-size:0.72rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--t2)}
.hero-h{font-family:var(--hf);font-weight:400;font-size:clamp(3rem,7.5vw,6.5rem);line-height:1.02;color:var(--w);margin-bottom:48px}
.hw{display:inline-block;opacity:0;margin-right:0.22em}
.hero-h em{font-style:italic;color:var(--cl)}
.hero-foot{opacity:0}
.hero-scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);opacity:0}
.hero-scroll-bar{width:1px;height:56px;background:linear-gradient(var(--c),transparent);animation:sbar 2.2s ease-in-out infinite}
@keyframes sbar{0%,100%{transform:scaleY(0.5);opacity:0.2}50%{transform:scaleY(1);opacity:0.8}}

/* Geometric dividers */
.geo-div{position:relative;z-index:1;height:40px;overflow:hidden;opacity:0}
.geo-div svg{width:100%;height:100%}

/* Thesis */
.s-thesis{position:relative;z-index:1;padding:200px 0}
.thesis-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start}
.thesis-left h2{font-family:var(--hf);font-weight:400;font-size:clamp(2rem,4vw,3.4rem);line-height:1.1;color:var(--w)}
.thesis-left em{font-style:italic;color:var(--cl)}
.thesis-right{padding-top:8px}
.thesis-right p{font-size:1.05rem;color:var(--t2);line-height:1.8;margin-bottom:16px}
.thesis-right p:last-child{color:var(--t1);font-weight:500}

/* Questions */
.s-questions{position:relative;z-index:1;padding:120px 0;border-top:1px solid var(--b);border-bottom:1px solid var(--b)}
.q-item{display:flex;align-items:center;gap:20px;padding:28px 0;border-bottom:1px solid var(--b)}
.q-item:last-child{border-bottom:none}
.q-chevron{width:28px;height:28px;flex-shrink:0}
.q-text{font-family:var(--hf);font-size:clamp(1.2rem,2.5vw,1.8rem);color:var(--w);line-height:1.3;font-weight:400}

/* Answer */
.s-answer{position:relative;z-index:1;padding:200px 0;text-align:center}
.answer-h{font-family:var(--hf);font-weight:400;font-size:clamp(2rem,4.5vw,3.6rem);line-height:1.12;color:var(--w);max-width:900px;margin:0 auto 32px}
.answer-h em{font-style:italic;color:var(--cl)}
.answer-p{font-size:1.05rem;color:var(--t2);line-height:1.8;max-width:680px;margin:0 auto}

/* Surfaces */
.s-surfaces{position:relative;z-index:1;padding:140px 0}
.surf-row{display:flex;flex-direction:column}
.surf-item{display:grid;grid-template-columns:48px 1fr;gap:24px;padding:44px 0;border-bottom:1px solid var(--b);align-items:start}
.surf-item:first-child{border-top:1px solid var(--b)}
.surf-diamond{width:36px;height:36px;margin-top:2px}
.surf-diamond svg{width:100%;height:100%}
.surf-body h3{font-size:1.1rem;font-weight:600;color:var(--w);margin-bottom:10px}
.surf-body p{font-size:0.95rem;color:var(--t2);line-height:1.7;max-width:600px}

/* Boundary */
.s-boundary{position:relative;z-index:1;padding:200px 0;border-top:1px solid var(--b)}
.boundary-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:start}
.boundary-left h2{font-family:var(--hf);font-weight:400;font-size:clamp(2rem,4vw,3.4rem);line-height:1.1;color:var(--w)}
.boundary-left em{font-style:italic;color:var(--cl)}
.boundary-right{display:flex;flex-direction:column;gap:32px;padding-top:8px}
.bi-label{display:block;font-size:0.7rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:10px}
.boundary-item:first-child .bi-label{color:var(--cl)}
.boundary-item:last-child .bi-label{color:rgba(255,255,255,0.25)}
.boundary-item p{font-size:0.95rem;color:var(--t2);line-height:1.7}

/* Manifesto */
.s-manifesto{position:relative;z-index:1;padding:180px 0;text-align:center;border-top:1px solid var(--b);border-bottom:1px solid var(--b)}
.manifesto-wrap{position:relative}
.manifesto-geo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:320px;height:320px;opacity:0.4;pointer-events:none;animation:geo-spin 60s linear infinite}
@keyframes geo-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.manifesto-geo svg{width:100%;height:100%}
.manifesto-q{font-family:var(--hf);font-weight:400;font-style:italic;font-size:clamp(1.4rem,3vw,2.4rem);line-height:1.35;color:var(--w);max-width:820px;margin:0 auto 20px;quotes:none;position:relative}
.manifesto-src{font-size:0.78rem;color:var(--t2);letter-spacing:0.04em;position:relative}

/* Governance */
.s-gov{position:relative;z-index:1;padding:200px 0}
.gov-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.gov-left h2{font-family:var(--hf);font-weight:400;font-size:clamp(2rem,4vw,3.4rem);line-height:1.1;color:var(--w);margin-bottom:20px}
.gov-left em{font-style:italic;color:var(--cl)}
.gov-sub{font-size:0.95rem;color:var(--t2);line-height:1.7}
.gov-right{display:flex;flex-direction:column}
.gov-principle{padding:28px 0;border-bottom:1px solid var(--b)}
.gov-principle:first-child{border-top:1px solid var(--b)}
.gov-principle h4{font-size:0.95rem;font-weight:600;color:var(--w);margin-bottom:8px}
.gov-principle p{font-size:0.88rem;color:var(--t2);line-height:1.65}

/* Sequence */
.s-sequence{position:relative;z-index:1;padding:160px 0;border-top:1px solid var(--b);text-align:center}
.seq-line{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:32px}
.seq-word{font-family:var(--hf);font-size:clamp(1.8rem,4vw,3.2rem);color:var(--w);font-weight:400;opacity:0.3;transition:opacity 0.3s}
.seq-word--active{opacity:1;color:var(--cl)}
.seq-arrow{font-size:1.2rem;color:var(--t2);opacity:0}
.seq-note{font-size:0.92rem;color:var(--t2);line-height:1.7;max-width:560px;margin:0 auto}

/* End CTA */
.s-end{position:relative;z-index:1;padding:220px 40px;text-align:center;border-top:1px solid var(--b);overflow:hidden}
.end-sigil-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0.5}
.end-h{font-family:var(--hf);font-weight:400;font-size:clamp(2.4rem,5.5vw,4.5rem);line-height:1.05;color:var(--w);margin-bottom:44px;position:relative;z-index:1}
.end-h em{font-style:italic;color:var(--cl)}
.end-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}

/* Footer */
.ft{position:relative;z-index:1;padding:28px 40px;border-top:1px solid var(--b)}
.ft-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.ft-brand{display:flex;align-items:center;gap:12px}
.ft-sigil{width:20px;height:20px;color:var(--w)}
.ft-brand span{font-size:0.75rem;color:var(--t2)}
.ft-links{display:flex;gap:24px}
.ft-links a{font-size:0.75rem;color:var(--t2);transition:color 0.2s}
.ft-links a:hover{color:var(--w)}

/* Responsive */
@media(max-width:900px){
  .thesis-grid,.boundary-grid,.gov-grid{grid-template-columns:1fr;gap:40px}
  .wide{padding:0 24px}
  .hero,.s-end{padding-left:24px;padding-right:24px}
  .n{padding:0 24px}
  .ft{padding:24px}
  .surf-item{grid-template-columns:36px 1fr;gap:16px}
  body{cursor:auto}
  .cursor-glow{display:none}
  a,.btn-main,.btn-sec{cursor:auto}
}
@media(max-width:560px){
  .hero-h{font-size:clamp(2.2rem,10vw,3.5rem)}
  .seq-line{gap:12px}
  .ft-inner{flex-direction:column;text-align:center}
  .ft-links{justify-content:center}
}
