/* G1ft Labs visual gallery layer */
.lab-grid{align-items:stretch}
.lab-card{position:relative;padding:0;min-height:470px;background:linear-gradient(155deg,#0b1217,#05090c);border-color:rgba(255,255,255,.09);isolation:isolate}
.lab-card.featured{min-height:520px}
.lab-card:hover{transform:translateY(-5px);box-shadow:0 22px 60px rgba(0,0,0,.42),0 0 30px rgba(26,255,213,.07)}
.lab-card-content{display:flex;flex-direction:column;flex:1;padding:1.05rem 1.15rem 1.2rem;position:relative;z-index:4}
.lab-card-top{position:absolute;top:.8rem;left:.8rem;right:.8rem;z-index:8;pointer-events:none}
.lab-icon{background:rgba(3,8,10,.78);backdrop-filter:blur(10px);box-shadow:0 0 18px rgba(0,0,0,.35)}
.lab-status{background:rgba(3,8,10,.82)!important;backdrop-filter:blur(10px);box-shadow:0 0 18px rgba(0,0,0,.28)}
.lab-card h2{margin:.15rem 0 .42rem;font-size:1.55rem;color:#edfffc}
.lab-card p{font-size:.9rem;line-height:1.55;min-height:4.2em}
.lab-card.featured h2{font-size:1.8rem}
.lab-card.featured p{max-width:780px}
.lab-tags{margin:.45rem 0 .9rem}
.lab-action{position:relative;z-index:12;display:inline-flex;align-items:center;gap:.3rem;width:max-content}
.lab-action:hover{color:#fff;text-shadow:0 0 10px rgba(26,255,213,.65)}
.lab-card-link{position:absolute;inset:0;z-index:5;border-radius:inherit;text-indent:-9999px;overflow:hidden}
.lab-card-link:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.lab-card .lab-action,.lab-card .muted-action{z-index:10}
.lab-preview{position:relative;height:228px;overflow:hidden;background:#071014;border-bottom:1px solid rgba(26,255,213,.16);isolation:isolate}
.lab-card.featured .lab-preview{height:285px}
.lab-preview::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(26,255,213,.12) 1px,transparent 1px),linear-gradient(rgba(26,255,213,.08) 1px,transparent 1px);background-size:42px 42px;opacity:.12;mix-blend-mode:screen}
.lab-preview::after{content:"";position:absolute;left:0;right:0;top:-20%;height:20%;z-index:7;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(26,255,213,.12),transparent);opacity:0;transform:translateY(-100%)}
.lab-card:hover .lab-preview::after{opacity:1;animation:labScan 1.8s ease-in-out}
@keyframes labScan{0%{transform:translateY(-120%)}100%{transform:translateY(700%)}}
.lab-preview-live iframe{position:absolute;z-index:1;top:0;left:0;width:1280px;height:760px;border:0;transform:scale(.38);transform-origin:0 0;pointer-events:none;background:#05090c;filter:saturate(.92) brightness(.8)}
.lab-card.featured .lab-preview-live iframe{transform:scale(.49)}
.lab-preview-live::after{content:"LIVE SITE PREVIEW";position:absolute;right:.75rem;bottom:.65rem;z-index:6;font-size:.58rem;letter-spacing:.12em;color:#9fffe9;background:rgba(2,7,9,.78);padding:.28rem .42rem;border:1px solid rgba(26,255,213,.22);border-radius:4px}
.lab-card:hover .lab-preview-live iframe{filter:saturate(1.08) brightness(.96)}
.preview-fallback{position:absolute;inset:0;z-index:0}
.preview-ui{position:absolute;inset:0;z-index:1;padding:3.5rem 1rem 1rem;color:#dffef7;font-size:.7rem;letter-spacing:.04em}
.preview-ui strong{display:block;font-size:1.1rem;letter-spacing:.06em;margin-bottom:.45rem}
.preview-ui .mini-line{height:5px;border-radius:999px;background:rgba(255,255,255,.18);margin:.38rem 0;max-width:78%}
.preview-ui .mini-line.short{max-width:48%}
.preview-ui .mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.8rem}
.preview-ui .mini-cell{height:48px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:rgba(255,255,255,.035)}
.lab-preview--rabbit{background:radial-gradient(circle at 75% 28%,rgba(95,82,255,.34),transparent 25%),radial-gradient(circle at 26% 68%,rgba(26,255,213,.25),transparent 23%),linear-gradient(140deg,#070b17,#10142b 55%,#071011)}
.lab-preview--rabbit .preview-fallback::before{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(26,255,213,.25);border-radius:50%;right:10%;top:15%;box-shadow:0 0 0 25px rgba(101,90,255,.05),0 0 0 50px rgba(26,255,213,.03)}
.lab-preview--signalsafe{background:radial-gradient(circle at 80% 15%,rgba(54,205,255,.25),transparent 28%),linear-gradient(150deg,#061014,#071d21)}
.lab-preview--worthwise{background:radial-gradient(circle at 15% 15%,rgba(255,190,79,.28),transparent 26%),linear-gradient(145deg,#15100a,#0a1111)}
.lab-preview--transport{background:linear-gradient(145deg,#041015,#07181a)}
.lab-preview--perfectday{background:radial-gradient(circle at 72% 18%,rgba(255,210,95,.35),transparent 20%),linear-gradient(180deg,#102538,#11282b 54%,#111b16)}
.lab-preview--mysteries{background:radial-gradient(circle at 50% 45%,rgba(121,89,255,.32),transparent 22%),radial-gradient(circle at 75% 20%,rgba(26,255,213,.22),transparent 18%),linear-gradient(145deg,#080717,#0b1320)}
.lab-preview--fiber{background:linear-gradient(115deg,#05090c 0 18%,#071215 18% 46%,#08171a 46% 100%)}
.lab-preview--fiber .preview-fallback::before{content:"";position:absolute;left:-5%;right:-5%;top:57%;height:3px;background:linear-gradient(90deg,#1affd5,#fff 46%,#ff9b57 49%,#ff9b57 52%,#fff 55%,#3c8fff);box-shadow:0 0 15px rgba(26,255,213,.75);transform:rotate(-5deg)}
.lab-preview--cosmic{background:radial-gradient(circle at 72% 42%,#f8fdff 0 1%,#88c7ff 1.5%,rgba(84,113,255,.22) 7%,transparent 18%),radial-gradient(circle at 25% 28%,rgba(191,92,255,.26),transparent 22%),linear-gradient(150deg,#040510,#080718)}
.lab-preview--skydex{background:linear-gradient(180deg,#07111b,#0b2130)}
.lab-preview--skydex .preview-fallback::before{content:"✈";position:absolute;right:12%;top:29%;font-size:5rem;color:rgba(126,218,255,.82);text-shadow:0 0 25px rgba(60,143,255,.5);transform:rotate(-9deg)}
.lab-preview--skydex .preview-fallback::after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(88,193,255,.26);border-radius:50%;left:-40px;bottom:-55px;box-shadow:0 0 0 30px rgba(88,193,255,.03),0 0 0 60px rgba(88,193,255,.025)}
.lab-preview--ripple{background:radial-gradient(circle at 50% 48%,rgba(255,126,189,.26),transparent 13%),radial-gradient(circle at 50% 48%,transparent 0 19%,rgba(255,126,189,.16) 20%,transparent 21%),radial-gradient(circle at 50% 48%,transparent 0 31%,rgba(26,255,213,.13) 32%,transparent 33%),linear-gradient(145deg,#130b14,#071213)}
.lab-preview--marketing{background:linear-gradient(135deg,#20100a,#28190a 40%,#09131b)}
.lab-preview--marketing .preview-fallback::before{content:"BUY NOW";position:absolute;right:10%;top:22%;font:900 1.7rem/1 system-ui,sans-serif;background:#ffb347;color:#1b0d00;padding:.7rem 1rem;transform:rotate(4deg);box-shadow:8px 8px 0 rgba(255,87,87,.28)}
.lab-preview--intel{background:repeating-linear-gradient(0deg,rgba(26,255,213,.035) 0 1px,transparent 1px 4px),linear-gradient(145deg,#020a06,#04120d)}
.lab-preview--intel .preview-ui{color:#78ffaf;text-shadow:0 0 6px rgba(47,255,134,.22)}
.lab-preview--mikrotik{background:radial-gradient(circle at 80% 18%,rgba(60,143,255,.25),transparent 22%),linear-gradient(145deg,#07101d,#101820)}
.lab-preview--aitools{background:radial-gradient(circle at 22% 23%,rgba(159,91,255,.28),transparent 22%),radial-gradient(circle at 78% 72%,rgba(26,255,213,.19),transparent 22%),linear-gradient(145deg,#090713,#071313)}
.lab-preview--interface{background:linear-gradient(135deg,#0f0719,#07151a)}
.lab-preview--interface .preview-fallback::before,.lab-preview--interface .preview-fallback::after{content:"";position:absolute;border:1px solid rgba(210,165,255,.26);border-radius:16px;background:rgba(255,255,255,.025)}
.lab-preview--interface .preview-fallback::before{width:54%;height:45%;left:8%;top:28%;transform:rotate(-4deg)}
.lab-preview--interface .preview-fallback::after{width:45%;height:38%;right:7%;top:19%;transform:rotate(5deg)}
.preview-network{position:absolute;inset:0;overflow:hidden}
.preview-network span{position:absolute;width:9px;height:9px;border-radius:50%;background:#1affd5;box-shadow:0 0 12px #1affd5}
.preview-network span::after{content:"";position:absolute;height:1px;width:95px;background:linear-gradient(90deg,rgba(26,255,213,.7),transparent);transform-origin:left center}
.preview-network span:nth-child(1){left:14%;top:62%}.preview-network span:nth-child(1)::after{transform:rotate(-29deg)}
.preview-network span:nth-child(2){left:38%;top:39%}.preview-network span:nth-child(2)::after{transform:rotate(16deg);width:135px}
.preview-network span:nth-child(3){left:68%;top:53%}.preview-network span:nth-child(3)::after{transform:rotate(-42deg);width:100px}
.preview-network span:nth-child(4){right:10%;top:27%}
.preview-weather{position:absolute;inset:0;padding:3.7rem 1rem 1rem;display:grid;grid-template-columns:1fr 1.2fr;gap:.7rem;color:#ecfbff}
.preview-weather .score{font-size:2.6rem;line-height:1;font-weight:900}.preview-weather small{display:block;color:#a9c2cc;font-size:.62rem;letter-spacing:.12em}.preview-weather .days{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}.preview-weather .days span{border:1px solid rgba(255,255,255,.14);border-radius:7px;padding:.45rem .2rem;text-align:center;background:rgba(0,0,0,.18);font-size:.62rem}
.preview-skyrows{position:absolute;left:8%;right:8%;bottom:13%;display:grid;gap:.28rem}.preview-skyrows span{height:7px;border-radius:99px;background:rgba(96,190,255,.2)}.preview-skyrows span:nth-child(1){width:86%}.preview-skyrows span:nth-child(2){width:62%}.preview-skyrows span:nth-child(3){width:72%}
.lab-card:hover .preview-fallback{transform:scale(1.02);transition:.35s ease}
.lab-card:hover .lab-preview{border-bottom-color:rgba(26,255,213,.38)}
.lab-card:hover .lab-preview::before{opacity:.22}
@media(max-width:900px){.lab-preview{height:235px}.lab-card.featured .lab-preview{height:260px}.lab-preview-live iframe,.lab-card.featured .lab-preview-live iframe{transform:scale(.39)}}
@media(max-width:620px){.lab-card{min-height:450px}.lab-card.featured{min-height:470px}.lab-preview,.lab-card.featured .lab-preview{height:220px}.lab-preview-live iframe,.lab-card.featured .lab-preview-live iframe{transform:scale(.34)}}
@media(prefers-reduced-motion:reduce){.lab-card,.preview-fallback{transition:none!important}.lab-card:hover .lab-preview::after{animation:none}}
