@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { --ink:#12211f; --muted:#65736f; --paper:#f3f5ee; --lime:#c8ee57; --orange:#f27a45; --blue:#1769e8; --blue-light:#4a9bff; --line:#d8dfd3; --white:#fff; --soft:#fbfcf8; }
:root[data-theme="dark"] { --ink:#f3f5ee; --muted:#aab8b0; --paper:#101a18; --lime:#c8ee57; --orange:#ff9160; --blue:#4a9bff; --blue-light:#8cc2ff; --line:#30413c; --white:#192622; --soft:#14201d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans', sans-serif; line-height:1.6; transition:color .35s ease, background-color .35s ease; overflow-x:hidden; }
body.intro-active { overflow:hidden; }
a { color:inherit; text-decoration:none; }
.container { width:min(1160px, calc(100% - 48px)); margin:0 auto; }
.site-header { position:fixed; z-index:1000; top:18px; left:0; right:0; padding:0; pointer-events:none; }
.site-intro { position:fixed; z-index:2000; inset:0; display:grid; place-items:center; overflow:hidden; color:#f3f5ee; background:#0b1513; transition:opacity .65s ease, visibility .65s ease; }
.site-intro.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.intro-noise { position:absolute; inset:0; opacity:.2; background-image:linear-gradient(115deg,transparent 0 45%,rgba(74,155,255,.2) 46%,transparent 47% 100%),linear-gradient(25deg,transparent 0 60%,rgba(200,238,87,.12) 61%,transparent 62%); background-size:240px 240px,320px 320px; animation:intro-drift 14s linear infinite; }
.intro-content { position:relative; z-index:1; width:min(620px,calc(100% - 48px)); }
.intro-logo { display:flex; align-items:center; gap:12px; color:#fff; font:700 1.15rem 'Space Grotesk'; letter-spacing:.1em; }
.intro-logo .brand-mark { background:var(--blue-light); animation:logo-pulse 2.5s ease-out infinite; }
.intro-logo { animation:intro-logo-sequence 1.85s ease-in-out both; }
.intro-kicker, .intro-content h2 { opacity:0; transform:translateY(18px); animation:intro-text-sequence 1.85s ease-in-out both; }
.intro-kicker { margin:42px 0 16px; color:var(--blue-light); font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.intro-content h2 { font-size:clamp(3.3rem,8vw,7rem); line-height:.92; letter-spacing:-.055em; }
.intro-content h2 em { color:var(--lime); font-style:normal; }
.intro-progress { width:min(240px,60%); height:2px; margin-top:42px; background:rgba(255,255,255,.18); overflow:hidden; }
.intro-progress span { display:block; width:100%; height:100%; background:var(--blue-light); transform:translateX(-100%); animation:intro-progress 1.85s cubic-bezier(.65,0,.2,1) forwards; }
.intro-index { position:absolute; right:28px; bottom:25px; color:rgba(255,255,255,.5); font-size:.7rem; letter-spacing:.16em; }
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:62px; padding:10px 16px 10px 20px; border:1px solid color-mix(in srgb, var(--line) 88%, transparent); border-radius:999px; background:color-mix(in srgb, var(--paper) 92%, transparent); box-shadow:0 14px 42px rgba(0,0,0,.22); backdrop-filter:blur(22px) saturate(1.25); -webkit-backdrop-filter:blur(22px) saturate(1.25); pointer-events:auto; transition:background-color .35s, border-color .35s, box-shadow .35s; }
.hero { padding-top:150px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--blue); font:700 1.15rem 'Space Grotesk',sans-serif; letter-spacing:.08em; }
.brand-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brand-mark { width:30px; height:30px; display:grid; place-items:center; position:relative; overflow:hidden; color:#fff; background:var(--blue); border-radius:50%; font-weight:700; box-shadow:0 0 0 0 rgba(23,105,232,.35); animation:logo-pulse 3s ease-out infinite; }
.brand-mark::after { content:''; position:absolute; inset:-55% 35%; background:rgba(255,255,255,.65); transform:rotate(28deg) translateX(-180%); animation:logo-shimmer 3.8s ease-in-out infinite; }
.nav { display:flex; align-items:center; gap:31px; color:var(--ink); font-size:.92rem; }
.nav a { color:var(--ink); transition:color .25s ease, transform .25s ease; }
.nav a:hover { color:var(--orange); }
.header-cta { padding:11px 18px; background:var(--ink); color:var(--paper); border-radius:4px; }
.theme-toggle { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:transparent; cursor:pointer; font-size:1.1rem; transition:background-color .25s, color .25s, transform .25s; }
.theme-toggle:hover { color:var(--paper); background:var(--ink); transform:rotate(18deg); }
.menu-button { display:none; width:42px; height:42px; padding:10px; border:1px solid var(--line); background:transparent; border-radius:50%; cursor:pointer; }
.menu-button span { display:block; width:20px; height:2px; margin:4px auto; background:var(--ink); transition:transform .3s ease, opacity .3s ease; }
.menu-button.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.menu-button.is-open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.menu-button.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
.hero { padding:125px 0 105px; overflow:visible; position:relative; }
.hero-backdrop { position:fixed; z-index:0; inset:0; width:100vw; height:100dvh; overflow:hidden; overflow:clip; clip-path:inset(0); pointer-events:none; contain:layout paint; }
.site-header { position:fixed; z-index:1000; }
main, .site-footer { position:relative; z-index:1; }
.backdrop-grid { position:absolute; inset:-30% -10%; opacity:.34; background-image:linear-gradient(color-mix(in srgb, var(--ink) 8%, transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb, var(--ink) 8%, transparent) 1px,transparent 1px); background-size:58px 58px; transform:perspective(500px) rotateX(58deg) translateY(18%); mask-image:linear-gradient(to bottom,transparent,#000 28%,#000 70%,transparent); animation:backdrop-grid-move 20s linear infinite; will-change:background-position; }
.backdrop-line { position:absolute; width:min(75vw, 1100px); height:min(25vw, 360px); border:1px solid rgba(242,122,69,.18); border-radius:50%; transform:rotate(-18deg); animation:backdrop-flow 13s ease-in-out infinite alternate; will-change:transform; }
.line-one { top:4%; right:-22%; }
.line-two { top:24%; right:-31%; border-color:rgba(18,33,31,.13); animation-delay:-5s; animation-duration:17s; }
.backdrop-signal { position:absolute; width:9px; height:9px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 7px rgba(242,122,69,.1),0 0 30px rgba(242,122,69,.65); animation:signal-travel 9s ease-in-out infinite; }
.signal-one { top:25%; left:12%; }
.signal-two { top:63%; right:18%; background:var(--ink); box-shadow:0 0 0 7px rgba(18,33,31,.08),0 0 25px rgba(18,33,31,.3); animation-delay:-4s; animation-duration:12s; }
.backdrop-beam { position:absolute; width:min(60vw, 850px); height:2px; background:linear-gradient(90deg,transparent,var(--blue-light),transparent); opacity:.42; filter:drop-shadow(0 0 8px var(--blue)); transform:rotate(-28deg); animation:beam-sweep 11s ease-in-out infinite; will-change:transform,opacity; }
.beam-one { top:27%; left:-28%; }
.beam-two { top:74%; right:-28%; opacity:.25; animation-delay:-5.5s; animation-duration:14s; }
.backdrop-scan { position:absolute; left:-10%; width:120%; height:1px; background:linear-gradient(90deg,transparent,var(--blue-light),transparent); opacity:.22; animation:scan-drift 8s linear infinite; }
.scan-one { top:36%; }
.scan-two { top:82%; opacity:.13; animation-delay:-3.5s; animation-duration:12s; }
.backdrop-particle { position:absolute; width:5px; height:5px; border-radius:50%; background:var(--blue-light); box-shadow:0 0 0 5px color-mix(in srgb, var(--blue-light) 12%, transparent),0 0 18px var(--blue-light); animation:particle-float 7s ease-in-out infinite; will-change:transform,opacity; }
.particle-one { top:19%; left:29%; animation-delay:-1s; }
.particle-two { top:47%; left:7%; width:3px; height:3px; animation-delay:-4s; animation-duration:10s; }
.particle-three { top:69%; right:34%; background:var(--orange); box-shadow:0 0 0 5px color-mix(in srgb, var(--orange) 12%, transparent),0 0 18px var(--orange); animation-delay:-2s; animation-duration:9s; }
.particle-four { top:31%; right:8%; width:4px; height:4px; animation-delay:-5s; animation-duration:8s; }
.backdrop-square { position:absolute; width:18px; height:18px; border:1px solid color-mix(in srgb, var(--blue-light) 55%, transparent); transform:rotate(45deg); animation:square-drift 12s ease-in-out infinite; }
.square-one { top:22%; right:29%; }
.square-two { top:72%; left:22%; width:12px; height:12px; border-color:color-mix(in srgb, var(--orange) 55%, transparent); animation-delay:-6s; animation-duration:16s; }
.hero::before { content:''; position:absolute; width:430px; height:430px; right:-180px; top:-160px; border:1px solid rgba(242,122,69,.2); border-radius:50%; box-shadow:0 0 0 30px rgba(242,122,69,.035), 0 0 0 60px rgba(242,122,69,.025); animation:slow-drift 16s ease-in-out infinite alternate; pointer-events:none; }
.hero-grid { display:grid; grid-template-columns:1fr .82fr; align-items:center; gap:70px; position:relative; z-index:1; }
.kicker { color:var(--orange); font-size:.77rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
[data-typing] { display:inline-block; min-width:10ch; border-right:1px solid currentColor; padding-right:5px; animation:caret-blink .8s steps(1) infinite; }
h1,h2,h3 { font-family:'Space Grotesk',sans-serif; line-height:1.08; letter-spacing:-.035em; margin:0; }
h1 { max-width:700px; font-size:clamp(2.8rem, 6vw, 5.6rem); font-weight:600; }
h2 { font-size:clamp(2rem, 3.6vw, 3.6rem); }
.hero-copy { max-width:500px; margin:27px 0 31px; color:var(--muted); font-size:clamp(.98rem, 1.5vw, 1.08rem); }
[data-parallax-text] { transform:translate3d(0,var(--text-parallax,0),0); will-change:transform; }
.button { display:inline-flex; align-items:center; gap:18px; padding:15px 20px; background:var(--orange); color:#fff; border:0; border-radius:3px; font-weight:700; cursor:pointer; }
.button::after { content:'↗'; font-size:1.15rem; }
.hero-art { min-height:465px; position:relative; border-radius:200px 200px 8px 8px; background:#12211f; overflow:hidden; isolation:isolate; perspective:700px; transform-style:preserve-3d; }
.hero-art::before { content:''; position:absolute; inset:15% -12% 7%; border:1px solid rgba(200,238,87,.5); border-radius:50%; transform:translate3d(calc(var(--parallax-ring,0) + var(--mouse-x,0)),var(--parallax-ring,0),0) rotate(-23deg); box-shadow:0 0 0 40px rgba(200,238,87,.07), 0 0 0 80px rgba(200,238,87,.04); will-change:transform; }
.hero-art::after { content:'K'; position:absolute; z-index:2; right:8%; bottom:2%; color:var(--lime); font:700 15rem 'Space Grotesk'; opacity:.9; transform:translate3d(var(--mouse-x,0),calc(var(--parallax-letter,0) + var(--mouse-y,0)),0); will-change:transform; }
.art-grid { position:absolute; z-index:-1; inset:0; opacity:.27; background-image:linear-gradient(rgba(200,238,87,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(200,238,87,.15) 1px,transparent 1px); background-size:38px 38px; transform:rotate(-8deg) scale(1.35) translate3d(var(--mouse-x,0),var(--mouse-y,0),0); mask-image:linear-gradient(to bottom,transparent 5%,#000 35%,#000 85%,transparent); animation:grid-slide 18s linear infinite; }
.art-orbit { position:absolute; z-index:1; border:1px solid rgba(200,238,87,.7); border-radius:50%; transform:translate3d(var(--mouse-x,0),var(--parallax-ring,0),0) rotate(-25deg); will-change:transform; }
.orbit-one { width:74%; height:37%; left:13%; top:31%; animation:orbit-breathe 7s ease-in-out infinite; }
.orbit-two { width:52%; height:25%; left:25%; top:37%; border-color:rgba(242,122,69,.8); transform:translate3d(calc(var(--mouse-x,0) * -.7),calc(var(--parallax-ring,0) * .7),0) rotate(28deg); animation:orbit-breathe 5s ease-in-out infinite reverse; }
.art-spark { position:absolute; z-index:3; width:7px; height:7px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 6px rgba(200,238,87,.12),0 0 22px var(--lime); animation:spark-pulse 2.8s ease-in-out infinite; }
.spark-one { left:21%; top:34%; }
.spark-two { right:21%; top:57%; width:5px; height:5px; background:var(--orange); box-shadow:0 0 0 6px rgba(242,122,69,.13),0 0 22px var(--orange); animation-delay:1.2s; }
.art-label { position:absolute; z-index:4; left:11%; top:20%; color:var(--lime); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; transform:translate3d(var(--mouse-x,0),calc(var(--parallax-label,0) + var(--mouse-y,0)),0); will-change:transform; }
.art-caption { position:absolute; z-index:4; right:10%; top:13%; color:rgba(255,255,255,.55); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stat { padding:24px 30px 24px 0; border-right:1px solid var(--line); }
.stat + .stat { padding-left:30px; }
.stat:last-child { border:0; }
.stat strong { display:block; font:600 2rem 'Space Grotesk'; }
.stat span { color:var(--muted); font-size:.88rem; }
.about-section { padding-top:95px; padding-bottom:95px; }
.about-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:80px; align-items:center; }
.about-marker { min-height:300px; display:flex; flex-direction:column; justify-content:space-between; padding:28px; color:#fff; background:var(--blue); border-radius:4px; box-shadow:18px 18px 0 color-mix(in srgb, var(--blue) 22%, transparent); transform:rotate(-3deg); }
.about-logo { display:flex; align-items:center; gap:14px; font:700 clamp(1.15rem, 2vw, 1.55rem) 'Space Grotesk'; letter-spacing:.08em; }
.about-logo .brand-mark { width:clamp(38px, 5vw, 52px); height:clamp(38px, 5vw, 52px); flex:0 0 auto; color:var(--blue); background:#fff; animation:none; box-shadow:none; font-size:1.2em; }
.about-logo .brand-mark::after { display:none; }
.about-marker small { color:#dceaff; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; }
.about-copy { max-width:650px; }
.about-copy h2 { margin:12px 0 22px; }
.about-copy p { color:var(--muted); font-size:1.02rem; white-space:pre-line; }
.about-copy .about-lead { color:var(--ink); font:500 1.28rem/1.45 'Space Grotesk'; }
.section { padding:115px 0; }
.section-header { display:flex; justify-content:space-between; gap:40px; margin-bottom:53px; }
.section-header p { max-width:360px; color:var(--muted); margin:7px 0 0; }
.services { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.service { min-height:290px; padding:28px; background:var(--white); border-top:3px solid var(--lime); transition:transform .25s, border-color .25s, background-color .35s; }
.service:hover { transform:translateY(-7px); border-color:var(--orange); }
.service .number { color:var(--orange); font-size:.76rem; font-weight:700; letter-spacing:.1em; }
.service h3 { margin:65px 0 13px; font-size:1.55rem; }
.service p, .benefit p { color:var(--muted); margin:0; }
.dark-section { color:#fff; background:#12211f; }
.dark-section .section-header p { color:#aab8b0; }
.benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.benefit { border-top:1px solid #3b5048; padding-top:20px; }
.benefit .number { color:var(--lime); font:600 1.05rem 'Space Grotesk'; }
.benefit h3 { margin:56px 0 12px; font-size:1.45rem; }
.gallery-section { background:var(--soft); overflow:hidden; }
.gallery-grid { display:grid; grid-template-columns:1.08fr .92fr; grid-template-rows:260px 260px; gap:18px; }
.gallery-card { min-height:260px; position:relative; overflow:hidden; background:#12211f; transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform .35s ease, box-shadow .35s ease; }
.gallery-card:hover { box-shadow:0 24px 50px rgba(18,33,31,.2); }
.gallery-card-1 { grid-row:span 2; }
.gallery-card img { width:100%; height:100%; display:block; object-fit:cover; opacity:.84; transform:scale(1.04); transition:transform 1s cubic-bezier(.2,.75,.25,1), opacity .5s; }
.gallery-card:hover img { transform:scale(1.12); opacity:1; }
.gallery-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 26%,rgba(10,22,19,.78) 100%); }
.gallery-copy { position:absolute; left:24px; right:24px; bottom:22px; color:#fff; transform:translateY(5px); transition:transform .35s ease; }
.gallery-card:hover .gallery-copy { transform:translateY(0); }
.gallery-copy span { color:var(--lime); font-size:.72rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.gallery-copy h3 { margin:8px 0 0; font-size:1.45rem; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; }
.contact-copy p { max-width:450px; color:var(--muted); font-size:1.05rem; }
.contact-info { display:grid; gap:18px; border-top:1px solid var(--line); padding-top:22px; }
.contact-info div { display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); padding-bottom:15px; }
.contact-info span:first-child { color:var(--muted); font-size:.84rem; }
.page-hero { padding:65px 0 110px; }
.page-hero h1 { max-width:850px; }
.page-content { max-width:750px; padding-bottom:130px; }
.page-content p { color:var(--muted); font-size:1.12rem; }
.site-footer { padding:25px 0; border-top:1px solid var(--line); color:var(--muted); font-size:.83rem; }
.footer-inner { display:flex; justify-content:space-between; gap:20px; }
[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }
.services .service:nth-child(2), .benefits .benefit:nth-child(2) { transition-delay:.1s; }
.services .service:nth-child(3), .benefits .benefit:nth-child(3) { transition-delay:.2s; }
.services .service:nth-child(4) { transition-delay:.3s; }
.services .service:nth-child(5) { transition-delay:.4s; }
.services .service:nth-child(6) { transition-delay:.5s; }
@keyframes grid-slide { from { background-position:0 0,0 0; } to { background-position:38px 38px,38px 38px; } }
@keyframes orbit-breathe { 0%,100% { opacity:.55; } 50% { opacity:1; } }
@keyframes spark-pulse { 0%,100% { transform:scale(.7); opacity:.45; } 50% { transform:scale(1.35); opacity:1; } }
@keyframes slow-drift { from { transform:translate3d(0,0,0) rotate(0); } to { transform:translate3d(-35px,25px,0) rotate(18deg); } }
@keyframes backdrop-grid-move { from { background-position:0 0,0 0; } to { background-position:0 58px,58px 0; } }
@keyframes backdrop-flow { from { transform:translate3d(0,0,0) rotate(-18deg) scale(1); } to { transform:translate3d(-6%,12%,0) rotate(-11deg) scale(1.08); } }
@keyframes signal-travel { 0%,100% { transform:translate3d(0,0,0) scale(.7); opacity:.35; } 50% { transform:translate3d(90px,45px,0) scale(1.2); opacity:1; } }
@keyframes caret-blink { 0%,45% { border-color:currentColor; } 46%,100% { border-color:transparent; } }
@keyframes logo-pulse { 0%,70%,100% { box-shadow:0 0 0 0 rgba(23,105,232,.32); } 82% { box-shadow:0 0 0 8px rgba(23,105,232,0); } }
@keyframes logo-shimmer { 0%,35% { transform:rotate(28deg) translateX(-180%); } 58%,100% { transform:rotate(28deg) translateX(180%); } }
@keyframes beam-sweep { 0%,100% { transform:rotate(-28deg) translate3d(-12%,0,0); opacity:0; } 25%,70% { opacity:.48; } 50% { transform:rotate(-28deg) translate3d(75%,0,0); } }
@keyframes scan-drift { from { transform:translate3d(-8%,0,0); } to { transform:translate3d(8%,0,0); } }
@keyframes particle-float { 0%,100% { transform:translate3d(0,0,0) scale(.65); opacity:.3; } 50% { transform:translate3d(24px,-34px,0) scale(1.25); opacity:1; } }
@keyframes square-drift { 0%,100% { transform:translate3d(0,0,0) rotate(45deg); opacity:.25; } 50% { transform:translate3d(-28px,32px,0) rotate(160deg); opacity:.8; } }
@keyframes menu-item-in { from { opacity:0; transform:translateX(16px); } to { opacity:1; transform:translateX(0); } }
@keyframes menu-item-out { from { opacity:1; transform:translateX(0); } to { opacity:0; transform:translateX(16px); } }
@keyframes intro-content-in { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes intro-logo-sequence { 0%,12% { opacity:0; transform:translateY(18px) scale(.96); } 24%,43% { opacity:1; transform:translateY(0) scale(1); } 54%,100% { opacity:0; transform:translateY(-14px) scale(1.03); } }
@keyframes intro-text-sequence { 0%,38% { opacity:0; transform:translateY(18px); } 52%,82% { opacity:1; transform:translateY(0); } 96%,100% { opacity:0; transform:translateY(-10px); } }
@keyframes intro-progress { to { transform:translateX(0); } }
@keyframes intro-drift { from { background-position:0 0,0 0; } to { background-position:240px 240px,-320px 320px; } }
@media (max-width:760px) {
	.nav { display:flex; visibility:hidden; opacity:0; pointer-events:none; transform:translateY(-12px) scale(.98); transform-origin:top right; transition:opacity .3s ease, transform .3s ease, visibility .3s; }
	.nav.is-open { visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0) scale(1); }
	.nav.is-closing { visibility:visible; opacity:0; pointer-events:none; transform:translateY(-12px) scale(.98); }
	.nav a, .nav .theme-toggle { opacity:0; transform:translateX(16px); }
	.nav.is-open a, .nav.is-open .theme-toggle { animation:menu-item-in .42s cubic-bezier(.2,.8,.2,1) forwards; }
	.nav.is-closing a, .nav.is-closing .theme-toggle { animation:menu-item-out .28s ease forwards; }
	.nav.is-open a:nth-child(1) { animation-delay:.04s; }
	.nav.is-open a:nth-child(2) { animation-delay:.09s; }
	.nav.is-open a:nth-child(3) { animation-delay:.14s; }
	.nav.is-open a:nth-child(4) { animation-delay:.19s; }
	.nav.is-open .theme-toggle { animation-delay:.24s; }
	.nav.is-open .header-cta { animation-delay:.29s; }
}
@media (max-width:760px) { .container { width:min(100% - 32px, 560px); } .site-header { top:10px; } .header-inner { min-height:56px; padding:8px 10px 8px 14px; } .brand { font-size:1rem; } .brand-mark { width:27px; height:27px; } .nav { display:flex; visibility:hidden; opacity:0; pointer-events:none; position:absolute; top:68px; left:0; right:0; padding:18px; flex-direction:column; align-items:stretch; background:color-mix(in srgb, var(--paper) 97%, transparent); color:var(--ink); border:1px solid var(--line); border-radius:20px; box-shadow:0 18px 40px rgba(0,0,0,.25); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); transform:translateY(-12px) scale(.98); transform-origin:top right; transition:opacity .3s ease, transform .3s ease, visibility .3s; } .nav.is-open { visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0) scale(1); } .header-cta { text-align:center; } .theme-toggle { align-self:center; } .menu-button { display:block; } .hero { padding:105px 0 72px; } h1 { font-size:clamp(2.35rem, 11vw, 3.6rem); line-height:1.06; } h2 { font-size:clamp(1.85rem, 9vw, 2.7rem); } h3 { font-size:1.25rem; } .hero-copy { font-size:1rem; line-height:1.55; } .hero-grid, .contact, .about-grid { grid-template-columns:1fr; gap:45px; } .hero-art { min-height:300px; } .hero-art::after { font-size:10rem; } .about-section { padding-top:65px; padding-bottom:65px; } .about-marker { min-height:220px; } .about-logo { font-size:1rem; } .about-logo .brand-mark { width:27px; height:27px; } .about-copy .about-lead { font-size:1.12rem; } .stats, .services, .benefits { grid-template-columns:1fr; } .stat, .stat + .stat { border-right:0; border-bottom:1px solid var(--line); padding:18px 0; } .stat:last-child { border:0; } .section { padding:75px 0; } .section-header { display:block; margin-bottom:30px; } .section-header p { margin-top:20px; } .service { min-height:245px; } .service h3, .benefit h3 { margin-top:40px; } .gallery-grid { display:block; } .gallery-card, .gallery-card-1 { min-height:300px; margin-bottom:16px; } .gallery-card:last-child { margin-bottom:0; } .footer-inner { display:block; } }
@media (max-width:760px) { .hero::before { width:280px; height:280px; right:-150px; top:-70px; } .hero-backdrop { opacity:.62; } .backdrop-grid { background-size:34px 34px; transform:perspective(400px) rotateX(58deg) translateY(25%); } .backdrop-line { width:130vw; height:55vw; right:-55%; } .backdrop-beam { width:120vw; } .hero-art { min-height:340px; border-radius:150px 150px 8px 8px; } .hero-art::after { font-size:10rem; } .art-grid { background-size:26px 26px; } .orbit-one { width:82%; left:9%; } .orbit-two { width:60%; left:20%; } .art-caption { right:8%; top:11%; font-size:.58rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; } .hero-art::before, .hero-art::after, .art-grid, .art-orbit, .art-label, .hero-backdrop * { transform:none; } }
@media (prefers-reduced-motion: reduce) { [data-parallax-text] { transform:none; } }
@media (prefers-reduced-motion: reduce) { .site-intro { transition-duration:.01ms; } .intro-content, .intro-noise, .intro-progress span, .intro-logo, .intro-kicker, .intro-content h2 { animation:none; opacity:1; transform:none; } }
@media (max-width:760px) { .about-logo { gap:10px; font-size:1.02rem; } .about-logo .brand-mark { width:34px; height:34px; font-size:1rem; } }
@media (max-width:760px) {
	.site-header { position:fixed !important; z-index:1000 !important; top:10px !important; left:0 !important; right:0 !important; width:100% !important; transform:none !important; }
 .site-header > .container { width:100%; max-width:none; padding:0; }
 .site-header .header-inner { width:calc(100% - 20px); max-width:none; margin:0 auto; gap:6px; padding:7px 8px 7px 11px; overflow:visible; }
 	.site-header .nav { width:100%; max-width:100%; padding:14px; }
 .brand { min-width:0; flex:1 1 auto; overflow:hidden; }
 .brand-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	.brand-mark { flex:0 0 auto; }
	.menu-button { flex:0 0 auto; }
}
@media (max-width:760px) {
	.hero-backdrop { height:100svh; opacity:.55; }
	.backdrop-grid { inset:-18% -6%; background-size:42px 42px; transform:perspective(420px) rotateX(58deg) translateY(22%); }
	.backdrop-line { width:115vw; height:44vw; right:-42%; }
	.backdrop-beam { width:105vw; filter:drop-shadow(0 0 5px var(--blue)); }
	.backdrop-scan { left:-5%; width:110%; }
	.backdrop-square { width:13px; height:13px; }
	.backdrop-particle { box-shadow:0 0 0 3px color-mix(in srgb, var(--blue-light) 10%, transparent),0 0 10px var(--blue-light); }
}
