/* TVOREN v2 pass 2 — viewport chapters, brighter ambient background, stronger scroll motion */
:root,
html[data-theme="tvoren-black-graphite-magenta"]{
  --v2-bg:#0f1015;
  --v2-bg-2:#12131a;
  --v2-bg-3:#171820;
  --v2-card:#191a22;
  --v2-card-2:#1e1f28;
  --v2-muted:#ddd8e0;
  --v2-soft:#bcb6c1;
  --v2-line:rgba(255,255,255,.15);
  --v2-line-strong:rgba(255,255,255,.24);
}

html{scroll-padding-top:56px}
body.v2-home{background:#0f1015!important}
body.v2-home::before{content:""!important;display:block!important;position:fixed;inset:-18vh -14vw;z-index:0;pointer-events:none;background:radial-gradient(circle at 18% 24%,rgba(242,0,255,.105),transparent 28%),radial-gradient(circle at 78% 36%,rgba(115,80,255,.095),transparent 27%),radial-gradient(circle at 58% 82%,rgba(242,0,255,.07),transparent 30%),linear-gradient(135deg,#111219 0%,#0e0f14 48%,#14151c 100%);animation:v2AmbientDrift 26s ease-in-out infinite alternate;transform:translate3d(0,0,0)}
body.v2-home::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),radial-gradient(circle at center,rgba(242,0,255,.18) 0 1px,transparent 1.5px);background-size:64px 64px,64px 64px,128px 128px;mask-image:linear-gradient(120deg,transparent 2%,#000 25%,#000 76%,transparent 100%);animation:v2GridDrift 42s linear infinite}
.v2-home main{position:relative;z-index:1}
.site-header-v2{background:rgba(14,15,20,.76)!important}
.site-header-v2.is-scrolled{background:rgba(17,18,24,.90)!important}

.v2-hero::before{background:radial-gradient(circle at 75% 40%,rgba(242,0,255,.10),transparent 30%),linear-gradient(180deg,rgba(18,19,26,.58),rgba(14,15,20,.72))!important}
.v2-chapter::before{background:rgba(17,18,24,.76)!important}
.v2-process::before{background:linear-gradient(180deg,rgba(15,16,22,.78),rgba(24,25,33,.82) 48%,rgba(16,17,23,.78))!important}
.v2-about::before{background:linear-gradient(145deg,rgba(23,24,32,.82),rgba(15,16,22,.76) 72%)!important}
.v2-contact::before{background:radial-gradient(circle at 84% 22%,rgba(242,0,255,.095),transparent 28%),rgba(18,19,26,.82)!important}
.v2-chapter::after,.v2-hero::after{opacity:.82}
.site-footer-v2{position:relative;z-index:2;background:#171820!important;border-top:1px solid rgba(242,0,255,.28)!important;box-shadow:0 -22px 70px rgba(0,0,0,.24)}

/* Hero: smaller, cleaner and without a visible square container */
.v2-hero{grid-template-columns:minmax(0,1.04fr) minmax(390px,.86fr)!important;gap:42px!important}
.v2-hero h1{font-size:clamp(48px,4.55vw,70px)!important;line-height:.96!important;max-width:760px!important}
.v2-lead{font-size:15.5px!important;line-height:1.58!important;max-width:710px!important;margin-top:20px!important}
.v2-actions{margin-top:25px!important}.v2-hero-proof{margin-top:26px!important}
.v2-hero-visual-wrap{min-height:440px!important}
.v2-hero-visual{width:min(100%,520px)!important;aspect-ratio:1.08/1!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.v2-hero-visual::before{inset:-8% -10%!important;opacity:.42;background:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px)!important;background-size:42px 42px!important;mask-image:radial-gradient(circle at 55% 48%,#000 0 35%,rgba(0,0,0,.72) 58%,transparent 84%)!important}
.hero-scene{overflow:visible!important}.hero-scene .scene-label{left:8px!important;bottom:-2px!important;color:#918b97!important}
.v2-visual-lab{right:0!important;top:0!important}

/* System Map animation: one block lights up at a time */
.system-map .system-node{background:rgba(25,26,34,.72)!important;border-color:rgba(255,255,255,.15)!important;box-shadow:0 10px 34px rgba(0,0,0,.16)!important;animation:v2NodeSequence 12s linear infinite;transition:color .25s ease,border-color .25s ease,background .25s ease,box-shadow .25s ease}
.system-map .system-node small{transition:color .25s ease}
.system-map .system-node.n1{animation-delay:0s}.system-map .system-node.n2{animation-delay:-10s}.system-map .system-node.n4{animation-delay:-8s}.system-map .system-node.n3{animation-delay:-6s}.system-map .system-node.n5{animation-delay:-4s}.system-map .system-node.center{animation-delay:-2s;background:rgba(27,27,36,.78)!important}
.system-map .scene-connections path{stroke:rgba(255,255,255,.18)!important;stroke-dasharray:7 8;animation:v2LineFlow 13s linear infinite}
.system-map .scene-connections .accent-line{stroke:rgba(242,0,255,.62)!important}

/* Stronger viewport-based reveals */
.v2-pass2-ready [data-reveal]{opacity:0!important;filter:blur(3px);transition:opacity .72s cubic-bezier(.22,.8,.22,1),transform .82s cubic-bezier(.22,.8,.22,1),filter .7s ease!important;transition-delay:var(--v2-reveal-delay,0ms)!important;will-change:opacity,transform,filter}
.v2-pass2-ready [data-reveal="up"]{transform:translate3d(0,58px,0)!important}
.v2-pass2-ready [data-reveal="left"]{transform:translate3d(-82px,14px,0)!important}
.v2-pass2-ready [data-reveal="right"]{transform:translate3d(82px,14px,0)!important}
.v2-pass2-ready [data-reveal].pass2-revealed{opacity:1!important;filter:none!important;transform:translate3d(0,0,0)!important}

/* Back to top */
.v2-back-top{position:fixed;right:24px;bottom:24px;z-index:900;width:46px;height:46px;display:grid;place-items:center;padding:0;border:1px solid rgba(242,0,255,.48);border-radius:13px;background:rgba(25,26,34,.82);color:var(--v2-accent);box-shadow:0 14px 42px rgba(0,0,0,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px) scale(.96);transition:opacity .2s ease,visibility .2s ease,transform .2s ease,border-color .2s ease,background .2s ease}
.v2-back-top.visible{opacity:1;visibility:visible;transform:none}.v2-back-top:hover{border-color:var(--v2-accent);background:rgba(34,35,44,.94);transform:translateY(-2px)}.v2-back-top svg{width:19px;height:19px}

/* Desktop: every main chapter is one viewport, content is compact enough to fit */
@media (min-width:1024px){
  html{scroll-snap-type:y proximity}
  .v2-hero,.v2-chapter{height:calc(100svh - 56px)!important;min-height:calc(100svh - 56px)!important;box-sizing:border-box;scroll-snap-align:start;scroll-margin-top:56px}
  .v2-hero{padding-block:0!important;align-items:center!important}
  .v2-chapter{padding:0!important;display:flex;align-items:center;overflow:clip}
  .v2-chapter>.shell{height:100%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding-block:24px}
  .v2-section-head{gap:48px!important;margin-bottom:22px!important}
  .v2-section-head h2{font-size:clamp(32px,3vw,46px)!important;line-height:1!important;max-width:780px!important}
  .v2-section-head>p{font-size:13.2px!important;line-height:1.52!important;max-width:560px!important}
  .v2-kicker{margin-bottom:10px!important}

  .v2-audience-strip{margin-bottom:10px!important;border-radius:12px!important}
  .v2-audience-strip article{padding:11px 15px!important;grid-template-columns:32px 1fr!important;gap:8px!important}
  .v2-audience-strip strong{font-size:12px!important;margin-bottom:3px!important}.v2-audience-strip p{font-size:10.5px!important;line-height:1.35!important}
  .v2-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
  .v2-service-card{height:205px!important;min-height:0!important;padding:0 17px 15px!important;border-radius:13px!important;background:linear-gradient(155deg,rgba(29,30,39,.92),rgba(22,23,30,.92))!important}
  .v2-service-visual{height:70px!important;margin:0 -17px 11px!important;background:linear-gradient(145deg,rgba(22,23,30,.88),rgba(30,31,40,.9))!important}
  .v2-service-meta{font-size:7.4px!important;gap:10px!important}.v2-service-card h3{font-size:19px!important;margin:10px 0 6px!important;max-width:88%!important}.v2-service-card p{font-size:10.5px!important;line-height:1.38!important;max-width:88%!important}.v2-card-arrow{right:16px!important;bottom:14px!important}.v2-card-arrow .tvoren-icon{width:17px!important;height:17px!important}
  .visual-web span:nth-child(1){width:155px!important;height:62px!important;top:13px!important}.visual-web span:nth-child(2){width:112px!important;height:55px!important;top:20px!important}.visual-web span:nth-child(3){width:68px!important;height:42px!important;top:9px!important}.visual-web i{top:27px!important;width:48px!important;height:4px!important;box-shadow:0 12px 0 rgba(255,255,255,.10),0 23px 0 rgba(255,255,255,.06)!important}
  .visual-automation span:nth-child(1){top:34px!important}.visual-automation span:nth-child(2){top:18px!important}.visual-automation span:nth-child(3){top:43px!important}.visual-automation span:nth-child(4){top:22px!important}.visual-automation i{top:37px!important}
  .visual-ai span:nth-child(1){width:62px!important;height:62px!important;top:7px!important}.visual-ai span:nth-child(2){width:42px!important;height:42px!important;top:17px!important}.visual-ai span:nth-child(3){top:37px!important;width:120px!important}.visual-ai i{top:14px!important;width:55px!important;height:46px!important}
  .visual-integration span{width:50px!important;height:33px!important}.visual-integration span:nth-child(1){top:16px!important}.visual-integration span:nth-child(2){top:34px!important}.visual-integration span:nth-child(3){top:13px!important}.visual-integration i{top:31px!important;width:140px!important}.visual-integration b{top:45px!important;width:125px!important}
  .visual-audit span:nth-child(1){top:18px!important}.visual-audit span:nth-child(2){top:35px!important}.visual-audit span:nth-child(3){top:52px!important}.visual-audit i{top:10px!important;width:52px!important;height:52px!important}.visual-audit i::before{left:25px!important;top:25px!important;width:38px!important}
  .visual-support span{bottom:10px!important;width:30px!important}.visual-support span:nth-child(1){height:24px!important}.visual-support span:nth-child(2){height:42px!important}.visual-support span:nth-child(3){height:58px!important}.visual-support i{top:25px!important}

  .v2-process-flow article{min-height:185px!important;padding:17px 16px!important}.v2-process-flow h3{margin:48px 0 6px!important;font-size:18px!important}.v2-process-flow p{font-size:10.4px!important;line-height:1.42!important}.v2-flow-line{top:66px!important}.v2-process-visual{min-height:82px!important;margin-top:10px!important;padding:12px 18px!important}.v2-flow-node{height:52px!important}

  .v2-about-layout{gap:10px!important}.v2-about-statement{min-height:360px!important;padding:26px!important}.v2-large-copy{font-size:clamp(23px,2vw,31px)!important}.v2-about-system{height:160px!important;bottom:22px!important;left:24px!important;right:24px!important}.v2-principles{gap:8px!important}.v2-principles article{padding:17px 19px!important}.v2-principles h3{margin:17px 0 5px!important;font-size:17px!important}.v2-principles p{font-size:10.7px!important;line-height:1.46!important}

  .v2-contact-layout{gap:10px!important}.v2-project-form,.v2-contact-aside{border-radius:14px!important}.v2-project-form{padding:18px!important;gap:11px!important}.v2-form-row{gap:10px!important}.v2-project-form label{gap:5px!important}.v2-project-form label>span{font-size:9.8px!important}.v2-project-form input,.v2-project-form select{min-height:38px!important;padding:9px 11px!important;font-size:11.5px!important}.v2-project-form textarea{min-height:82px!important;height:82px!important;padding:10px 11px!important;font-size:11.5px!important}.v2-contact-aside{padding:20px!important}.v2-contact-aside ol{margin:16px 0 18px!important}.v2-contact-aside li{padding:9px 0!important}.v2-contact-aside li p{font-size:10.7px!important;line-height:1.4!important}.v2-email-link{min-height:38px!important}
}

@media (max-width:1023px){
  .v2-back-top{right:16px;bottom:16px;width:44px;height:44px}
}

@media (prefers-reduced-motion:reduce){
  body.v2-home::before,body.v2-home::after,.system-map .system-node,.system-map .scene-connections path{animation:none!important}
  .v2-pass2-ready [data-reveal]{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
}

@keyframes v2AmbientDrift{0%{transform:translate3d(-1.5%,0,0) scale(1.02)}50%{transform:translate3d(1%,1.3%,0) scale(1.04)}100%{transform:translate3d(0,-1%,0) scale(1.025)}}
@keyframes v2GridDrift{to{background-position:64px 32px,64px 32px,128px 64px}}
@keyframes v2NodeSequence{0%,70%,100%{color:#e9e5ea;border-color:rgba(255,255,255,.15);background:rgba(25,26,34,.72);box-shadow:0 10px 34px rgba(0,0,0,.16)}8%,20%{color:#fff;border-color:rgba(242,0,255,.88);background:rgba(242,0,255,.12);box-shadow:0 0 0 1px rgba(242,0,255,.18),0 0 28px rgba(242,0,255,.18)}}
@keyframes v2LineFlow{to{stroke-dashoffset:-90}}
