/* Premium layer: loads after style.css. Motion only; colours stay per brand. */
html{scroll-behavior:smooth}
body{animation:pg-in .6s var(--ease) both}
body.leaving{opacity:0;transform:translateY(-6px);transition:opacity .22s ease,transform .22s ease}
@keyframes pg-in{from{opacity:0}to{opacity:1}}
[data-rv]{opacity:0;translate:0 28px;transition:opacity .9s var(--ease),translate .9s var(--ease);transition-delay:calc(var(--d,0)*90ms)}
[data-rv].in{opacity:1;translate:0 0}
.hero-c h1{font-size:clamp(2.6rem,8.4vw,7rem);letter-spacing:-.04em;line-height:.98}
.hero-c-art img{will-change:transform;transition:transform .5s var(--ease)}
.hdr nav a:not(.gh){position:relative}
.hdr nav a:not(.gh)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;scale:0 1;transform-origin:left;transition:scale .4s var(--ease)}
.hdr nav a:not(.gh):hover::after,.hdr nav a[aria-current]::after{scale:1 1}
.btn{transition:transform .35s var(--ease),background .25s,color .25s}.btn:hover{transform:translateY(-2px)}
.flag-card,.repo{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.flag-card:hover{transform:translateY(-4px)}
@media(prefers-reduced-motion:reduce){body{animation:none}[data-rv]{opacity:1;translate:none;transition:none}body.leaving{transition:none;opacity:1;transform:none}.hero-c-art img{transition:none}}

/* Home v2 */
.h2-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding-top:var(--hdr);overflow:hidden;background:radial-gradient(60% 50% at 80% 30%,#ecceb4 0,transparent 70%),var(--cream)}
.h2-in{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,4vw,48px);padding-block:clamp(28px,6vw,70px)}
.h2-tag{display:flex;gap:10px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:var(--clay);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.3;scale:1.6}}
.h2-title{font-size:clamp(3.4rem,15vw,13rem);line-height:.86;letter-spacing:-.055em;font-weight:800;font-stretch:80%;position:relative;z-index:1}
.h2-title span{display:block}.h2-title em{font-style:normal;color:var(--clay)}
.h2-foot{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:end;justify-content:space-between;max-width:900px;position:relative;z-index:1}.h2-foot .lead{max-width:34ch;margin:0}
.h2-orb{position:absolute;right:var(--gutter);top:50%;translate:0 -52%;width:clamp(150px,28vw,380px);aspect-ratio:1}
.h2-orb img{position:absolute;inset:17%;width:66%;height:66%;border-radius:50%;box-shadow:0 30px 80px -20px #2a231b66}
.h2-orb svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 28s linear infinite}.h2-orb text{font:500 11.5px var(--mono);letter-spacing:.2em;fill:var(--muted)}
@keyframes spin{to{rotate:360deg}}
@media(max-width:46em){.h2-orb{position:relative;right:auto;top:auto;translate:none;order:-1;width:min(54vw,220px)}.h2-title{font-size:clamp(3rem,18vw,6rem)}}
.h2-marq{border-block:1px solid #2a231b26;overflow:hidden;padding:16px 0;background:var(--ink);color:var(--cream)}
.h2-marq div{display:flex;gap:48px;width:max-content;animation:marq 30s linear infinite}.h2-marq span{font:500 .95rem var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.h2-marq span::after{content:"✦";margin-left:48px;color:var(--clay)}
@keyframes marq{to{translate:-50% 0}}
.h2-build{padding-block:clamp(60px,10vw,140px)}.h2-build ol{list-style:none;margin:0;padding:0}
.h2-build li{display:grid;grid-template-columns:60px minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:baseline;padding:clamp(22px,3.5vw,44px) 0;border-top:1px solid #2a231b33;transition:padding .5s var(--ease),color .3s}
.h2-build li:last-child{border-bottom:1px solid #2a231b33}.h2-build li:hover{padding-left:18px;color:#8a5e42}
.h2-build b{font:500 .85rem var(--mono);color:var(--muted)}.h2-build h3{font-size:clamp(2rem,6vw,4.6rem);letter-spacing:-.04em}.h2-build p{margin:0;color:var(--soft);max-width:40ch}
@media(max-width:46em){.h2-build li{grid-template-columns:36px 1fr}.h2-build p{grid-column:2}}
.h2-lucif{background:#000;color:var(--wt);padding:clamp(70px,11vw,150px) 0;position:relative;overflow:hidden}
.h2-lucif::before{content:"";position:absolute;width:60vw;aspect-ratio:1;right:-15vw;top:-20vw;background:radial-gradient(circle,#22ff4430,transparent 65%)}
.h2-lucif-in{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,6vw,90px);align-items:center}
.h2-lucif .eyebrow{color:var(--g)}.h2-lucif h2{font-size:clamp(2.8rem,8vw,7rem);letter-spacing:-.045em;margin-bottom:22px}.h2-lucif h2 em{font-style:normal;color:var(--g)}
.h2-lucif p{color:var(--txt2);max-width:46ch}
.h2-chat{position:relative;display:flex;flex-direction:column;gap:10px;padding:clamp(20px,3vw,34px);border-radius:var(--r-l);background:#0b141a;border:1px solid #22ff4433;box-shadow:0 0 90px -30px #22ff44}
.h2-chat img{width:120px;border-radius:50%;margin:0 auto 6px;box-shadow:0 0 40px -6px #22ff44}
.h2-chat .bub{max-width:80%;padding:9px 13px;border-radius:12px;font-size:.95rem;line-height:1.4;color:var(--wt)}.h2-chat .out{align-self:flex-end;background:var(--out)}.h2-chat .in{background:var(--in)}.h2-chat small{display:block;text-align:right;font-size:.7rem;color:var(--wm)}
@media(max-width:56em){.h2-lucif-in{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.h2-orb svg,.h2-marq div,.dot{animation:none}}

/* Home v2 fixes: no overlap, calmer scale, better contrast */
.h2-hero{background:radial-gradient(50% 45% at 85% 25%,#ecceb466 0,transparent 70%),var(--cream)}
.h2-in{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tag tag" "title orb" "foot foot";align-content:center;align-items:center;column-gap:clamp(24px,5vw,80px);row-gap:clamp(20px,3.5vw,44px)}
.h2-tag{grid-area:tag}.h2-title{grid-area:title;font-size:clamp(3rem,10.2vw,9rem);line-height:.9;letter-spacing:-.05em}.h2-foot{grid-area:foot}
.h2-title em{color:#8a5e42}
.h2-orb{grid-area:orb;position:relative;right:auto;top:auto;translate:none;width:clamp(170px,26vw,360px)}
.h2-build{padding-block:clamp(56px,8vw,110px)}.h2-build h3{font-size:clamp(1.8rem,5vw,3.6rem)}
.h2-lucif h2{font-size:clamp(2.4rem,6.5vw,5.6rem)}.h2-lucif{padding:clamp(60px,9vw,120px) 0}
@media(max-width:46em){.h2-in{grid-template-columns:1fr;grid-template-areas:"orb" "tag" "title" "foot"}.h2-orb{width:min(48vw,200px)}.h2-title{font-size:clamp(2.8rem,16vw,5rem)}}
