/* Glass, fade and line utilities — ported from launch-ui styles/utils.css */
.glass-1{border:1px solid var(--border);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 80%,transparent),color-mix(in oklch,var(--card) 40%,transparent))}
.dark .glass-1{border-color:color-mix(in oklch,var(--border) 10%,transparent);border-top-color:color-mix(in oklch,var(--border) 20%,transparent);border-bottom-color:color-mix(in oklch,var(--border) 5%,transparent);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 5%,transparent),color-mix(in oklch,var(--card) 0%,transparent))}
.glass-2{border:1px solid var(--border);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 100%,transparent),color-mix(in oklch,var(--card) 80%,transparent))}
.dark .glass-2{border-color:color-mix(in oklch,var(--border) 10%,transparent);border-top-color:color-mix(in oklch,var(--border) 20%,transparent);border-bottom-color:color-mix(in oklch,var(--border) 5%,transparent);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 10%,transparent),color-mix(in oklch,var(--card) 5%,transparent))}
.glass-3{border:1px solid var(--border);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 30%,transparent),color-mix(in oklch,var(--card) 20%,transparent))}
.dark .glass-3{border-color:color-mix(in oklch,var(--border) 10%,transparent);border-top-color:color-mix(in oklch,var(--border) 20%,transparent);border-bottom-color:color-mix(in oklch,var(--border) 5%,transparent);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--primary) 5%,transparent),color-mix(in oklch,var(--primary) 2%,transparent))}
.glass-4,.lui-btn--glow{border:1px solid var(--border);border-bottom-color:color-mix(in oklch,var(--input) 90%,transparent);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 60%,transparent),color-mix(in oklch,var(--card) 20%,transparent))}
.dark .glass-4,.dark .lui-btn--glow{border-color:color-mix(in oklch,var(--border) 10%,transparent);border-top-color:color-mix(in oklch,var(--border) 30%,transparent);border-bottom-width:0;background-image:linear-gradient(to bottom,color-mix(in oklch,var(--primary) 10%,transparent),color-mix(in oklch,var(--primary) 5%,transparent))}
.glass-5,.lui-btn--glow:hover{border:1px solid var(--border);border-bottom-color:var(--input);background-image:linear-gradient(to bottom,color-mix(in oklch,var(--card) 100%,transparent),color-mix(in oklch,var(--card) 20%,transparent))}
.dark .glass-5,.dark .lui-btn--glow:hover{border-color:color-mix(in oklch,var(--border) 10%,transparent);border-top-color:color-mix(in oklch,var(--border) 30%,transparent);border-bottom-width:0;background-image:linear-gradient(to bottom,color-mix(in oklch,var(--primary) 15%,transparent),color-mix(in oklch,var(--primary) 5%,transparent))}

.fade-x{mask-image:linear-gradient(to right,transparent 0%,black 25%,black 75%,transparent 100%)}
.fade-y{mask-image:linear-gradient(to top,transparent 0%,black 25%,black 75%,transparent 100%)}
.fade-top{mask-image:linear-gradient(to bottom,transparent 0%,black 35%)}
.fade-bottom{mask-image:linear-gradient(to top,transparent 0%,black 35%)}
.fade-top-lg{mask-image:linear-gradient(to bottom,transparent 15%,black 100%)}
.fade-bottom-lg{mask-image:linear-gradient(to top,transparent 15%,black 100%)}
.fade-left{mask-image:linear-gradient(to right,transparent 0%,black 35%)}
.fade-right{mask-image:linear-gradient(to left,transparent 0%,black 35%)}
.line-y{border-style:solid;border-color:var(--line-color);border-width:0 var(--line-width)}
.line-x{border-style:solid;border-color:var(--line-color);border-width:var(--line-width) 0}
.line-b{border-style:solid;border-color:var(--line-color);border-width:0 0 var(--line-width)}
.line-t{border-style:solid;border-color:var(--line-color);border-width:var(--line-width) 0 0}
.line-dashed{border-style:dashed}
.text-gradient{background-image:linear-gradient(to right,var(--foreground),var(--foreground));-webkit-background-clip:text;background-clip:text;color:transparent}
.dark .text-gradient{background-image:linear-gradient(to right,var(--foreground),var(--muted-foreground))}
.text-gradient-brand{background-image:linear-gradient(to right,var(--foreground),var(--foreground));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(2px 1px 24px var(--brand-foreground))}
.dark .text-gradient-brand{background-image:linear-gradient(to right,var(--foreground),var(--brand))}
