:root{--ink:#101313;--paper:#f1f0e9;--muted:#777b74;--line:#c9cbc2;--acid:#d7f75b;--blue:#9eb7ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:22px 5vw;background:rgba(241,240,233,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.logo{display:flex;align-items:center;gap:11px;font:700 15px/1 'Space Grotesk';letter-spacing:.04em}.logo small{font-size:9px;letter-spacing:.18em}.logo-symbol{display:grid;place-items:center;width:35px;height:35px;border:1px solid var(--ink);border-radius:50%;font:600 20px 'Space Grotesk'}.topbar nav{display:flex;gap:30px;font-size:13px}.topbar nav a:hover,.text-link:hover{opacity:.55}.header-cta{border:1px solid var(--ink);border-radius:100px;padding:12px 17px;font-size:12px}.menu{display:none;border:0;background:none}.page-grid{display:grid;grid-template-columns:18% 82%;padding:0 5vw}.hero{min-height:760px;align-items:center;border-bottom:1px solid var(--line)}.hero-copy{padding:100px 0}.micro,.side-label{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:500;letter-spacing:-.07em;margin:0}h1{font-size:clamp(58px,8vw,132px);line-height:.92;margin:28px 0}h1 span,h2 em{font-style:normal;color:#6f8cff}h2{font-size:clamp(48px,6vw,92px);line-height:.95}h3{font-size:32px}.intro{max-width:440px;font-size:18px;line-height:1.6;color:#535951}.actions{display:flex;align-items:center;gap:25px;margin-top:35px}.button{display:inline-block;border:1px solid var(--ink);border-radius:100px;padding:16px 21px;font-size:12px;cursor:pointer}.primary{background:var(--ink);color:var(--paper)}.text-link{display:inline-block;margin-top:24px;font-size:12px;border-bottom:1px solid currentColor;padding-bottom:5px}.hero-art{position:relative;min-height:600px;overflow:hidden;background:#dce4cf}.orbit{position:absolute;border:1px solid #8d9d86;border-radius:50%;inset:12% 10%;transform:rotate(-25deg)}.orbit-b{inset:20% -10%;transform:rotate(55deg);border-color:#a9b8ff}.orb-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:210px;height:210px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--acid);font:600 150px/.8 'Space Grotesk';box-shadow:0 0 0 18px rgba(16,19,19,.05)}.orb-core span{font-size:45px}.art-label{position:absolute;font-size:11px;letter-spacing:.12em}.label-a{top:14%;left:12%}.label-b{right:12%;top:28%}.label-c{bottom:15%;left:20%}.hero-stamp{position:absolute;right:10%;bottom:10%;font:11px/1.3 'Space Grotesk';letter-spacing:.15em;text-align:right}.hero-stamp b{font-size:28px}.marquee{overflow:hidden;white-space:nowrap;border-bottom:1px solid var(--line);padding:18px 0;font:500 16px 'Space Grotesk';letter-spacing:.12em}.marquee div{animation:scroll 24s linear infinite}.marquee span{color:#6f8cff;padding:0 22px}@keyframes scroll{to{transform:translateX(-30%)}}.section{padding-top:125px;padding-bottom:125px;border-bottom:1px solid var(--line)}.side-label{padding-top:8px}.section-content{padding-right:9vw}.section-head{display:grid;grid-template-columns:1.1fr .8fr;gap:60px;align-items:end;margin-bottom:75px}.section-head p{max-width:370px;line-height:1.7;color:#62685f}.project{display:grid;grid-template-columns:1.35fr .75fr;gap:55px;align-items:center;margin-bottom:115px}.project.reverse{grid-template-columns:.75fr 1.35fr}.project.reverse .project-image{order:2}.project-image{position:relative;background:#d9ded4;min-height:390px;padding:20px;overflow:hidden}.project-image img{display:block;width:100%;height:100%;object-fit:cover;box-shadow:0 12px 35px #10131315}.project-badge{position:absolute;top:25px;left:25px;background:var(--acid);padding:9px 12px;font-size:10px;letter-spacing:.1em}.project-info p:not(.micro){color:#62685f;line-height:1.7}.project-info h3{margin:20px 0 10px;font-size:58px}.collage{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:center}.collage img:first-child{grid-column:span 2}.tinted{background:#e4e8dc}.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.bento-card{position:relative;min-height:245px;padding:28px;background:#f2f3ed;border:1px solid #c8cec0}.bento-card.large{grid-column:span 2;background:var(--acid)}.bento-card.dark{background:var(--ink);color:var(--paper)}.bento-card.wide{grid-column:span 2;min-height:190px}.bento-card span{font-size:11px;color:var(--muted)}.bento-card h3{margin-top:55px;font-size:34px;letter-spacing:-.05em}.bento-card p{max-width:330px;line-height:1.6;color:#646b60}.dark p{color:#c5c9c0}.card-mark{position:absolute;right:28px;bottom:25px;font-size:32px}.estimate-note{margin-top:30px;color:#62685f;font-size:13px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}.steps>div{border-top:1px solid var(--ink);padding-top:18px}.steps span{font-size:11px;color:var(--muted)}.steps h3{font-size:32px;margin:45px 0 12px}.steps p{line-height:1.6;color:#62685f}.contact-section{background:#cbd5ff;padding-top:125px;padding-bottom:125px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-layout h2{margin:25px 0}.contact-layout .intro{font-size:16px}.contact-layout form{display:grid;gap:18px}label{font-size:11px;letter-spacing:.05em}input,select,textarea{width:100%;border:0;border-bottom:1px solid #7f8eb9;background:transparent;padding:14px 0;outline:none}textarea{min-height:100px;resize:vertical}.form-status{font-size:12px}footer{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;align-items:center;gap:20px;padding:35px 5vw;font-size:12px}footer>div{display:flex;gap:18px}footer>small{text-align:right}.reveal{animation:rise .8s ease both}@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@media(max-width:850px){.topbar nav,.header-cta{display:none}.menu{display:block}.page-grid{display:block}.side-label{padding:35px 0}.hero{padding:0 5vw}.hero-copy{padding:70px 0 35px}.hero-art{min-height:430px}.section-content{padding:0}.section-head,.project,.project.reverse,.contact-layout{grid-template-columns:1fr;gap:30px}.project.reverse .project-image{order:0}.project-info h3{font-size:48px}.bento{grid-template-columns:1fr 1fr}.bento-card.large,.bento-card.wide{grid-column:span 2}.steps{grid-template-columns:1fr 1fr}footer{grid-template-columns:1fr 1fr}footer>small{text-align:left}}@media(max-width:520px){h1{font-size:57px}.hero-art{min-height:340px}.orb-core{width:140px;height:140px;font-size:100px}.bento{grid-template-columns:1fr}.bento-card.large,.bento-card.wide{grid-column:auto}.steps{grid-template-columns:1fr}.actions{align-items:flex-start;flex-direction:column}footer{grid-template-columns:1fr}}

/* Nisora Digital motion layer */
:root{--ease:cubic-bezier(.2,.8,.2,1)}
body{cursor:none;overflow-x:hidden}a,button,input,select,textarea{cursor:none}
.scroll-progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--acid);z-index:100;transform-origin:left;box-shadow:0 0 18px #d7f75b88}
.cursor-orb{position:fixed;z-index:90;width:14px;height:14px;border-radius:50%;background:var(--acid);mix-blend-mode:difference;pointer-events:none;transform:translate(-50%,-50%);transition:width .25s var(--ease),height .25s var(--ease),opacity .25s}
.cursor-ring{position:fixed;z-index:89;width:42px;height:42px;border:1px solid currentColor;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);opacity:.45;transition:width .3s var(--ease),height .3s var(--ease),background .3s}
.cursor-active .cursor-orb{width:28px;height:28px}.cursor-active .cursor-ring{width:70px;height:70px;background:#d7f75b22}
.reveal{opacity:0;transform:translateY(45px);animation:none;transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.hero-art{transform-style:preserve-3d;transition:transform .18s ease-out}
.orbit{animation:orbitSpin 28s linear infinite}.orbit-b{animation:orbitSpinReverse 36s linear infinite}.orb-core{animation:corePulse 5s ease-in-out infinite}
@keyframes orbitSpin{to{transform:rotate(335deg)}}@keyframes orbitSpinReverse{to{transform:rotate(-305deg)}}@keyframes corePulse{50%{box-shadow:0 0 0 28px #10131308,0 0 80px #d7f75b22;scale:1.035}}
.project-image,.bento-card,.button,.header-cta{transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .5s}
.project-image:hover{transform:translateY(-8px) rotateX(2deg);box-shadow:0 25px 60px #10131318}
.bento-card:hover{transform:translateY(-7px);box-shadow:0 20px 50px #10131312}
.button:hover,.header-cta:hover{transform:translateY(-3px);box-shadow:0 10px 24px #10131318}
.marquee div{will-change:transform}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
@media(max-width:850px){body{cursor:auto}.cursor-orb,.cursor-ring{display:none}}

/* v2 refinement: layered, responsive motion system */
:root{--ease-spring:cubic-bezier(.16,1,.3,1)}
body{background:radial-gradient(circle at 80% 8%,#e2e8d5 0,transparent 26%),var(--paper)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.18;background-image:linear-gradient(#1013130b 1px,transparent 1px),linear-gradient(90deg,#1013130b 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 70%)}
.topbar{transition:padding .45s var(--ease-spring),background .45s,box-shadow .45s}.topbar.is-scrolled{padding-top:13px;padding-bottom:13px;box-shadow:0 8px 30px #1013130b}
.menu{font-size:22px;position:relative;z-index:30}.menu[aria-expanded=true]{transform:rotate(90deg)}
.hero-copy h1{text-wrap:balance}.hero-copy h1 span{display:inline-block;transition:transform .8s var(--ease-spring)}.hero-copy h1 span:hover{transform:skewX(-8deg) translateX(8px)}
.hero-art{isolation:isolate;perspective:1000px}.hero-art:before{content:"";position:absolute;inset:10%;border:1px dashed #8d9d8666;border-radius:50%;animation:drift 18s ease-in-out infinite}.hero-art:after{content:"";position:absolute;width:55%;aspect-ratio:1;left:22%;top:22%;border-radius:50%;background:radial-gradient(circle,#d7f75b55,transparent 65%);filter:blur(20px);z-index:-1;animation:breathe 7s ease-in-out infinite}
.orbit{will-change:transform}.orbit:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--acid);top:18%;left:16%;box-shadow:0 0 25px var(--acid)}.orbit-b:after{background:#9eb7ff;top:auto;left:auto;right:18%;bottom:12%}
.orb-core{transition:transform .6s var(--ease-spring);will-change:transform}.orb-core:hover{transform:translate(-50%,-50%) scale(1.08) rotate(-8deg)}
.art-label{transition:transform .5s var(--ease-spring),opacity .5s}.hero-art:hover .label-a{transform:translate(-8px,-5px)}.hero-art:hover .label-b{transform:translate(8px,5px)}.hero-art:hover .label-c{transform:translate(-5px,8px)}
.marquee{background:var(--ink);color:var(--paper);border-color:var(--ink)}.marquee div{animation-duration:18s}
.section{position:relative}.section:after{content:"";position:absolute;right:5vw;top:0;height:100%;width:1px;background:linear-gradient(transparent,var(--line),transparent);opacity:.55}
.section-head h2 em{display:inline-block;transition:transform .6s var(--ease-spring)}.section-head h2:hover em{transform:translateX(14px) rotate(-2deg)}
.project{perspective:1200px}.project-image{transform-style:preserve-3d;will-change:transform}.project-image img{transition:transform .8s var(--ease-spring),filter .8s}.project-image:hover img{transform:scale(1.035);filter:saturate(1.12)}.project-image .project-badge{transition:transform .5s var(--ease-spring)}.project-image:hover .project-badge{transform:translateY(-5px) rotate(-2deg)}
.project-info h3{transition:letter-spacing .5s var(--ease-spring)}.project-info:hover h3{letter-spacing:-.09em}
.bento-card{overflow:hidden}.bento-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;bottom:-90px;background:#d7f75b44;transition:transform .7s var(--ease-spring)}.bento-card:hover:before{transform:scale(2.4)}.bento-card>*{position:relative;z-index:1}
.steps>div{transition:transform .5s var(--ease-spring),padding-left .5s}.steps>div:hover{transform:translateY(-8px);padding-left:10px}.steps>div span{display:inline-block;transition:transform .5s}.steps>div:hover span{transform:rotate(12deg) scale(1.2)}
.contact-section{position:relative;overflow:hidden}.contact-section:before{content:"N";position:absolute;right:-3vw;bottom:-18vw;font:700 55vw/.7 'Space Grotesk';color:#ffffff22;pointer-events:none}.contact-layout{position:relative;z-index:1}
input,select,textarea{transition:border-color .3s,transform .3s}input:focus,select:focus,textarea:focus{border-color:var(--ink);transform:translateX(5px)}
.button{position:relative;overflow:hidden}.button:after{content:"";position:absolute;inset:0;background:var(--acid);transform:translateX(-105%);transition:transform .6s var(--ease-spring);z-index:0}.button:hover:after{transform:translateX(0)}.button>*{position:relative;z-index:1}.button:hover{color:var(--ink)}
[data-parallax]{will-change:transform}
@keyframes drift{50%{transform:rotate(180deg) scale(1.08)}}@keyframes breathe{50%{transform:scale(1.2);opacity:.55}}
@media(max-width:850px){.topbar{padding:16px 5vw}.topbar nav{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:0;padding:10px 5vw;background:var(--paper);border-bottom:1px solid var(--line);transform:translateY(-20px);opacity:0;pointer-events:none;transition:opacity .35s,transform .35s}.topbar.nav-open nav{opacity:1;transform:none;pointer-events:auto}.topbar nav a{padding:16px 0;border-bottom:1px solid var(--line)}.section:after{display:none}}
@media(prefers-reduced-motion:reduce){body:before,.hero-art:before,.hero-art:after{display:none}.button:after{display:none}}


/* v3 — hero composition, responsive precision and reactive motion */
:root{--ease-fluid:cubic-bezier(.16,1,.3,1);--pointer-x:50%;--pointer-y:50%}
body{position:relative;isolation:isolate}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(520px circle at var(--pointer-x) var(--pointer-y),rgba(215,247,91,.08),transparent 65%);mix-blend-mode:multiply;opacity:.9}
.cursor-glow{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(300px circle at var(--pointer-x) var(--pointer-y),rgba(111,140,255,.09),transparent 70%);opacity:0;transition:opacity .4s ease}
body.pointer-active .cursor-glow{opacity:1}
.hero{grid-template-columns:minmax(290px,25%) minmax(0,75%);min-height:clamp(650px,calc(100vh - 78px),900px);gap:0}
.hero-copy{min-width:0;padding:clamp(60px,7vw,105px) 26px 70px 0;position:relative;z-index:2}
.hero-copy h1{font-size:clamp(56px,6.25vw,116px);line-height:.89;max-width:100%;overflow-wrap:normal;word-break:normal}
.hero-copy h1 br{display:block}
.hero-copy h1 span{display:block;white-space:normal}
.hero-copy .intro{font-size:clamp(15px,1.1vw,18px);max-width:330px}
.hero-art{min-width:0;min-height:clamp(520px,70vh,720px);height:100%;align-self:center;overflow:hidden;clip-path:polygon(2% 0,100% 0,100% 100%,0 97%);transition:clip-path .8s var(--ease-fluid),transform .2s ease-out}
.hero-art:focus-within,.hero-art:hover{clip-path:polygon(1% 0,100% 0,100% 100%,0 100%)}
.orbit{inset:9% -7%;border-width:1px;will-change:transform}
.orbit-b{inset:18% -18%}
.orb-core{width:clamp(155px,14vw,220px);height:clamp(155px,14vw,220px);font-size:clamp(110px,10vw,155px);transition:transform .5s var(--ease-fluid),box-shadow .5s}
.art-label{font-size:clamp(9px,.65vw,12px);transition:transform .8s var(--ease-fluid),opacity .4s}
.hero-stamp{font-size:clamp(9px,.65vw,12px)}
.hero .reveal{transition-delay:.08s}
.hero-art.reactive .orbit-a{animation-duration:22s}
.hero-art.reactive .orbit-b{animation-duration:31s}

/* More intentional scroll and hover choreography */
.reveal{transition:opacity 1s var(--ease-fluid),transform 1s var(--ease-fluid),filter 1s var(--ease-fluid);filter:blur(5px)}
.reveal.is-visible{filter:blur(0)}
.project,.bento-card,.steps>div{will-change:transform}
.project-image{transition:transform .75s var(--ease-fluid),box-shadow .75s var(--ease-fluid)}
.project-image img{will-change:transform}
.bento-card{transition:transform .7s var(--ease-fluid),box-shadow .7s var(--ease-fluid),background .7s}
.bento-card:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.28),transparent 55%);transform:translateX(-130%);transition:transform 1s var(--ease-fluid);pointer-events:none}
.bento-card:hover:after{transform:translateX(130%)}
.button,.header-cta,.text-link{transition:transform .5s var(--ease-fluid),box-shadow .5s var(--ease-fluid),opacity .3s}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px}

@media(max-width:1100px) and (min-width:851px){
  .hero{grid-template-columns:minmax(245px,30%) minmax(0,70%)}
  .hero-copy{padding-right:18px}
  .hero-copy h1{font-size:clamp(52px,6.2vw,82px)}
  .hero-art{min-height:560px}
}
@media(max-width:850px){
  .hero{display:block;min-height:0}
  .hero-copy{padding:72px 0 36px}
  .hero-copy h1{font-size:clamp(58px,13vw,94px);max-width:10ch}
  .hero-copy .intro{max-width:430px}
  .hero-art{min-height:430px;height:430px;clip-path:none}
  .hero-art:hover{clip-path:none}
}
@media(max-width:520px){
  .hero-copy h1{font-size:clamp(54px,14.5vw,76px)}
  .hero-art{height:350px;min-height:350px}
}
@media(prefers-reduced-motion:reduce){body:after,.cursor-glow{display:none}.reveal{filter:none}}

/* Midnight purple + electric violet theme */
:root{
  --ink:#171022;
  --paper:#f7f2ff;
  --muted:#81758f;
  --line:#d8cbe8;
  --acid:#c7ff4a;
  --blue:#a78bfa;
  --violet:#9b5cff;
  --violet-deep:#24133f;
  --violet-soft:#e9ddff;
}
body{
  background:radial-gradient(circle at 80% 8%,#eadfff 0,transparent 28%),var(--paper);
}
body:before{
  background-image:linear-gradient(#5b3a8612 1px,transparent 1px),linear-gradient(90deg,#5b3a8612 1px,transparent 1px);
}
.topbar{background:rgba(247,242,255,.9);border-color:var(--line)}
.logo-symbol{border-color:var(--ink)}
h1 span,h2 em,.marquee span{color:var(--violet)}
.intro,.section-head p,.project-info p:not(.micro),.estimate-note,.steps p{color:#665879}
.hero-art{background:#e7dcf6}
.orbit{border-color:#9f8bb8}
.orbit-b{border-color:#b79bff}
.orb-core{background:var(--ink);color:var(--acid);box-shadow:0 0 0 18px rgba(80,42,130,.07)}
.hero-stamp{color:var(--ink)}
.marquee{border-color:var(--line)}
.section{border-color:var(--line)}
.project-image{background:#e5d9f2}
.project-badge{background:var(--acid);color:#171022}
.tinted{background:#eee5fa}
.bento-card{background:#fbf8ff;border-color:#d6c8e8}
.bento-card.large{background:var(--violet-soft)}
.bento-card.dark{background:var(--violet-deep);color:var(--paper)}
.bento-card p{color:#746584}
.dark p{color:#d8c9ec}
.contact-section{background:#d8c5ff}
input,select,textarea{border-color:#a18ac5;color:var(--ink)}
.button,.header-cta{border-color:var(--ink)}
.primary{background:var(--ink);color:var(--paper)}
.scroll-progress{background:var(--violet);box-shadow:0 0 18px #9b5cff88}
.cursor-orb{background:var(--violet)}
.cursor-active .cursor-ring{background:#9b5cff22}
.topbar.is-scrolled{box-shadow:0 8px 30px #5b3a8612}
.project-image:hover{box-shadow:0 25px 60px #5b3a861c}
.bento-card:hover{box-shadow:0 20px 50px #5b3a8618}
.button:hover,.header-cta:hover{box-shadow:0 10px 24px #5b3a8620}
@keyframes corePulse{50%{box-shadow:0 0 0 28px #5b3a8610,0 0 80px #9b5cff30;scale:1.035}}

/* Obsidian + Deep Violet premium dark theme */
:root{
  --ink:#f4efff;
  --paper:#08060d;
  --muted:#9a8eae;
  --line:#2a2038;
  --acid:#b78cff;
  --blue:#8b5cf6;
  --violet:#a855f7;
  --violet-deep:#160b26;
  --violet-soft:#2b1747;
}
html,body{background:#08060d;color:var(--ink)}
body{background:radial-gradient(circle at 78% 5%,#24113d 0,transparent 28%),radial-gradient(circle at 12% 70%,#130b20 0,transparent 32%),#08060d}
body:before{opacity:.22;background-image:linear-gradient(#a855f71b 1px,transparent 1px),linear-gradient(90deg,#a855f71b 1px,transparent 1px)}
.topbar{background:rgba(8,6,13,.82);border-color:var(--line);box-shadow:0 8px 30px #00000055}
.logo-symbol{border-color:#c4a7ff}
.micro,.side-label,.bento-card span{color:#9a8eae}
h1 span,h2 em,.marquee span{color:#b78cff}
.intro,.section-head p,.project-info p:not(.micro),.estimate-note,.steps p{color:#b0a4c1}
.hero-art{background:radial-gradient(circle at center,#2b1747 0,#100a18 60%,#08060d 100%)}
.orbit{border-color:#65458d}.orbit-b{border-color:#8b5cf6}
.orb-core{background:#0b0712;color:#c4a7ff;box-shadow:0 0 0 18px #a855f70d,0 0 100px #8b5cf655}
.art-label,.hero-stamp{color:#c8b8dc}
.project-image{background:#160d22}.project-image img{box-shadow:0 12px 35px #00000066}
.project-badge{background:#b78cff;color:#100817}
.tinted{background:#120b1c}
.bento-card{background:#100b18;border-color:#302040}.bento-card.large{background:#24113d}.bento-card.dark{background:#050309;color:#f4efff}.bento-card p{color:#a99bb9}.dark p{color:#c8b8dc}
.bento-card:before{background:#a855f733}
.contact-section{background:linear-gradient(135deg,#1a0d2c,#0d0815);border-top:1px solid #39234f}
input,select,textarea{border-color:#5b3b78;color:var(--ink)}
.button,.header-cta{border-color:#6d4a91}.primary{background:#b78cff;color:#100817}.button:hover,.header-cta:hover{box-shadow:0 10px 30px #a855f744}
.steps>div{border-color:#4a315e}
.scroll-progress{background:#b78cff;box-shadow:0 0 22px #a855f7aa}
.cursor-active .cursor-ring{background:#a855f722;border-color:#b78cff}
footer{background:#050309;border-color:#2a2038;color:#c8b8dc}

/* NISORA SIGNATURE MOTION PASS */
:root{--violet-hot:#c084fc;--violet-mid:#8b5cf6;--obsidian:#05030a}
body{overflow-x:hidden}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:30;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.hero{position:relative;isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 20%,rgba(168,85,247,.06),transparent 65%);animation:heroSweep 12s ease-in-out infinite alternate}
@keyframes heroSweep{from{transform:translateX(-12%)}to{transform:translateX(12%)}}
.hero-art{border:1px solid #39234f!important;box-shadow:inset 0 0 100px #0005,0 30px 100px #0008;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.hero-art:before{content:"";position:absolute;inset:8%;border:1px solid #a855f733;border-radius:50%;animation:spin 32s linear infinite}
.hero-art:after{content:"";position:absolute;inset:18%;border:1px dashed #c084fc33;border-radius:50%;animation:spinReverse 22s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinReverse{to{transform:rotate(-360deg)}}
.orb-core{animation:coreFloat 7s ease-in-out infinite;z-index:2}.orbit{animation:orbitFloat 15s ease-in-out infinite alternate}.orbit-b{animation-delay:-4s}
@keyframes coreFloat{0%,100%{margin-top:0}50%{margin-top:-12px}}
@keyframes orbitFloat{from{scale:1;opacity:.55}to{scale:1.08;opacity:1}}
.project-image{position:relative;overflow:hidden;transform-style:preserve-3d}.project-image:after{content:"VIEW PROJECT ↗";position:absolute;right:18px;bottom:18px;padding:10px 13px;border:1px solid #c084fc66;background:#08060dcc;color:#e9ddff;font-size:10px;letter-spacing:.12em;opacity:0;transform:translateY(10px);transition:.4s;pointer-events:none}.project-image:hover:after{opacity:1;transform:none}.project-image img{transition:transform 1s cubic-bezier(.2,.8,.2,1)}.project-image:hover img{transform:scale(1.045)}
.bento-card,.steps>div{transform-style:preserve-3d}.bento-card:hover{transform:translateY(-8px) rotateX(1deg);border-color:#8b5cf6;box-shadow:0 22px 70px #8b5cf622}
.steps>div{transition:transform .45s,background .45s,border-color .45s}.steps>div:hover{transform:translateY(-7px);background:#160b25;border-color:#a855f7}
.contact-section{position:relative;overflow:hidden}.contact-section:before{content:"NISORA";position:absolute;right:-3vw;bottom:-.2em;font:700 clamp(130px,22vw,360px)/.8 'Space Grotesk';letter-spacing:-.1em;color:#a855f708;pointer-events:none}
.reveal{opacity:0;transform:translateY(34px);filter:blur(8px);transition:opacity .9s,transform 1s cubic-bezier(.2,.8,.2,1),filter 1s}.reveal.is-visible{opacity:1;transform:none;filter:none}
@media(max-width:850px){.topbar nav{position:absolute;left:5vw;right:5vw;top:78px;display:grid;gap:0;background:#08060df2;border:1px solid #302040;border-radius:18px;padding:12px;opacity:0;pointer-events:none;transform:translateY(-10px);transition:.3s}.topbar.nav-open nav{opacity:1;pointer-events:auto;transform:none}.topbar nav a{padding:15px;border-bottom:1px solid #2a2038}.topbar nav a:last-child{border:0}.menu{display:block;color:var(--ink);font-size:24px}.header-cta{display:none}.hero-art{margin-top:10px}.project-image:after{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none;filter:none}}

/* Nisora Digital — handcrafted refinement pass */
:root{--ink:#f4f0ff;--paper:#09070f;--muted:#a9a1bb;--line:#2b2439;--acid:#a98bff;--blue:#6e49ff;--surface:#120d1c;--surface-2:#1a1228}
html{background:var(--paper);scroll-behavior:smooth}
body{background:radial-gradient(900px 500px at 85% -10%,rgba(112,65,255,.18),transparent 65%),var(--paper);color:var(--ink)}
.topbar{background:rgba(9,7,15,.82);border-color:var(--line);backdrop-filter:blur(22px)}
.logo-symbol{border-color:var(--acid);color:var(--acid)}
.topbar nav a,.text-link{transition:color .25s,opacity .25s,transform .35s}
.topbar nav a:hover,.text-link:hover{color:var(--acid);opacity:1;transform:translateY(-2px)}
.header-cta,.button{border-color:#65518d}
.header-cta:hover{background:var(--acid);color:#10091c}
.hero{border-color:var(--line)}
h1{font-size:clamp(52px,7.3vw,124px);letter-spacing:-.085em;line-height:.88}
h1 span,h2 em{color:var(--acid);text-shadow:0 0 35px rgba(169,139,255,.12)}
.intro{color:#c0b8cf}
.primary{background:var(--acid);color:#10091c;border-color:var(--acid);font-weight:700}
.primary:hover{color:#10091c}
.button:after{background:#d4c7ff}
.hero-art{background:linear-gradient(145deg,#171027,#0d0915 60%,#25113e);border:1px solid #35244c;box-shadow:inset 0 0 90px rgba(122,65,255,.12)}
.orbit{border-color:#604b89}.orbit-b{border-color:#9c7cff}.orb-core{background:radial-gradient(circle at 35% 25%,#cbbaff,#6d42d8 42%,#211034 74%);box-shadow:0 0 80px rgba(130,76,255,.4),inset -18px -20px 40px rgba(0,0,0,.4);color:#0f081b}
.art-label,.hero-stamp{color:#c8b9e9}
.marquee{background:var(--acid);color:#10091c;border-color:var(--acid)}
.section{border-color:var(--line)}
.side-label,.micro{color:#9484b4}
.section-head p{color:#b9b0c8}
.tinted{background:linear-gradient(180deg,rgba(29,18,44,.35),rgba(9,7,15,0))}
.project-image{background:#171024;border-color:#3a2854;box-shadow:0 18px 70px rgba(0,0,0,.25)}
.project-image img{filter:saturate(.85) contrast(1.04)}
.project-badge{background:#10091c;color:#e6dcff;border-color:#6b5297}
.bento-card{background:linear-gradient(145deg,#171024,#0f0a17);border-color:#36264c;color:var(--ink)}
.bento-card.dark{background:linear-gradient(145deg,#24143d,#10091a)}
.bento-card p,.steps p{color:#b4a9c6}
.bento-card:before{background:rgba(169,139,255,.15)}
.steps>div{border-color:var(--line)}
.steps>div span{color:var(--acid)}
.estimate-note{color:#c2b7d2}
.contact-section{background:linear-gradient(135deg,#120b1e,#09070f 65%);border-color:var(--line)}
.contact-section:before{color:rgba(169,139,255,.045)}
label{color:#c8bce0}input,select,textarea{background:#0d0914!important;color:var(--ink)!important;border-color:#3a2a50!important}input::placeholder,textarea::placeholder{color:#76688b}input:focus,select:focus,textarea:focus{border-color:var(--acid)!important;box-shadow:0 0 0 3px rgba(169,139,255,.1)}
footer{background:#06050a;color:#bcb0ce;border-color:var(--line)}
footer .logo{color:var(--ink)}
.scroll-progress{background:var(--acid)!important}
.cursor-orb{background:var(--acid)!important;box-shadow:0 0 24px rgba(169,139,255,.7)!important}.cursor-ring{border-color:var(--acid)!important}
@media(max-width:850px){.topbar nav{background:#0b0811;border-color:var(--line)}.hero-art{margin-top:20px}.page-grid{grid-template-columns:1fr}.side-label{padding-top:45px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Final visual tuning — dimensional orb, richer violet lighting, and layered motion */
:root{
  --violet-electric:#b98cff;
  --violet-laser:#8f5cff;
  --violet-ink:#10091d;
  --violet-glow:rgba(151,92,255,.42);
}
.hero-art{
  isolation:isolate;
  background:
    radial-gradient(ellipse at 52% 45%,rgba(115,67,205,.24),transparent 30%),
    radial-gradient(ellipse at 20% 80%,rgba(64,39,100,.2),transparent 40%),
    linear-gradient(135deg,#15101f 0%,#09070f 58%,#1b0c2d 100%) !important;
}
.hero-art:before{
  inset:7% 9% !important;
  border:1px solid rgba(185,140,255,.22) !important;
  box-shadow:0 0 80px rgba(143,92,255,.06);
  animation:orbitalDrift 30s linear infinite !important;
}
.hero-art:after{
  inset:24% 14% !important;
  border:1px dashed rgba(185,140,255,.2) !important;
  animation:orbitalDriftReverse 19s linear infinite !important;
}
@keyframes orbitalDrift{to{transform:rotate(360deg) scale(1.04)}}
@keyframes orbitalDriftReverse{to{transform:rotate(-360deg) scale(.96)}}
.orbit{border-color:rgba(185,140,255,.32) !important;animation:orbitSweep 24s linear infinite,orbitBreathe 9s ease-in-out infinite alternate !important;will-change:transform}
.orbit-b{border-color:rgba(143,92,255,.5) !important;animation:orbitSweepReverse 31s linear infinite,orbitBreathe 11s ease-in-out infinite alternate !important}
@keyframes orbitSweep{to{transform:rotate(335deg) scale(1.03)}}
@keyframes orbitSweepReverse{to{transform:rotate(-305deg) scale(.97)}}
@keyframes orbitBreathe{from{opacity:.38}to{opacity:.95}}
.orb-core{
  width:clamp(178px,18vw,244px) !important;
  height:clamp(178px,18vw,244px) !important;
  position:absolute;
  border:1px solid rgba(224,205,255,.28);
  background:
    radial-gradient(circle at 28% 20%,#eee2ff 0%,#c2a0ff 12%,#9460f4 30%,#5e2ab5 53%,#241039 78%,#0b0712 100%) !important;
  color:#0b0613 !important;
  box-shadow:
    0 0 0 12px rgba(185,140,255,.045),
    0 0 0 25px rgba(185,140,255,.018),
    0 20px 75px rgba(91,43,173,.42),
    inset -24px -30px 42px rgba(5,2,12,.6),
    inset 12px 12px 24px rgba(255,255,255,.17) !important;
  text-shadow:0 2px 0 rgba(255,255,255,.08);
  animation:coreFloat 7s ease-in-out infinite,coreLight 8s ease-in-out infinite alternate !important;
  transition:transform .45s cubic-bezier(.16,1,.3,1),filter .45s;
}
.orb-core:before{
  content:"";
  position:absolute;
  inset:7%;
  border-radius:50%;
  border:1px solid rgba(239,225,255,.18);
  background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 34%,rgba(8,3,18,.2) 75%);
  transform:rotate(-22deg);
  pointer-events:none;
}
.orb-core:after{
  content:"";
  position:absolute;
  width:34%;height:14%;
  top:10%;left:18%;
  border-radius:50%;
  background:rgba(255,255,255,.13);
  filter:blur(13px);
  transform:rotate(-28deg);
  pointer-events:none;
}
.orb-core span{position:relative;z-index:2;color:#10091d;text-shadow:0 1px 0 rgba(255,255,255,.12)}
@keyframes coreLight{from{filter:saturate(.96) brightness(.95)}to{filter:saturate(1.14) brightness(1.08)}}
.hero-art .art-label,.hero-art .hero-stamp{transition:color .4s,text-shadow .4s}
.hero-art:hover .art-label,.hero-art:hover .hero-stamp{color:#e4d5ff;text-shadow:0 0 20px rgba(185,140,255,.22)}
.hero-art:hover .orb-core{filter:saturate(1.16) brightness(1.08)}
.marquee{background:linear-gradient(90deg,#9b6cf4,#c2a1ff,#9b6cf4) !important;background-size:200% 100% !important;animation:marqueeGlow 9s ease-in-out infinite}
@keyframes marqueeGlow{50%{background-position:100% 0}}
.bento-card,.project-image,.steps>div{will-change:transform}
.bento-card:before{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(circle at var(--card-x,50%) var(--card-y,50%),rgba(185,140,255,.2),transparent 42%);transition:opacity .35s}
.bento-card:hover:before{opacity:1}
@media(max-width:850px){
  .hero-art{min-height:470px !important}
  .orb-core{width:190px !important;height:190px !important}
}
@media(max-width:520px){
  .hero-art{min-height:350px !important}
  .orb-core{width:150px !important;height:150px !important}
}


/* Cinematic entrance sequence */
body.is-loading{overflow:hidden}
.entry-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#07050c;color:#f4efff;overflow:hidden;isolation:isolate;transition:opacity .9s cubic-bezier(.2,.8,.2,1),visibility .9s}
.entry-screen.is-done{opacity:0;visibility:hidden;pointer-events:none}
.entry-grid{position:absolute;inset:-20%;opacity:.28;background-image:linear-gradient(rgba(177,126,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(177,126,255,.12) 1px,transparent 1px);background-size:clamp(28px,4vw,70px) clamp(28px,4vw,70px);transform:perspective(600px) rotateX(62deg) translateY(22%);animation:entryGridMove 5s linear infinite}
.entry-scanline{position:absolute;inset:0;background:linear-gradient(transparent 0%,rgba(183,132,255,.05) 48%,rgba(183,132,255,.25) 50%,transparent 52%);mix-blend-mode:screen;animation:entryScan 2.8s ease-in-out infinite}
.entry-top,.entry-bottom{position:absolute;left:clamp(20px,4vw,70px);right:clamp(20px,4vw,70px);display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#a89abf}
.entry-top{top:clamp(22px,4vw,60px)}
.entry-bottom{bottom:clamp(22px,4vw,60px);gap:24px}
.entry-center{position:relative;display:grid;place-items:center;width:min(80vw,620px);height:min(80vw,620px)}
.entry-orbit{position:absolute;border:1px solid rgba(176,123,255,.28);border-radius:50%;inset:5%;transform:rotate(-24deg) scaleX(1.45);animation:entryOrbit 14s linear infinite}
.entry-orbit-two{inset:14%;border-style:dashed;border-color:rgba(211,179,255,.25);transform:rotate(62deg) scaleX(.8);animation:entryOrbitReverse 10s linear infinite}
.entry-monogram{position:relative;display:grid;place-items:center;width:clamp(112px,17vw,220px);height:clamp(112px,17vw,220px);border-radius:50%;font:500 clamp(72px,11vw,150px)/1 'Space Grotesk';letter-spacing:-.14em;color:#0b0613;background:radial-gradient(circle at 28% 18%,#f1ddff 0%,#bd8dff 17%,#8148ed 40%,#3b176e 72%,#0a0610 100%);box-shadow:0 0 0 1px rgba(232,209,255,.35),0 0 0 24px rgba(161,101,255,.035),0 0 120px rgba(125,63,255,.42),inset -24px -30px 42px rgba(5,2,12,.65);animation:entryCore 3.5s cubic-bezier(.2,.8,.2,1) infinite alternate}
.entry-monogram:before{content:"";position:absolute;inset:8%;border:1px solid rgba(255,240,255,.22);border-radius:50%;transform:rotate(-25deg)}
.entry-monogram:after{content:"";position:absolute;top:13%;left:20%;width:32%;height:12%;border-radius:50%;background:rgba(255,255,255,.22);filter:blur(12px);transform:rotate(-30deg)}
.entry-monogram span{position:absolute;bottom:12%;font:700 clamp(14px,2vw,24px)/1 'Space Grotesk';letter-spacing:0}
.entry-wordmark{position:absolute;bottom:7%;display:flex;align-items:baseline;gap:12px;font:600 clamp(20px,3vw,42px)/1 'Space Grotesk';letter-spacing:-.07em;animation:entryWordReveal 1.2s .55s both cubic-bezier(.2,.8,.2,1)}
.entry-wordmark span:last-child{font-size:.45em;letter-spacing:.16em;color:#bb91ff}
.entry-status{position:absolute;top:100%;margin:32px 0 0;font-size:9px;letter-spacing:.2em;color:#8e7ca9;animation:entryFadeUp 1s 1s both}
.entry-status b{color:#b88bff;animation:entryBlink 1s steps(2,end) infinite}
.entry-counter{min-width:24px;color:#d2b9ff}
.entry-progress{height:1px;flex:1;max-width:420px;background:#2a203a;overflow:hidden}
.entry-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#6f39c9,#d5b0ff);animation:entryProgress 2.6s cubic-bezier(.2,.8,.2,1) forwards}
.entry-skip{border:0;background:none;color:#a89abf;font:inherit;font-size:9px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color .25s}
.entry-skip:hover{color:#fff}
@keyframes entryGridMove{to{transform:perspective(600px) rotateX(62deg) translateY(5%)}}
@keyframes entryScan{0%,100%{transform:translateY(-70%)}50%{transform:translateY(70%)}}
@keyframes entryOrbit{to{transform:rotate(336deg) scaleX(1.45)}}
@keyframes entryOrbitReverse{to{transform:rotate(-298deg) scaleX(.8)}}
@keyframes entryCore{to{transform:scale(1.045) rotate(4deg);filter:saturate(1.15) brightness(1.1)}}
@keyframes entryWordReveal{from{opacity:0;transform:translateY(22px);letter-spacing:.3em}to{opacity:1;transform:none;letter-spacing:-.07em}}
@keyframes entryFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes entryBlink{50%{opacity:.2}}
@keyframes entryProgress{to{width:100%}}
@media(max-width:650px){.entry-top span:nth-child(2){display:none}.entry-wordmark{bottom:4%;gap:8px}.entry-status{white-space:nowrap;font-size:7px}.entry-bottom{gap:12px}.entry-skip{font-size:8px}}
@media(prefers-reduced-motion:reduce){.entry-grid,.entry-scanline,.entry-orbit,.entry-monogram,.entry-wordmark,.entry-status,.entry-progress i{animation:none!important}.entry-progress i{width:100%}.entry-screen{transition:none}}

.contact-direct{margin-top:1.25rem;line-height:1.8}.contact-direct a{text-decoration:underline;text-underline-offset:3px}

/* Interactive capability cube */
.interactive-stage{display:grid;place-items:center;perspective:1100px;isolation:isolate}
.interactive-stage:before{content:"";position:absolute;inset:12%;border:1px solid rgba(192,155,255,.18);border-radius:28px;transform:rotate(-12deg);box-shadow:0 0 90px rgba(137,83,255,.12);pointer-events:none}
.cube-hint{position:absolute;top:8%;left:9%;font:10px/1 'Space Grotesk';letter-spacing:.18em;color:#bba7d7}
.feature-cube{position:relative;width:clamp(190px,20vw,280px);height:clamp(190px,20vw,280px);transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(-35deg);transition:transform .7s cubic-bezier(.2,.8,.2,1);cursor:pointer;animation:cubeFloat 7s ease-in-out infinite}
.feature-cube:hover,.feature-cube:focus-visible{transform:rotateX(-8deg) rotateY(-125deg) scale(1.04);outline:none}
.cube-face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:24px;background:linear-gradient(145deg,#bfa1ff,#5b2da5 70%,#20102f);border:1px solid rgba(242,226,255,.45);box-shadow:inset 0 0 35px rgba(255,255,255,.08),0 0 30px rgba(137,83,255,.13);backface-visibility:visible;color:#10081b}
.cube-face span{font:11px 'Space Grotesk';opacity:.65}.cube-face strong{font:500 clamp(25px,3vw,42px)/.9 'Space Grotesk';letter-spacing:-.07em}.cube-face small{font-size:11px;letter-spacing:.06em;opacity:.75}
.cube-front{transform:translateZ(calc(clamp(190px,20vw,280px)/2))}.cube-back{transform:rotateY(180deg) translateZ(calc(clamp(190px,20vw,280px)/2))}.cube-right{transform:rotateY(90deg) translateZ(calc(clamp(190px,20vw,280px)/2))}.cube-left{transform:rotateY(-90deg) translateZ(calc(clamp(190px,20vw,280px)/2))}.cube-top{transform:rotateX(90deg) translateZ(calc(clamp(190px,20vw,280px)/2))}.cube-bottom{transform:rotateX(-90deg) translateZ(calc(clamp(190px,20vw,280px)/2))}
.cube-popover{position:absolute;right:8%;bottom:9%;width:min(220px,42%);padding:15px;background:rgba(10,6,18,.78);border:1px solid #7551a5;color:#e9ddff;backdrop-filter:blur(12px);opacity:.85;transition:.3s}.cube-popover-kicker{display:block;font-size:9px;letter-spacing:.15em;color:#b99bff;margin-bottom:8px}.cube-popover strong{font:500 20px/1 'Space Grotesk';letter-spacing:-.05em}.cube-popover p{font-size:11px;line-height:1.5;color:#bcaed0;margin:8px 0 0}
@keyframes cubeFloat{50%{translate:0 -10px}}
/* Cube-based cinematic entrance */
.entry-cube-stage{width:min(58vw,330px);aspect-ratio:1;display:grid;place-items:center;perspective:900px;filter:drop-shadow(0 0 70px rgba(150,90,255,.3))}.entry-cube{position:relative;width:clamp(115px,18vw,210px);height:clamp(115px,18vw,210px);transform-style:preserve-3d;transform:rotateX(-22deg) rotateY(-38deg);animation:entryCubeSpin 9s linear infinite}.entry-cube i{position:absolute;inset:0;background:linear-gradient(145deg,#ead8ff,#9b5cf2 45%,#24103f);border:1px solid rgba(245,229,255,.6);box-shadow:inset 0 0 35px rgba(255,255,255,.12)}.entry-cube i:nth-child(1){transform:translateZ(50%)}
.entry-cube i:nth-child(1){transform:translateZ(clamp(57px,9vw,105px))}.entry-cube i:nth-child(2){transform:rotateY(180deg) translateZ(clamp(57px,9vw,105px))}.entry-cube i:nth-child(3){transform:rotateY(90deg) translateZ(clamp(57px,9vw,105px))}.entry-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(clamp(57px,9vw,105px))}.entry-cube i:nth-child(5){transform:rotateX(90deg) translateZ(clamp(57px,9vw,105px))}.entry-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(clamp(57px,9vw,105px))}
@keyframes entryCubeSpin{to{transform:rotateX(338deg) rotateY(322deg) rotateZ(8deg)}}
@media(prefers-reduced-motion:reduce){.feature-cube,.entry-cube{animation:none}.feature-cube{transform:rotateX(-12deg) rotateY(-30deg)}}
@media(max-width:520px){.cube-popover{width:52%;right:4%;bottom:5%;padding:11px}.cube-popover strong{font-size:16px}.cube-hint{top:5%}}


/* CUBE EXPERIENCE OVERRIDE — interactive, directional and tactile */
.entry-cube-stage{position:relative;width:min(360px,72vw);height:300px;display:grid;place-items:center;perspective:1100px;touch-action:pan-y}
.entry-cube{position:relative;width:190px;height:190px;transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(-28deg);animation:entryCubeFloat 7s ease-in-out infinite;cursor:grab;outline:none;transition:filter .3s}
.entry-cube:active{cursor:grabbing}.entry-cube:focus-visible{filter:drop-shadow(0 0 22px #b98cff)}
.entry-cube i{position:absolute;inset:0;display:grid;place-items:center;border:1px solid #c9a8ff88;background:linear-gradient(145deg,#c9a8ff2b,#5e2a9b22 65%,#090511cc);box-shadow:inset 0 0 35px #b98cff12,0 0 28px #8b5cf622;backface-visibility:visible}
.entry-cube i:after{content:attr(data-word);font:700 20px/1 'Space Grotesk';letter-spacing:.08em;color:#eadfff;text-shadow:0 0 18px #b98cff;transform:translateZ(1px)}
.entry-cube i:nth-child(1){transform:translateZ(95px)}.entry-cube i:nth-child(2){transform:rotateY(180deg) translateZ(95px)}.entry-cube i:nth-child(3){transform:rotateY(90deg) translateZ(95px)}.entry-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(95px)}.entry-cube i:nth-child(5){transform:rotateX(90deg) translateZ(95px)}.entry-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(95px)}
.entry-cube-caption{position:absolute;bottom:0;left:50%;width:100vw;transform:translateX(-50%);font:10px/1.5 'Space Grotesk';letter-spacing:.16em;color:#aa94cb;text-align:center;opacity:.8}
@keyframes entryCubeFloat{0%,100%{transform:translate3d(0,0,0) rotateX(-18deg) rotateY(-28deg)}25%{transform:translate3d(16px,-18px,0) rotateX(-8deg) rotateY(42deg)}50%{transform:translate3d(-12px,12px,0) rotateX(28deg) rotateY(125deg)}75%{transform:translate3d(20px,-8px,0) rotateX(-28deg) rotateY(218deg)}}
.entry-cube.is-dragging{animation:none}
.entry-screen.is-done .entry-cube{animation:entryCubeExit .9s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes entryCubeExit{to{transform:scale(2.2) rotateX(30deg) rotateY(260deg);opacity:0;filter:blur(12px)}}
.feature-cube{width:clamp(190px,20vw,270px)!important;height:clamp(190px,20vw,270px)!important;cursor:grab;touch-action:none;user-select:none;animation:cubeIdle 12s ease-in-out infinite!important;transition:filter .3s}
.feature-cube:active{cursor:grabbing}.feature-cube.is-dragging{animation:none!important}.feature-cube:focus-visible{outline:2px solid #c084fc;outline-offset:15px}
.cube-face{display:grid!important;place-content:center!important;text-align:center!important;gap:8px;backdrop-filter:blur(3px);transition:background .25s,box-shadow .25s}
.cube-face:hover{background:linear-gradient(145deg,#b98cff55,#5e2a9b44);box-shadow:inset 0 0 45px #c084fc22,0 0 35px #8b5cf644}
.cube-face strong{font:700 clamp(18px,2vw,28px)/1 'Space Grotesk';letter-spacing:.08em}.cube-face small{font-size:10px;color:#d8c9ef}.cube-face span{font-size:10px;color:#b98cff;letter-spacing:.12em}
@keyframes cubeIdle{0%,100%{transform:rotateX(-14deg) rotateY(-28deg) translate3d(0,0,0)}50%{transform:rotateX(16deg) rotateY(38deg) translate3d(10px,-14px,0)}}
.hero-art:before,.hero-art:after{pointer-events:none}
@media(max-width:850px){.entry-cube-stage{height:250px}.entry-cube{width:150px;height:150px}.entry-cube i:nth-child(1){transform:translateZ(75px)}.entry-cube i:nth-child(2){transform:rotateY(180deg) translateZ(75px)}.entry-cube i:nth-child(3){transform:rotateY(90deg) translateZ(75px)}.entry-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(75px)}.entry-cube i:nth-child(5){transform:rotateX(90deg) translateZ(75px)}.entry-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(75px)}.feature-cube{width:180px!important;height:180px!important}}
@media(prefers-reduced-motion:reduce){.entry-cube,.feature-cube{animation:none!important}}
/* FINAL CUBE STABILITY PASS */
.feature-cube{animation:none!important;transition:transform .18s ease-out;will-change:transform}
.feature-cube:hover,.feature-cube:focus-visible{transform:var(--cube-transform,rotateX(-14deg) rotateY(-28deg))!important;outline:none}
.feature-cube.is-dragging{transition:none!important;cursor:grabbing}
.entry-cube-stage{animation:entryStageDrift 8s ease-in-out infinite;will-change:transform}
.entry-cube{animation:entryCubeSpinSmooth 16s linear infinite;will-change:transform;transition:filter .25s}
.entry-cube.is-dragging{animation:none!important}
@keyframes entryStageDrift{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(24px,-22px,0)}50%{transform:translate3d(-18px,18px,0)}75%{transform:translate3d(18px,-10px,0)}}
@keyframes entryCubeSpinSmooth{0%{transform:rotateX(-18deg) rotateY(-28deg) rotateZ(0deg)}50%{transform:rotateX(162deg) rotateY(152deg) rotateZ(3deg)}100%{transform:rotateX(342deg) rotateY(332deg) rotateZ(0deg)}}
@media(prefers-reduced-motion:reduce){.entry-cube-stage{animation:none!important}.entry-cube{animation:none!important}}
@media(pointer:coarse){.cursor-orb,.cursor-ring{display:none!important}}

/* MOBILE REFINEMENT PASS */
@media (max-width: 850px){
  html{scroll-behavior:smooth}
  body{overflow-x:hidden}
  .topbar{padding:14px 5vw}
  .brand{font-size:15px}
  .hero{padding-top:18px}
  .hero-copy{padding:46px 0 22px}
  .hero-copy h1{font-size:clamp(44px,12.8vw,72px);line-height:.94;max-width:9ch}
  .hero-copy .intro{font-size:14px;line-height:1.65;max-width:34rem}
  .hero-art{min-height:390px!important;height:390px!important;margin-top:10px;overflow:hidden;transform:none!important}
  .hero-art:before,.hero-art:after{inset:8%;opacity:.45}
  .interactive-stage{min-height:350px;padding:24px 0}
  .interactive-stage:before{inset:8%;border-radius:20px}
  .cube-hint{top:18px;left:18px;font-size:9px}
  .feature-cube{width:170px!important;height:170px!important}
  .cube-face{padding:12px!important}
  .cube-face strong{font-size:18px!important}
  .cube-face small{font-size:9px!important}
  .cube-popover{position:relative;right:auto;bottom:auto;width:min(290px,86%);margin:12px auto 0;padding:13px;opacity:1;z-index:5}
  .cube-popover strong{font-size:18px}
  .entry-screen{padding:22px 5vw}
  .entry-cube-stage{width:86vw;height:245px;max-width:330px;touch-action:pan-y;transform:none!important}
  .entry-cube{width:132px;height:132px}
  .entry-cube i:nth-child(1){transform:translateZ(66px)}
  .entry-cube i:nth-child(2){transform:rotateY(180deg) translateZ(66px)}
  .entry-cube i:nth-child(3){transform:rotateY(90deg) translateZ(66px)}
  .entry-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(66px)}
  .entry-cube i:nth-child(5){transform:rotateX(90deg) translateZ(66px)}
  .entry-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(66px)}
  .entry-cube i:after{font-size:14px}
  .entry-cube-caption{font-size:8px;letter-spacing:.11em;padding:0 12px}
  .section{padding-block:64px}
  .section-heading h2{font-size:clamp(34px,9vw,54px)}
  .bento-grid,.projects-grid,.steps{grid-template-columns:1fr!important}
  .bento-card,.project-image,.steps>div{transform:none!important}
  .button,.header-cta{transform:none!important}
  .contact-grid{grid-template-columns:1fr!important}
}
@media (max-width: 520px){
  .hero-copy{padding-top:32px}
  .hero-copy h1{font-size:clamp(42px,13.8vw,62px)}
  .hero-art{min-height:340px!important;height:340px!important}
  .interactive-stage{min-height:315px}
  .feature-cube{width:148px!important;height:148px!important}
  .cube-popover{font-size:12px}
  .entry-cube-stage{height:220px}
  .entry-cube{width:116px;height:116px}
  .entry-cube i:nth-child(1){transform:translateZ(58px)}
  .entry-cube i:nth-child(2){transform:rotateY(180deg) translateZ(58px)}
  .entry-cube i:nth-child(3){transform:rotateY(90deg) translateZ(58px)}
  .entry-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(58px)}
  .entry-cube i:nth-child(5){transform:rotateX(90deg) translateZ(58px)}
  .entry-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(58px)}
  .entry-cube i:after{font-size:12px}
  .entry-bottom{flex-wrap:wrap;justify-content:center}
}
@media (pointer:coarse){
  body{cursor:auto}
  .hero-art{transform:none!important}
  .project-image,.bento-card,.steps>div{transition:none!important}
}

.form-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}
.form-status.is-error{color:#e9a3b0;}


/* Mobile cube gesture tuning: the cube owns the gesture, not the page. */
.feature-cube, .entry-cube {
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  will-change: transform;
}
@media (pointer: coarse) {
  .feature-cube, .entry-cube { cursor: grab; }
  .feature-cube.is-dragging, .entry-cube.is-dragging { cursor: grabbing; }
}

/* Mobile brochure CTA: paired with the primary hero action only on small screens */
.mobile-brochure-cta{display:none;}
@media(max-width:850px){
  .actions{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;gap:12px;}
  .actions .mobile-brochure-cta{display:inline-flex;}
}
@media(max-width:520px){
  .actions{align-items:stretch;}
  .actions .button{flex:1 1 100%;text-align:center;}
  .actions .text-link{flex-basis:100%;}
}
