:root{
--bg-primary:#0d1115;
--bg-secondary:#141a20;
--bg-tertiary:#1a222b;
--bg-card:#171e26;
--text-primary:#f3f6f4;
--text-secondary:#b4c0b9;
--text-muted:#8d9b92;
--border:#2a3530;
--accent:#66ff00;
--accent-hover:#8bff4b;
--accent-muted:#4fd400;
--accent-soft:rgba(102,255,0,0.12);
--font-sans:"Plus Jakarta Sans",sans-serif;
--font-mono:"IBM Plex Mono",monospace;
--space-xs:0.25rem;
--space-sm:0.5rem;
--space-md:1rem;
--space-lg:1.5rem;
--space-xl:2rem;
--space-2xl:3rem;
--space-3xl:4.5rem;
--space-4xl:7rem;
--container:min(94vw,1160px);
--header-height:4.5rem;
--elevated:0 20px 42px rgba(0,0,0,0.35);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem);}
body{
margin:0;
font-family:var(--font-sans);
font-size:1rem;
line-height:1.65;
color:var(--text-primary);
background:
radial-gradient(circle at 12% 4%,rgba(102,255,0,0.09) 0,transparent 30%),
radial-gradient(circle at 90% 14%,rgba(255,255,255,0.05) 0,transparent 36%),
linear-gradient(180deg,#0f141a 0%,#0d1115 44%,#0b1014 100%);
-webkit-font-smoothing:antialiased;
overflow-x:hidden;
position:relative;
}
body::before{
content:"";
position:fixed;
inset:0;
pointer-events:none;
z-index:-1;
opacity:0.08;
background-image:radial-gradient(rgba(255,255,255,0.22) 0.7px,transparent 0.7px);
background-size:4px 4px;
}
.geo-bg{
position:fixed;
inset:0;
z-index:-1;
pointer-events:none;
overflow:hidden;
}
.geo{
position:absolute;
opacity:0.24;
border:1px solid rgba(102,255,0,0.24);
background:rgba(102,255,0,0.04);
backdrop-filter:blur(1px);
animation-timing-function:linear;
animation-iteration-count:infinite;
}
.geo-square{
width:170px;
height:170px;
top:12%;
left:7%;
border-radius:14px;
animation-name:geoFloatA;
animation-duration:14s;
}
.geo-diamond{
width:130px;
height:130px;
top:68%;
left:15%;
transform:rotate(45deg);
animation-name:geoFloatB;
animation-duration:16s;
}
.geo-ring{
width:220px;
height:220px;
right:8%;
top:18%;
border-radius:999px;
background:transparent;
border:2px solid rgba(255,255,255,0.12);
animation-name:geoFloatC;
animation-duration:18s;
}
.geo-triangle{
width:0;
height:0;
right:14%;
bottom:12%;
border-left:80px solid transparent;
border-right:80px solid transparent;
border-bottom:135px solid rgba(102,255,0,0.08);
border-top:none;
background:transparent;
animation-name:geoFloatB;
animation-duration:20s;
}
.geo-dot-grid{
width:190px;
height:190px;
left:44%;
top:42%;
border:none;
border-radius:16px;
opacity:0.2;
background-image:radial-gradient(rgba(179,255,145,0.8) 1px,transparent 1px);
background-size:12px 12px;
animation-name:geoPulse;
animation-duration:5.5s;
}
.geo-mini{
width:56px;
height:56px;
border-radius:10px;
opacity:0.2;
}
.geo-mini-a{
top:33%;
left:30%;
animation-name:geoFloatD;
animation-duration:12s;
}
.geo-mini-b{
top:74%;
left:62%;
animation-name:geoFloatE;
animation-duration:13s;
}
.geo-mini-c{
top:21%;
left:74%;
animation-name:geoFloatD;
animation-duration:11s;
}
.geo-mid{
width:92px;
height:92px;
border-radius:16px;
opacity:0.22;
}
.geo-mid-a{
top:52%;
left:8%;
animation-name:geoFloatE;
animation-duration:15s;
}
.geo-mid-b{
top:40%;
left:84%;
animation-name:geoFloatD;
animation-duration:14s;
}
.geo-mid-c{
top:82%;
left:36%;
animation-name:geoFloatE;
animation-duration:16s;
}
@keyframes geoFloatA{
0%{transform:translate3d(0,0,0) rotate(0deg);}
50%{transform:translate3d(86px,-70px,0) rotate(18deg);}
100%{transform:translate3d(0,0,0) rotate(0deg);}
}
@keyframes geoFloatB{
0%{transform:translate3d(0,0,0) rotate(45deg);}
50%{transform:translate3d(-78px,-82px,0) rotate(74deg);}
100%{transform:translate3d(0,0,0) rotate(45deg);}
}
@keyframes geoFloatC{
0%{transform:translate3d(0,0,0) scale(1);}
50%{transform:translate3d(-70px,56px,0) scale(1.13);}
100%{transform:translate3d(0,0,0) scale(1);}
}
@keyframes geoPulse{
0%,100%{opacity:0.1;transform:translate3d(0,0,0);}
50%{opacity:0.32;transform:translate3d(36px,-30px,0);}
}
@keyframes geoFloatD{
0%{transform:translate3d(0,0,0) rotate(0deg);}
50%{transform:translate3d(62px,-46px,0) rotate(20deg);}
100%{transform:translate3d(0,0,0) rotate(0deg);}
}
@keyframes geoFloatE{
0%{transform:translate3d(0,0,0) rotate(0deg) scale(1);}
50%{transform:translate3d(-54px,44px,0) rotate(-16deg) scale(1.08);}
100%{transform:translate3d(0,0,0) rotate(0deg) scale(1);}
}
/* Shared with contact-us / projects subpages: full-height column layout */
.contact-test-page{
min-height:100vh;
min-height:100dvh;
display:flex;
flex-direction:column;
}
.contact-test-page>.site-header,
.contact-test-page>.site-footer{flex-shrink:0;}
.contact-test-page>.contact-test-wrap,
.contact-test-page>.projects-main,
.contact-test-page>main.section{
flex:1 0 auto;
width:100%;
}

img{max-width:100%;height:auto;display:block;}
a{color:var(--accent);text-decoration:none;transition:color .22s ease,border-color .22s ease,transform .22s ease;}
a:hover{color:var(--accent-hover);}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--space-lg);}
.site-header{
position:sticky;
top:0;
z-index:120;
background:rgba(11,16,20,0.76);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
border-bottom:1px solid var(--border);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-height);}
.logo img{height:2.7rem;width:auto;filter:drop-shadow(0 4px 12px rgba(102,255,0,0.16));transition:transform .3s ease,filter .3s ease;}
.logo:hover img{transform:translateY(-1px);filter:drop-shadow(0 7px 16px rgba(102,255,0,0.28));}
.nav{display:flex;gap:clamp(1rem,2.5vw,2.3rem);}
.nav a{font-size:.92rem;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);position:relative;padding-bottom:.25rem;}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--accent-muted),var(--accent));transition:transform .22s ease;}
.nav a:hover{color:var(--text-primary);}
.nav a:hover::after{transform:scaleX(1);}
.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:2.25rem;height:2.25rem;padding:0;background:none;border:none;color:var(--text-primary);cursor:pointer;}
.menu-toggle span{display:block;height:2px;background:currentColor;border-radius:10px;}
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#d4ffd1,var(--accent));z-index:150;box-shadow:0 0 14px rgba(102,255,0,0.45);}

.hero{position:relative;padding:var(--space-4xl) 0 calc(var(--space-4xl) - 1rem);overflow:clip;}
.hero-noise{
position:absolute;
inset:0;
background:
radial-gradient(circle at 18% 20%,rgba(46,103,248,0.1),transparent 34%),
radial-gradient(circle at 85% 10%,rgba(102,255,0,0.1),transparent 36%);
filter:blur(4px);
animation:drift 22s linear infinite alternate;
pointer-events:none;
}
.hero-inner{position:relative;text-align:center;max-width:920px;}
.hero-eyebrow{
display:inline-flex;
align-items:center;
gap:0.5rem;
font-family:var(--font-mono);
font-size:.75rem;
letter-spacing:.08em;
text-transform:uppercase;
padding:.45rem .7rem;
border:1px solid rgba(46,103,248,0.28);
border-radius:999px;
color:#d6ffd0;
background:rgba(102,255,0,0.1);
margin-bottom:1.25rem;
}
.hero-title{
font-size:clamp(2.2rem,7.2vw,5.1rem);
line-height:1.02;
letter-spacing:-0.03em;
margin:0 0 1rem;
text-wrap:balance;
text-shadow:none;
}
.hero-lead{
max-width:68ch;
margin:0 auto 1.9rem;
color:var(--text-secondary);
font-size:clamp(1rem,1.9vw,1.2rem);
}
.hero-cta{display:flex;justify-content:center;gap:.85rem;flex-wrap:wrap;margin-bottom:2rem;}
.btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:.82rem 1.3rem;
border-radius:10px;
border:1px solid transparent;
font-family:var(--font-mono);
font-size:.9rem;
font-weight:500;
letter-spacing:.04em;
text-transform:uppercase;
transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,color .25s ease,border-color .25s ease;
}
.btn-primary{background:linear-gradient(135deg,#aaff73,var(--accent));color:#081104;box-shadow:0 8px 22px rgba(102,255,0,0.2);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(102,255,0,0.26);color:#050b03;}
.btn-secondary{border-color:#3a4840;color:#e4ebe6;background:#11171d;}
.btn-secondary:hover{border-color:#5b6f62;color:#ffffff;transform:translateY(-2px);}
.hero-stats{
list-style:none;
padding:0;
margin:1.8rem auto 0;
display:grid;
gap:.8rem;
grid-template-columns:repeat(3,minmax(0,1fr));
max-width:900px;
}
.hero-stats li{
display:flex;
flex-direction:column;
align-items:center;
gap:.2rem;
padding:.9rem .8rem;
border:1px solid var(--border);
border-radius:12px;
background:#ffffff;
background:var(--bg-card);
box-shadow:var(--elevated);
}
.hero-stats strong{font-family:var(--font-mono);font-size:1rem;color:#f2fff0;}
.hero-stats span{font-size:.84rem;color:var(--text-secondary);}

.section{padding:var(--space-3xl) 0;}
.section-kicker{
margin:0 0 .55rem;
font-family:var(--font-mono);
font-size:.75rem;
letter-spacing:.08em;
text-transform:uppercase;
color:#c5d4cb;
}
.section-title{
margin:0 0 1rem;
font-size:clamp(1.8rem,5vw,3.2rem);
line-height:1.08;
letter-spacing:-0.02em;
text-wrap:balance;
}
.trust-strip{padding-top:0;padding-bottom:2.2rem;}
.trust-inner{
display:grid;
grid-template-columns:repeat(5,minmax(0,1fr));
gap:.9rem;
}
.trust-inner p{
margin:0;
font-family:var(--font-mono);
font-size:.74rem;
text-transform:uppercase;
letter-spacing:.06em;
text-align:center;
padding:.8rem .5rem;
border:1px solid var(--border);
border-radius:8px;
color:#b1c0b7;
background:var(--bg-card);
}

.services{position:relative;}
.services-intro{margin:0 0 2rem;color:var(--text-secondary);max-width:72ch;}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.services-grid a.card{text-decoration:none;color:inherit;}
.card{
display:flex;
flex-direction:column;
gap:.6rem;
padding:1.2rem 1rem;
background:
linear-gradient(180deg,rgba(46,103,248,0.04),rgba(46,103,248,0) 35%),
linear-gradient(180deg,rgba(102,255,0,0.05),rgba(102,255,0,0) 35%),
var(--bg-card);
border:1px solid var(--border);
border-radius:14px;
transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .25s ease,box-shadow .25s ease;
}
.card:hover{
transform:translateY(-5px);
border-color:rgba(139,248,87,0.55);
border-color:rgba(46,103,248,0.35);
border-color:rgba(102,255,0,0.35);
box-shadow:0 20px 42px rgba(0,0,0,0.35);
}
.card-icon{
display:inline-flex;
align-items:center;
justify-content:center;
width:2.7rem;
height:2.7rem;
border-radius:10px;
color:var(--accent);
background:linear-gradient(135deg,rgba(102,255,0,0.16),rgba(102,255,0,0.06));
border:1px solid rgba(102,255,0,0.18);
}
.card h3{margin:0;font-size:1.15rem;}
.card p{margin:0;color:var(--text-secondary);font-size:.95rem;}

.about-inner{
display:grid;
grid-template-columns:1fr;
gap:1.1rem;
align-items:start;
}
.about-intro .section-title{margin-bottom:.2rem;}
.about-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:1rem;
align-items:stretch;
}
.about-panel,.business-summary{
padding:1.2rem;
border-radius:14px;
border:1px solid var(--border);
background:var(--bg-card);
min-height:100%;
}
.about-panel p,.business-summary p{margin:0 0 1rem;color:var(--text-secondary);}
.about-panel p:last-child,.business-summary p:last-child{margin-bottom:0;}
.business-summary strong{color:var(--text-primary);}

.contact-intro{margin-bottom:1.1rem;}
.contact-intro .section-title{margin-bottom:.2rem;}
.contact-panel{
text-align:center;
padding:2.2rem 1rem;
border-radius:20px;
border:1px solid var(--border);
background:
radial-gradient(circle at 20% 0,rgba(46,103,248,0.07),transparent 42%),
radial-gradient(circle at 80% 100%,rgba(102,255,0,0.08),transparent 40%),
var(--bg-card);
}
.contact-lead{margin:0 auto 1.1rem;max-width:64ch;color:var(--text-secondary);}
.contact-lead-line{margin:0 0 .35rem;color:inherit;text-wrap:balance;}
.contact-lead-line:last-child{margin-bottom:0;}
.contact-email{
font-family:var(--font-mono);
font-size:clamp(1.15rem,4vw,1.8rem);
letter-spacing:.03em;
color:#d4ffd0;
border-bottom:1px solid rgba(102,255,0,0.35);
padding-bottom:.2rem;
}
.contact-email:hover{color:#f4fff2;border-color:var(--accent-hover);}

.site-footer{
padding:2.25rem 0 2.5rem;
border-top:1px solid var(--border);
background:#10161c;
}
.footer-main{
display:grid;
grid-template-columns:minmax(220px,1fr) minmax(0,1.4fr);
gap:clamp(1.75rem,4vw,3rem);
align-items:start;
}
.footer-brand{display:flex;flex-direction:column;gap:.75rem;max-width:22rem;}
.footer-logo-link{display:inline-block;line-height:0;align-self:flex-start;}
.footer-logo{height:2.25rem;width:auto;transition:filter .25s ease,transform .25s ease;}
.footer-logo-link:hover .footer-logo{filter:drop-shadow(0 0 12px rgba(102,255,0,0.25));transform:translateY(-1px);}
.footer-areas{margin:0;color:var(--text-muted);font-size:.82rem;line-height:1.45;}
.footer-contact{
margin:0;
font-style:normal;
display:flex;
flex-direction:column;
gap:.35rem;
font-size:.9rem;
}
.footer-contact a{color:var(--accent);text-decoration:none;font-weight:500;}
.footer-contact a:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px;}
.footer-copy{
margin:0;
padding-top:.35rem;
color:var(--text-muted);
font-size:.78rem;
line-height:1.5;
border-top:1px solid var(--border);
display:flex;
flex-direction:column;
gap:.2rem;
}
.footer-copy-line{display:block;}
.footer-links{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:clamp(1.25rem,3vw,2.5rem);
justify-content:end;
}
.footer-nav-heading{
margin:0 0 .65rem;
font-family:var(--font-mono);
font-size:.72rem;
font-weight:600;
letter-spacing:.1em;
text-transform:uppercase;
color:#c5d4cb;
}
.footer-nav-list{
list-style:none;
margin:0;
padding:0;
display:flex;
flex-direction:column;
gap:.45rem;
}
.footer-nav-list a{
color:var(--text-secondary);
font-size:.88rem;
text-decoration:none;
transition:color .2s ease;
}
.footer-nav-list a:hover{color:var(--accent);}
@media (max-width:820px){
.footer-main{grid-template-columns:1fr;}
.footer-links{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;max-width:none;}
.footer-brand{max-width:none;}
}
@media (max-width:480px){
.footer-links{grid-template-columns:1fr;}
}

.cookie-notice{
position:fixed;
bottom:1rem;
left:50%;
transform:translateX(-50%);
z-index:9999;
max-width:min(92vw,760px);
display:flex;
gap:.8rem;
align-items:center;
justify-content:space-between;
padding:.8rem 1rem;
background:var(--bg-tertiary);
border:1px solid var(--border);
border-radius:12px;
box-shadow:var(--elevated);
}
.cookie-notice p{margin:0;color:var(--text-secondary);font-size:.9rem;}
.cookie-accept{
flex-shrink:0;
border:none;
border-radius:8px;
padding:.55rem .9rem;
font-family:var(--font-mono);
font-size:.78rem;
letter-spacing:.04em;
text-transform:uppercase;
cursor:pointer;
color:#061003;
background:linear-gradient(135deg,#aaff73,var(--accent));
}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform;}
.reveal.is-visible{opacity:1;transform:none;}
.hero-eyebrow,.hero-title,.hero-lead,.hero-cta,.hero-stats{animation:riseIn .58s cubic-bezier(.2,.8,.2,1) both;}
.hero-title{animation-delay:90ms;}
.hero-lead{animation-delay:180ms;}
.hero-cta{animation-delay:260ms;}
.hero-stats{animation-delay:340ms;}
@keyframes riseIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
@keyframes drift{from{transform:translate3d(0,0,0);}to{transform:translate3d(1.5%,2.5%,0);}}

@media (max-width:980px){
.services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.about-grid{grid-template-columns:1fr;}
.trust-inner{grid-template-columns:repeat(3,minmax(0,1fr));}
.geo-square{width:120px;height:120px;}
.geo-diamond{width:95px;height:95px;}
.geo-ring{width:170px;height:170px;}
.geo-triangle{border-left-width:56px;border-right-width:56px;border-bottom-width:96px;}
.geo-dot-grid{display:none;}
.geo-mid{width:66px;height:66px;}
.geo-mini{width:40px;height:40px;}
.geo-mid-c,.geo-mini-c{display:none;}
}
@media (max-width:740px){
.nav{
position:absolute;
top:100%;
left:0;
right:0;
padding:1rem;
background:rgba(17,23,29,0.98);
border-bottom:1px solid var(--border);
display:flex;
flex-direction:column;
gap:.8rem;
transform:translateY(-110%);
opacity:0;
pointer-events:none;
transition:transform .25s ease,opacity .25s ease;
}
.nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
.menu-toggle{display:flex;}
.hero{padding-top:4.8rem;}
.hero-stats{grid-template-columns:1fr;}
.services-grid{grid-template-columns:1fr;}
.trust-inner{grid-template-columns:repeat(2,minmax(0,1fr));}
.cookie-notice{flex-direction:column;align-items:flex-start;}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto;}
*,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
.reveal{opacity:1;transform:none;}
.geo{display:none;}
}

.case-study .article-wrap{max-width:42rem;margin:0 auto;padding:var(--space-2xl)var(--space-lg);}
.case-study .case-study-back{display:inline-flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl);color:var(--text-primary);font-size:0.95rem;}
.case-study .case-study-back:hover{color:var(--accent);}
.case-study .case-study-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.2;margin:0 0 var(--space-sm);letter-spacing:-0.02em;}
.case-study .case-study-meta{color:var(--text-secondary);font-size:0.95rem;margin-bottom:var(--space-2xl);}
.case-study .case-study-body h2{font-size:1.25rem;font-weight:600;margin:var(--space-2xl)0 var(--space-md);color:var(--text-primary);}
.case-study .case-study-body h2:first-child{margin-top:0;}
.case-study .case-study-body p{margin:0 0 var(--space-lg);color:var(--text-secondary);}
.case-study .service-links{list-style:none;padding:0;margin:0 0 var(--space-2xl);}
.case-study .service-links li{margin-bottom:var(--space-sm);color:var(--text-secondary);}
.case-study .service-links a{color:var(--accent);font-weight:500;text-decoration:none;}
.case-study .service-links a:hover{text-decoration:underline;}
.case-study .case-study-body ul{margin:0 0 var(--space-lg);padding-left:1.25rem;color:var(--text-secondary);}
.case-study .case-study-body li+li{margin-top:var(--space-xs);}
.case-study-body.legal ul{margin-bottom:var(--space-lg);}

/* —— Projects index —— */
.projects-index .projects-hero{
padding:calc(var(--header-height) + var(--space-2xl))0 var(--space-2xl);
text-align:center;
border-bottom:1px solid var(--border);
background:
radial-gradient(circle at 20% 0,rgba(102,255,0,0.06),transparent 45%),
radial-gradient(circle at 80% 80%,rgba(46,103,248,0.05),transparent 40%),
transparent;
}
.projects-index .projects-hero-inner{max-width:720px;margin:0 auto;}
.projects-index .projects-hero .section-kicker{margin-bottom:.6rem;}
.projects-index .projects-hero .section-title{margin-bottom:.85rem;}
.projects-index .projects-lead{
margin:0 auto;
max-width:52ch;
color:var(--text-secondary);
font-size:clamp(1rem,1.85vw,1.12rem);
}
.projects-index .projects-section{padding-top:var(--space-2xl);}
.projects-index .projects-grid{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:1.15rem;
}
.projects-index .project-card{
display:flex;
flex-direction:column;
border-radius:16px;
border:1px solid var(--border);
background:var(--bg-card);
overflow:hidden;
transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .22s ease,box-shadow .22s ease;
}
.projects-index .project-card:hover{
transform:translateY(-4px);
border-color:rgba(102,255,0,0.28);
box-shadow:var(--elevated);
}
.projects-index a.project-card-media{
display:block;
text-decoration:none;
color:inherit;
}
.projects-index .project-card-media{
aspect-ratio:16/9;
background:var(--bg-secondary);
border-bottom:1px solid var(--border);
overflow:hidden;
line-height:0;
}
.projects-index .project-card-media img{
width:100%;
height:100%;
object-fit:cover;
object-position:left top;
display:block;
}
.projects-index .project-card-body{padding:1.15rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem;flex:1;}
.projects-index .project-card-tags{
display:flex;flex-wrap:wrap;gap:.4rem;
margin:0;padding:0;list-style:none;
}
.projects-index .project-card-tags li{
font-family:var(--font-mono);
font-size:.68rem;
letter-spacing:.06em;
text-transform:uppercase;
}
.projects-index .project-card-tags li a{
display:block;
padding:.28rem .5rem;
border-radius:6px;
border:1px solid var(--border);
color:var(--text-muted);
background:rgba(102,255,0,0.04);
text-decoration:none;
}
.projects-index .project-card-tags li a:hover{
color:var(--accent);
border-color:rgba(102,255,0,0.35);
}
.projects-index .project-card-title{margin:0;font-size:1.2rem;letter-spacing:-.02em;color:var(--text-primary);}
.projects-index .project-card-title a{
color:inherit;
text-decoration:none;
}
.projects-index .project-card:hover .project-card-title a{color:var(--accent-hover);}
.projects-index .project-card-excerpt{margin:0;color:var(--text-secondary);font-size:.94rem;line-height:1.55;flex:1;}
.projects-index .project-card-cta,
.projects-index a.project-card-cta{
margin-top:.35rem;
font-family:var(--font-mono);
font-size:.78rem;
letter-spacing:.06em;
text-transform:uppercase;
color:var(--accent);
}
.projects-index a.project-card-cta{text-decoration:none;}
.projects-index .project-card:hover a.project-card-cta{color:var(--accent-hover);}
.projects-index .project-card--draft{
opacity:.72;
cursor:default;
pointer-events:none;
}
.projects-index .project-card--draft .project-card-cta{color:var(--text-muted);}
.projects-index .project-badge-draft{
align-self:flex-start;
font-family:var(--font-mono);
font-size:.65rem;
letter-spacing:.08em;
text-transform:uppercase;
padding:.25rem .5rem;
border-radius:6px;
background:rgba(141,155,146,0.15);
color:var(--text-muted);
border:1px solid var(--border);
}

/* —— Project detail (case study style) —— */
.project-case .project-detail-wrap{
max-width:min(94vw,920px);
margin:0 auto;
padding:var(--space-2xl)var(--space-lg)var(--space-3xl);
}
.project-case .project-hero-figure{
margin:0 0 var(--space-xl);
border-radius:16px;
overflow:hidden;
border:1px solid var(--border);
background:var(--bg-secondary);
box-shadow:var(--elevated);
}
.project-case .project-hero-figure img{
width:100%;
height:auto;
display:block;
aspect-ratio:16/9;
object-fit:cover;
}
.project-case .case-study-title{margin-bottom:.35rem;}
.project-case .project-meta-row{
display:flex;
flex-wrap:wrap;
gap:.65rem 1.5rem;
margin:0 0 var(--space-2xl);
padding:0;
list-style:none;
}
.project-case .project-meta-row li{
display:flex;
flex-wrap:wrap;
align-items:baseline;
gap:.4rem .6rem;
font-size:.95rem;
color:var(--text-secondary);
}
.project-case .project-meta-row .meta-label{
font-family:var(--font-mono);
font-size:.72rem;
letter-spacing:.07em;
text-transform:uppercase;
color:var(--text-muted);
flex-shrink:0;
}
.project-case .project-meta-row .meta-value{
font-family:var(--font-sans);
color:var(--text-secondary);
}
.project-case .project-meta-row a{color:var(--accent);}
.project-case .project-meta-row a:hover{color:var(--accent-hover);}
.project-case .project-detail-body h2{
font-size:1.2rem;
font-weight:600;
margin:var(--space-2xl)0 var(--space-md);
color:var(--text-primary);
}
.project-case .project-detail-body h2:first-child{margin-top:0;}
.project-case .project-detail-body p{
margin:0 0 var(--space-lg);
color:var(--text-secondary);
}
.project-case .project-detail-body ul{
margin:0 0 var(--space-lg);
padding-left:1.25rem;
color:var(--text-secondary);
}
.project-case .project-detail-body li+li{margin-top:var(--space-xs);}
.project-case .project-gallery{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:1rem;
margin:var(--space-2xl)0;
}
.project-case .project-gallery figure{
margin:0;
border-radius:12px;
overflow:hidden;
border:1px solid var(--border);
background:var(--bg-card);
}
.project-case .project-gallery img{width:100%;height:auto;display:block;aspect-ratio:8/5;object-fit:cover;}
.project-case .project-gallery figcaption{
padding:.65rem .85rem;
font-size:.82rem;
color:var(--text-muted);
border-top:1px solid var(--border);
}
.project-case .project-detail-cta{
margin-top:var(--space-2xl);
padding:1.5rem 1.25rem;
border-radius:14px;
border:1px solid var(--border);
background:
radial-gradient(circle at 0 0,rgba(102,255,0,0.08),transparent 50%),
var(--bg-card);
text-align:center;
}
.project-case .project-detail-cta p{margin:0 0 1rem;color:var(--text-secondary);} 

/* Project gallery lightbox */
.project-case .project-gallery a{display:block;line-height:0;cursor:zoom-in;}
.project-case .lightbox{
position:fixed;
inset:0;
display:none;
align-items:center;
justify-content:center;
padding:1.25rem;
background:rgba(7,10,13,0.86);
backdrop-filter:blur(2px);
z-index:1000;
}
.project-case .lightbox.is-open{display:flex;}
.project-case .lightbox-inner{
position:relative;
max-width:min(96vw,1280px);
max-height:90vh;
}
.project-case .lightbox-image{
max-width:100%;
max-height:90vh;
width:auto;
height:auto;
border:1px solid var(--border);
border-radius:10px;
box-shadow:var(--elevated);
background:#0f141a;
}
.project-case .lightbox-close{
position:absolute;
top:-2.3rem;
right:0;
border:1px solid var(--border);
background:#11171d;
color:var(--text-primary);
border-radius:8px;
padding:.35rem .55rem;
font-family:var(--font-mono);
font-size:.73rem;
text-transform:uppercase;
letter-spacing:.04em;
cursor:pointer;
}
.project-case .lightbox-caption{
margin:.55rem 0 0;
font-size:.85rem;
color:var(--text-secondary);
text-align:center;
}

@media (max-width:720px){
.projects-index .projects-grid{grid-template-columns:1fr;}
.project-case .project-gallery{grid-template-columns:1fr;}
}
