/* Interactive hero field */
.hero{position:relative;isolation:isolate;overflow:hidden;--mx:72%;--my:42%}
.hero:before{content:'';position:absolute;z-index:-3;inset:0;background:linear-gradient(115deg,rgba(16,17,19,.98) 0%,rgba(16,17,19,.92) 47%,rgba(24,19,34,.78) 100%)}
.hero-field{position:absolute;z-index:-2;inset:0;width:100%;height:100%;pointer-events:none;opacity:.68}
.hero-spotlight{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(136,95,224,.16),rgba(136,95,224,.045) 38%,transparent 72%);mix-blend-mode:screen;transition:opacity .25s ease}
.hero-content{position:relative}
.hero h1{position:relative;text-shadow:0 0 44px rgba(170,145,237,.055)}
.hero h1>span{background:linear-gradient(90deg,#b6a1f1 0%,#8b68df 55%,#c0aef1 100%);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hero-shimmer 8s ease-in-out infinite}
.hero-aside{position:relative;border:1px solid rgba(170,145,237,.24);border-radius:10px;padding:22px 24px;background:linear-gradient(145deg,rgba(24,25,28,.86),rgba(19,17,24,.58));box-shadow:0 24px 70px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(12px);overflow:hidden}
.hero-aside:before{content:'';position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(110deg,transparent 15%,rgba(170,145,237,.08) 48%,transparent 75%);transform:translateX(-100%);animation:panel-scan 7s ease-in-out infinite}
.core-status{display:flex;align-items:center;gap:9px;padding-bottom:16px;border-bottom:1px solid rgba(170,145,237,.13)}
.core-pulse{width:7px;height:7px;border-radius:50%;background:#b59af4;box-shadow:0 0 0 0 rgba(181,154,244,.4);animation:core-pulse 2.4s ease-out infinite}
.core-load{margin-left:auto;font:600 9px/1 'DM Sans',sans-serif;letter-spacing:1.2px;color:#b9a7e6}
.process-line{position:relative;margin:22px 0 18px;gap:5px}
.process-line>span:not([aria-hidden]){display:flex;align-items:center;gap:9px;transition:color .25s ease,transform .25s ease}
.process-line i{width:5px;height:5px;border:1px solid #8c70cc;border-radius:50%;background:#19161f;box-shadow:0 0 0 4px rgba(140,112,204,.055)}
.process-line>span[aria-hidden]{padding-left:1px;color:#675a7d}
.process-line .accent i{background:#ad91ee;box-shadow:0 0 14px rgba(173,145,238,.78)}
.signal-track{position:relative;height:1px;background:rgba(170,145,237,.16);margin:0 0 17px;overflow:hidden}
.signal-track span{position:absolute;top:0;left:0;width:30%;height:1px;background:linear-gradient(90deg,transparent,#bea9f2,transparent);filter:drop-shadow(0 0 4px #a488e8);animation:signal-run 2.8s linear infinite}
.hero-aside.is-awake{border-color:rgba(184,160,241,.46);box-shadow:0 28px 80px rgba(48,27,88,.32),inset 0 1px 0 rgba(255,255,255,.06)}
.hero-aside.is-awake .process-line>span:not([aria-hidden]){transform:translateX(3px);color:#eee9f8}
.hero .btn-primary{position:relative;overflow:hidden;box-shadow:0 14px 36px rgba(92,61,170,.2);transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.hero .btn-primary:before{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.16) 50%,transparent 80%);transform:translateX(-120%);transition:transform .65s ease}
.hero .btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgba(92,61,170,.34)}
.hero .btn-primary:hover:before{transform:translateX(120%)}
@keyframes hero-shimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@keyframes panel-scan{0%,50%{transform:translateX(-110%)}78%,100%{transform:translateX(110%)}}
@keyframes core-pulse{0%{box-shadow:0 0 0 0 rgba(181,154,244,.4)}70%,100%{box-shadow:0 0 0 9px rgba(181,154,244,0)}}
@keyframes signal-run{from{transform:translateX(-110%)}to{transform:translateX(440%)}}
@media(max-width:760px){.hero-field{opacity:.42}.hero-spotlight{background:radial-gradient(380px circle at 82% 28%,rgba(136,95,224,.13),transparent 72%)}}
@media(prefers-reduced-motion:reduce){.hero-field{display:none}.hero-spotlight{background:radial-gradient(520px circle at 78% 35%,rgba(136,95,224,.12),transparent 72%)}.hero h1>span,.hero-aside:before,.core-pulse,.signal-track span{animation:none!important}}

/* Site-wide cursor light and tactile states */
.section,.resources,footer{position:relative;isolation:isolate;overflow:hidden;--sx:50%;--sy:50%}
.section:after,.resources:after,footer:after{content:'';position:absolute;z-index:0;inset:0;pointer-events:none;opacity:0;background:radial-gradient(460px circle at var(--sx) var(--sy),rgba(142,104,224,.105),rgba(142,104,224,.025) 42%,transparent 72%);transition:opacity .35s ease}
.section.is-pointer:after,.resources.is-pointer:after,footer.is-pointer:after{opacity:1}
.section>.container,.resources>*,footer>.container{position:relative;z-index:1}
.flow{position:relative;transition:padding-left .3s ease,border-color .3s ease,background .3s ease}
.flow:before{content:'';position:absolute;left:0;top:-1px;width:0;height:1px;background:linear-gradient(90deg,#9f7ce9,transparent);transition:width .45s ease}
.flow:hover{padding-left:18px;border-color:rgba(170,145,237,.34);background:linear-gradient(90deg,rgba(128,91,205,.055),transparent 58%)}
.flow:hover:before{width:46%}
.flow-path li{transition:color .22s ease,transform .22s ease}
.flow:hover .flow-path li{transform:translateY(-1px)}
.flow:hover .flow-path li:last-child{color:#c4aff5;text-shadow:0 0 18px rgba(170,145,237,.34)}
.steps li,.fit-list li,.resources details{transition:background .28s ease,border-color .28s ease,transform .28s ease}
.steps li:hover{background:linear-gradient(180deg,rgba(142,104,224,.07),transparent);transform:translateY(-4px)}
.fit-list li:hover{transform:translateX(8px);border-color:#6f5b98;color:#eee9f8}
.resources details:hover{background:linear-gradient(90deg,rgba(142,104,224,.06),transparent 58%);border-color:#625379}
.project-board{position:relative;transform-style:preserve-3d;transition:transform .18s ease,border-color .3s ease,box-shadow .3s ease;will-change:transform}
.project-board:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(360px circle at var(--bx,50%) var(--by,50%),rgba(169,139,235,.12),transparent 72%);opacity:0;transition:opacity .3s ease}
.project-board:hover{border-color:#5d4b7c;box-shadow:0 32px 90px rgba(24,12,52,.32)}
.project-board:hover:after{opacity:1}
.text-link span,.nav-contact span,.hero-foot a span{display:inline-block;transition:transform .25s ease}
.text-link:hover span,.nav-contact:hover span{transform:translate(3px,-3px)}
.hero-foot a:hover span{transform:translateY(3px)}

/* Navigation micro-interactions */
.nav-effect{position:relative;padding:32px 0;transition:color .22s ease,transform .22s ease,text-shadow .22s ease}
.nav-contact.nav-effect{padding:32px 0 32px 24px}
.nav-effect:after{content:'';position:absolute;left:0;right:100%;bottom:24px;height:1px;background:linear-gradient(90deg,#b198ee,#7452ca);box-shadow:0 0 8px rgba(170,145,237,.55);transition:right .28s ease}
.nav-contact.nav-effect:after{left:24px}
.nav-effect:hover,.nav-effect:focus-visible{color:#bba6ef!important;transform:translateY(-1px);text-shadow:0 0 22px rgba(170,145,237,.28)}
.nav-effect:hover:after,.nav-effect:focus-visible:after{right:0}
.nav-preview{position:absolute;z-index:80;top:calc(100% - 4px);left:50%;width:224px;padding:15px 16px;border:1px solid rgba(170,145,237,.3);border-radius:8px;background:rgba(17,18,21,.95);box-shadow:0 24px 60px rgba(0,0,0,.42),0 0 40px rgba(98,65,165,.12);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transform:translate(-50%,-7px) scale(.97);transform-origin:50% 0;transition:opacity .22s ease,transform .22s ease,visibility .22s}
.nav-preview:before{content:'';position:absolute;top:-5px;left:50%;width:8px;height:8px;border-left:1px solid rgba(170,145,237,.3);border-top:1px solid rgba(170,145,237,.3);background:#111215;transform:translateX(-50%) rotate(45deg)}
.nav-preview b{display:block;color:#dcd3f1;font:600 10px/1.4 'DM Sans',sans-serif;letter-spacing:1px}
.nav-preview small{display:flex;align-items:center;gap:8px;margin-top:8px;color:#8d8797;font:500 8px/1 'DM Sans',sans-serif;letter-spacing:1.2px}
.nav-preview i{width:6px;height:6px;border-radius:50%;background:#ad91ee;box-shadow:0 0 0 0 rgba(173,145,238,.45);animation:core-pulse 2s ease-out infinite}
.nav-effect:hover .nav-preview,.nav-effect:focus-visible .nav-preview{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
.nav-contact .nav-preview{left:calc(50% + 12px)}
.nav-contact .nav-preview,.nav-contact .nav-preview span{margin-left:0}
.preview-path{display:flex;align-items:center;margin:11px 0 9px}
.preview-path i{flex:0 0 7px;height:7px;border-radius:50%;border:1px solid #a489e4;background:#17131f;box-shadow:0 0 10px rgba(164,137,228,.28);animation:none}
.preview-path i:last-child{background:#ad91ee;box-shadow:0 0 12px rgba(173,145,238,.65)}
.preview-path em{position:relative;flex:1;height:1px;background:#3b304d;overflow:hidden}
.preview-path em:after{content:'';position:absolute;inset:0;width:42%;background:linear-gradient(90deg,transparent,#ad91ee,transparent);animation:preview-signal 1.8s linear infinite}
.preview-steps{display:flex;gap:6px;margin:12px 0 10px}
.preview-steps i{position:relative;flex:1;height:3px;border-radius:2px;background:#342b43;overflow:hidden}
.preview-steps i:after{content:'';position:absolute;inset:0;background:#9a7add;transform:scaleX(0);transform-origin:left;animation:preview-step 3s ease-in-out infinite}
.preview-steps i:nth-child(2):after{animation-delay:.22s}.preview-steps i:nth-child(3):after{animation-delay:.44s}.preview-steps i:nth-child(4):after{animation-delay:.66s}.preview-steps i:nth-child(5):after{animation-delay:.88s}
.preview-lines{display:grid;gap:5px;margin:11px 0 10px}
.preview-lines i{height:2px;border-radius:2px;background:linear-gradient(90deg,#8e70d0,#342b43);transform-origin:left;animation:preview-line 2.6s ease-in-out infinite}
.preview-lines i:nth-child(2){width:78%;animation-delay:.18s}.preview-lines i:nth-child(3){width:55%;animation-delay:.36s}
.preview-message{display:flex;align-items:flex-end;gap:4px;height:18px;margin:10px 0 9px}
.preview-message i{width:4px;border-radius:4px;background:#a88be8;animation:preview-wave 1.2s ease-in-out infinite}
.preview-message i:nth-child(1){height:7px}.preview-message i:nth-child(2){height:16px;animation-delay:.15s}.preview-message i:nth-child(3){height:10px;animation-delay:.3s}
@keyframes preview-signal{from{transform:translateX(-120%)}to{transform:translateX(340%)}}
@keyframes preview-step{0%,15%{transform:scaleX(0)}45%,78%{transform:scaleX(1)}100%{transform:scaleX(0);transform-origin:right}}
@keyframes preview-line{0%,100%{transform:scaleX(.72);opacity:.55}50%{transform:scaleX(1);opacity:1}}
@keyframes preview-wave{0%,100%{transform:scaleY(.55);opacity:.55}50%{transform:scaleY(1);opacity:1}}

/* Scroll reveal: applied only after JS enhancement */
.reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.reveal-ready.in-view{opacity:1;transform:none}
@media(max-width:760px){.nav-effect,.nav-contact.nav-effect{padding:13px}.nav-effect:after,.nav-preview,.nav-contact .nav-preview{display:none}.flow:hover{padding-left:0;background:transparent}.flow:hover:before{width:0}.steps li:hover,.fit-list li:hover{transform:none}.section:after,.resources:after,footer:after{display:none}.reveal-ready{transform:translateY(10px)}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none}.project-board,.flow,.steps li,.fit-list li{transform:none!important}.section:after,.resources:after,footer:after{display:none}}



/* First-visit intro */
html.intro-ready .nav{opacity:0;transform:translateY(-10px)}
html.intro-ready .brand-mark{transform:scale(.68) rotate(-9deg);filter:blur(4px)}
html.intro-ready .hero .eyebrow,html.intro-ready .hero h1,html.intro-ready .hero-text,html.intro-ready .hero .btn-primary,html.intro-ready .hero-note,html.intro-ready .hero-aside,html.intro-ready .hero-foot{opacity:0;transform:translateY(18px)}
html.intro-ready.intro-play .nav{opacity:1;transform:none;transition:opacity .4s ease .05s,transform .55s cubic-bezier(.2,.75,.2,1) .05s}
html.intro-ready.intro-play .brand-mark{transform:none;filter:none;transition:transform .65s cubic-bezier(.18,.9,.25,1.25) .08s,filter .45s ease .08s}
html.intro-ready.intro-play .hero .eyebrow{opacity:1;transform:none;transition:opacity .42s ease .18s,transform .55s ease .18s}
html.intro-ready.intro-play .hero h1{opacity:1;transform:none;transition:opacity .55s ease .27s,transform .7s cubic-bezier(.2,.75,.2,1) .27s}
html.intro-ready.intro-play .hero-text{opacity:1;transform:none;transition:opacity .48s ease .42s,transform .6s ease .42s}
html.intro-ready.intro-play .hero .btn-primary{opacity:1;transform:none;transition:opacity .45s ease .52s,transform .6s cubic-bezier(.2,.8,.2,1) .52s,box-shadow .25s ease,background .25s ease}
html.intro-ready.intro-play .hero-note{opacity:1;transform:none;transition:opacity .42s ease .62s,transform .55s ease .62s}
html.intro-ready.intro-play .hero-aside{opacity:1;transform:none;transition:opacity .55s ease .48s,transform .72s cubic-bezier(.2,.8,.2,1) .48s,border-color .3s ease,box-shadow .3s ease}
html.intro-ready.intro-play .hero-foot{opacity:1;transform:none;transition:opacity .45s ease .72s,transform .55s ease .72s}

/* Context-aware cursor label */
.context-cursor{position:fixed;z-index:120;left:0;top:0;pointer-events:none;padding:7px 10px;border:1px solid rgba(183,157,241,.34);border-radius:999px;background:rgba(17,18,21,.88);box-shadow:0 10px 30px rgba(0,0,0,.3),0 0 22px rgba(117,79,194,.12);backdrop-filter:blur(12px);color:#d8cef0;font:600 9px/1 'DM Sans',sans-serif;letter-spacing:.75px;white-space:nowrap;opacity:0;transform:translate3d(var(--cursor-x,0),var(--cursor-y,0),0) scale(.84);transition:opacity .16s ease,transform .16s ease}
.context-cursor.is-visible{opacity:1;transform:translate3d(var(--cursor-x,0),var(--cursor-y,0),0) scale(1)}
.context-target{cursor:pointer}
.magnetic-active{will-change:transform;transition:transform .12s ease-out!important}

@media(max-width:760px),(pointer:coarse){.context-cursor{display:none!important}}
@media(prefers-reduced-motion:reduce){html.intro-ready .nav,html.intro-ready .brand-mark,html.intro-ready .hero .eyebrow,html.intro-ready .hero h1,html.intro-ready .hero-text,html.intro-ready .hero .btn-primary,html.intro-ready .hero-note,html.intro-ready .hero-aside,html.intro-ready .hero-foot{opacity:1;transform:none;filter:none}.context-cursor{display:none}.magnetic-active{transform:none!important}}
